diff --git a/Cargo.lock b/Cargo.lock index 45602c41db..77ba05867c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11595,6 +11595,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", diff --git a/evm-tests b/evm-tests index 093d068323..ea10e5e21e 160000 --- a/evm-tests +++ b/evm-tests @@ -1 +1 @@ -Subproject commit 093d068323b40dac1443821a3338790318b868f4 +Subproject commit ea10e5e21ed6add0768ea3c6d07a499dd9e80975 diff --git a/modules/asset-registry/src/mock.rs b/modules/asset-registry/src/mock.rs index c98d9d1a93..7a8a51644a 100644 --- a/modules/asset-registry/src/mock.rs +++ b/modules/asset-registry/src/mock.rs @@ -26,7 +26,10 @@ use frame_support::{ traits::{ConstU128, ConstU32, ConstU64}, }; use frame_system::EnsureSignedBy; -use module_support::{mocks::MockAddressMapping, AddressMapping}; +use module_support::{ + mocks::{MockAddressMapping, TestRandomness}, + AddressMapping, +}; use primitives::{ evm::convert_decimals_to_evm, evm::EvmAddress, AccountId, Balance, CurrencyId, ReserveIdentifier, TokenSymbol, }; @@ -99,6 +102,7 @@ impl module_evm::Config for Runtime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = (); type IdleScheduler = (); type WeightInfo = (); @@ -183,8 +187,8 @@ pub fn deploy_contracts() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 5131, + used_gas: 1215220, + used_storage: 4996, })); } @@ -219,8 +223,8 @@ pub fn deploy_contracts_same_prefix() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 5131, + used_gas: 1215220, + used_storage: 4996, })); } diff --git a/modules/cdp-engine/src/mock.rs b/modules/cdp-engine/src/mock.rs index 9d1af96720..c80819dc48 100644 --- a/modules/cdp-engine/src/mock.rs +++ b/modules/cdp-engine/src/mock.rs @@ -27,7 +27,10 @@ use frame_support::{ PalletId, }; use frame_system::EnsureSignedBy; -use module_support::{mocks::MockStableAsset, AuctionManager, EmergencyShutdown, SpecificJointsSwap}; +use module_support::{ + mocks::{MockStableAsset, TestRandomness}, + AuctionManager, EmergencyShutdown, SpecificJointsSwap, +}; use orml_traits::parameter_type_with_key; use primitives::{evm::convert_decimals_to_evm, DexShare, Moment, ReserveIdentifier, TokenSymbol, TradingPair}; use sp_core::crypto::AccountId32; @@ -296,6 +299,7 @@ impl module_evm::Config for Runtime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = (); type IdleScheduler = (); type WeightInfo = (); diff --git a/modules/currencies/src/mock.rs b/modules/currencies/src/mock.rs index 810a7fffd1..c0d4066d1d 100644 --- a/modules/currencies/src/mock.rs +++ b/modules/currencies/src/mock.rs @@ -29,7 +29,10 @@ use frame_support::{ PalletId, }; use frame_system::EnsureSignedBy; -use module_support::{mocks::MockAddressMapping, AddressMapping}; +use module_support::{ + mocks::{MockAddressMapping, TestRandomness}, + AddressMapping, +}; use orml_traits::{currency::MutationHooks, parameter_type_with_key}; use primitives::{evm::convert_decimals_to_evm, CurrencyId, ReserveIdentifier, TokenSymbol}; use sp_core::H256; @@ -175,6 +178,7 @@ impl module_evm::Config for Runtime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = (); type IdleScheduler = (); type WeightInfo = (); @@ -286,8 +290,8 @@ pub fn deploy_contracts() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 5131, + used_gas: 1215220, + used_storage: 4996, })); } diff --git a/modules/currencies/src/tests.rs b/modules/currencies/src/tests.rs index 8445ce8821..e54e2e2244 100644 --- a/modules/currencies/src/tests.rs +++ b/modules/currencies/src/tests.rs @@ -1299,11 +1299,11 @@ fn fungible_inspect_trait_should_work() { // Test for Inspect::balance and Inspect::total_balance assert_eq!( >::balance(NATIVE_CURRENCY_ID, &alice()), - 148690 + 150040 ); assert_eq!( >::total_balance(NATIVE_CURRENCY_ID, &alice()), - 148690 + 150040 ); assert_eq!( >::balance(X_TOKEN_ID, &alice()), @@ -1313,10 +1313,10 @@ fn fungible_inspect_trait_should_work() { >::balance(CurrencyId::Erc20(erc20_address()), &alice()), ALICE_BALANCE ); - assert_eq!(>::balance(&alice()), 148690); + assert_eq!(>::balance(&alice()), 150040); assert_eq!( >::balance(&alice()), - 148690 + 150040 ); // Test for Inspect::reducible_balance. No locks or reserves @@ -1328,7 +1328,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Preserve, Fortitude::Polite ), - 148688 + 150038 ); assert_eq!( >::reducible_balance( @@ -1336,7 +1336,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Preserve, Fortitude::Polite ), - 148688 + 150038 ); assert_eq!( >::reducible_balance( @@ -1344,7 +1344,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Preserve, Fortitude::Polite ), - 148688 + 150038 ); assert_eq!( >::reducible_balance( @@ -1374,7 +1374,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Expendable, Fortitude::Polite ), - 148690 + 150040 ); assert_eq!( >::reducible_balance( @@ -1400,7 +1400,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Expendable, Fortitude::Polite ), - 148690 + 150040 ); assert_eq!( >::reducible_balance( @@ -1408,7 +1408,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Expendable, Fortitude::Polite ), - 148690 + 150040 ); // Set some locks @@ -1423,7 +1423,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Preserve, Fortitude::Polite ), - 147690 + 149040 ); assert_eq!( >::reducible_balance( @@ -1449,7 +1449,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Preserve, Fortitude::Polite ), - 147690 + 149040 ); assert_eq!( >::reducible_balance( @@ -1457,7 +1457,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Preserve, Fortitude::Polite ), - 147690 + 149040 ); assert_eq!( @@ -1467,7 +1467,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Expendable, Fortitude::Polite ), - 147690 + 149040 ); assert_eq!( >::reducible_balance( @@ -1493,7 +1493,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Expendable, Fortitude::Polite ), - 147690 + 149040 ); assert_eq!( >::reducible_balance( @@ -1501,7 +1501,7 @@ fn fungible_inspect_trait_should_work() { Preservation::Expendable, Fortitude::Polite ), - 147690 + 149040 ); // Test for Inspect::can_deposit @@ -1626,11 +1626,11 @@ fn fungible_inspect_trait_should_work() { ); assert_eq!( - >::can_withdraw(NATIVE_CURRENCY_ID, &alice(), 147690 + 1), + >::can_withdraw(NATIVE_CURRENCY_ID, &alice(), 149040 + 1), WithdrawConsequence::Frozen ); assert_eq!( - >::can_withdraw(&alice(), 147690 + 1), + >::can_withdraw(&alice(), 149040 + 1), WithdrawConsequence::Frozen ); assert_eq!( diff --git a/modules/evm-bridge/src/mock.rs b/modules/evm-bridge/src/mock.rs index ac73bee581..097b8416a3 100644 --- a/modules/evm-bridge/src/mock.rs +++ b/modules/evm-bridge/src/mock.rs @@ -26,7 +26,10 @@ use frame_support::{ traits::{ConstU128, ConstU32, ConstU64}, }; use frame_system::EnsureSignedBy; -use module_support::{mocks::MockAddressMapping, AddressMapping}; +use module_support::{ + mocks::{MockAddressMapping, TestRandomness}, + AddressMapping, +}; use primitives::{evm::convert_decimals_to_evm, evm::EvmAddress, ReserveIdentifier}; use sp_core::{crypto::AccountId32, H256}; use sp_runtime::{traits::IdentityLookup, BuildStorage}; @@ -104,6 +107,7 @@ impl module_evm::Config for Runtime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = (); type IdleScheduler = (); type WeightInfo = (); @@ -185,8 +189,8 @@ pub fn deploy_contracts() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 5131, + used_gas: 1215220, + used_storage: 4996, })); } @@ -207,8 +211,8 @@ pub fn deploy_liquidation_ok_contracts() { from: alice_evm_addr(), contract: erc20_address(), logs: vec![], - used_gas: 235330, - used_storage: 844, + used_gas: 234056, + used_storage: 837, })); } @@ -229,8 +233,8 @@ pub fn deploy_liquidation_err_contracts() { from: alice_evm_addr(), contract: erc20_address(), logs: vec![], - used_gas: 228338, - used_storage: 818, + used_gas: 226860, + used_storage: 810, })); } diff --git a/modules/evm-bridge/src/tests.rs b/modules/evm-bridge/src/tests.rs index 46caf13fe9..1e6c3fc458 100644 --- a/modules/evm-bridge/src/tests.rs +++ b/modules/evm-bridge/src/tests.rs @@ -241,7 +241,7 @@ fn liquidation_works() { buf.to_vec() }, }], - used_gas: 25083, + used_gas: 25061, used_storage: 0, })); }); @@ -281,7 +281,7 @@ fn on_collateral_transfer_works() { buf.to_vec() }, }], - used_gas: 23573, + used_gas: 23560, used_storage: 0, })); }); @@ -321,7 +321,7 @@ fn on_repayment_refund_works() { buf.to_vec() }, }], - used_gas: 23595, + used_gas: 23582, used_storage: 0, })); }); @@ -419,7 +419,7 @@ fn tracing_should_work() { "input": "0xa9059cbb00000000000000000000000010000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000064", "value": "0x0", "gas": 200000, - "gasUsed": 51929, + "gasUsed": 51897, "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "error": null, "revertReason": null, diff --git a/modules/evm/src/bench/mock.rs b/modules/evm/src/bench/mock.rs index 85f1744cdf..ab4a8fcde0 100644 --- a/modules/evm/src/bench/mock.rs +++ b/modules/evm/src/bench/mock.rs @@ -28,7 +28,7 @@ use frame_support::{ }; use frame_system::EnsureSignedBy; use module_support::{ - mocks::{MockAddressMapping, MockErc20InfoMapping}, + mocks::{MockAddressMapping, MockErc20InfoMapping, TestRandomness}, DEXIncentives, Price, PriceProvider, SpecificJointsSwap, }; use orml_traits::{parameter_type_with_key, MultiReservableCurrency}; @@ -196,6 +196,7 @@ impl Config for Runtime { type Runner = crate::runner::stack::Runner; type FindAuthor = AuthorGiven; + type Randomness = TestRandomness; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = (); diff --git a/modules/evm/src/lib.rs b/modules/evm/src/lib.rs index 50eaadfbe7..7fc9b406a6 100644 --- a/modules/evm/src/lib.rs +++ b/modules/evm/src/lib.rs @@ -36,7 +36,7 @@ use frame_support::{ parameter_types, traits::{ BalanceStatus, Currency, EitherOfDiverse, EnsureOrigin, ExistenceRequirement, FindAuthor, Get, - NamedReservableCurrency, OnKilledAccount, + NamedReservableCurrency, OnKilledAccount, Randomness, }, transactional, weights::Weight, @@ -241,6 +241,9 @@ pub mod module { /// Find author for the current block. type FindAuthor: FindAuthor; + /// Provides randomness in the runtime. + type Randomness: Randomness>; + /// Dispatchable tasks type Task: DispatchableTask + FullCodec + Debug + Clone + PartialEq + TypeInfo + From>; @@ -1904,6 +1907,11 @@ impl Pallet { } }); } + + fn get_randomness() -> H256 { + let (random, _block_number) = T::Randomness::random(&("EVM-Random").encode()); + H256::from_slice(random.as_ref()) + } } impl EVMTrait for Pallet { diff --git a/modules/evm/src/mock.rs b/modules/evm/src/mock.rs index 9c1653de49..e3f7913aa9 100644 --- a/modules/evm/src/mock.rs +++ b/modules/evm/src/mock.rs @@ -26,7 +26,7 @@ use frame_support::{ ConsensusEngineId, }; use frame_system::EnsureSignedBy; -use module_support::mocks::MockAddressMapping; +use module_support::mocks::{MockAddressMapping, TestRandomness}; use orml_traits::parameter_type_with_key; use primitives::{define_combined_task, Amount, BlockNumber, CurrencyId, ReserveIdentifier, TokenSymbol}; use sp_core::{bytes::from_hex, H160}; @@ -200,6 +200,7 @@ impl Config for Runtime { type Runner = crate::runner::stack::Runner; type FindAuthor = AuthorGiven; + type Randomness = TestRandomness; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = (); diff --git a/modules/evm/src/runner/stack.rs b/modules/evm/src/runner/stack.rs index 755423bedb..00743d0e7e 100644 --- a/modules/evm/src/runner/stack.rs +++ b/modules/evm/src/runner/stack.rs @@ -621,10 +621,16 @@ impl<'vicinity, 'config, T: Config> BackendT for SubstrateStackState<'vicinity, self.vicinity.origin } + #[cfg(feature = "evm-tests")] fn block_randomness(&self) -> Option { self.vicinity.block_randomness } + #[cfg(not(feature = "evm-tests"))] + fn block_randomness(&self) -> Option { + Some(self.vicinity.block_randomness.unwrap_or(Pallet::::get_randomness())) + } + fn block_hash(&self, number: U256) -> H256 { if number > U256::from(u32::MAX) { H256::default() diff --git a/modules/evm/src/tests.rs b/modules/evm/src/tests.rs index d163ee36e7..4e2d4bf8f6 100644 --- a/modules/evm/src/tests.rs +++ b/modules/evm/src/tests.rs @@ -2286,8 +2286,8 @@ fn auto_publish_works() { from: alice(), contract: factory, logs: vec![], - used_gas: 593369, - used_storage: 2609, + used_gas: 596931, + used_storage: 2620, })); // call method `createContract()` @@ -2321,14 +2321,14 @@ fn auto_publish_works() { data: vec![], }, ], - used_gas: 387768, - used_storage: 1530, + used_gas: 389159, + used_storage: 1537, })); assert_eq!( EVM::accounts(factory).unwrap().contract_info, Some(ContractInfo { - code_hash: H256::from_str("0xd007bd109daec7dec73d897c079b67b3d2fd6ad4892a916c5e03e21bb60ff384") + code_hash: H256::from_str("0xa117e3bd6b1612af03f5876415d209b189ae474262958b00a2811c963d1ad717") .unwrap(), maintainer: alice(), published: false @@ -2339,7 +2339,7 @@ fn auto_publish_works() { .unwrap() .contract_info, Some(ContractInfo { - code_hash: H256::from_str("0xe12fa7753d9cd8de1f8b597fef33ab91c2749fe4a1022b648f949ab2566f391f") + code_hash: H256::from_str("0x0d9c1791bf0e7a5c3fc114885f45142815122dd7231aad0aeab4ab2c0b746c69") .unwrap(), maintainer: factory, published: false @@ -2350,7 +2350,7 @@ fn auto_publish_works() { .unwrap() .contract_info, Some(ContractInfo { - code_hash: H256::from_str("0x46460b564756d0e02bbfdc8fc3d47d1a68c3b3d8301b5de90da83d6d75e0b6c7") + code_hash: H256::from_str("0x1d07e7e9217fc910f5bbd51c260bbb2fb3564181dfbb3054e853bda4e50418d2") .unwrap(), maintainer: H160::from_str("0x7b8f8ca099f6e33cf1817cf67d0556429cfc54e4").unwrap(), published: false @@ -2391,14 +2391,14 @@ fn auto_publish_works() { data: vec![], }, ], - used_gas: 370668, - used_storage: 1466, + used_gas: 372059, + used_storage: 1473, })); assert_eq!( EVM::accounts(factory).unwrap().contract_info, Some(ContractInfo { - code_hash: H256::from_str("0xd007bd109daec7dec73d897c079b67b3d2fd6ad4892a916c5e03e21bb60ff384") + code_hash: H256::from_str("0xa117e3bd6b1612af03f5876415d209b189ae474262958b00a2811c963d1ad717") .unwrap(), maintainer: alice(), published: true @@ -2409,7 +2409,7 @@ fn auto_publish_works() { .unwrap() .contract_info, Some(ContractInfo { - code_hash: H256::from_str("0xe12fa7753d9cd8de1f8b597fef33ab91c2749fe4a1022b648f949ab2566f391f") + code_hash: H256::from_str("0x0d9c1791bf0e7a5c3fc114885f45142815122dd7231aad0aeab4ab2c0b746c69") .unwrap(), maintainer: H160::from_str("0x5f8bd49cd9f0cb2bd5bb9d4320dfe9b61023249d").unwrap(), published: true @@ -2420,7 +2420,7 @@ fn auto_publish_works() { .unwrap() .contract_info, Some(ContractInfo { - code_hash: H256::from_str("0x46460b564756d0e02bbfdc8fc3d47d1a68c3b3d8301b5de90da83d6d75e0b6c7") + code_hash: H256::from_str("0x1d07e7e9217fc910f5bbd51c260bbb2fb3564181dfbb3054e853bda4e50418d2") .unwrap(), maintainer: H160::from_str("0x39b26a36a8a175ce7d498b5ef187d1ab2f381bbd").unwrap(), published: true @@ -2448,8 +2448,8 @@ fn auto_publish_works() { ], data: vec![], }], - used_gas: 147228, - used_storage: 407, + used_gas: 145811, + used_storage: 400, })); assert_eq!( @@ -2457,7 +2457,7 @@ fn auto_publish_works() { .unwrap() .contract_info, Some(ContractInfo { - code_hash: H256::from_str("0x46460b564756d0e02bbfdc8fc3d47d1a68c3b3d8301b5de90da83d6d75e0b6c7") + code_hash: H256::from_str("0x1d07e7e9217fc910f5bbd51c260bbb2fb3564181dfbb3054e853bda4e50418d2") .unwrap(), maintainer: H160::from_str("0x7b8f8ca099f6e33cf1817cf67d0556429cfc54e4").unwrap(), published: true diff --git a/modules/honzon-bridge/src/mock.rs b/modules/honzon-bridge/src/mock.rs index 775c1bc3c2..4bb443cdbd 100644 --- a/modules/honzon-bridge/src/mock.rs +++ b/modules/honzon-bridge/src/mock.rs @@ -31,7 +31,10 @@ pub use frame_support::{ }; pub use frame_system::{EnsureRoot, EnsureSignedBy, RawOrigin}; pub use module_evm_accounts::EvmAddressMapping; -pub use module_support::{mocks::MockAddressMapping, AddressMapping}; +pub use module_support::{ + mocks::{MockAddressMapping, TestRandomness}, + AddressMapping, +}; pub use orml_traits::{parameter_type_with_key, MultiCurrency}; use sp_core::{H160, H256, U256}; use sp_runtime::{traits::AccountIdConversion, BuildStorage}; @@ -153,6 +156,7 @@ impl module_evm::Config for Runtime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = (); type IdleScheduler = (); type WeightInfo = (); @@ -244,8 +248,8 @@ pub fn deploy_contracts() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 5131, + used_gas: 1215220, + used_storage: 4996, })); } diff --git a/modules/honzon/src/mock.rs b/modules/honzon/src/mock.rs index dc5c1595d6..ddbf0012ca 100644 --- a/modules/honzon/src/mock.rs +++ b/modules/honzon/src/mock.rs @@ -29,8 +29,8 @@ use frame_support::{ use frame_system::{offchain::SendTransactionTypes, EnsureSignedBy}; use module_cdp_engine::CollateralCurrencyIds; use module_support::{ - mocks::MockStableAsset, AuctionManager, ExchangeRate, FractionalRate, Price, PriceProvider, Rate, Ratio, - SpecificJointsSwap, + mocks::{MockStableAsset, TestRandomness}, + AuctionManager, ExchangeRate, FractionalRate, Price, PriceProvider, Rate, Ratio, SpecificJointsSwap, }; use orml_traits::parameter_type_with_key; use primitives::{ @@ -261,6 +261,7 @@ impl module_evm::Config for Runtime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = (); type IdleScheduler = (); type WeightInfo = (); diff --git a/modules/support/src/mocks.rs b/modules/support/src/mocks.rs index fd07a7bef7..fde6e20e26 100644 --- a/modules/support/src/mocks.rs +++ b/modules/support/src/mocks.rs @@ -22,7 +22,6 @@ use frame_support::pallet_prelude::{DispatchClass, Pays, Weight}; use nutsfinance_stable_asset::{ traits::StableAsset, PoolTokenIndex, RedeemProportionResult, StableAssetPoolId, StableAssetPoolInfo, SwapResult, }; -use parity_scale_codec::Encode; use primitives::{ currency::TokenInfo, evm::{EvmAddress, H160_POSITION_TOKEN}, @@ -35,6 +34,8 @@ use sp_std::{marker::PhantomData, vec::Vec}; #[cfg(feature = "std")] use frame_support::traits::Imbalance; +use frame_system::pallet_prelude::BlockNumberFor; +use parity_scale_codec::{Decode, Encode}; pub struct MockAddressMapping; @@ -408,3 +409,19 @@ impl StableAsset unimplemented!() } } + +pub struct TestRandomness(sp_std::marker::PhantomData); + +impl frame_support::traits::Randomness> for TestRandomness +where + T: frame_system::Config, +{ + fn random(subject: &[u8]) -> (Output, BlockNumberFor) { + use sp_runtime::traits::TrailingZeroInput; + + ( + Output::decode(&mut TrailingZeroInput::new(subject)).unwrap_or_default(), + frame_system::Pallet::::block_number(), + ) + } +} diff --git a/runtime/acala/src/lib.rs b/runtime/acala/src/lib.rs index c5ce678594..6421071857 100644 --- a/runtime/acala/src/lib.rs +++ b/runtime/acala/src/lib.rs @@ -110,9 +110,9 @@ use runtime_common::{ EnsureRootOrTwoThirdsTechnicalCommittee, ExchangeRate, ExistentialDepositsTimesOneHundred, FinancialCouncilInstance, FinancialCouncilMembershipInstance, GasToWeight, GeneralCouncilInstance, GeneralCouncilMembershipInstance, HomaCouncilInstance, HomaCouncilMembershipInstance, MaxTipsOfPriority, - OperationalFeeMultiplier, OperatorMembershipInstanceAcala, Price, ProxyType, Rate, Ratio, RuntimeBlockLength, - RuntimeBlockWeights, TechnicalCommitteeInstance, TechnicalCommitteeMembershipInstance, TimeStampedPrice, - TipPerWeightStep, ACA, AUSD, DOT, LCDOT, LDOT, TAP, + OperationalFeeMultiplier, OperatorMembershipInstanceAcala, Price, ProxyType, RandomnessSource, Rate, Ratio, + RuntimeBlockLength, RuntimeBlockWeights, TechnicalCommitteeInstance, TechnicalCommitteeMembershipInstance, + TimeStampedPrice, TipPerWeightStep, ACA, AUSD, DOT, LCDOT, LDOT, TAP, }; use xcm::v3::prelude::*; @@ -1490,6 +1490,7 @@ impl module_evm::Config for Runtime { type FreePublicationOrigin = EnsureRootOrHalfGeneralCouncil; type Runner = module_evm::runner::stack::Runner; type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type Randomness = RandomnessSource; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = weights::module_evm::WeightInfo; diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index a57a79a0fb..8fc698f142 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -40,6 +40,7 @@ cumulus-pallet-xcm = { workspace = true } # polkadot pallet-xcm = { workspace = true } +parachain-info = { workspace = true } parachains-common = { workspace = true } polkadot-parachain-primitives = { workspace = true } polkadot-primitives = { workspace = true } @@ -111,6 +112,7 @@ std = [ "cumulus-pallet-parachain-system/std", "pallet-xcm/std", + "parachain-info/std", "parachains-common/std", "polkadot-parachain-primitives/std", "polkadot-primitives/std", diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index 0a731ae0cf..94410a7746 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -21,17 +21,17 @@ #![cfg_attr(not(feature = "std"), no_std)] #![recursion_limit = "256"] -use cumulus_pallet_parachain_system::CheckAssociatedRelayNumber; +use cumulus_pallet_parachain_system::{CheckAssociatedRelayNumber, RelayChainStateProof}; use frame_support::{ dispatch::DispatchClass, parameter_types, - traits::{Contains, EitherOfDiverse, Get}, + traits::{Contains, EitherOfDiverse, Get, Randomness}, weights::{ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_SECOND}, Weight, }, }; -use frame_system::{limits, EnsureRoot}; +use frame_system::{limits, pallet_prelude::BlockNumberFor, EnsureRoot}; use orml_traits::{currency::MutationHooks, GetByKey}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use polkadot_parachain_primitives::primitives::RelayChainBlockNumber; @@ -41,7 +41,11 @@ use primitives::{ }; use scale_info::TypeInfo; use sp_core::H160; -use sp_runtime::{traits::Convert, transaction_validity::TransactionPriority, Perbill, RuntimeDebug}; +use sp_runtime::{ + traits::{Convert, Hash}, + transaction_validity::TransactionPriority, + Perbill, RuntimeDebug, Saturating, +}; use sp_std::{marker::PhantomData, prelude::*}; use static_assertions::const_assert; @@ -408,6 +412,54 @@ where } } +pub struct RandomnessSource(sp_std::marker::PhantomData); +impl Randomness> for RandomnessSource +where + T: frame_system::Config + cumulus_pallet_parachain_system::Config + parachain_info::Config, +{ + fn random(subject: &[u8]) -> (T::Hash, BlockNumberFor) { + // If the relay randomness is not accessible, so insecure randomness is used and marked as stale + // with a block number of zero + let mut randomness: [u8; 32] = [0u8; 32]; + randomness.clone_from_slice(frame_system::Pallet::::parent_hash().as_ref()); + let mut block_number = BlockNumberFor::::default(); + + // ValidationData is removed at on_initialize and set at the inherent, this means it could be empty + // in the on_initialize hook for some pallets and some other inherents so this could fail when + // invoked by scheduler or some other pallet's on_initialize hook + if let Some(validation_data) = cumulus_pallet_parachain_system::Pallet::::validation_data() { + let relay_storage_root = validation_data.relay_parent_storage_root; + + if let Some(relay_state_proof) = cumulus_pallet_parachain_system::Pallet::::relay_state_proof() { + if let Ok(relay_chain_state_proof) = RelayChainStateProof::new( + parachain_info::Pallet::::get(), + relay_storage_root, + relay_state_proof, + ) { + if let Some(current_block_randomness) = relay_chain_state_proof + .read_optional_entry(polkadot_primitives::well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + { + randomness = current_block_randomness; + // the randomness is from relaychain so there is a delay have a - 4 to indicate the randomness + // is from previous relay block + block_number = frame_system::Pallet::::block_number().saturating_sub(4u8.into()) + } + } + } + } + + let mut subject = subject.to_vec(); + subject.reserve(32); // RANDOMNESS_LENGTH is 32 + subject.extend_from_slice(&randomness); + + let random = T::Hashing::hash(&subject[..]); + + (random, block_number) + } +} + #[cfg(feature = "std")] /// Returns `evm_genesis_accounts` pub fn evm_genesis(evm_accounts: Vec) -> BTreeMap> { diff --git a/runtime/common/src/mock.rs b/runtime/common/src/mock.rs index ec4f58a480..6b9a402a42 100644 --- a/runtime/common/src/mock.rs +++ b/runtime/common/src/mock.rs @@ -24,7 +24,10 @@ use frame_support::{ }; use module_evm::{EvmChainId, EvmTask}; use module_evm_accounts::EvmAddressMapping; -use module_support::{mocks::MockAddressMapping, DispatchableTask}; +use module_support::{ + mocks::{MockAddressMapping, TestRandomness}, + DispatchableTask, +}; use orml_traits::parameter_type_with_key; use parity_scale_codec::{Decode, Encode}; use primitives::{ @@ -203,6 +206,7 @@ impl module_evm::Config for TestRuntime { type Runner = module_evm::runner::stack::Runner; type FindAuthor = AuthorGiven; + type Randomness = TestRandomness; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = (); diff --git a/runtime/common/src/precompile/mock.rs b/runtime/common/src/precompile/mock.rs index d925889724..bafea10fad 100644 --- a/runtime/common/src/precompile/mock.rs +++ b/runtime/common/src/precompile/mock.rs @@ -33,9 +33,10 @@ use module_cdp_engine::CollateralCurrencyIds; use module_evm::{EvmChainId, EvmTask}; use module_evm_accounts::EvmAddressMapping; use module_support::{ - mocks::MockStableAsset, AddressMapping as AddressMappingT, AuctionManager, CrowdloanVaultXcm, DEXIncentives, - DispatchableTask, EmergencyShutdown, ExchangeRate, ExchangeRateProvider, FractionalRate, HomaSubAccountXcm, PoolId, - PriceProvider, Rate, SpecificJointsSwap, + mocks::{MockStableAsset, TestRandomness}, + AddressMapping as AddressMappingT, AuctionManager, CrowdloanVaultXcm, DEXIncentives, DispatchableTask, + EmergencyShutdown, ExchangeRate, ExchangeRateProvider, FractionalRate, HomaSubAccountXcm, PoolId, PriceProvider, + Rate, SpecificJointsSwap, }; use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key, MultiCurrency, MultiReservableCurrency}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; @@ -588,6 +589,7 @@ impl module_evm::Config for Test { type FreePublicationOrigin = EnsureSignedBy; type Runner = module_evm::runner::stack::Runner; type FindAuthor = (); + type Randomness = TestRandomness; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = (); diff --git a/runtime/integration-tests/src/evm.rs b/runtime/integration-tests/src/evm.rs index dccf3bfd52..de3426f19f 100644 --- a/runtime/integration-tests/src/evm.rs +++ b/runtime/integration-tests/src/evm.rs @@ -111,8 +111,8 @@ pub fn deploy_erc20_contracts() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 15130, + used_gas: 1215220, + used_storage: 14995, })); assert_ok!(AssetRegistry::register_erc20_asset( @@ -146,8 +146,8 @@ pub fn deploy_erc20_contracts() { H256::from_slice(&buf).as_bytes().to_vec() }, }], - used_gas: 1235455, - used_storage: 15130, + used_gas: 1215220, + used_storage: 14995, })); assert_ok!(AssetRegistry::register_erc20_asset( diff --git a/runtime/integration-tests/src/honzon.rs b/runtime/integration-tests/src/honzon.rs index de06998b8e..cee8322fd3 100644 --- a/runtime/integration-tests/src/honzon.rs +++ b/runtime/integration-tests/src/honzon.rs @@ -98,8 +98,8 @@ pub fn deploy_liquidation_contracts() { from: repayment_evm_addr(), contract: mock_liquidation_address_0(), logs: vec![], - used_gas: 473376, - used_storage: 11949, + used_gas: 460625, + used_storage: 11887, })); assert_ok!(EVM::create( @@ -115,8 +115,8 @@ pub fn deploy_liquidation_contracts() { from: repayment_evm_addr(), contract: mock_liquidation_address_1(), logs: vec![], - used_gas: 473376, - used_storage: 11949, + used_gas: 460625, + used_storage: 11887, })); } diff --git a/runtime/karura/src/lib.rs b/runtime/karura/src/lib.rs index b36513aa51..80c7427ba2 100644 --- a/runtime/karura/src/lib.rs +++ b/runtime/karura/src/lib.rs @@ -111,9 +111,9 @@ use runtime_common::{ EnsureRootOrTwoThirdsTechnicalCommittee, ExchangeRate, ExistentialDepositsTimesOneHundred, FinancialCouncilInstance, FinancialCouncilMembershipInstance, GasToWeight, GeneralCouncilInstance, GeneralCouncilMembershipInstance, HomaCouncilInstance, HomaCouncilMembershipInstance, MaxTipsOfPriority, - OperationalFeeMultiplier, OperatorMembershipInstanceAcala, Price, ProxyType, Rate, Ratio, RuntimeBlockLength, - RuntimeBlockWeights, TechnicalCommitteeInstance, TechnicalCommitteeMembershipInstance, TimeStampedPrice, - TipPerWeightStep, KAR, KSM, KUSD, LKSM, TAI, + OperationalFeeMultiplier, OperatorMembershipInstanceAcala, Price, ProxyType, RandomnessSource, Rate, Ratio, + RuntimeBlockLength, RuntimeBlockWeights, TechnicalCommitteeInstance, TechnicalCommitteeMembershipInstance, + TimeStampedPrice, TipPerWeightStep, KAR, KSM, KUSD, LKSM, TAI, }; use xcm::v3::prelude::*; @@ -1513,6 +1513,7 @@ impl module_evm::Config for Runtime { type FreePublicationOrigin = EnsureRootOrHalfGeneralCouncil; type Runner = module_evm::runner::stack::Runner; type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type Randomness = RandomnessSource; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = weights::module_evm::WeightInfo; diff --git a/runtime/mandala/src/lib.rs b/runtime/mandala/src/lib.rs index adf81885f7..ef3a9552e1 100644 --- a/runtime/mandala/src/lib.rs +++ b/runtime/mandala/src/lib.rs @@ -110,9 +110,9 @@ use runtime_common::{ EnsureRootOrTwoThirdsTechnicalCommittee, ExchangeRate, ExistentialDepositsTimesOneHundred, FinancialCouncilInstance, FinancialCouncilMembershipInstance, GasToWeight, GeneralCouncilInstance, GeneralCouncilMembershipInstance, HomaCouncilInstance, HomaCouncilMembershipInstance, MaxTipsOfPriority, - OperationalFeeMultiplier, OperatorMembershipInstanceAcala, Price, ProxyType, Rate, Ratio, RuntimeBlockLength, - RuntimeBlockWeights, TechnicalCommitteeInstance, TechnicalCommitteeMembershipInstance, TimeStampedPrice, - TipPerWeightStep, ACA, AUSD, DOT, KSM, LCDOT, LDOT, + OperationalFeeMultiplier, OperatorMembershipInstanceAcala, Price, ProxyType, RandomnessSource, Rate, Ratio, + RuntimeBlockLength, RuntimeBlockWeights, TechnicalCommitteeInstance, TechnicalCommitteeMembershipInstance, + TimeStampedPrice, TipPerWeightStep, ACA, AUSD, DOT, KSM, LCDOT, LDOT, }; use xcm::prelude::*; @@ -1668,6 +1668,7 @@ impl module_evm::Config for Runtime { type FreePublicationOrigin = EnsureRootOrHalfGeneralCouncil; type Runner = module_evm::runner::stack::Runner; type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type Randomness = RandomnessSource; type Task = ScheduledTasks; type IdleScheduler = IdleScheduler; type WeightInfo = weights::module_evm::WeightInfo; diff --git a/ts-tests/build/Block.json b/ts-tests/build/Block.json index 299a4dbd63..50d3cd1458 100644 --- a/ts-tests/build/Block.json +++ b/ts-tests/build/Block.json @@ -1,5 +1,18 @@ { "abi": [ + { + "inputs": [], + "name": "baseFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -21,7 +34,7 @@ }, { "inputs": [], - "name": "chainId", + "name": "blockNumber", "outputs": [ { "internalType": "uint256", @@ -34,12 +47,12 @@ }, { "inputs": [], - "name": "coinbase", + "name": "chainId", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -47,12 +60,12 @@ }, { "inputs": [], - "name": "currentBlock", + "name": "coinbase", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -90,6 +103,19 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [], + "name": "prevrandao", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "timestamp", @@ -106,502 +132,740 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610399806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b80777ea1161005b578063b80777ea146100ee578063c6888fa11461010c578063e12ed13c1461013c578063f68016b71461015a5761007d565b806385df51fd146100825780639a8a0592146100b2578063a6ae0aac146100d0575b600080fd5b61009c600480360381019061009791906101d6565b610178565b6040516100a99190610247565b60405180910390f35b6100ba610183565b6040516100c79190610262565b60405180910390f35b6100d861018b565b6040516100e5919061022c565b60405180910390f35b6100f6610193565b6040516101039190610262565b60405180910390f35b610126600480360381019061012191906101d6565b61019b565b6040516101339190610262565b60405180910390f35b6101446101b1565b6040516101519190610262565b60405180910390f35b6101626101b9565b60405161016f9190610262565b60405180910390f35b600081409050919050565b600046905090565b600041905090565b600042905090565b60006007826101aa919061027d565b9050919050565b600043905090565b600045905090565b6000813590506101d08161034c565b92915050565b6000602082840312156101e857600080fd5b60006101f6848285016101c1565b91505092915050565b610208816102d7565b82525050565b610217816102e9565b82525050565b61022681610313565b82525050565b600060208201905061024160008301846101ff565b92915050565b600060208201905061025c600083018461020e565b92915050565b6000602082019050610277600083018461021d565b92915050565b600061028882610313565b915061029383610313565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156102cc576102cb61031d565b5b828202905092915050565b60006102e2826102f3565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61035581610313565b811461036057600080fd5b5056fea2646970667358221220af274a55fbb5b38fdd4fc8654076d1f9191ff4ca51dab567b0d7d08e46b51c1064736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x399 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB80777EA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xB80777EA EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xC6888FA1 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0xE12ED13C EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0xF68016B7 EQ PUSH2 0x15A JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x85DF51FD EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xA6AE0AAC EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x178 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x247 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH2 0x183 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD8 PUSH2 0x18B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x126 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x121 SWAP2 SWAP1 PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x19B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x133 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x144 PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x151 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16F SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 BLOCKHASH SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CHAINID SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 COINBASE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0x27D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 NUMBER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 GASLIMIT SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D0 DUP2 PUSH2 0x34C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F6 DUP5 DUP3 DUP6 ADD PUSH2 0x1C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x208 DUP2 PUSH2 0x2D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x217 DUP2 PUSH2 0x2E9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x226 DUP2 PUSH2 0x313 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x241 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x277 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x288 DUP3 PUSH2 0x313 JUMP JUMPDEST SWAP2 POP PUSH2 0x293 DUP4 PUSH2 0x313 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2CC JUMPI PUSH2 0x2CB PUSH2 0x31D JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E2 DUP3 PUSH2 0x2F3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x355 DUP2 PUSH2 0x313 JUMP JUMPDEST DUP2 EQ PUSH2 0x360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x27 0x4A SSTORE 0xFB 0xB5 0xB3 DUP16 0xDD 0x4F 0xC8 PUSH6 0x4076D1F9191F DELEGATECALL 0xCA MLOAD 0xDA 0xB5 PUSH8 0xB0D7D08E46B51C10 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "70:663:4:-:0;;;;;;;;;;;;;;;;;;;" + "object": "608060405234801561000f575f80fd5b506103ce8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c80639a8a0592116100645780639a8a05921461011f578063a6ae0aac1461013d578063b80777ea1461015b578063c6888fa114610179578063f68016b7146101a957610091565b80634449436c1461009557806357e871e7146100b35780636ef25c3a146100d157806385df51fd146100ef575b5f80fd5b61009d6101c7565b6040516100aa919061022f565b60405180910390f35b6100bb6101ce565b6040516100c8919061022f565b60405180910390f35b6100d96101d5565b6040516100e6919061022f565b60405180910390f35b61010960048036038101906101049190610276565b6101dc565b60405161011691906102b9565b60405180910390f35b6101276101e6565b604051610134919061022f565b60405180910390f35b6101456101ed565b6040516101529190610311565b60405180910390f35b6101636101f4565b604051610170919061022f565b60405180910390f35b610193600480360381019061018e9190610276565b6101fb565b6040516101a0919061022f565b60405180910390f35b6101b1610210565b6040516101be919061022f565b60405180910390f35b5f44905090565b5f43905090565b5f48905090565b5f81409050919050565b5f46905090565b5f41905090565b5f42905090565b5f6007826102099190610357565b9050919050565b5f45905090565b5f819050919050565b61022981610217565b82525050565b5f6020820190506102425f830184610220565b92915050565b5f80fd5b61025581610217565b811461025f575f80fd5b50565b5f813590506102708161024c565b92915050565b5f6020828403121561028b5761028a610248565b5b5f61029884828501610262565b91505092915050565b5f819050919050565b6102b3816102a1565b82525050565b5f6020820190506102cc5f8301846102aa565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102fb826102d2565b9050919050565b61030b816102f1565b82525050565b5f6020820190506103245f830184610302565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61036182610217565b915061036c83610217565b925082820261037a81610217565b915082820484148315176103915761039061032a565b5b509291505056fea26469706673582212202a6c818dd7fb40696ad3cf13ae6ff1ea3ea3d5bcf7cf38a59e0da697c440dfa764736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CE DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A8A0592 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0xA6AE0AAC EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xB80777EA EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xC6888FA1 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xF68016B7 EQ PUSH2 0x1A9 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x4449436C EQ PUSH2 0x95 JUMPI DUP1 PUSH4 0x57E871E7 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x6EF25C3A EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x85DF51FD EQ PUSH2 0xEF JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9D PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0x1CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x276 JUMP JUMPDEST PUSH2 0x1DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x116 SWAP2 SWAP1 PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x127 PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x311 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH2 0x1F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x276 JUMP JUMPDEST PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x210 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PREVRANDAO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 NUMBER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 BASEFEE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 BLOCKHASH SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 CHAINID SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 COINBASE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x7 DUP3 PUSH2 0x209 SWAP2 SWAP1 PUSH2 0x357 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 GASLIMIT SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x229 DUP2 PUSH2 0x217 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x242 PUSH0 DUP4 ADD DUP5 PUSH2 0x220 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x255 DUP2 PUSH2 0x217 JUMP JUMPDEST DUP2 EQ PUSH2 0x25F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x270 DUP2 PUSH2 0x24C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28B JUMPI PUSH2 0x28A PUSH2 0x248 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x298 DUP5 DUP3 DUP6 ADD PUSH2 0x262 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B3 DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2CC PUSH0 DUP4 ADD DUP5 PUSH2 0x2AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2FB DUP3 PUSH2 0x2D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x2F1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x324 PUSH0 DUP4 ADD DUP5 PUSH2 0x302 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x361 DUP3 PUSH2 0x217 JUMP JUMPDEST SWAP2 POP PUSH2 0x36C DUP4 PUSH2 0x217 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x37A DUP2 PUSH2 0x217 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x391 JUMPI PUSH2 0x390 PUSH2 0x32A JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A PUSH13 0x818DD7FB40696AD3CF13AE6FF1 0xEA RETURNDATACOPY LOG3 0xD5 0xBC 0xF7 0xCF CODESIZE 0xA5 SWAP15 0xD 0xA6 SWAP8 0xC4 BLOCKHASH 0xDF 0xA7 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "71:843:4:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@baseFee_742": { + "entryPoint": 469, + "id": 742, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@blockHash_808": { + "entryPoint": 476, + "id": 808, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@blockNumber_787": { + "entryPoint": 462, + "id": 787, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@chainId_751": { + "entryPoint": 486, + "id": 751, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@coinbase_760": { + "entryPoint": 493, + "id": 760, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@gasLimit_778": { + "entryPoint": 528, + "id": 778, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@multiply_733": { + "entryPoint": 507, + "id": 733, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@prevrandao_769": { + "entryPoint": 455, + "id": 769, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@timestamp_796": { + "entryPoint": 500, + "id": 796, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 610, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 630, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 770, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 682, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 544, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 785, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 697, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 559, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 855, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 753, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 673, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 722, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 535, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 810, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 584, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 588, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:2997:17", "nodeType": "YulBlock", - "src": "0:2541:17", + "src": "0:2997:17", "statements": [ { "body": { + "nativeSrc": "52:32:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "52:32:17", "statements": [ { + "nativeSrc": "62:16:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "62:16:17", "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "78:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "78:20:17" + "name": "value", + "nativeSrc": "73:5:17", + "nodeType": "YulIdentifier", + "src": "73:5:17" }, "variableNames": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "62:7:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "62:7:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "134:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "107:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "107:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" } ] }, - "name": "abi_decode_t_uint256", + "name": "cleanup_t_uint256", + "nativeSrc": "7:77:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "34:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "34:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "44:7:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "44:7:17", "type": "" } ], - "src": "7:139:17" + "src": "7:77:17" }, { "body": { + "nativeSrc": "155:53:17", "nodeType": "YulBlock", - "src": "218:196:17", + "src": "155:53:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "264:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "273:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "276:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "266:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "266:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "266:12:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ + { + "name": "pos", + "nativeSrc": "172:3:17", + "nodeType": "YulIdentifier", + "src": "172:3:17" + }, { "arguments": [ { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "239:7:17" - }, - { - "name": "headStart", + "name": "value", + "nativeSrc": "195:5:17", "nodeType": "YulIdentifier", - "src": "248:9:17" + "src": "195:5:17" } ], "functionName": { - "name": "sub", + "name": "cleanup_t_uint256", + "nativeSrc": "177:17:17", "nodeType": "YulIdentifier", - "src": "235:3:17" + "src": "177:17:17" }, + "nativeSrc": "177:24:17", "nodeType": "YulFunctionCall", - "src": "235:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "260:2:17", - "type": "", - "value": "32" + "src": "177:24:17" } ], "functionName": { - "name": "slt", + "name": "mstore", + "nativeSrc": "165:6:17", "nodeType": "YulIdentifier", - "src": "231:3:17" + "src": "165:6:17" }, + "nativeSrc": "165:37:17", "nodeType": "YulFunctionCall", - "src": "231:32:17" + "src": "165:37:17" }, - "nodeType": "YulIf", - "src": "228:2:17" - }, - { - "nodeType": "YulBlock", - "src": "290:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "305:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "319:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "309:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "334:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "369:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "380:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "365:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "365:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "389:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "344:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "344:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "334:6:17" - } - ] - } - ] + "nativeSrc": "165:37:17", + "nodeType": "YulExpressionStatement", + "src": "165:37:17" } ] }, - "name": "abi_decode_tuple_t_uint256", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "90:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "143:5:17", "nodeType": "YulTypedName", - "src": "188:9:17", + "src": "143:5:17", "type": "" }, { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "199:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "pos", + "nativeSrc": "150:3:17", "nodeType": "YulTypedName", - "src": "211:6:17", + "src": "150:3:17", "type": "" } ], - "src": "152:262:17" + "src": "90:118:17" }, { "body": { + "nativeSrc": "312:124:17", "nodeType": "YulBlock", - "src": "485:53:17", + "src": "312:124:17", "statements": [ + { + "nativeSrc": "322:26:17", + "nodeType": "YulAssignment", + "src": "322:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "334:9:17", + "nodeType": "YulIdentifier", + "src": "334:9:17" + }, + { + "kind": "number", + "nativeSrc": "345:2:17", + "nodeType": "YulLiteral", + "src": "345:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "330:3:17", + "nodeType": "YulIdentifier", + "src": "330:3:17" + }, + "nativeSrc": "330:18:17", + "nodeType": "YulFunctionCall", + "src": "330:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "322:4:17", + "nodeType": "YulIdentifier", + "src": "322:4:17" + } + ] + }, { "expression": { "arguments": [ { - "name": "pos", + "name": "value0", + "nativeSrc": "402:6:17", "nodeType": "YulIdentifier", - "src": "502:3:17" + "src": "402:6:17" }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "415:9:17", "nodeType": "YulIdentifier", - "src": "525:5:17" + "src": "415:9:17" + }, + { + "kind": "number", + "nativeSrc": "426:1:17", + "nodeType": "YulLiteral", + "src": "426:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "cleanup_t_address", + "name": "add", + "nativeSrc": "411:3:17", "nodeType": "YulIdentifier", - "src": "507:17:17" + "src": "411:3:17" }, + "nativeSrc": "411:17:17", "nodeType": "YulFunctionCall", - "src": "507:24:17" + "src": "411:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "358:43:17", "nodeType": "YulIdentifier", - "src": "495:6:17" + "src": "358:43:17" }, + "nativeSrc": "358:71:17", "nodeType": "YulFunctionCall", - "src": "495:37:17" + "src": "358:71:17" }, + "nativeSrc": "358:71:17", "nodeType": "YulExpressionStatement", - "src": "495:37:17" + "src": "358:71:17" } ] }, - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "214:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "284:9:17", "nodeType": "YulTypedName", - "src": "473:5:17", + "src": "284:9:17", "type": "" }, { - "name": "pos", + "name": "value0", + "nativeSrc": "296:6:17", "nodeType": "YulTypedName", - "src": "480:3:17", + "src": "296:6:17", "type": "" } ], - "src": "420:118:17" - }, - { - "body": { + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "307:4:17", + "nodeType": "YulTypedName", + "src": "307:4:17", + "type": "" + } + ], + "src": "214:222:17" + }, + { + "body": { + "nativeSrc": "482:35:17", "nodeType": "YulBlock", - "src": "609:53:17", + "src": "482:35:17", "statements": [ { - "expression": { + "nativeSrc": "492:19:17", + "nodeType": "YulAssignment", + "src": "492:19:17", + "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "626:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "649:5:17" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "631:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "631:24:17" + "kind": "number", + "nativeSrc": "508:2:17", + "nodeType": "YulLiteral", + "src": "508:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "mload", + "nativeSrc": "502:5:17", "nodeType": "YulIdentifier", - "src": "619:6:17" + "src": "502:5:17" }, + "nativeSrc": "502:9:17", "nodeType": "YulFunctionCall", - "src": "619:37:17" + "src": "502:9:17" }, - "nodeType": "YulExpressionStatement", - "src": "619:37:17" + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "492:6:17", + "nodeType": "YulIdentifier", + "src": "492:6:17" + } + ] } ] }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "name": "allocate_unbounded", + "nativeSrc": "442:75:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "597:5:17", - "type": "" - }, + "returnVariables": [ { - "name": "pos", + "name": "memPtr", + "nativeSrc": "475:6:17", "nodeType": "YulTypedName", - "src": "604:3:17", + "src": "475:6:17", "type": "" } ], - "src": "544:118:17" + "src": "442:75:17" }, { "body": { + "nativeSrc": "612:28:17", "nodeType": "YulBlock", - "src": "733:53:17", + "src": "612:28:17", "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "750:3:17" + "kind": "number", + "nativeSrc": "629:1:17", + "nodeType": "YulLiteral", + "src": "629:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "632:1:17", + "nodeType": "YulLiteral", + "src": "632:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "622:6:17", + "nodeType": "YulIdentifier", + "src": "622:6:17" + }, + "nativeSrc": "622:12:17", + "nodeType": "YulFunctionCall", + "src": "622:12:17" + }, + "nativeSrc": "622:12:17", + "nodeType": "YulExpressionStatement", + "src": "622:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "523:117:17", + "nodeType": "YulFunctionDefinition", + "src": "523:117:17" + }, + { + "body": { + "nativeSrc": "735:28:17", + "nodeType": "YulBlock", + "src": "735:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "752:1:17", + "nodeType": "YulLiteral", + "src": "752:1:17", + "type": "", + "value": "0" }, + { + "kind": "number", + "nativeSrc": "755:1:17", + "nodeType": "YulLiteral", + "src": "755:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "745:6:17", + "nodeType": "YulIdentifier", + "src": "745:6:17" + }, + "nativeSrc": "745:12:17", + "nodeType": "YulFunctionCall", + "src": "745:12:17" + }, + "nativeSrc": "745:12:17", + "nodeType": "YulExpressionStatement", + "src": "745:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "646:117:17", + "nodeType": "YulFunctionDefinition", + "src": "646:117:17" + }, + { + "body": { + "nativeSrc": "812:79:17", + "nodeType": "YulBlock", + "src": "812:79:17", + "statements": [ + { + "body": { + "nativeSrc": "869:16:17", + "nodeType": "YulBlock", + "src": "869:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "878:1:17", + "nodeType": "YulLiteral", + "src": "878:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "881:1:17", + "nodeType": "YulLiteral", + "src": "881:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "871:6:17", + "nodeType": "YulIdentifier", + "src": "871:6:17" + }, + "nativeSrc": "871:12:17", + "nodeType": "YulFunctionCall", + "src": "871:12:17" + }, + "nativeSrc": "871:12:17", + "nodeType": "YulExpressionStatement", + "src": "871:12:17" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { "name": "value", + "nativeSrc": "835:5:17", "nodeType": "YulIdentifier", - "src": "773:5:17" + "src": "835:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "860:5:17", + "nodeType": "YulIdentifier", + "src": "860:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "842:17:17", + "nodeType": "YulIdentifier", + "src": "842:17:17" + }, + "nativeSrc": "842:24:17", + "nodeType": "YulFunctionCall", + "src": "842:24:17" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "eq", + "nativeSrc": "832:2:17", "nodeType": "YulIdentifier", - "src": "755:17:17" + "src": "832:2:17" }, + "nativeSrc": "832:35:17", "nodeType": "YulFunctionCall", - "src": "755:24:17" + "src": "832:35:17" } ], "functionName": { - "name": "mstore", + "name": "iszero", + "nativeSrc": "825:6:17", "nodeType": "YulIdentifier", - "src": "743:6:17" + "src": "825:6:17" }, + "nativeSrc": "825:43:17", "nodeType": "YulFunctionCall", - "src": "743:37:17" + "src": "825:43:17" }, - "nodeType": "YulExpressionStatement", - "src": "743:37:17" + "nativeSrc": "822:63:17", + "nodeType": "YulIf", + "src": "822:63:17" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "validator_revert_t_uint256", + "nativeSrc": "769:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "805:5:17", "nodeType": "YulTypedName", - "src": "721:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "728:3:17", + "src": "805:5:17", "type": "" } ], - "src": "668:118:17" + "src": "769:122:17" }, { "body": { + "nativeSrc": "949:87:17", "nodeType": "YulBlock", - "src": "890:124:17", + "src": "949:87:17", "statements": [ { + "nativeSrc": "959:29:17", "nodeType": "YulAssignment", - "src": "900:26:17", + "src": "959:29:17", "value": { "arguments": [ { - "name": "headStart", + "name": "offset", + "nativeSrc": "981:6:17", "nodeType": "YulIdentifier", - "src": "912:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "923:2:17", - "type": "", - "value": "32" + "src": "981:6:17" } ], "functionName": { - "name": "add", + "name": "calldataload", + "nativeSrc": "968:12:17", "nodeType": "YulIdentifier", - "src": "908:3:17" + "src": "968:12:17" }, + "nativeSrc": "968:20:17", "nodeType": "YulFunctionCall", - "src": "908:18:17" + "src": "968:20:17" }, "variableNames": [ { - "name": "tail", + "name": "value", + "nativeSrc": "959:5:17", "nodeType": "YulIdentifier", - "src": "900:4:17" + "src": "959:5:17" } ] }, @@ -609,219 +873,422 @@ "expression": { "arguments": [ { - "name": "value0", + "name": "value", + "nativeSrc": "1024:5:17", "nodeType": "YulIdentifier", - "src": "980:6:17" - }, + "src": "1024:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "997:26:17", + "nodeType": "YulIdentifier", + "src": "997:26:17" + }, + "nativeSrc": "997:33:17", + "nodeType": "YulFunctionCall", + "src": "997:33:17" + }, + "nativeSrc": "997:33:17", + "nodeType": "YulExpressionStatement", + "src": "997:33:17" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "897:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "927:6:17", + "nodeType": "YulTypedName", + "src": "927:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "935:3:17", + "nodeType": "YulTypedName", + "src": "935:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "943:5:17", + "nodeType": "YulTypedName", + "src": "943:5:17", + "type": "" + } + ], + "src": "897:139:17" + }, + { + "body": { + "nativeSrc": "1108:263:17", + "nodeType": "YulBlock", + "src": "1108:263:17", + "statements": [ + { + "body": { + "nativeSrc": "1154:83:17", + "nodeType": "YulBlock", + "src": "1154:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1156:77:17", + "nodeType": "YulIdentifier", + "src": "1156:77:17" + }, + "nativeSrc": "1156:79:17", + "nodeType": "YulFunctionCall", + "src": "1156:79:17" + }, + "nativeSrc": "1156:79:17", + "nodeType": "YulExpressionStatement", + "src": "1156:79:17" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "1129:7:17", "nodeType": "YulIdentifier", - "src": "993:9:17" + "src": "1129:7:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1004:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "1138:9:17", + "nodeType": "YulIdentifier", + "src": "1138:9:17" } ], "functionName": { - "name": "add", + "name": "sub", + "nativeSrc": "1125:3:17", "nodeType": "YulIdentifier", - "src": "989:3:17" + "src": "1125:3:17" }, + "nativeSrc": "1125:23:17", "nodeType": "YulFunctionCall", - "src": "989:17:17" + "src": "1125:23:17" + }, + { + "kind": "number", + "nativeSrc": "1150:2:17", + "nodeType": "YulLiteral", + "src": "1150:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "slt", + "nativeSrc": "1121:3:17", "nodeType": "YulIdentifier", - "src": "936:43:17" + "src": "1121:3:17" }, + "nativeSrc": "1121:32:17", "nodeType": "YulFunctionCall", - "src": "936:71:17" + "src": "1121:32:17" }, - "nodeType": "YulExpressionStatement", - "src": "936:71:17" + "nativeSrc": "1118:119:17", + "nodeType": "YulIf", + "src": "1118:119:17" + }, + { + "nativeSrc": "1247:117:17", + "nodeType": "YulBlock", + "src": "1247:117:17", + "statements": [ + { + "nativeSrc": "1262:15:17", + "nodeType": "YulVariableDeclaration", + "src": "1262:15:17", + "value": { + "kind": "number", + "nativeSrc": "1276:1:17", + "nodeType": "YulLiteral", + "src": "1276:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1266:6:17", + "nodeType": "YulTypedName", + "src": "1266:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "1291:63:17", + "nodeType": "YulAssignment", + "src": "1291:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1326:9:17", + "nodeType": "YulIdentifier", + "src": "1326:9:17" + }, + { + "name": "offset", + "nativeSrc": "1337:6:17", + "nodeType": "YulIdentifier", + "src": "1337:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1322:3:17", + "nodeType": "YulIdentifier", + "src": "1322:3:17" + }, + "nativeSrc": "1322:22:17", + "nodeType": "YulFunctionCall", + "src": "1322:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "1346:7:17", + "nodeType": "YulIdentifier", + "src": "1346:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "1301:20:17", + "nodeType": "YulIdentifier", + "src": "1301:20:17" + }, + "nativeSrc": "1301:53:17", + "nodeType": "YulFunctionCall", + "src": "1301:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1291:6:17", + "nodeType": "YulIdentifier", + "src": "1291:6:17" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "1042:329:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1078:9:17", + "nodeType": "YulTypedName", + "src": "1078:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1089:7:17", + "nodeType": "YulTypedName", + "src": "1089:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1101:6:17", + "nodeType": "YulTypedName", + "src": "1101:6:17", + "type": "" + } + ], + "src": "1042:329:17" + }, + { + "body": { + "nativeSrc": "1422:32:17", + "nodeType": "YulBlock", + "src": "1422:32:17", + "statements": [ + { + "nativeSrc": "1432:16:17", + "nodeType": "YulAssignment", + "src": "1432:16:17", + "value": { + "name": "value", + "nativeSrc": "1443:5:17", + "nodeType": "YulIdentifier", + "src": "1443:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1432:7:17", + "nodeType": "YulIdentifier", + "src": "1432:7:17" + } + ] } ] }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "name": "cleanup_t_bytes32", + "nativeSrc": "1377:77:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "862:9:17", - "type": "" - }, - { - "name": "value0", + "name": "value", + "nativeSrc": "1404:5:17", "nodeType": "YulTypedName", - "src": "874:6:17", + "src": "1404:5:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "cleaned", + "nativeSrc": "1414:7:17", "nodeType": "YulTypedName", - "src": "885:4:17", + "src": "1414:7:17", "type": "" } ], - "src": "792:222:17" + "src": "1377:77:17" }, { "body": { + "nativeSrc": "1525:53:17", "nodeType": "YulBlock", - "src": "1118:124:17", + "src": "1525:53:17", "statements": [ - { - "nodeType": "YulAssignment", - "src": "1128:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1140:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1151:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1136:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1136:18:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1128:4:17" - } - ] - }, { "expression": { "arguments": [ { - "name": "value0", + "name": "pos", + "nativeSrc": "1542:3:17", "nodeType": "YulIdentifier", - "src": "1208:6:17" + "src": "1542:3:17" }, { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "1565:5:17", "nodeType": "YulIdentifier", - "src": "1221:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1232:1:17", - "type": "", - "value": "0" + "src": "1565:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_bytes32", + "nativeSrc": "1547:17:17", "nodeType": "YulIdentifier", - "src": "1217:3:17" + "src": "1547:17:17" }, + "nativeSrc": "1547:24:17", "nodeType": "YulFunctionCall", - "src": "1217:17:17" + "src": "1547:24:17" } ], "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "name": "mstore", + "nativeSrc": "1535:6:17", "nodeType": "YulIdentifier", - "src": "1164:43:17" + "src": "1535:6:17" }, + "nativeSrc": "1535:37:17", "nodeType": "YulFunctionCall", - "src": "1164:71:17" + "src": "1535:37:17" }, + "nativeSrc": "1535:37:17", "nodeType": "YulExpressionStatement", - "src": "1164:71:17" + "src": "1535:37:17" } ] }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "1460:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "1513:5:17", "nodeType": "YulTypedName", - "src": "1090:9:17", + "src": "1513:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1102:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "1520:3:17", "nodeType": "YulTypedName", - "src": "1113:4:17", + "src": "1520:3:17", "type": "" } ], - "src": "1020:222:17" + "src": "1460:118:17" }, { "body": { + "nativeSrc": "1682:124:17", "nodeType": "YulBlock", - "src": "1346:124:17", + "src": "1682:124:17", "statements": [ { + "nativeSrc": "1692:26:17", "nodeType": "YulAssignment", - "src": "1356:26:17", + "src": "1692:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "1704:9:17", "nodeType": "YulIdentifier", - "src": "1368:9:17" + "src": "1704:9:17" }, { "kind": "number", + "nativeSrc": "1715:2:17", "nodeType": "YulLiteral", - "src": "1379:2:17", + "src": "1715:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "1700:3:17", "nodeType": "YulIdentifier", - "src": "1364:3:17" + "src": "1700:3:17" }, + "nativeSrc": "1700:18:17", "nodeType": "YulFunctionCall", - "src": "1364:18:17" + "src": "1700:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "1692:4:17", "nodeType": "YulIdentifier", - "src": "1356:4:17" + "src": "1692:4:17" } ] }, @@ -830,629 +1297,697 @@ "arguments": [ { "name": "value0", + "nativeSrc": "1772:6:17", "nodeType": "YulIdentifier", - "src": "1436:6:17" + "src": "1772:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "1785:9:17", "nodeType": "YulIdentifier", - "src": "1449:9:17" + "src": "1785:9:17" }, { "kind": "number", + "nativeSrc": "1796:1:17", "nodeType": "YulLiteral", - "src": "1460:1:17", + "src": "1796:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "1781:3:17", "nodeType": "YulIdentifier", - "src": "1445:3:17" + "src": "1781:3:17" }, + "nativeSrc": "1781:17:17", "nodeType": "YulFunctionCall", - "src": "1445:17:17" + "src": "1781:17:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "1728:43:17", "nodeType": "YulIdentifier", - "src": "1392:43:17" + "src": "1728:43:17" }, + "nativeSrc": "1728:71:17", "nodeType": "YulFunctionCall", - "src": "1392:71:17" + "src": "1728:71:17" }, + "nativeSrc": "1728:71:17", "nodeType": "YulExpressionStatement", - "src": "1392:71:17" + "src": "1728:71:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "1584:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1654:9:17", "nodeType": "YulTypedName", - "src": "1318:9:17", + "src": "1654:9:17", "type": "" }, { "name": "value0", + "nativeSrc": "1666:6:17", "nodeType": "YulTypedName", - "src": "1330:6:17", + "src": "1666:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "1677:4:17", "nodeType": "YulTypedName", - "src": "1341:4:17", + "src": "1677:4:17", "type": "" } ], - "src": "1248:222:17" + "src": "1584:222:17" }, { "body": { + "nativeSrc": "1857:81:17", "nodeType": "YulBlock", - "src": "1524:300:17", + "src": "1857:81:17", "statements": [ { + "nativeSrc": "1867:65:17", "nodeType": "YulAssignment", - "src": "1534:25:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1557:1:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1539:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "1539:20:17" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1534:1:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1568:25:17", + "src": "1867:65:17", "value": { "arguments": [ { - "name": "y", + "name": "value", + "nativeSrc": "1882:5:17", "nodeType": "YulIdentifier", - "src": "1591:1:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1573:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "1573:20:17" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "1568:1:17" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1766:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "1768:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "1768:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1768:18:17" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1678:1:17" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1671:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1671:9:17" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1664:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1664:17:17" + "src": "1882:5:17" }, { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "1686:1:17" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1693:66:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1761:1:17" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "1689:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1689:74:17" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1683:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "1683:81:17" + "kind": "number", + "nativeSrc": "1889:42:17", + "nodeType": "YulLiteral", + "src": "1889:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", + "nativeSrc": "1878:3:17", "nodeType": "YulIdentifier", - "src": "1660:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1660:105:17" - }, - "nodeType": "YulIf", - "src": "1657:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "1798:20:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1813:1:17" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "1816:1:17" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "1809:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1809:9:17" - }, - "variableNames": [ - { - "name": "product", - "nodeType": "YulIdentifier", - "src": "1798:7:17" - } - ] - } - ] - }, - "name": "checked_mul_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "1507:1:17", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "1510:1:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "product", - "nodeType": "YulTypedName", - "src": "1516:7:17", - "type": "" - } - ], - "src": "1476:348:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1875:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1885:35:17", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1914:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "1896:17:17" + "src": "1878:3:17" }, + "nativeSrc": "1878:54:17", "nodeType": "YulFunctionCall", - "src": "1896:24:17" + "src": "1878:54:17" }, "variableNames": [ { "name": "cleaned", + "nativeSrc": "1867:7:17", "nodeType": "YulIdentifier", - "src": "1885:7:17" + "src": "1867:7:17" } ] } ] }, - "name": "cleanup_t_address", + "name": "cleanup_t_uint160", + "nativeSrc": "1812:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1839:5:17", "nodeType": "YulTypedName", - "src": "1857:5:17", + "src": "1839:5:17", "type": "" } ], "returnVariables": [ { "name": "cleaned", + "nativeSrc": "1849:7:17", "nodeType": "YulTypedName", - "src": "1867:7:17", + "src": "1849:7:17", "type": "" } ], - "src": "1830:96:17" + "src": "1812:126:17" }, { "body": { + "nativeSrc": "1989:51:17", "nodeType": "YulBlock", - "src": "1977:32:17", + "src": "1989:51:17", "statements": [ { + "nativeSrc": "1999:35:17", "nodeType": "YulAssignment", - "src": "1987:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1998:5:17" + "src": "1999:35:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2028:5:17", + "nodeType": "YulIdentifier", + "src": "2028:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "2010:17:17", + "nodeType": "YulIdentifier", + "src": "2010:17:17" + }, + "nativeSrc": "2010:24:17", + "nodeType": "YulFunctionCall", + "src": "2010:24:17" }, "variableNames": [ { "name": "cleaned", + "nativeSrc": "1999:7:17", "nodeType": "YulIdentifier", - "src": "1987:7:17" + "src": "1999:7:17" } ] } ] }, - "name": "cleanup_t_bytes32", + "name": "cleanup_t_address", + "nativeSrc": "1944:96:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1971:5:17", "nodeType": "YulTypedName", - "src": "1959:5:17", + "src": "1971:5:17", "type": "" } ], "returnVariables": [ { "name": "cleaned", + "nativeSrc": "1981:7:17", "nodeType": "YulTypedName", - "src": "1969:7:17", + "src": "1981:7:17", "type": "" } ], - "src": "1932:77:17" + "src": "1944:96:17" }, { "body": { + "nativeSrc": "2111:53:17", "nodeType": "YulBlock", - "src": "2060:81:17", + "src": "2111:53:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "2070:65:17", - "value": { + "expression": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "2128:3:17", "nodeType": "YulIdentifier", - "src": "2085:5:17" + "src": "2128:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2092:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "arguments": [ + { + "name": "value", + "nativeSrc": "2151:5:17", + "nodeType": "YulIdentifier", + "src": "2151:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "2133:17:17", + "nodeType": "YulIdentifier", + "src": "2133:17:17" + }, + "nativeSrc": "2133:24:17", + "nodeType": "YulFunctionCall", + "src": "2133:24:17" } ], "functionName": { - "name": "and", + "name": "mstore", + "nativeSrc": "2121:6:17", "nodeType": "YulIdentifier", - "src": "2081:3:17" + "src": "2121:6:17" }, + "nativeSrc": "2121:37:17", "nodeType": "YulFunctionCall", - "src": "2081:54:17" + "src": "2121:37:17" }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2070:7:17" - } - ] + "nativeSrc": "2121:37:17", + "nodeType": "YulExpressionStatement", + "src": "2121:37:17" } ] }, - "name": "cleanup_t_uint160", + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "2046:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "2099:5:17", "nodeType": "YulTypedName", - "src": "2042:5:17", + "src": "2099:5:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "cleaned", + "name": "pos", + "nativeSrc": "2106:3:17", "nodeType": "YulTypedName", - "src": "2052:7:17", + "src": "2106:3:17", "type": "" } ], - "src": "2015:126:17" + "src": "2046:118:17" }, { "body": { + "nativeSrc": "2268:124:17", "nodeType": "YulBlock", - "src": "2192:32:17", + "src": "2268:124:17", "statements": [ { + "nativeSrc": "2278:26:17", "nodeType": "YulAssignment", - "src": "2202:16:17", + "src": "2278:26:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2213:5:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2290:9:17", + "nodeType": "YulIdentifier", + "src": "2290:9:17" + }, + { + "kind": "number", + "nativeSrc": "2301:2:17", + "nodeType": "YulLiteral", + "src": "2301:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2286:3:17", + "nodeType": "YulIdentifier", + "src": "2286:3:17" + }, + "nativeSrc": "2286:18:17", + "nodeType": "YulFunctionCall", + "src": "2286:18:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "2278:4:17", "nodeType": "YulIdentifier", - "src": "2202:7:17" + "src": "2278:4:17" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2358:6:17", + "nodeType": "YulIdentifier", + "src": "2358:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2371:9:17", + "nodeType": "YulIdentifier", + "src": "2371:9:17" + }, + { + "kind": "number", + "nativeSrc": "2382:1:17", + "nodeType": "YulLiteral", + "src": "2382:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2367:3:17", + "nodeType": "YulIdentifier", + "src": "2367:3:17" + }, + "nativeSrc": "2367:17:17", + "nodeType": "YulFunctionCall", + "src": "2367:17:17" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "2314:43:17", + "nodeType": "YulIdentifier", + "src": "2314:43:17" + }, + "nativeSrc": "2314:71:17", + "nodeType": "YulFunctionCall", + "src": "2314:71:17" + }, + "nativeSrc": "2314:71:17", + "nodeType": "YulExpressionStatement", + "src": "2314:71:17" } ] }, - "name": "cleanup_t_uint256", + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "2170:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "2240:9:17", + "nodeType": "YulTypedName", + "src": "2240:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2252:6:17", "nodeType": "YulTypedName", - "src": "2174:5:17", + "src": "2252:6:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "2263:4:17", "nodeType": "YulTypedName", - "src": "2184:7:17", + "src": "2263:4:17", "type": "" } ], - "src": "2147:77:17" + "src": "2170:222:17" }, { "body": { + "nativeSrc": "2426:152:17", "nodeType": "YulBlock", - "src": "2258:152:17", + "src": "2426:152:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "2443:1:17", "nodeType": "YulLiteral", - "src": "2275:1:17", + "src": "2443:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "2446:77:17", "nodeType": "YulLiteral", - "src": "2278:77:17", + "src": "2446:77:17", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", + "nativeSrc": "2436:6:17", "nodeType": "YulIdentifier", - "src": "2268:6:17" + "src": "2436:6:17" }, + "nativeSrc": "2436:88:17", "nodeType": "YulFunctionCall", - "src": "2268:88:17" + "src": "2436:88:17" }, + "nativeSrc": "2436:88:17", "nodeType": "YulExpressionStatement", - "src": "2268:88:17" + "src": "2436:88:17" }, { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "2540:1:17", "nodeType": "YulLiteral", - "src": "2372:1:17", + "src": "2540:1:17", "type": "", "value": "4" }, { "kind": "number", + "nativeSrc": "2543:4:17", "nodeType": "YulLiteral", - "src": "2375:4:17", + "src": "2543:4:17", "type": "", "value": "0x11" } ], "functionName": { "name": "mstore", + "nativeSrc": "2533:6:17", "nodeType": "YulIdentifier", - "src": "2365:6:17" + "src": "2533:6:17" }, + "nativeSrc": "2533:15:17", "nodeType": "YulFunctionCall", - "src": "2365:15:17" + "src": "2533:15:17" }, + "nativeSrc": "2533:15:17", "nodeType": "YulExpressionStatement", - "src": "2365:15:17" + "src": "2533:15:17" }, { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "2564:1:17", "nodeType": "YulLiteral", - "src": "2396:1:17", + "src": "2564:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "2567:4:17", "nodeType": "YulLiteral", - "src": "2399:4:17", + "src": "2567:4:17", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", + "nativeSrc": "2557:6:17", "nodeType": "YulIdentifier", - "src": "2389:6:17" + "src": "2557:6:17" }, + "nativeSrc": "2557:15:17", "nodeType": "YulFunctionCall", - "src": "2389:15:17" + "src": "2557:15:17" }, + "nativeSrc": "2557:15:17", "nodeType": "YulExpressionStatement", - "src": "2389:15:17" + "src": "2557:15:17" } ] }, "name": "panic_error_0x11", + "nativeSrc": "2398:180:17", "nodeType": "YulFunctionDefinition", - "src": "2230:180:17" + "src": "2398:180:17" }, { "body": { + "nativeSrc": "2632:362:17", "nodeType": "YulBlock", - "src": "2459:79:17", + "src": "2632:362:17", "statements": [ + { + "nativeSrc": "2642:25:17", + "nodeType": "YulAssignment", + "src": "2642:25:17", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "2665:1:17", + "nodeType": "YulIdentifier", + "src": "2665:1:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2647:17:17", + "nodeType": "YulIdentifier", + "src": "2647:17:17" + }, + "nativeSrc": "2647:20:17", + "nodeType": "YulFunctionCall", + "src": "2647:20:17" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "2642:1:17", + "nodeType": "YulIdentifier", + "src": "2642:1:17" + } + ] + }, + { + "nativeSrc": "2676:25:17", + "nodeType": "YulAssignment", + "src": "2676:25:17", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "2699:1:17", + "nodeType": "YulIdentifier", + "src": "2699:1:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2681:17:17", + "nodeType": "YulIdentifier", + "src": "2681:17:17" + }, + "nativeSrc": "2681:20:17", + "nodeType": "YulFunctionCall", + "src": "2681:20:17" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "2676:1:17", + "nodeType": "YulIdentifier", + "src": "2676:1:17" + } + ] + }, + { + "nativeSrc": "2710:28:17", + "nodeType": "YulVariableDeclaration", + "src": "2710:28:17", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "2733:1:17", + "nodeType": "YulIdentifier", + "src": "2733:1:17" + }, + { + "name": "y", + "nativeSrc": "2736:1:17", + "nodeType": "YulIdentifier", + "src": "2736:1:17" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "2729:3:17", + "nodeType": "YulIdentifier", + "src": "2729:3:17" + }, + "nativeSrc": "2729:9:17", + "nodeType": "YulFunctionCall", + "src": "2729:9:17" + }, + "variables": [ + { + "name": "product_raw", + "nativeSrc": "2714:11:17", + "nodeType": "YulTypedName", + "src": "2714:11:17", + "type": "" + } + ] + }, + { + "nativeSrc": "2747:41:17", + "nodeType": "YulAssignment", + "src": "2747:41:17", + "value": { + "arguments": [ + { + "name": "product_raw", + "nativeSrc": "2776:11:17", + "nodeType": "YulIdentifier", + "src": "2776:11:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2758:17:17", + "nodeType": "YulIdentifier", + "src": "2758:17:17" + }, + "nativeSrc": "2758:30:17", + "nodeType": "YulFunctionCall", + "src": "2758:30:17" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "2747:7:17", + "nodeType": "YulIdentifier", + "src": "2747:7:17" + } + ] + }, { "body": { + "nativeSrc": "2965:22:17", "nodeType": "YulBlock", - "src": "2516:16:17", + "src": "2965:22:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2525:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2528:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x11", + "nativeSrc": "2967:16:17", "nodeType": "YulIdentifier", - "src": "2518:6:17" + "src": "2967:16:17" }, + "nativeSrc": "2967:18:17", "nodeType": "YulFunctionCall", - "src": "2518:12:17" + "src": "2967:18:17" }, + "nativeSrc": "2967:18:17", "nodeType": "YulExpressionStatement", - "src": "2518:12:17" + "src": "2967:18:17" } ] }, @@ -1461,64 +1996,129 @@ { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2482:5:17" + "arguments": [ + { + "name": "x", + "nativeSrc": "2898:1:17", + "nodeType": "YulIdentifier", + "src": "2898:1:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2891:6:17", + "nodeType": "YulIdentifier", + "src": "2891:6:17" + }, + "nativeSrc": "2891:9:17", + "nodeType": "YulFunctionCall", + "src": "2891:9:17" }, { "arguments": [ { - "name": "value", + "name": "y", + "nativeSrc": "2921:1:17", "nodeType": "YulIdentifier", - "src": "2507:5:17" + "src": "2921:1:17" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "2928:7:17", + "nodeType": "YulIdentifier", + "src": "2928:7:17" + }, + { + "name": "x", + "nativeSrc": "2937:1:17", + "nodeType": "YulIdentifier", + "src": "2937:1:17" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "2924:3:17", + "nodeType": "YulIdentifier", + "src": "2924:3:17" + }, + "nativeSrc": "2924:15:17", + "nodeType": "YulFunctionCall", + "src": "2924:15:17" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "eq", + "nativeSrc": "2918:2:17", "nodeType": "YulIdentifier", - "src": "2489:17:17" + "src": "2918:2:17" }, + "nativeSrc": "2918:22:17", "nodeType": "YulFunctionCall", - "src": "2489:24:17" + "src": "2918:22:17" } ], "functionName": { - "name": "eq", + "name": "or", + "nativeSrc": "2871:2:17", "nodeType": "YulIdentifier", - "src": "2479:2:17" + "src": "2871:2:17" }, + "nativeSrc": "2871:83:17", "nodeType": "YulFunctionCall", - "src": "2479:35:17" + "src": "2871:83:17" } ], "functionName": { "name": "iszero", + "nativeSrc": "2851:6:17", "nodeType": "YulIdentifier", - "src": "2472:6:17" + "src": "2851:6:17" }, + "nativeSrc": "2851:113:17", "nodeType": "YulFunctionCall", - "src": "2472:43:17" + "src": "2851:113:17" }, + "nativeSrc": "2848:139:17", "nodeType": "YulIf", - "src": "2469:2:17" + "src": "2848:139:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "checked_mul_t_uint256", + "nativeSrc": "2584:410:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "x", + "nativeSrc": "2615:1:17", + "nodeType": "YulTypedName", + "src": "2615:1:17", + "type": "" + }, + { + "name": "y", + "nativeSrc": "2618:1:17", + "nodeType": "YulTypedName", + "src": "2618:1:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "2624:7:17", "nodeType": "YulTypedName", - "src": "2452:5:17", + "src": "2624:7:17", "type": "" } ], - "src": "2416:122:17" + "src": "2584:410:17" } ] }, - "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -1526,10 +2126,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b80777ea1161005b578063b80777ea146100ee578063c6888fa11461010c578063e12ed13c1461013c578063f68016b71461015a5761007d565b806385df51fd146100825780639a8a0592146100b2578063a6ae0aac146100d0575b600080fd5b61009c600480360381019061009791906101d6565b610178565b6040516100a99190610247565b60405180910390f35b6100ba610183565b6040516100c79190610262565b60405180910390f35b6100d861018b565b6040516100e5919061022c565b60405180910390f35b6100f6610193565b6040516101039190610262565b60405180910390f35b610126600480360381019061012191906101d6565b61019b565b6040516101339190610262565b60405180910390f35b6101446101b1565b6040516101519190610262565b60405180910390f35b6101626101b9565b60405161016f9190610262565b60405180910390f35b600081409050919050565b600046905090565b600041905090565b600042905090565b60006007826101aa919061027d565b9050919050565b600043905090565b600045905090565b6000813590506101d08161034c565b92915050565b6000602082840312156101e857600080fd5b60006101f6848285016101c1565b91505092915050565b610208816102d7565b82525050565b610217816102e9565b82525050565b61022681610313565b82525050565b600060208201905061024160008301846101ff565b92915050565b600060208201905061025c600083018461020e565b92915050565b6000602082019050610277600083018461021d565b92915050565b600061028882610313565b915061029383610313565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156102cc576102cb61031d565b5b828202905092915050565b60006102e2826102f3565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61035581610313565b811461036057600080fd5b5056fea2646970667358221220af274a55fbb5b38fdd4fc8654076d1f9191ff4ca51dab567b0d7d08e46b51c1064736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB80777EA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xB80777EA EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xC6888FA1 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0xE12ED13C EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0xF68016B7 EQ PUSH2 0x15A JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x85DF51FD EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xA6AE0AAC EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x178 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x247 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH2 0x183 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD8 PUSH2 0x18B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF6 PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x126 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x121 SWAP2 SWAP1 PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x19B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x133 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x144 PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x151 SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x162 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16F SWAP2 SWAP1 PUSH2 0x262 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 BLOCKHASH SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CHAINID SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 COINBASE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 DUP3 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0x27D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 NUMBER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 GASLIMIT SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D0 DUP2 PUSH2 0x34C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F6 DUP5 DUP3 DUP6 ADD PUSH2 0x1C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x208 DUP2 PUSH2 0x2D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x217 DUP2 PUSH2 0x2E9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x226 DUP2 PUSH2 0x313 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x241 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x277 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x288 DUP3 PUSH2 0x313 JUMP JUMPDEST SWAP2 POP PUSH2 0x293 DUP4 PUSH2 0x313 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2CC JUMPI PUSH2 0x2CB PUSH2 0x31D JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E2 DUP3 PUSH2 0x2F3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x355 DUP2 PUSH2 0x313 JUMP JUMPDEST DUP2 EQ PUSH2 0x360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x27 0x4A SSTORE 0xFB 0xB5 0xB3 DUP16 0xDD 0x4F 0xC8 PUSH6 0x4076D1F9191F DELEGATECALL 0xCA MLOAD 0xDA 0xB5 PUSH8 0xB0D7D08E46B51C10 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "70:663:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;359:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;466:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;553:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;645:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;91:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;268:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;179:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;359:102;411:7;447:6;437:17;430:24;;359:102;;;:::o;466:82::-;505:4;528:13;521:20;;466:82;:::o;553:87::-;593:7;619:14;612:21;;553:87;:::o;645:86::-;686:4;709:15;702:22;;645:86;:::o;91:83::-;137:6;166:1;162;:5;;;;:::i;:::-;155:12;;91:83;;;:::o;268:86::-;312:4;335:12;328:19;;268:86;:::o;179:84::-;219:4;242:14;235:21;;179:84;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:118::-;631:24;649:5;631:24;:::i;:::-;626:3;619:37;609:53;;:::o;668:118::-;755:24;773:5;755:24;:::i;:::-;750:3;743:37;733:53;;:::o;792:222::-;;923:2;912:9;908:18;900:26;;936:71;1004:1;993:9;989:17;980:6;936:71;:::i;:::-;890:124;;;;:::o;1020:222::-;;1151:2;1140:9;1136:18;1128:26;;1164:71;1232:1;1221:9;1217:17;1208:6;1164:71;:::i;:::-;1118:124;;;;:::o;1248:222::-;;1379:2;1368:9;1364:18;1356:26;;1392:71;1460:1;1449:9;1445:17;1436:6;1392:71;:::i;:::-;1346:124;;;;:::o;1476:348::-;;1539:20;1557:1;1539:20;:::i;:::-;1534:25;;1573:20;1591:1;1573:20;:::i;:::-;1568:25;;1761:1;1693:66;1689:74;1686:1;1683:81;1678:1;1671:9;1664:17;1660:105;1657:2;;;1768:18;;:::i;:::-;1657:2;1816:1;1813;1809:9;1798:20;;1524:300;;;;:::o;1830:96::-;;1896:24;1914:5;1896:24;:::i;:::-;1885:35;;1875:51;;;:::o;1932:77::-;;1998:5;1987:16;;1977:32;;;:::o;2015:126::-;;2092:42;2085:5;2081:54;2070:65;;2060:81;;;:::o;2147:77::-;;2213:5;2202:16;;2192:32;;;:::o;2230:180::-;2278:77;2275:1;2268:88;2375:4;2372:1;2365:15;2399:4;2396:1;2389:15;2416:122;2489:24;2507:5;2489:24;:::i;:::-;2482:5;2479:35;2469:2;;2528:1;2525;2518:12;2469:2;2459:79;:::o" + "object": "608060405234801561000f575f80fd5b5060043610610091575f3560e01c80639a8a0592116100645780639a8a05921461011f578063a6ae0aac1461013d578063b80777ea1461015b578063c6888fa114610179578063f68016b7146101a957610091565b80634449436c1461009557806357e871e7146100b35780636ef25c3a146100d157806385df51fd146100ef575b5f80fd5b61009d6101c7565b6040516100aa919061022f565b60405180910390f35b6100bb6101ce565b6040516100c8919061022f565b60405180910390f35b6100d96101d5565b6040516100e6919061022f565b60405180910390f35b61010960048036038101906101049190610276565b6101dc565b60405161011691906102b9565b60405180910390f35b6101276101e6565b604051610134919061022f565b60405180910390f35b6101456101ed565b6040516101529190610311565b60405180910390f35b6101636101f4565b604051610170919061022f565b60405180910390f35b610193600480360381019061018e9190610276565b6101fb565b6040516101a0919061022f565b60405180910390f35b6101b1610210565b6040516101be919061022f565b60405180910390f35b5f44905090565b5f43905090565b5f48905090565b5f81409050919050565b5f46905090565b5f41905090565b5f42905090565b5f6007826102099190610357565b9050919050565b5f45905090565b5f819050919050565b61022981610217565b82525050565b5f6020820190506102425f830184610220565b92915050565b5f80fd5b61025581610217565b811461025f575f80fd5b50565b5f813590506102708161024c565b92915050565b5f6020828403121561028b5761028a610248565b5b5f61029884828501610262565b91505092915050565b5f819050919050565b6102b3816102a1565b82525050565b5f6020820190506102cc5f8301846102aa565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102fb826102d2565b9050919050565b61030b816102f1565b82525050565b5f6020820190506103245f830184610302565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61036182610217565b915061036c83610217565b925082820261037a81610217565b915082820484148315176103915761039061032a565b5b509291505056fea26469706673582212202a6c818dd7fb40696ad3cf13ae6ff1ea3ea3d5bcf7cf38a59e0da697c440dfa764736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9A8A0592 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0xA6AE0AAC EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xB80777EA EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xC6888FA1 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xF68016B7 EQ PUSH2 0x1A9 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x4449436C EQ PUSH2 0x95 JUMPI DUP1 PUSH4 0x57E871E7 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x6EF25C3A EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x85DF51FD EQ PUSH2 0xEF JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9D PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0x1CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x276 JUMP JUMPDEST PUSH2 0x1DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x116 SWAP2 SWAP1 PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x127 PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x311 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH2 0x1F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x276 JUMP JUMPDEST PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x210 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PREVRANDAO SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 NUMBER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 BASEFEE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 BLOCKHASH SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 CHAINID SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 COINBASE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x7 DUP3 PUSH2 0x209 SWAP2 SWAP1 PUSH2 0x357 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 GASLIMIT SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x229 DUP2 PUSH2 0x217 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x242 PUSH0 DUP4 ADD DUP5 PUSH2 0x220 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x255 DUP2 PUSH2 0x217 JUMP JUMPDEST DUP2 EQ PUSH2 0x25F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x270 DUP2 PUSH2 0x24C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28B JUMPI PUSH2 0x28A PUSH2 0x248 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x298 DUP5 DUP3 DUP6 ADD PUSH2 0x262 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B3 DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2CC PUSH0 DUP4 ADD DUP5 PUSH2 0x2AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2FB DUP3 PUSH2 0x2D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x30B DUP2 PUSH2 0x2F1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x324 PUSH0 DUP4 ADD DUP5 PUSH2 0x302 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x361 DUP3 PUSH2 0x217 JUMP JUMPDEST SWAP2 POP PUSH2 0x36C DUP4 PUSH2 0x217 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x37A DUP2 PUSH2 0x217 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x391 JUMPI PUSH2 0x390 PUSH2 0x32A JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A PUSH13 0x818DD7FB40696AD3CF13AE6FF1 0xEA RETURNDATACOPY LOG3 0xD5 0xBC 0xF7 0xCF CODESIZE 0xA5 SWAP15 0xD 0xA6 SWAP8 0xC4 BLOCKHASH 0xDF 0xA7 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "71:843:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;447:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;181:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;810:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;268:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;355:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;719:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;92:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;540:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;447:88;489:4;512:16;505:23;;447:88;:::o;629:85::-;672:4;695:12;688:19;;629:85;:::o;181:82::-;220:4;243:13;236:20;;181:82;:::o;810:102::-;862:7;898:6;888:17;881:24;;810:102;;;:::o;268:82::-;307:4;330:13;323:20;;268:82;:::o;355:87::-;395:7;421:14;414:21;;355:87;:::o;719:86::-;760:4;783:15;776:22;;719:86;:::o;92:83::-;138:6;167:1;163;:5;;;;:::i;:::-;156:12;;92:83;;;:::o;540:84::-;580:4;603:14;596:21;;540:84;:::o;7:77:17:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:77::-;1414:7;1443:5;1432:16;;1377:77;;;:::o;1460:118::-;1547:24;1565:5;1547:24;:::i;:::-;1542:3;1535:37;1460:118;;:::o;1584:222::-;1677:4;1715:2;1704:9;1700:18;1692:26;;1728:71;1796:1;1785:9;1781:17;1772:6;1728:71;:::i;:::-;1584:222;;;;:::o;1812:126::-;1849:7;1889:42;1882:5;1878:54;1867:65;;1812:126;;;:::o;1944:96::-;1981:7;2010:24;2028:5;2010:24;:::i;:::-;1999:35;;1944:96;;;:::o;2046:118::-;2133:24;2151:5;2133:24;:::i;:::-;2128:3;2121:37;2046:118;;:::o;2170:222::-;2263:4;2301:2;2290:9;2286:18;2278:26;;2314:71;2382:1;2371:9;2367:17;2358:6;2314:71;:::i;:::-;2170:222;;;;:::o;2398:180::-;2446:77;2443:1;2436:88;2543:4;2540:1;2533:15;2567:4;2564:1;2557:15;2584:410;2624:7;2647:20;2665:1;2647:20;:::i;:::-;2642:25;;2681:20;2699:1;2681:20;:::i;:::-;2676:25;;2736:1;2733;2729:9;2758:30;2776:11;2758:30;:::i;:::-;2747:41;;2937:1;2928:7;2924:15;2921:1;2918:22;2898:1;2891:9;2871:83;2848:139;;2967:18;;:::i;:::-;2848:139;2632:362;2584:410;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b50610399806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b80777ea1161005b578063b80777ea146100ee578063c6888fa11461010c578063e12ed13c1461013c578063f68016b71461015a5761007d565b806385df51fd146100825780639a8a0592146100b2578063a6ae0aac146100d0575b600080fd5b61009c600480360381019061009791906101d6565b610178565b6040516100a99190610247565b60405180910390f35b6100ba610183565b6040516100c79190610262565b60405180910390f35b6100d861018b565b6040516100e5919061022c565b60405180910390f35b6100f6610193565b6040516101039190610262565b60405180910390f35b610126600480360381019061012191906101d6565b61019b565b6040516101339190610262565b60405180910390f35b6101446101b1565b6040516101519190610262565b60405180910390f35b6101626101b9565b60405161016f9190610262565b60405180910390f35b600081409050919050565b600046905090565b600041905090565b600042905090565b60006007826101aa919061027d565b9050919050565b600043905090565b600045905090565b6000813590506101d08161034c565b92915050565b6000602082840312156101e857600080fd5b60006101f6848285016101c1565b91505092915050565b610208816102d7565b82525050565b610217816102e9565b82525050565b61022681610313565b82525050565b600060208201905061024160008301846101ff565b92915050565b600060208201905061025c600083018461020e565b92915050565b6000602082019050610277600083018461021d565b92915050565b600061028882610313565b915061029383610313565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156102cc576102cb61031d565b5b828202905092915050565b60006102e2826102f3565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61035581610313565b811461036057600080fd5b5056fea2646970667358221220af274a55fbb5b38fdd4fc8654076d1f9191ff4ca51dab567b0d7d08e46b51c1064736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506103ce8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c80639a8a0592116100645780639a8a05921461011f578063a6ae0aac1461013d578063b80777ea1461015b578063c6888fa114610179578063f68016b7146101a957610091565b80634449436c1461009557806357e871e7146100b35780636ef25c3a146100d157806385df51fd146100ef575b5f80fd5b61009d6101c7565b6040516100aa919061022f565b60405180910390f35b6100bb6101ce565b6040516100c8919061022f565b60405180910390f35b6100d96101d5565b6040516100e6919061022f565b60405180910390f35b61010960048036038101906101049190610276565b6101dc565b60405161011691906102b9565b60405180910390f35b6101276101e6565b604051610134919061022f565b60405180910390f35b6101456101ed565b6040516101529190610311565b60405180910390f35b6101636101f4565b604051610170919061022f565b60405180910390f35b610193600480360381019061018e9190610276565b6101fb565b6040516101a0919061022f565b60405180910390f35b6101b1610210565b6040516101be919061022f565b60405180910390f35b5f44905090565b5f43905090565b5f48905090565b5f81409050919050565b5f46905090565b5f41905090565b5f42905090565b5f6007826102099190610357565b9050919050565b5f45905090565b5f819050919050565b61022981610217565b82525050565b5f6020820190506102425f830184610220565b92915050565b5f80fd5b61025581610217565b811461025f575f80fd5b50565b5f813590506102708161024c565b92915050565b5f6020828403121561028b5761028a610248565b5b5f61029884828501610262565b91505092915050565b5f819050919050565b6102b3816102a1565b82525050565b5f6020820190506102cc5f8301846102aa565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102fb826102d2565b9050919050565b61030b816102f1565b82525050565b5f6020820190506103245f830184610302565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61036182610217565b915061036c83610217565b925082820261037a81610217565b915082820484148315176103915761039061032a565b5b509291505056fea26469706673582212202a6c818dd7fb40696ad3cf13ae6ff1ea3ea3d5bcf7cf38a59e0da697c440dfa764736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/ChildContract.json b/ts-tests/build/ChildContract.json index 9e89068613..9ce4bc2315 100644 --- a/ts-tests/build/ChildContract.json +++ b/ts-tests/build/ChildContract.json @@ -21,116 +21,219 @@ ], "evm": { "bytecode": { + "functionDebugData": { + "@_931": { + "entryPoint": null, + "id": 931, + "parameterSlots": 0, + "returnSlots": 0 + } + }, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER ", + "object": "608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", "sourceMap": "1069:106:5:-:0;;;1120:53;;;;;;;;;;1151:15;1144:4;:22;;;;1069:106;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@time_922": { + "entryPoint": 68, + "id": 922, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 82, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 95, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 73, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:439:17", "nodeType": "YulBlock", "src": "0:439:17", "statements": [ { "body": { + "nativeSrc": "52:32:17", + "nodeType": "YulBlock", + "src": "52:32:17", + "statements": [ + { + "nativeSrc": "62:16:17", + "nodeType": "YulAssignment", + "src": "62:16:17", + "value": { + "name": "value", + "nativeSrc": "73:5:17", + "nodeType": "YulIdentifier", + "src": "73:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "62:7:17", + "nodeType": "YulIdentifier", + "src": "62:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "7:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34:5:17", + "nodeType": "YulTypedName", + "src": "34:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "44:7:17", + "nodeType": "YulTypedName", + "src": "44:7:17", + "type": "" + } + ], + "src": "7:77:17" + }, + { + "body": { + "nativeSrc": "155:53:17", "nodeType": "YulBlock", - "src": "72:53:17", + "src": "155:53:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "172:3:17", "nodeType": "YulIdentifier", - "src": "89:3:17" + "src": "172:3:17" }, { "arguments": [ { "name": "value", + "nativeSrc": "195:5:17", "nodeType": "YulIdentifier", - "src": "112:5:17" + "src": "195:5:17" } ], "functionName": { "name": "cleanup_t_uint256", + "nativeSrc": "177:17:17", "nodeType": "YulIdentifier", - "src": "94:17:17" + "src": "177:17:17" }, + "nativeSrc": "177:24:17", "nodeType": "YulFunctionCall", - "src": "94:24:17" + "src": "177:24:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "165:6:17", "nodeType": "YulIdentifier", - "src": "82:6:17" + "src": "165:6:17" }, + "nativeSrc": "165:37:17", "nodeType": "YulFunctionCall", - "src": "82:37:17" + "src": "165:37:17" }, + "nativeSrc": "165:37:17", "nodeType": "YulExpressionStatement", - "src": "82:37:17" + "src": "165:37:17" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "90:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "143:5:17", "nodeType": "YulTypedName", - "src": "60:5:17", + "src": "143:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "150:3:17", "nodeType": "YulTypedName", - "src": "67:3:17", + "src": "150:3:17", "type": "" } ], - "src": "7:118:17" + "src": "90:118:17" }, { "body": { + "nativeSrc": "312:124:17", "nodeType": "YulBlock", - "src": "229:124:17", + "src": "312:124:17", "statements": [ { + "nativeSrc": "322:26:17", "nodeType": "YulAssignment", - "src": "239:26:17", + "src": "322:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "334:9:17", "nodeType": "YulIdentifier", - "src": "251:9:17" + "src": "334:9:17" }, { "kind": "number", + "nativeSrc": "345:2:17", "nodeType": "YulLiteral", - "src": "262:2:17", + "src": "345:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "330:3:17", "nodeType": "YulIdentifier", - "src": "247:3:17" + "src": "330:3:17" }, + "nativeSrc": "330:18:17", "nodeType": "YulFunctionCall", - "src": "247:18:17" + "src": "330:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "322:4:17", "nodeType": "YulIdentifier", - "src": "239:4:17" + "src": "322:4:17" } ] }, @@ -139,118 +242,87 @@ "arguments": [ { "name": "value0", + "nativeSrc": "402:6:17", "nodeType": "YulIdentifier", - "src": "319:6:17" + "src": "402:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "415:9:17", "nodeType": "YulIdentifier", - "src": "332:9:17" + "src": "415:9:17" }, { "kind": "number", + "nativeSrc": "426:1:17", "nodeType": "YulLiteral", - "src": "343:1:17", + "src": "426:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "411:3:17", "nodeType": "YulIdentifier", - "src": "328:3:17" + "src": "411:3:17" }, + "nativeSrc": "411:17:17", "nodeType": "YulFunctionCall", - "src": "328:17:17" + "src": "411:17:17" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "358:43:17", "nodeType": "YulIdentifier", - "src": "275:43:17" + "src": "358:43:17" }, + "nativeSrc": "358:71:17", "nodeType": "YulFunctionCall", - "src": "275:71:17" + "src": "358:71:17" }, + "nativeSrc": "358:71:17", "nodeType": "YulExpressionStatement", - "src": "275:71:17" + "src": "358:71:17" } ] }, "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "214:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "284:9:17", "nodeType": "YulTypedName", - "src": "201:9:17", + "src": "284:9:17", "type": "" }, { "name": "value0", + "nativeSrc": "296:6:17", "nodeType": "YulTypedName", - "src": "213:6:17", + "src": "296:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "307:4:17", "nodeType": "YulTypedName", - "src": "224:4:17", - "type": "" - } - ], - "src": "131:222:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "404:32:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "414:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "425:5:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "414:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "386:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "396:7:17", + "src": "307:4:17", "type": "" } ], - "src": "359:77:17" + "src": "214:222:17" } ] }, - "contents": "{\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n}\n", + "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -258,10 +330,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER ", - "sourceMap": "1069:106:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1098:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;7:118:17:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;72:53;;:::o;131:222::-;;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;229:124;;;;:::o;359:77::-;;425:5;414:16;;404:32;;;:::o" + "object": "6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1069:106:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1098:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;7:77:17:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/Context.json b/ts-tests/build/Context.json index 862fae67ed..909f0bdf1f 100644 --- a/ts-tests/build/Context.json +++ b/ts-tests/build/Context.json @@ -2,6 +2,7 @@ "abi": [], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", @@ -9,6 +10,7 @@ "sourceMap": "" }, "deployedBytecode": { + "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, diff --git a/ts-tests/build/Contract.json b/ts-tests/build/Contract.json index a351a6d25a..ffba231b0b 100644 --- a/ts-tests/build/Contract.json +++ b/ts-tests/build/Contract.json @@ -2,20 +2,22 @@ "abi": [], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122006977fabfa6fad9f18e547cefafa048f5053e1fe13432a1739a038e99b0e5bfa64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD SWAP8 PUSH32 0xABFA6FAD9F18E547CEFAFA048F5053E1FE13432A1739A038E99B0E5BFA64736F PUSH13 0x63430008020033000000000000 ", + "object": "6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122096e825e9e8bfff64b6ab6a0e09a6d6a5daa298a417186e1c79bcb7804e4078f564736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x3E DUP1 PUSH1 0x1A PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 0xE8 0x25 0xE9 0xE8 0xBF SELFDESTRUCT PUSH5 0xB6AB6A0E09 0xA6 0xD6 0xA5 0xDA LOG2 SWAP9 LOG4 OR XOR PUSH15 0x1C79BCB7804E4078F564736F6C6343 STOP ADDMOD XOR STOP CALLER ", "sourceMap": "478:20:11:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "6080604052600080fdfea264697066735822122006977fabfa6fad9f18e547cefafa048f5053e1fe13432a1739a038e99b0e5bfa64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD SWAP8 PUSH32 0xABFA6FAD9F18E547CEFAFA048F5053E1FE13432A1739A038E99B0E5BFA64736F PUSH13 0x63430008020033000000000000 ", + "object": "60806040525f80fdfea264697066735822122096e825e9e8bfff64b6ab6a0e09a6d6a5daa298a417186e1c79bcb7804e4078f564736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 0xE8 0x25 0xE9 0xE8 0xBF SELFDESTRUCT PUSH5 0xB6AB6A0E09 0xA6 0xD6 0xA5 0xDA LOG2 SWAP9 LOG4 OR XOR PUSH15 0x1C79BCB7804E4078F564736F6C6343 STOP ADDMOD XOR STOP CALLER ", "sourceMap": "478:20:11:-:0;;;;;" } }, - "bytecode": "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122006977fabfa6fad9f18e547cefafa048f5053e1fe13432a1739a038e99b0e5bfa64736f6c63430008020033" + "bytecode": "6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122096e825e9e8bfff64b6ab6a0e09a6d6a5daa298a417186e1c79bcb7804e4078f564736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/CreateContractFactory.json b/ts-tests/build/CreateContractFactory.json index 4bb5f126ed..eaae68d710 100644 --- a/ts-tests/build/CreateContractFactory.json +++ b/ts-tests/build/CreateContractFactory.json @@ -49,48 +49,509 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506109cd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f24df3a14610046578063412a5a6d14610050578063474da79a1461005a575b600080fd5b61004e61008a565b005b610058610197565b005b610074600480360381019061006f91906102ce565b61026d565b6040516100819190610329565b60405180910390f35b60008080549050116100d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c890610344565b60405180910390fd5b6000808154811061010b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3a4ba316040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561017d57600080fd5b505af1158015610191573d6000803e3d6000fd5b50505050565b60006040516101a5906102ac565b604051809103906000f0801580156101c1573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167f6837ff1e738d95fc8bb5f12ce1513f42866f6c59c226c77342c4f36a1958ea1060405160405180910390a26000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818154811061027d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105948061040483390190565b6000813590506102c8816103ec565b92915050565b6000602082840312156102e057600080fd5b60006102ee848285016102b9565b91505092915050565b6103008161039f565b82525050565b6000610313601783610364565b915061031e826103c3565b602082019050919050565b600060208201905061033e60008301846102f7565b92915050565b6000602082019050818103600083015261035d81610306565b9050919050565b600082825260208201905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006103aa826103b1565b9050919050565b60006103bc82610375565b9050919050565b7f4e65656420746f2063726561746520636f6e7472616374000000000000000000600082015250565b6103f581610395565b811461040057600080fd5b5056fe608060405234801561001057600080fd5b5060405161001d906100e1565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100ed565b60d9806104bb83390190565b6103bf806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806395bc992814610046578063a3a4ba3114610076578063e626223a14610080575b600080fd5b610060600480360381019061005b91906101f8565b61009e565b60405161006d9190610230565b60405180910390f35b61007e6100dd565b005b6100886101b3565b6040516100959190610230565b60405180910390f35b600181815481106100ae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006040516100eb906101d7565b604051809103906000f080158015610107573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60d9806102b183390190565b6000813590506101f281610299565b92915050565b60006020828403121561020a57600080fd5b6000610218848285016101e3565b91505092915050565b61022a81610275565b82525050565b60006020820190506102456000830184610221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061028082610287565b9050919050565b60006102928261024b565b9050919050565b6102a28161026b565b81146102ad57600080fd5b5056fe608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a2646970667358221220f904ea606654d028fdb9d8a4952d536bfd0251804ad6c0861d3762fbd56dfb4d64736f6c63430008020033608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a26469706673582212204f18b58ddf076da846e4a52786442c970e345817e7e30610510ab800196696ac64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9CD DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF24DF3A EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x412A5A6D EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x474DA79A EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x197 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x74 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6F SWAP2 SWAP1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP GT PUSH2 0xD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC8 SWAP1 PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP2 SLOAD DUP2 LT PUSH2 0x10B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA3A4BA31 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x191 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP1 PUSH2 0x2AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x1C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6837FF1E738D95FC8BB5F12CE1513F42866F6C59C226C77342C4F36A1958EA10 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x594 DUP1 PUSH2 0x404 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2C8 DUP2 PUSH2 0x3EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP5 DUP3 DUP6 ADD PUSH2 0x2B9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x300 DUP2 PUSH2 0x39F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x313 PUSH1 0x17 DUP4 PUSH2 0x364 JUMP JUMPDEST SWAP2 POP PUSH2 0x31E DUP3 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x33E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x35D DUP2 PUSH2 0x306 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP3 PUSH2 0x3B1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BC DUP3 PUSH2 0x375 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E65656420746F2063726561746520636F6E7472616374000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3F5 DUP2 PUSH2 0x395 JUMP JUMPDEST DUP2 EQ PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1D SWAP1 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xED JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x4BB DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3BF DUP1 PUSH2 0xFC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x1B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xEB SWAP1 PUSH2 0x1D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x107 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x2B1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F2 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP5 DUP3 DUP6 ADD PUSH2 0x1E3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22A DUP2 PUSH2 0x275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x245 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280 DUP3 PUSH2 0x287 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x292 DUP3 PUSH2 0x24B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A2 DUP2 PUSH2 0x26B JUMP JUMPDEST DUP2 EQ PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 DIV 0xEA PUSH1 0x66 SLOAD 0xD0 0x28 REVERT 0xB9 0xD8 LOG4 SWAP6 0x2D MSTORE8 PUSH12 0xFD0251804AD6C0861D3762FB 0xD5 PUSH14 0xFB4D64736F6C6343000802003360 DUP1 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F XOR 0xB5 DUP14 0xDF SMOD PUSH14 0xA846E4A52786442C970E345817E7 0xE3 MOD LT MLOAD EXP 0xB8 STOP NOT PUSH7 0x96AC64736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ", + "object": "608060405234801561000f575f80fd5b506109d88061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80630f24df3a14610043578063412a5a6d1461004d578063474da79a14610057575b5f80fd5b61004b610087565b005b610055610164565b005b610071600480360381019061006c91906102b0565b610232565b60405161007e9190610355565b60405180910390f35b5f8080549050116100cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c4906103c8565b60405180910390fd5b5f80815481106100e0576100df6103e6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3a4ba316040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561014c575f80fd5b505af115801561015e573d5f803e3d5ffd5b50505050565b5f6040516101719061026c565b604051809103905ff08015801561018a573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167f6837ff1e738d95fc8bb5f12ce1513f42866f6c59c226c77342c4f36a1958ea1060405160405180910390a25f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8181548110610240575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61058f8061041483390190565b5f80fd5b5f819050919050565b61028f8161027d565b8114610299575f80fd5b50565b5f813590506102aa81610286565b92915050565b5f602082840312156102c5576102c4610279565b5b5f6102d28482850161029c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61031d610318610313846102db565b6102fa565b6102db565b9050919050565b5f61032e82610303565b9050919050565b5f61033f82610324565b9050919050565b61034f81610335565b82525050565b5f6020820190506103685f830184610346565b92915050565b5f82825260208201905092915050565b7f4e65656420746f2063726561746520636f6e74726163740000000000000000005f82015250565b5f6103b260178361036e565b91506103bd8261037e565b602082019050919050565b5f6020820190508181035f8301526103df816103a6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfe608060405234801561000f575f80fd5b5060405161001c906100db565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100e7565b60ce806104c183390190565b6103cd806100f45f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806395bc992814610043578063a3a4ba3114610073578063e626223a1461007d575b5f80fd5b61005d6004803603810190610058919061020b565b61009b565b60405161006a91906102b0565b60405180910390f35b61007b6100d6565b005b6100856101a5565b60405161009291906102b0565b60405180910390f35b600181815481106100aa575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6040516100e3906101c8565b604051809103905ff0801580156100fc573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a2600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ce806102ca83390190565b5f80fd5b5f819050919050565b6101ea816101d8565b81146101f4575f80fd5b50565b5f81359050610205816101e1565b92915050565b5f602082840312156102205761021f6101d4565b5b5f61022d848285016101f7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61027861027361026e84610236565b610255565b610236565b9050919050565b5f6102898261025e565b9050919050565b5f61029a8261027f565b9050919050565b6102aa81610290565b82525050565b5f6020820190506102c35f8301846102a1565b9291505056fe608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a2646970667358221220c9c09a08caefd974beccc16baae32ae66423ea9926d141d7ebc4286d930707f964736f6c63430008180033608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a26469706673582212204a5e247be2849025c84f7a8425ed83c4c6478ce685584e7a64814343701c368964736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x9D8 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF24DF3A EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x412A5A6D EQ PUSH2 0x4D JUMPI DUP1 PUSH4 0x474DA79A EQ PUSH2 0x57 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x4B PUSH2 0x87 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x55 PUSH2 0x164 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x71 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP GT PUSH2 0xCD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4 SWAP1 PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP2 LT PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x3E6 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA3A4BA31 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH2 0x171 SWAP1 PUSH2 0x26C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x18A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6837FF1E738D95FC8BB5F12CE1513F42866F6C59C226C77342C4F36A1958EA10 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x58F DUP1 PUSH2 0x414 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28F DUP2 PUSH2 0x27D JUMP JUMPDEST DUP2 EQ PUSH2 0x299 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2AA DUP2 PUSH2 0x286 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C5 JUMPI PUSH2 0x2C4 PUSH2 0x279 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2D2 DUP5 DUP3 DUP6 ADD PUSH2 0x29C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x31D PUSH2 0x318 PUSH2 0x313 DUP5 PUSH2 0x2DB JUMP JUMPDEST PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x2DB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x32E DUP3 PUSH2 0x303 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x33F DUP3 PUSH2 0x324 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F DUP2 PUSH2 0x335 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x368 PUSH0 DUP4 ADD DUP5 PUSH2 0x346 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E65656420746F2063726561746520636F6E7472616374000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x3B2 PUSH1 0x17 DUP4 PUSH2 0x36E JUMP JUMPDEST SWAP2 POP PUSH2 0x3BD DUP3 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x3DF DUP2 PUSH2 0x3A6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C SWAP1 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x35 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xE7 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x4C1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3CD DUP1 PUSH2 0xF4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x73 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x7D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x20B JUMP JUMPDEST PUSH2 0x9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7B PUSH2 0xD6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x85 PUSH2 0x1A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x92 SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP1 PUSH2 0x1C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xFC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x2CA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x1D8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x205 DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x220 JUMPI PUSH2 0x21F PUSH2 0x1D4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22D DUP5 DUP3 DUP6 ADD PUSH2 0x1F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x278 PUSH2 0x273 PUSH2 0x26E DUP5 PUSH2 0x236 JUMP JUMPDEST PUSH2 0x255 JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x289 DUP3 PUSH2 0x25E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x29A DUP3 PUSH2 0x27F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AA DUP2 PUSH2 0x290 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C3 PUSH0 DUP4 ADD DUP5 PUSH2 0x2A1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 0xC0 SWAP11 ADDMOD 0xCA 0xEF 0xD9 PUSH21 0xBECCC16BAAE32AE66423EA9926D141D7EBC4286D93 SMOD SMOD 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOBBASEFEE MCOPY 0x24 PUSH28 0xE2849025C84F7A8425ED83C4C6478CE685584E7A64814343701C3689 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", "sourceMap": "71:490:5:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@callContract_864": { + "entryPoint": 135, + "id": 864, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@contracts_819": { + "entryPoint": 562, + "id": 819, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createContract_844": { + "entryPoint": 356, + "id": 844, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_uint256": { + "entryPoint": 668, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 688, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_contract$_ParentContract_$920_to_t_address_fromStack": { + "entryPoint": 838, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack": { + "entryPoint": 934, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_ParentContract_$920__to_t_address__fromStack_reversed": { + "entryPoint": 853, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 968, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 878, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 731, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 637, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ParentContract_$920_to_t_address": { + "entryPoint": 821, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 804, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 771, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 762, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x32": { + "entryPoint": 998, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 633, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33": { + "entryPoint": 894, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 646, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:3444:17", "nodeType": "YulBlock", - "src": "0:2681:17", + "src": "0:3444:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", + "nodeType": "YulBlock", + "src": "47:35:17", + "statements": [ + { + "nativeSrc": "57:19:17", + "nodeType": "YulAssignment", + "src": "57:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:17", + "nodeType": "YulIdentifier", + "src": "67:5:17" + }, + "nativeSrc": "67:9:17", + "nodeType": "YulFunctionCall", + "src": "67:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:17", + "nodeType": "YulIdentifier", + "src": "57:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:17", + "nodeType": "YulIdentifier", + "src": "187:6:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulFunctionCall", + "src": "187:12:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulExpressionStatement", + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:32:17", + "nodeType": "YulBlock", + "src": "379:32:17", + "statements": [ + { + "nativeSrc": "389:16:17", + "nodeType": "YulAssignment", + "src": "389:16:17", + "value": { + "name": "value", + "nativeSrc": "400:5:17", + "nodeType": "YulIdentifier", + "src": "400:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:17", + "nodeType": "YulTypedName", + "src": "361:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:17", + "nodeType": "YulTypedName", + "src": "371:7:17", + "type": "" + } + ], + "src": "334:77:17" + }, + { + "body": { + "nativeSrc": "460:79:17", + "nodeType": "YulBlock", + "src": "460:79:17", + "statements": [ + { + "body": { + "nativeSrc": "517:16:17", + "nodeType": "YulBlock", + "src": "517:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:17", + "nodeType": "YulLiteral", + "src": "526:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:17", + "nodeType": "YulLiteral", + "src": "529:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:17", + "nodeType": "YulIdentifier", + "src": "519:6:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulFunctionCall", + "src": "519:12:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulExpressionStatement", + "src": "519:12:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:17", + "nodeType": "YulIdentifier", + "src": "483:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:17", + "nodeType": "YulIdentifier", + "src": "508:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:17", + "nodeType": "YulIdentifier", + "src": "490:17:17" + }, + "nativeSrc": "490:24:17", + "nodeType": "YulFunctionCall", + "src": "490:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:17", + "nodeType": "YulIdentifier", + "src": "480:2:17" + }, + "nativeSrc": "480:35:17", + "nodeType": "YulFunctionCall", + "src": "480:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:17", + "nodeType": "YulIdentifier", + "src": "473:6:17" + }, + "nativeSrc": "473:43:17", + "nodeType": "YulFunctionCall", + "src": "473:43:17" + }, + "nativeSrc": "470:63:17", + "nodeType": "YulIf", + "src": "470:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:17", + "nodeType": "YulTypedName", + "src": "453:5:17", + "type": "" + } + ], + "src": "417:122:17" + }, + { + "body": { + "nativeSrc": "597:87:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "597:87:17", "statements": [ { + "nativeSrc": "607:29:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "607:29:17", "value": { "arguments": [ { "name": "offset", + "nativeSrc": "629:6:17", "nodeType": "YulIdentifier", - "src": "91:6:17" + "src": "629:6:17" } ], "functionName": { "name": "calldataload", + "nativeSrc": "616:12:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "616:12:17" }, + "nativeSrc": "616:20:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "616:20:17" }, "variableNames": [ { "name": "value", + "nativeSrc": "607:5:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "607:5:17" } ] }, @@ -99,87 +560,85 @@ "arguments": [ { "name": "value", + "nativeSrc": "672:5:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "672:5:17" } ], "functionName": { "name": "validator_revert_t_uint256", + "nativeSrc": "645:26:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "645:26:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "645:33:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "src": "645:33:17" } ] }, "name": "abi_decode_t_uint256", + "nativeSrc": "545:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", + "nativeSrc": "575:6:17", "nodeType": "YulTypedName", - "src": "37:6:17", + "src": "575:6:17", "type": "" }, { "name": "end", + "nativeSrc": "583:3:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "583:3:17", "type": "" } ], "returnVariables": [ { "name": "value", + "nativeSrc": "591:5:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "591:5:17", "type": "" } ], - "src": "7:139:17" + "src": "545:139:17" }, { "body": { + "nativeSrc": "756:263:17", "nodeType": "YulBlock", - "src": "218:196:17", + "src": "756:263:17", "statements": [ { "body": { + "nativeSrc": "802:83:17", "nodeType": "YulBlock", - "src": "264:16:17", + "src": "802:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "273:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "276:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "804:77:17", "nodeType": "YulIdentifier", - "src": "266:6:17" + "src": "804:77:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulFunctionCall", - "src": "266:12:17" + "src": "804:79:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulExpressionStatement", - "src": "266:12:17" + "src": "804:79:17" } ] }, @@ -189,110 +648,131 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "777:7:17", "nodeType": "YulIdentifier", - "src": "239:7:17" + "src": "777:7:17" }, { "name": "headStart", + "nativeSrc": "786:9:17", "nodeType": "YulIdentifier", - "src": "248:9:17" + "src": "786:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "773:3:17", "nodeType": "YulIdentifier", - "src": "235:3:17" + "src": "773:3:17" }, + "nativeSrc": "773:23:17", "nodeType": "YulFunctionCall", - "src": "235:23:17" + "src": "773:23:17" }, { "kind": "number", + "nativeSrc": "798:2:17", "nodeType": "YulLiteral", - "src": "260:2:17", + "src": "798:2:17", "type": "", "value": "32" } ], "functionName": { "name": "slt", + "nativeSrc": "769:3:17", "nodeType": "YulIdentifier", - "src": "231:3:17" + "src": "769:3:17" }, + "nativeSrc": "769:32:17", "nodeType": "YulFunctionCall", - "src": "231:32:17" + "src": "769:32:17" }, + "nativeSrc": "766:119:17", "nodeType": "YulIf", - "src": "228:2:17" + "src": "766:119:17" }, { + "nativeSrc": "895:117:17", "nodeType": "YulBlock", - "src": "290:117:17", + "src": "895:117:17", "statements": [ { + "nativeSrc": "910:15:17", "nodeType": "YulVariableDeclaration", - "src": "305:15:17", + "src": "910:15:17", "value": { "kind": "number", + "nativeSrc": "924:1:17", "nodeType": "YulLiteral", - "src": "319:1:17", + "src": "924:1:17", "type": "", "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "914:6:17", "nodeType": "YulTypedName", - "src": "309:6:17", + "src": "914:6:17", "type": "" } ] }, { + "nativeSrc": "939:63:17", "nodeType": "YulAssignment", - "src": "334:63:17", + "src": "939:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "974:9:17", "nodeType": "YulIdentifier", - "src": "369:9:17" + "src": "974:9:17" }, { "name": "offset", + "nativeSrc": "985:6:17", "nodeType": "YulIdentifier", - "src": "380:6:17" + "src": "985:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "970:3:17", "nodeType": "YulIdentifier", - "src": "365:3:17" + "src": "970:3:17" }, + "nativeSrc": "970:22:17", "nodeType": "YulFunctionCall", - "src": "365:22:17" + "src": "970:22:17" }, { "name": "dataEnd", + "nativeSrc": "994:7:17", "nodeType": "YulIdentifier", - "src": "389:7:17" + "src": "994:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "949:20:17", "nodeType": "YulIdentifier", - "src": "344:20:17" + "src": "949:20:17" }, + "nativeSrc": "949:53:17", "nodeType": "YulFunctionCall", - "src": "344:53:17" + "src": "949:53:17" }, "variableNames": [ { "name": "value0", + "nativeSrc": "939:6:17", "nodeType": "YulIdentifier", - "src": "334:6:17" + "src": "939:6:17" } ] } @@ -301,936 +781,1182 @@ ] }, "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "690:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "726:9:17", "nodeType": "YulTypedName", - "src": "188:9:17", + "src": "726:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "737:7:17", "nodeType": "YulTypedName", - "src": "199:7:17", + "src": "737:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "749:6:17", "nodeType": "YulTypedName", - "src": "211:6:17", + "src": "749:6:17", "type": "" } ], - "src": "152:262:17" + "src": "690:329:17" }, { "body": { + "nativeSrc": "1070:81:17", "nodeType": "YulBlock", - "src": "507:88:17", + "src": "1070:81:17", "statements": [ { - "expression": { + "nativeSrc": "1080:65:17", + "nodeType": "YulAssignment", + "src": "1080:65:17", + "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1095:5:17", "nodeType": "YulIdentifier", - "src": "524:3:17" + "src": "1095:5:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "582:5:17" - } - ], - "functionName": { - "name": "convert_t_contract$_ParentContract_$894_to_t_address", - "nodeType": "YulIdentifier", - "src": "529:52:17" - }, - "nodeType": "YulFunctionCall", - "src": "529:59:17" + "kind": "number", + "nativeSrc": "1102:42:17", + "nodeType": "YulLiteral", + "src": "1102:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "mstore", + "name": "and", + "nativeSrc": "1091:3:17", "nodeType": "YulIdentifier", - "src": "517:6:17" + "src": "1091:3:17" }, + "nativeSrc": "1091:54:17", "nodeType": "YulFunctionCall", - "src": "517:72:17" + "src": "1091:54:17" }, - "nodeType": "YulExpressionStatement", - "src": "517:72:17" - } + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1080:7:17", + "nodeType": "YulIdentifier", + "src": "1080:7:17" + } + ] + } ] }, - "name": "abi_encode_t_contract$_ParentContract_$894_to_t_address_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1025:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1052:5:17", "nodeType": "YulTypedName", - "src": "495:5:17", + "src": "1052:5:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "cleaned", + "nativeSrc": "1062:7:17", "nodeType": "YulTypedName", - "src": "502:3:17", + "src": "1062:7:17", "type": "" } ], - "src": "420:175:17" + "src": "1025:126:17" }, { "body": { + "nativeSrc": "1189:28:17", "nodeType": "YulBlock", - "src": "747:220:17", + "src": "1189:28:17", "statements": [ { + "nativeSrc": "1199:12:17", "nodeType": "YulAssignment", - "src": "757:74:17", + "src": "1199:12:17", "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "823:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "828:2:17", - "type": "", - "value": "23" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "764:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "764:67:17" + "name": "value", + "nativeSrc": "1206:5:17", + "nodeType": "YulIdentifier", + "src": "1206:5:17" }, "variableNames": [ { - "name": "pos", + "name": "ret", + "nativeSrc": "1199:3:17", "nodeType": "YulIdentifier", - "src": "757:3:17" + "src": "1199:3:17" } ] - }, + } + ] + }, + "name": "identity", + "nativeSrc": "1157:60:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1175:5:17", + "nodeType": "YulTypedName", + "src": "1175:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1185:3:17", + "nodeType": "YulTypedName", + "src": "1185:3:17", + "type": "" + } + ], + "src": "1157:60:17" + }, + { + "body": { + "nativeSrc": "1283:82:17", + "nodeType": "YulBlock", + "src": "1283:82:17", + "statements": [ { - "expression": { + "nativeSrc": "1293:66:17", + "nodeType": "YulAssignment", + "src": "1293:66:17", + "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "929:3:17" + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1351:5:17", + "nodeType": "YulIdentifier", + "src": "1351:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1333:17:17", + "nodeType": "YulIdentifier", + "src": "1333:17:17" + }, + "nativeSrc": "1333:24:17", + "nodeType": "YulFunctionCall", + "src": "1333:24:17" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "1324:8:17", + "nodeType": "YulIdentifier", + "src": "1324:8:17" + }, + "nativeSrc": "1324:34:17", + "nodeType": "YulFunctionCall", + "src": "1324:34:17" } ], "functionName": { - "name": "store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33", + "name": "cleanup_t_uint160", + "nativeSrc": "1306:17:17", "nodeType": "YulIdentifier", - "src": "840:88:17" + "src": "1306:17:17" }, + "nativeSrc": "1306:53:17", "nodeType": "YulFunctionCall", - "src": "840:93:17" + "src": "1306:53:17" }, - "nodeType": "YulExpressionStatement", - "src": "840:93:17" - }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "1293:9:17", + "nodeType": "YulIdentifier", + "src": "1293:9:17" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "1223:142:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1263:5:17", + "nodeType": "YulTypedName", + "src": "1263:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "1273:9:17", + "nodeType": "YulTypedName", + "src": "1273:9:17", + "type": "" + } + ], + "src": "1223:142:17" + }, + { + "body": { + "nativeSrc": "1431:66:17", + "nodeType": "YulBlock", + "src": "1431:66:17", + "statements": [ { + "nativeSrc": "1441:50:17", "nodeType": "YulAssignment", - "src": "942:19:17", + "src": "1441:50:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1485:5:17", "nodeType": "YulIdentifier", - "src": "953:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "958:2:17", - "type": "", - "value": "32" + "src": "1485:5:17" } ], "functionName": { - "name": "add", + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "1454:30:17", "nodeType": "YulIdentifier", - "src": "949:3:17" + "src": "1454:30:17" }, + "nativeSrc": "1454:37:17", "nodeType": "YulFunctionCall", - "src": "949:12:17" + "src": "1454:37:17" }, "variableNames": [ { - "name": "end", + "name": "converted", + "nativeSrc": "1441:9:17", "nodeType": "YulIdentifier", - "src": "942:3:17" + "src": "1441:9:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack", + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "1371:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1411:5:17", "nodeType": "YulTypedName", - "src": "735:3:17", + "src": "1411:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "converted", + "nativeSrc": "1421:9:17", "nodeType": "YulTypedName", - "src": "743:3:17", + "src": "1421:9:17", "type": "" } ], - "src": "601:366:17" + "src": "1371:126:17" }, { "body": { + "nativeSrc": "1585:66:17", "nodeType": "YulBlock", - "src": "1093:146:17", + "src": "1585:66:17", "statements": [ { + "nativeSrc": "1595:50:17", "nodeType": "YulAssignment", - "src": "1103:26:17", + "src": "1595:50:17", "value": { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "1639:5:17", "nodeType": "YulIdentifier", - "src": "1115:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1126:2:17", - "type": "", - "value": "32" + "src": "1639:5:17" } ], "functionName": { - "name": "add", + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "1608:30:17", "nodeType": "YulIdentifier", - "src": "1111:3:17" + "src": "1608:30:17" }, + "nativeSrc": "1608:37:17", "nodeType": "YulFunctionCall", - "src": "1111:18:17" + "src": "1608:37:17" }, "variableNames": [ { - "name": "tail", + "name": "converted", + "nativeSrc": "1595:9:17", "nodeType": "YulIdentifier", - "src": "1103:4:17" + "src": "1595:9:17" } ] - }, + } + ] + }, + "name": "convert_t_contract$_ParentContract_$920_to_t_address", + "nativeSrc": "1503:148:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1565:5:17", + "nodeType": "YulTypedName", + "src": "1565:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "1575:9:17", + "nodeType": "YulTypedName", + "src": "1575:9:17", + "type": "" + } + ], + "src": "1503:148:17" + }, + { + "body": { + "nativeSrc": "1744:88:17", + "nodeType": "YulBlock", + "src": "1744:88:17", + "statements": [ { "expression": { "arguments": [ { - "name": "value0", + "name": "pos", + "nativeSrc": "1761:3:17", "nodeType": "YulIdentifier", - "src": "1205:6:17" + "src": "1761:3:17" }, { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "1819:5:17", "nodeType": "YulIdentifier", - "src": "1218:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1229:1:17", - "type": "", - "value": "0" + "src": "1819:5:17" } ], "functionName": { - "name": "add", + "name": "convert_t_contract$_ParentContract_$920_to_t_address", + "nativeSrc": "1766:52:17", "nodeType": "YulIdentifier", - "src": "1214:3:17" + "src": "1766:52:17" }, + "nativeSrc": "1766:59:17", "nodeType": "YulFunctionCall", - "src": "1214:17:17" + "src": "1766:59:17" } ], "functionName": { - "name": "abi_encode_t_contract$_ParentContract_$894_to_t_address_fromStack", + "name": "mstore", + "nativeSrc": "1754:6:17", "nodeType": "YulIdentifier", - "src": "1139:65:17" + "src": "1754:6:17" }, + "nativeSrc": "1754:72:17", "nodeType": "YulFunctionCall", - "src": "1139:93:17" + "src": "1754:72:17" }, + "nativeSrc": "1754:72:17", "nodeType": "YulExpressionStatement", - "src": "1139:93:17" + "src": "1754:72:17" } ] }, - "name": "abi_encode_tuple_t_contract$_ParentContract_$894__to_t_address__fromStack_reversed", + "name": "abi_encode_t_contract$_ParentContract_$920_to_t_address_fromStack", + "nativeSrc": "1657:175:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "1732:5:17", "nodeType": "YulTypedName", - "src": "1065:9:17", + "src": "1732:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1077:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "1739:3:17", "nodeType": "YulTypedName", - "src": "1088:4:17", + "src": "1739:3:17", "type": "" } ], - "src": "973:266:17" + "src": "1657:175:17" }, { "body": { + "nativeSrc": "1958:146:17", "nodeType": "YulBlock", - "src": "1416:248:17", + "src": "1958:146:17", "statements": [ { + "nativeSrc": "1968:26:17", "nodeType": "YulAssignment", - "src": "1426:26:17", + "src": "1968:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "1980:9:17", "nodeType": "YulIdentifier", - "src": "1438:9:17" + "src": "1980:9:17" }, { "kind": "number", + "nativeSrc": "1991:2:17", "nodeType": "YulLiteral", - "src": "1449:2:17", + "src": "1991:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "1976:3:17", "nodeType": "YulIdentifier", - "src": "1434:3:17" + "src": "1976:3:17" }, + "nativeSrc": "1976:18:17", "nodeType": "YulFunctionCall", - "src": "1434:18:17" + "src": "1976:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "1968:4:17", "nodeType": "YulIdentifier", - "src": "1426:4:17" + "src": "1968:4:17" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "2070:6:17", + "nodeType": "YulIdentifier", + "src": "2070:6:17" + }, { "arguments": [ { "name": "headStart", + "nativeSrc": "2083:9:17", "nodeType": "YulIdentifier", - "src": "1473:9:17" + "src": "2083:9:17" }, { "kind": "number", + "nativeSrc": "2094:1:17", "nodeType": "YulLiteral", - "src": "1484:1:17", + "src": "2094:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "2079:3:17", "nodeType": "YulIdentifier", - "src": "1469:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1469:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1492:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1498:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1488:3:17" + "src": "2079:3:17" }, + "nativeSrc": "2079:17:17", "nodeType": "YulFunctionCall", - "src": "1488:20:17" + "src": "2079:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_contract$_ParentContract_$920_to_t_address_fromStack", + "nativeSrc": "2004:65:17", "nodeType": "YulIdentifier", - "src": "1462:6:17" + "src": "2004:65:17" }, + "nativeSrc": "2004:93:17", "nodeType": "YulFunctionCall", - "src": "1462:47:17" + "src": "2004:93:17" }, + "nativeSrc": "2004:93:17", "nodeType": "YulExpressionStatement", - "src": "1462:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "1518:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1652:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "1526:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "1526:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1518:4:17" - } - ] + "src": "2004:93:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_contract$_ParentContract_$920__to_t_address__fromStack_reversed", + "nativeSrc": "1838:266:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1930:9:17", "nodeType": "YulTypedName", - "src": "1396:9:17", + "src": "1930:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1942:6:17", + "nodeType": "YulTypedName", + "src": "1942:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "1953:4:17", "nodeType": "YulTypedName", - "src": "1411:4:17", + "src": "1953:4:17", "type": "" } ], - "src": "1245:419:17" + "src": "1838:266:17" }, { "body": { + "nativeSrc": "2206:73:17", "nodeType": "YulBlock", - "src": "1766:73:17", + "src": "2206:73:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "2223:3:17", "nodeType": "YulIdentifier", - "src": "1783:3:17" + "src": "2223:3:17" }, { "name": "length", + "nativeSrc": "2228:6:17", "nodeType": "YulIdentifier", - "src": "1788:6:17" + "src": "2228:6:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "2216:6:17", "nodeType": "YulIdentifier", - "src": "1776:6:17" + "src": "2216:6:17" }, + "nativeSrc": "2216:19:17", "nodeType": "YulFunctionCall", - "src": "1776:19:17" + "src": "2216:19:17" }, + "nativeSrc": "2216:19:17", "nodeType": "YulExpressionStatement", - "src": "1776:19:17" + "src": "2216:19:17" }, { + "nativeSrc": "2244:29:17", "nodeType": "YulAssignment", - "src": "1804:29:17", + "src": "2244:29:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "2263:3:17", "nodeType": "YulIdentifier", - "src": "1823:3:17" + "src": "2263:3:17" }, { "kind": "number", + "nativeSrc": "2268:4:17", "nodeType": "YulLiteral", - "src": "1828:4:17", + "src": "2268:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "2259:3:17", "nodeType": "YulIdentifier", - "src": "1819:3:17" + "src": "2259:3:17" }, + "nativeSrc": "2259:14:17", "nodeType": "YulFunctionCall", - "src": "1819:14:17" + "src": "2259:14:17" }, "variableNames": [ { "name": "updated_pos", + "nativeSrc": "2244:11:17", "nodeType": "YulIdentifier", - "src": "1804:11:17" + "src": "2244:11:17" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2110:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", + "nativeSrc": "2178:3:17", "nodeType": "YulTypedName", - "src": "1738:3:17", + "src": "2178:3:17", "type": "" }, { "name": "length", + "nativeSrc": "2183:6:17", "nodeType": "YulTypedName", - "src": "1743:6:17", + "src": "2183:6:17", "type": "" } ], "returnVariables": [ { "name": "updated_pos", + "nativeSrc": "2194:11:17", "nodeType": "YulTypedName", - "src": "1754:11:17", + "src": "2194:11:17", "type": "" } ], - "src": "1670:169:17" + "src": "2110:169:17" }, { "body": { + "nativeSrc": "2391:67:17", "nodeType": "YulBlock", - "src": "1890:81:17", + "src": "2391:67:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "1900:65:17", - "value": { + "expression": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1915:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1922:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1911:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1911:54:17" - }, - "variableNames": [ - { - "name": "cleaned", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "2413:6:17", + "nodeType": "YulIdentifier", + "src": "2413:6:17" + }, + { + "kind": "number", + "nativeSrc": "2421:1:17", + "nodeType": "YulLiteral", + "src": "2421:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2409:3:17", + "nodeType": "YulIdentifier", + "src": "2409:3:17" + }, + "nativeSrc": "2409:14:17", + "nodeType": "YulFunctionCall", + "src": "2409:14:17" + }, + { + "hexValue": "4e65656420746f2063726561746520636f6e7472616374", + "kind": "string", + "nativeSrc": "2425:25:17", + "nodeType": "YulLiteral", + "src": "2425:25:17", + "type": "", + "value": "Need to create contract" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2402:6:17", "nodeType": "YulIdentifier", - "src": "1900:7:17" - } - ] + "src": "2402:6:17" + }, + "nativeSrc": "2402:49:17", + "nodeType": "YulFunctionCall", + "src": "2402:49:17" + }, + "nativeSrc": "2402:49:17", + "nodeType": "YulExpressionStatement", + "src": "2402:49:17" } ] }, - "name": "cleanup_t_uint160", + "name": "store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33", + "nativeSrc": "2285:173:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "1872:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", + "name": "memPtr", + "nativeSrc": "2383:6:17", "nodeType": "YulTypedName", - "src": "1882:7:17", + "src": "2383:6:17", "type": "" } ], - "src": "1845:126:17" + "src": "2285:173:17" }, { "body": { + "nativeSrc": "2610:220:17", "nodeType": "YulBlock", - "src": "2022:32:17", + "src": "2610:220:17", "statements": [ { + "nativeSrc": "2620:74:17", "nodeType": "YulAssignment", - "src": "2032:16:17", + "src": "2620:74:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2043:5:17" + "arguments": [ + { + "name": "pos", + "nativeSrc": "2686:3:17", + "nodeType": "YulIdentifier", + "src": "2686:3:17" + }, + { + "kind": "number", + "nativeSrc": "2691:2:17", + "nodeType": "YulLiteral", + "src": "2691:2:17", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2627:58:17", + "nodeType": "YulIdentifier", + "src": "2627:58:17" + }, + "nativeSrc": "2627:67:17", + "nodeType": "YulFunctionCall", + "src": "2627:67:17" }, "variableNames": [ { - "name": "cleaned", + "name": "pos", + "nativeSrc": "2620:3:17", "nodeType": "YulIdentifier", - "src": "2032:7:17" + "src": "2620:3:17" } ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2004:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "2014:7:17", - "type": "" - } - ], - "src": "1977:77:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2142:88:17", - "statements": [ + }, { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2792:3:17", + "nodeType": "YulIdentifier", + "src": "2792:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33", + "nativeSrc": "2703:88:17", + "nodeType": "YulIdentifier", + "src": "2703:88:17" + }, + "nativeSrc": "2703:93:17", + "nodeType": "YulFunctionCall", + "src": "2703:93:17" + }, + "nativeSrc": "2703:93:17", + "nodeType": "YulExpressionStatement", + "src": "2703:93:17" + }, + { + "nativeSrc": "2805:19:17", "nodeType": "YulAssignment", - "src": "2152:72:17", + "src": "2805:19:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "2816:3:17", "nodeType": "YulIdentifier", - "src": "2218:5:17" + "src": "2816:3:17" + }, + { + "kind": "number", + "nativeSrc": "2821:2:17", + "nodeType": "YulLiteral", + "src": "2821:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "convert_t_contract$_ParentContract_$894_to_t_uint160", + "name": "add", + "nativeSrc": "2812:3:17", "nodeType": "YulIdentifier", - "src": "2165:52:17" + "src": "2812:3:17" }, + "nativeSrc": "2812:12:17", "nodeType": "YulFunctionCall", - "src": "2165:59:17" + "src": "2812:12:17" }, "variableNames": [ { - "name": "converted", + "name": "end", + "nativeSrc": "2805:3:17", "nodeType": "YulIdentifier", - "src": "2152:9:17" + "src": "2805:3:17" } ] } ] }, - "name": "convert_t_contract$_ParentContract_$894_to_t_address", + "name": "abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2464:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "2598:3:17", "nodeType": "YulTypedName", - "src": "2122:5:17", + "src": "2598:3:17", "type": "" } ], "returnVariables": [ { - "name": "converted", + "name": "end", + "nativeSrc": "2606:3:17", "nodeType": "YulTypedName", - "src": "2132:9:17", + "src": "2606:3:17", "type": "" } ], - "src": "2060:170:17" + "src": "2464:366:17" }, { "body": { + "nativeSrc": "3007:248:17", "nodeType": "YulBlock", - "src": "2318:53:17", + "src": "3007:248:17", "statements": [ { + "nativeSrc": "3017:26:17", "nodeType": "YulAssignment", - "src": "2328:37:17", + "src": "3017:26:17", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3029:9:17", "nodeType": "YulIdentifier", - "src": "2359:5:17" + "src": "3029:9:17" + }, + { + "kind": "number", + "nativeSrc": "3040:2:17", + "nodeType": "YulLiteral", + "src": "3040:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "add", + "nativeSrc": "3025:3:17", "nodeType": "YulIdentifier", - "src": "2341:17:17" + "src": "3025:3:17" }, + "nativeSrc": "3025:18:17", "nodeType": "YulFunctionCall", - "src": "2341:24:17" + "src": "3025:18:17" }, "variableNames": [ { - "name": "converted", + "name": "tail", + "nativeSrc": "3017:4:17", "nodeType": "YulIdentifier", - "src": "2328:9:17" + "src": "3017:4:17" } ] - } - ] - }, - "name": "convert_t_contract$_ParentContract_$894_to_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2298:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nodeType": "YulTypedName", - "src": "2308:9:17", - "type": "" - } - ], - "src": "2236:135:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2483:67:17", - "statements": [ + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "3064:9:17", "nodeType": "YulIdentifier", - "src": "2505:6:17" + "src": "3064:9:17" }, { "kind": "number", + "nativeSrc": "3075:1:17", "nodeType": "YulLiteral", - "src": "2513:1:17", + "src": "3075:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "3060:3:17", "nodeType": "YulIdentifier", - "src": "2501:3:17" + "src": "3060:3:17" }, + "nativeSrc": "3060:17:17", "nodeType": "YulFunctionCall", - "src": "2501:14:17" + "src": "3060:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "2517:25:17", - "type": "", - "value": "Need to create contract" + "arguments": [ + { + "name": "tail", + "nativeSrc": "3083:4:17", + "nodeType": "YulIdentifier", + "src": "3083:4:17" + }, + { + "name": "headStart", + "nativeSrc": "3089:9:17", + "nodeType": "YulIdentifier", + "src": "3089:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3079:3:17", + "nodeType": "YulIdentifier", + "src": "3079:3:17" + }, + "nativeSrc": "3079:20:17", + "nodeType": "YulFunctionCall", + "src": "3079:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "3053:6:17", "nodeType": "YulIdentifier", - "src": "2494:6:17" + "src": "3053:6:17" }, + "nativeSrc": "3053:47:17", "nodeType": "YulFunctionCall", - "src": "2494:49:17" + "src": "3053:47:17" }, + "nativeSrc": "3053:47:17", "nodeType": "YulExpressionStatement", - "src": "2494:49:17" + "src": "3053:47:17" + }, + { + "nativeSrc": "3109:139:17", + "nodeType": "YulAssignment", + "src": "3109:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "3243:4:17", + "nodeType": "YulIdentifier", + "src": "3243:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack", + "nativeSrc": "3117:124:17", + "nodeType": "YulIdentifier", + "src": "3117:124:17" + }, + "nativeSrc": "3117:131:17", + "nodeType": "YulFunctionCall", + "src": "3117:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3109:4:17", + "nodeType": "YulIdentifier", + "src": "3109:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33", + "name": "abi_encode_tuple_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2836:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "2987:9:17", "nodeType": "YulTypedName", - "src": "2475:6:17", + "src": "2987:9:17", "type": "" } ], - "src": "2377:173:17" + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3002:4:17", + "nodeType": "YulTypedName", + "src": "3002:4:17", + "type": "" + } + ], + "src": "2836:419:17" }, { "body": { + "nativeSrc": "3289:152:17", "nodeType": "YulBlock", - "src": "2599:79:17", + "src": "3289:152:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "2656:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2665:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2668:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2658:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2658:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2658:12:17" + "kind": "number", + "nativeSrc": "3306:1:17", + "nodeType": "YulLiteral", + "src": "3306:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3309:77:17", + "nodeType": "YulLiteral", + "src": "3309:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } - ] + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3299:6:17", + "nodeType": "YulIdentifier", + "src": "3299:6:17" + }, + "nativeSrc": "3299:88:17", + "nodeType": "YulFunctionCall", + "src": "3299:88:17" }, - "condition": { + "nativeSrc": "3299:88:17", + "nodeType": "YulExpressionStatement", + "src": "3299:88:17" + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2622:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2647:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "2629:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2629:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "2619:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "2619:35:17" + "kind": "number", + "nativeSrc": "3403:1:17", + "nodeType": "YulLiteral", + "src": "3403:1:17", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3406:4:17", + "nodeType": "YulLiteral", + "src": "3406:4:17", + "type": "", + "value": "0x32" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "3396:6:17", "nodeType": "YulIdentifier", - "src": "2612:6:17" + "src": "3396:6:17" }, + "nativeSrc": "3396:15:17", "nodeType": "YulFunctionCall", - "src": "2612:43:17" + "src": "3396:15:17" }, - "nodeType": "YulIf", - "src": "2609:2:17" + "nativeSrc": "3396:15:17", + "nodeType": "YulExpressionStatement", + "src": "3396:15:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3427:1:17", + "nodeType": "YulLiteral", + "src": "3427:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3430:4:17", + "nodeType": "YulLiteral", + "src": "3430:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3420:6:17", + "nodeType": "YulIdentifier", + "src": "3420:6:17" + }, + "nativeSrc": "3420:15:17", + "nodeType": "YulFunctionCall", + "src": "3420:15:17" + }, + "nativeSrc": "3420:15:17", + "nodeType": "YulExpressionStatement", + "src": "3420:15:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "panic_error_0x32", + "nativeSrc": "3261:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2592:5:17", - "type": "" - } - ], - "src": "2556:122:17" + "src": "3261:180:17" } ] }, - "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_contract$_ParentContract_$894_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ParentContract_$894_to_t_address(value))\n }\n\n function abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_contract$_ParentContract_$894__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ParentContract_$894_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_contract$_ParentContract_$894_to_t_address(value) -> converted {\n converted := convert_t_contract$_ParentContract_$894_to_t_uint160(value)\n }\n\n function convert_t_contract$_ParentContract_$894_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(value)\n }\n\n function store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33(memPtr) {\n\n mstore(add(memPtr, 0), \"Need to create contract\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_ParentContract_$920_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ParentContract_$920_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ParentContract_$920_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ParentContract_$920__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ParentContract_$920_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33(memPtr) {\n\n mstore(add(memPtr, 0), \"Need to create contract\")\n\n }\n\n function abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_21b553c9848f62a9f7929617e906796c63446a8776f03fbc1a6e83209767eb33_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -1238,10 +1964,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80630f24df3a14610046578063412a5a6d14610050578063474da79a1461005a575b600080fd5b61004e61008a565b005b610058610197565b005b610074600480360381019061006f91906102ce565b61026d565b6040516100819190610329565b60405180910390f35b60008080549050116100d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c890610344565b60405180910390fd5b6000808154811061010b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3a4ba316040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561017d57600080fd5b505af1158015610191573d6000803e3d6000fd5b50505050565b60006040516101a5906102ac565b604051809103906000f0801580156101c1573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167f6837ff1e738d95fc8bb5f12ce1513f42866f6c59c226c77342c4f36a1958ea1060405160405180910390a26000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818154811061027d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105948061040483390190565b6000813590506102c8816103ec565b92915050565b6000602082840312156102e057600080fd5b60006102ee848285016102b9565b91505092915050565b6103008161039f565b82525050565b6000610313601783610364565b915061031e826103c3565b602082019050919050565b600060208201905061033e60008301846102f7565b92915050565b6000602082019050818103600083015261035d81610306565b9050919050565b600082825260208201905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006103aa826103b1565b9050919050565b60006103bc82610375565b9050919050565b7f4e65656420746f2063726561746520636f6e7472616374000000000000000000600082015250565b6103f581610395565b811461040057600080fd5b5056fe608060405234801561001057600080fd5b5060405161001d906100e1565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100ed565b60d9806104bb83390190565b6103bf806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806395bc992814610046578063a3a4ba3114610076578063e626223a14610080575b600080fd5b610060600480360381019061005b91906101f8565b61009e565b60405161006d9190610230565b60405180910390f35b61007e6100dd565b005b6100886101b3565b6040516100959190610230565b60405180910390f35b600181815481106100ae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006040516100eb906101d7565b604051809103906000f080158015610107573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60d9806102b183390190565b6000813590506101f281610299565b92915050565b60006020828403121561020a57600080fd5b6000610218848285016101e3565b91505092915050565b61022a81610275565b82525050565b60006020820190506102456000830184610221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061028082610287565b9050919050565b60006102928261024b565b9050919050565b6102a28161026b565b81146102ad57600080fd5b5056fe608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a2646970667358221220f904ea606654d028fdb9d8a4952d536bfd0251804ad6c0861d3762fbd56dfb4d64736f6c63430008020033608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a26469706673582212204f18b58ddf076da846e4a52786442c970e345817e7e30610510ab800196696ac64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF24DF3A EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x412A5A6D EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x474DA79A EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x197 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x74 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6F SWAP2 SWAP1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP GT PUSH2 0xD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC8 SWAP1 PUSH2 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP2 SLOAD DUP2 LT PUSH2 0x10B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA3A4BA31 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x191 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP1 PUSH2 0x2AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x1C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6837FF1E738D95FC8BB5F12CE1513F42866F6C59C226C77342C4F36A1958EA10 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x594 DUP1 PUSH2 0x404 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2C8 DUP2 PUSH2 0x3EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP5 DUP3 DUP6 ADD PUSH2 0x2B9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x300 DUP2 PUSH2 0x39F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x313 PUSH1 0x17 DUP4 PUSH2 0x364 JUMP JUMPDEST SWAP2 POP PUSH2 0x31E DUP3 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x33E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x35D DUP2 PUSH2 0x306 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP3 PUSH2 0x3B1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BC DUP3 PUSH2 0x375 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E65656420746F2063726561746520636F6E7472616374000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x3F5 DUP2 PUSH2 0x395 JUMP JUMPDEST DUP2 EQ PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1D SWAP1 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xED JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x4BB DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3BF DUP1 PUSH2 0xFC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x1B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xEB SWAP1 PUSH2 0x1D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x107 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x2B1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F2 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP5 DUP3 DUP6 ADD PUSH2 0x1E3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22A DUP2 PUSH2 0x275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x245 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280 DUP3 PUSH2 0x287 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x292 DUP3 PUSH2 0x24B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A2 DUP2 PUSH2 0x26B JUMP JUMPDEST DUP2 EQ PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 DIV 0xEA PUSH1 0x66 SLOAD 0xD0 0x28 REVERT 0xB9 0xD8 LOG4 SWAP6 0x2D MSTORE8 PUSH12 0xFD0251804AD6C0861D3762FB 0xD5 PUSH14 0xFB4D64736F6C6343000802003360 DUP1 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F XOR 0xB5 DUP14 0xDF SMOD PUSH14 0xA846E4A52786442C970E345817E7 0xE3 MOD LT MLOAD EXP 0xB8 STOP NOT PUSH7 0x96AC64736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "71:490:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:158;;;:::i;:::-;;200:195;;;:::i;:::-;;161:33;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;401:158;470:1;451:9;:16;;;;:20;443:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;525:9;535:1;525:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:158::o;200:195::-;244:29;276:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;244:52;;331:14;311:36;;;;;;;;;;;;358:9;373:14;358:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;200:195;:::o;161:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:175::-;529:59;582:5;529:59;:::i;:::-;524:3;517:72;507:88;;:::o;601:366::-;;764:67;828:2;823:3;764:67;:::i;:::-;757:74;;840:93;929:3;840:93;:::i;:::-;958:2;953:3;949:12;942:19;;747:220;;;:::o;973:266::-;;1126:2;1115:9;1111:18;1103:26;;1139:93;1229:1;1218:9;1214:17;1205:6;1139:93;:::i;:::-;1093:146;;;;:::o;1245:419::-;;1449:2;1438:9;1434:18;1426:26;;1498:9;1492:4;1488:20;1484:1;1473:9;1469:17;1462:47;1526:131;1652:4;1526:131;:::i;:::-;1518:139;;1416:248;;;:::o;1670:169::-;;1788:6;1783:3;1776:19;1828:4;1823:3;1819:14;1804:29;;1766:73;;;;:::o;1845:126::-;;1922:42;1915:5;1911:54;1900:65;;1890:81;;;:::o;1977:77::-;;2043:5;2032:16;;2022:32;;;:::o;2060:170::-;;2165:59;2218:5;2165:59;:::i;:::-;2152:72;;2142:88;;;:::o;2236:135::-;;2341:24;2359:5;2341:24;:::i;:::-;2328:37;;2318:53;;;:::o;2377:173::-;2517:25;2513:1;2505:6;2501:14;2494:49;2483:67;:::o;2556:122::-;2629:24;2647:5;2629:24;:::i;:::-;2622:5;2619:35;2609:2;;2668:1;2665;2658:12;2609:2;2599:79;:::o" + "object": "608060405234801561000f575f80fd5b506004361061003f575f3560e01c80630f24df3a14610043578063412a5a6d1461004d578063474da79a14610057575b5f80fd5b61004b610087565b005b610055610164565b005b610071600480360381019061006c91906102b0565b610232565b60405161007e9190610355565b60405180910390f35b5f8080549050116100cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c4906103c8565b60405180910390fd5b5f80815481106100e0576100df6103e6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3a4ba316040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561014c575f80fd5b505af115801561015e573d5f803e3d5ffd5b50505050565b5f6040516101719061026c565b604051809103905ff08015801561018a573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167f6837ff1e738d95fc8bb5f12ce1513f42866f6c59c226c77342c4f36a1958ea1060405160405180910390a25f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8181548110610240575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61058f8061041483390190565b5f80fd5b5f819050919050565b61028f8161027d565b8114610299575f80fd5b50565b5f813590506102aa81610286565b92915050565b5f602082840312156102c5576102c4610279565b5b5f6102d28482850161029c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61031d610318610313846102db565b6102fa565b6102db565b9050919050565b5f61032e82610303565b9050919050565b5f61033f82610324565b9050919050565b61034f81610335565b82525050565b5f6020820190506103685f830184610346565b92915050565b5f82825260208201905092915050565b7f4e65656420746f2063726561746520636f6e74726163740000000000000000005f82015250565b5f6103b260178361036e565b91506103bd8261037e565b602082019050919050565b5f6020820190508181035f8301526103df816103a6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfe608060405234801561000f575f80fd5b5060405161001c906100db565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100e7565b60ce806104c183390190565b6103cd806100f45f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806395bc992814610043578063a3a4ba3114610073578063e626223a1461007d575b5f80fd5b61005d6004803603810190610058919061020b565b61009b565b60405161006a91906102b0565b60405180910390f35b61007b6100d6565b005b6100856101a5565b60405161009291906102b0565b60405180910390f35b600181815481106100aa575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6040516100e3906101c8565b604051809103905ff0801580156100fc573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a2600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ce806102ca83390190565b5f80fd5b5f819050919050565b6101ea816101d8565b81146101f4575f80fd5b50565b5f81359050610205816101e1565b92915050565b5f602082840312156102205761021f6101d4565b5b5f61022d848285016101f7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61027861027361026e84610236565b610255565b610236565b9050919050565b5f6102898261025e565b9050919050565b5f61029a8261027f565b9050919050565b6102aa81610290565b82525050565b5f6020820190506102c35f8301846102a1565b9291505056fe608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a2646970667358221220c9c09a08caefd974beccc16baae32ae66423ea9926d141d7ebc4286d930707f964736f6c63430008180033608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a26469706673582212204a5e247be2849025c84f7a8425ed83c4c6478ce685584e7a64814343701c368964736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF24DF3A EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x412A5A6D EQ PUSH2 0x4D JUMPI DUP1 PUSH4 0x474DA79A EQ PUSH2 0x57 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x4B PUSH2 0x87 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x55 PUSH2 0x164 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x71 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7E SWAP2 SWAP1 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP GT PUSH2 0xCD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4 SWAP1 PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP2 LT PUSH2 0xE0 JUMPI PUSH2 0xDF PUSH2 0x3E6 JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA3A4BA31 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH2 0x171 SWAP1 PUSH2 0x26C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x18A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x6837FF1E738D95FC8BB5F12CE1513F42866F6C59C226C77342C4F36A1958EA10 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x240 JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x58F DUP1 PUSH2 0x414 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28F DUP2 PUSH2 0x27D JUMP JUMPDEST DUP2 EQ PUSH2 0x299 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2AA DUP2 PUSH2 0x286 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C5 JUMPI PUSH2 0x2C4 PUSH2 0x279 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2D2 DUP5 DUP3 DUP6 ADD PUSH2 0x29C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x31D PUSH2 0x318 PUSH2 0x313 DUP5 PUSH2 0x2DB JUMP JUMPDEST PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x2DB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x32E DUP3 PUSH2 0x303 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x33F DUP3 PUSH2 0x324 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F DUP2 PUSH2 0x335 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x368 PUSH0 DUP4 ADD DUP5 PUSH2 0x346 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E65656420746F2063726561746520636F6E7472616374000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x3B2 PUSH1 0x17 DUP4 PUSH2 0x36E JUMP JUMPDEST SWAP2 POP PUSH2 0x3BD DUP3 PUSH2 0x37E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x3DF DUP2 PUSH2 0x3A6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C SWAP1 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x35 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xE7 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x4C1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3CD DUP1 PUSH2 0xF4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x73 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x7D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x20B JUMP JUMPDEST PUSH2 0x9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7B PUSH2 0xD6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x85 PUSH2 0x1A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x92 SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP1 PUSH2 0x1C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xFC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x2CA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x1D8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x205 DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x220 JUMPI PUSH2 0x21F PUSH2 0x1D4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22D DUP5 DUP3 DUP6 ADD PUSH2 0x1F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x278 PUSH2 0x273 PUSH2 0x26E DUP5 PUSH2 0x236 JUMP JUMPDEST PUSH2 0x255 JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x289 DUP3 PUSH2 0x25E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x29A DUP3 PUSH2 0x27F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AA DUP2 PUSH2 0x290 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C3 PUSH0 DUP4 ADD DUP5 PUSH2 0x2A1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 0xC0 SWAP11 ADDMOD 0xCA 0xEF 0xD9 PUSH21 0xBECCC16BAAE32AE66423EA9926D141D7EBC4286D93 SMOD SMOD 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOBBASEFEE MCOPY 0x24 PUSH28 0xE2849025C84F7A8425ED83C4C6478CE685584E7A64814343701C3689 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "71:490:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:158;;;:::i;:::-;;200:195;;;:::i;:::-;;161:33;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;401:158;470:1;451:9;:16;;;;:20;443:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;525:9;535:1;525:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;510:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:158::o;200:195::-;244:29;276:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;244:52;;331:14;311:36;;;;;;;;;;;;358:9;373:14;358:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:161;200:195::o;161:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;88:117:17:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:60::-;1185:3;1206:5;1199:12;;1157:60;;;:::o;1223:142::-;1273:9;1306:53;1324:34;1333:24;1351:5;1333:24;:::i;:::-;1324:34;:::i;:::-;1306:53;:::i;:::-;1293:66;;1223:142;;;:::o;1371:126::-;1421:9;1454:37;1485:5;1454:37;:::i;:::-;1441:50;;1371:126;;;:::o;1503:148::-;1575:9;1608:37;1639:5;1608:37;:::i;:::-;1595:50;;1503:148;;;:::o;1657:175::-;1766:59;1819:5;1766:59;:::i;:::-;1761:3;1754:72;1657:175;;:::o;1838:266::-;1953:4;1991:2;1980:9;1976:18;1968:26;;2004:93;2094:1;2083:9;2079:17;2070:6;2004:93;:::i;:::-;1838:266;;;;:::o;2110:169::-;2194:11;2228:6;2223:3;2216:19;2268:4;2263:3;2259:14;2244:29;;2110:169;;;;:::o;2285:173::-;2425:25;2421:1;2413:6;2409:14;2402:49;2285:173;:::o;2464:366::-;2606:3;2627:67;2691:2;2686:3;2627:67;:::i;:::-;2620:74;;2703:93;2792:3;2703:93;:::i;:::-;2821:2;2816:3;2812:12;2805:19;;2464:366;;;:::o;2836:419::-;3002:4;3040:2;3029:9;3025:18;3017:26;;3089:9;3083:4;3079:20;3075:1;3064:9;3060:17;3053:47;3117:131;3243:4;3117:131;:::i;:::-;3109:139;;2836:419;;;:::o;3261:180::-;3309:77;3306:1;3299:88;3406:4;3403:1;3396:15;3430:4;3427:1;3420:15" } }, - "bytecode": "608060405234801561001057600080fd5b506109cd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f24df3a14610046578063412a5a6d14610050578063474da79a1461005a575b600080fd5b61004e61008a565b005b610058610197565b005b610074600480360381019061006f91906102ce565b61026d565b6040516100819190610329565b60405180910390f35b60008080549050116100d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c890610344565b60405180910390fd5b6000808154811061010b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3a4ba316040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561017d57600080fd5b505af1158015610191573d6000803e3d6000fd5b50505050565b60006040516101a5906102ac565b604051809103906000f0801580156101c1573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167f6837ff1e738d95fc8bb5f12ce1513f42866f6c59c226c77342c4f36a1958ea1060405160405180910390a26000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818154811061027d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105948061040483390190565b6000813590506102c8816103ec565b92915050565b6000602082840312156102e057600080fd5b60006102ee848285016102b9565b91505092915050565b6103008161039f565b82525050565b6000610313601783610364565b915061031e826103c3565b602082019050919050565b600060208201905061033e60008301846102f7565b92915050565b6000602082019050818103600083015261035d81610306565b9050919050565b600082825260208201905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006103aa826103b1565b9050919050565b60006103bc82610375565b9050919050565b7f4e65656420746f2063726561746520636f6e7472616374000000000000000000600082015250565b6103f581610395565b811461040057600080fd5b5056fe608060405234801561001057600080fd5b5060405161001d906100e1565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100ed565b60d9806104bb83390190565b6103bf806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806395bc992814610046578063a3a4ba3114610076578063e626223a14610080575b600080fd5b610060600480360381019061005b91906101f8565b61009e565b60405161006d9190610230565b60405180910390f35b61007e6100dd565b005b6100886101b3565b6040516100959190610230565b60405180910390f35b600181815481106100ae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006040516100eb906101d7565b604051809103906000f080158015610107573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60d9806102b183390190565b6000813590506101f281610299565b92915050565b60006020828403121561020a57600080fd5b6000610218848285016101e3565b91505092915050565b61022a81610275565b82525050565b60006020820190506102456000830184610221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061028082610287565b9050919050565b60006102928261024b565b9050919050565b6102a28161026b565b81146102ad57600080fd5b5056fe608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a2646970667358221220f904ea606654d028fdb9d8a4952d536bfd0251804ad6c0861d3762fbd56dfb4d64736f6c63430008020033608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a26469706673582212204f18b58ddf076da846e4a52786442c970e345817e7e30610510ab800196696ac64736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506109d88061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80630f24df3a14610043578063412a5a6d1461004d578063474da79a14610057575b5f80fd5b61004b610087565b005b610055610164565b005b610071600480360381019061006c91906102b0565b610232565b60405161007e9190610355565b60405180910390f35b5f8080549050116100cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c4906103c8565b60405180910390fd5b5f80815481106100e0576100df6103e6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a3a4ba316040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561014c575f80fd5b505af115801561015e573d5f803e3d5ffd5b50505050565b5f6040516101719061026c565b604051809103905ff08015801561018a573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167f6837ff1e738d95fc8bb5f12ce1513f42866f6c59c226c77342c4f36a1958ea1060405160405180910390a25f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8181548110610240575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61058f8061041483390190565b5f80fd5b5f819050919050565b61028f8161027d565b8114610299575f80fd5b50565b5f813590506102aa81610286565b92915050565b5f602082840312156102c5576102c4610279565b5b5f6102d28482850161029c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61031d610318610313846102db565b6102fa565b6102db565b9050919050565b5f61032e82610303565b9050919050565b5f61033f82610324565b9050919050565b61034f81610335565b82525050565b5f6020820190506103685f830184610346565b92915050565b5f82825260208201905092915050565b7f4e65656420746f2063726561746520636f6e74726163740000000000000000005f82015250565b5f6103b260178361036e565b91506103bd8261037e565b602082019050919050565b5f6020820190508181035f8301526103df816103a6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfe608060405234801561000f575f80fd5b5060405161001c906100db565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100e7565b60ce806104c183390190565b6103cd806100f45f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806395bc992814610043578063a3a4ba3114610073578063e626223a1461007d575b5f80fd5b61005d6004803603810190610058919061020b565b61009b565b60405161006a91906102b0565b60405180910390f35b61007b6100d6565b005b6100856101a5565b60405161009291906102b0565b60405180910390f35b600181815481106100aa575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6040516100e3906101c8565b604051809103905ff0801580156100fc573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a2600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ce806102ca83390190565b5f80fd5b5f819050919050565b6101ea816101d8565b81146101f4575f80fd5b50565b5f81359050610205816101e1565b92915050565b5f602082840312156102205761021f6101d4565b5b5f61022d848285016101f7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61027861027361026e84610236565b610255565b610236565b9050919050565b5f6102898261025e565b9050919050565b5f61029a8261027f565b9050919050565b6102aa81610290565b82525050565b5f6020820190506102c35f8301846102a1565b9291505056fe608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a2646970667358221220c9c09a08caefd974beccc16baae32ae66423ea9926d141d7ebc4286d930707f964736f6c63430008180033608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a26469706673582212204a5e247be2849025c84f7a8425ed83c4c6478ce685584e7a64814343701c368964736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/ECRecoverTests.json b/ts-tests/build/ECRecoverTests.json index 1689088264..e42c939947 100644 --- a/ts-tests/build/ECRecoverTests.json +++ b/ts-tests/build/ECRecoverTests.json @@ -22,505 +22,729 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610451806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634bef793914610030575b600080fd5b61004a6004803603810190610045919061018a565b610060565b604051610057919061026f565b60405180910390f35b60606000600190506000808273ffffffffffffffffffffffffffffffffffffffff16856040516100909190610258565b6000604051808303816000865af19150503d80600081146100cd576040519150601f19603f3d011682016040523d82523d6000602084013e6100d2565b606091505b509150915081610117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010e90610291565b60405180910390fd5b809350505050919050565b6000610135610130846102d6565b6102b1565b90508281526020810184848401111561014d57600080fd5b61015884828561033f565b509392505050565b600082601f83011261017157600080fd5b8135610181848260208601610122565b91505092915050565b60006020828403121561019c57600080fd5b600082013567ffffffffffffffff8111156101b657600080fd5b6101c284828501610160565b91505092915050565b60006101d682610307565b6101e08185610312565b93506101f081856020860161034e565b6101f9816103e1565b840191505092915050565b600061020f82610307565b6102198185610323565b935061022981856020860161034e565b80840191505092915050565b600061024260188361032e565b915061024d826103f2565b602082019050919050565b60006102648284610204565b915081905092915050565b6000602082019050818103600083015261028981846101cb565b905092915050565b600060208201905081810360008301526102aa81610235565b9050919050565b60006102bb6102cc565b90506102c78282610381565b919050565b6000604051905090565b600067ffffffffffffffff8211156102f1576102f06103b2565b5b6102fa826103e1565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b82818337600083830152505050565b60005b8381101561036c578082015181840152602081019050610351565b8381111561037b576000848401525b50505050565b61038a826103e1565b810181811067ffffffffffffffff821117156103a9576103a86103b2565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f65637265636f7665722061646472657373206661696c6564000000000000000060008201525056fea26469706673582212204992e35783728f6515e5af7155adbbe18becd915d688d02f8619097136515f9364736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x451 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BEF7939 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x26F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x258 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCD JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xD2 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x117 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E SWAP1 PUSH2 0x291 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135 PUSH2 0x130 DUP5 PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x2B1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x158 DUP5 DUP3 DUP6 PUSH2 0x33F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x181 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x122 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2 DUP5 DUP3 DUP6 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6 DUP3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x1E0 DUP2 DUP6 PUSH2 0x312 JUMP JUMPDEST SWAP4 POP PUSH2 0x1F0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x34E JUMP JUMPDEST PUSH2 0x1F9 DUP2 PUSH2 0x3E1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F DUP3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x219 DUP2 DUP6 PUSH2 0x323 JUMP JUMPDEST SWAP4 POP PUSH2 0x229 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x34E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x242 PUSH1 0x18 DUP4 PUSH2 0x32E JUMP JUMPDEST SWAP2 POP PUSH2 0x24D DUP3 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264 DUP3 DUP5 PUSH2 0x204 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x289 DUP2 DUP5 PUSH2 0x1CB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2AA DUP2 PUSH2 0x235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BB PUSH2 0x2CC JUMP JUMPDEST SWAP1 POP PUSH2 0x2C7 DUP3 DUP3 PUSH2 0x381 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2F1 JUMPI PUSH2 0x2F0 PUSH2 0x3B2 JUMP JUMPDEST JUMPDEST PUSH2 0x2FA DUP3 PUSH2 0x3E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x36C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x351 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x38A DUP3 PUSH2 0x3E1 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3A9 JUMPI PUSH2 0x3A8 PUSH2 0x3B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x65637265636F7665722061646472657373206661696C65640000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 SWAP3 0xE3 JUMPI DUP4 PUSH19 0x8F6515E5AF7155ADBBE18BECD915D688D02F86 NOT MULMOD PUSH18 0x36515F9364736F6C63430008020033000000 ", - "sourceMap": "70:361:6:-:0;;;;;;;;;;;;;;;;;;;" + "object": "608060405234801561000f575f80fd5b506104458061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80634bef79391461002d575b5f80fd5b61004760048036038101906100429190610266565b61005d565b6040516100549190610327565b60405180910390f35b60605f600190505f808273ffffffffffffffffffffffffffffffffffffffff168560405161008b9190610381565b5f604051808303815f865af19150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b50915091508161010e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610105906103f1565b60405180910390fd5b809350505050919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61017882610132565b810181811067ffffffffffffffff8211171561019757610196610142565b5b80604052505050565b5f6101a9610119565b90506101b5828261016f565b919050565b5f67ffffffffffffffff8211156101d4576101d3610142565b5b6101dd82610132565b9050602081019050919050565b828183375f83830152505050565b5f61020a610205846101ba565b6101a0565b9050828152602081018484840111156102265761022561012e565b5b6102318482856101ea565b509392505050565b5f82601f83011261024d5761024c61012a565b5b813561025d8482602086016101f8565b91505092915050565b5f6020828403121561027b5761027a610122565b5b5f82013567ffffffffffffffff81111561029857610297610126565b5b6102a484828501610239565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102e45780820151818401526020810190506102c9565b5f8484015250505050565b5f6102f9826102ad565b61030381856102b7565b93506103138185602086016102c7565b61031c81610132565b840191505092915050565b5f6020820190508181035f83015261033f81846102ef565b905092915050565b5f81905092915050565b5f61035b826102ad565b6103658185610347565b93506103758185602086016102c7565b80840191505092915050565b5f61038c8284610351565b915081905092915050565b5f82825260208201905092915050565b7f65637265636f7665722061646472657373206661696c656400000000000000005f82015250565b5f6103db601883610397565b91506103e6826103a7565b602082019050919050565b5f6020820190508181035f830152610408816103cf565b905091905056fea2646970667358221220f761f8147d1d4e050a06cc9309096780354632ef81546c996dba3c222e67b02664736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x445 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BEF7939 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0x266 JUMP JUMPDEST PUSH2 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x54 SWAP2 SWAP1 PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x1 SWAP1 POP PUSH0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x381 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0xC4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xC9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x10E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x105 SWAP1 PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x178 DUP3 PUSH2 0x132 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x197 JUMPI PUSH2 0x196 PUSH2 0x142 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A9 PUSH2 0x119 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B5 DUP3 DUP3 PUSH2 0x16F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1D4 JUMPI PUSH2 0x1D3 PUSH2 0x142 JUMP JUMPDEST JUMPDEST PUSH2 0x1DD DUP3 PUSH2 0x132 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20A PUSH2 0x205 DUP5 PUSH2 0x1BA JUMP JUMPDEST PUSH2 0x1A0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x226 JUMPI PUSH2 0x225 PUSH2 0x12E JUMP JUMPDEST JUMPDEST PUSH2 0x231 DUP5 DUP3 DUP6 PUSH2 0x1EA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x24D JUMPI PUSH2 0x24C PUSH2 0x12A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27B JUMPI PUSH2 0x27A PUSH2 0x122 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x298 JUMPI PUSH2 0x297 PUSH2 0x126 JUMP JUMPDEST JUMPDEST PUSH2 0x2A4 DUP5 DUP3 DUP6 ADD PUSH2 0x239 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E4 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2C9 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2F9 DUP3 PUSH2 0x2AD JUMP JUMPDEST PUSH2 0x303 DUP2 DUP6 PUSH2 0x2B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x313 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2C7 JUMP JUMPDEST PUSH2 0x31C DUP2 PUSH2 0x132 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x33F DUP2 DUP5 PUSH2 0x2EF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x35B DUP3 PUSH2 0x2AD JUMP JUMPDEST PUSH2 0x365 DUP2 DUP6 PUSH2 0x347 JUMP JUMPDEST SWAP4 POP PUSH2 0x375 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2C7 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x38C DUP3 DUP5 PUSH2 0x351 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x65637265636F7665722061646472657373206661696C65640000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x3DB PUSH1 0x18 DUP4 PUSH2 0x397 JUMP JUMPDEST SWAP2 POP PUSH2 0x3E6 DUP3 PUSH2 0x3A7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x408 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 PUSH2 0xF814 PUSH30 0x1D4E050A06CC9309096780354632EF81546C996DBA3C222E67B02664736F PUSH13 0x63430008180033000000000000 ", + "sourceMap": "71:361:6:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@ecrecoverTest_965": { + "entryPoint": 93, + "id": 965, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 504, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 569, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes_memory_ptr": { + "entryPoint": 614, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 751, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 849, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack": { + "entryPoint": 975, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 897, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 807, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1009, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 416, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 281, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 442, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 685, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 695, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 839, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 919, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 490, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 711, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 367, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 322, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 298, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 302, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 294, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 290, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 306, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307": { + "entryPoint": 935, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:6255:17", "nodeType": "YulBlock", - "src": "0:5525:17", + "src": "0:6255:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "90:260:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "100:74:17", + "src": "57:19:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "166:6:17" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "125:40:17" - }, - "nodeType": "YulFunctionCall", - "src": "125:48:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "allocate_memory", + "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "109:15:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "109:65:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "array", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "100:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ { "expression": { "arguments": [ { - "name": "array", - "nodeType": "YulIdentifier", - "src": "190:5:17" + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "197:6:17" + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", + "name": "revert", + "nativeSrc": "187:6:17", "nodeType": "YulIdentifier", - "src": "183:6:17" + "src": "187:6:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulFunctionCall", - "src": "183:21:17" + "src": "187:12:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulExpressionStatement", - "src": "183:21:17" - }, + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "213:27:17", - "value": { + "expression": { "arguments": [ { - "name": "array", - "nodeType": "YulIdentifier", - "src": "228:5:17" + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "320:1:17", "nodeType": "YulLiteral", - "src": "235:4:17", + "src": "320:1:17", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { - "name": "add", + "name": "revert", + "nativeSrc": "310:6:17", "nodeType": "YulIdentifier", - "src": "224:3:17" + "src": "310:6:17" }, + "nativeSrc": "310:12:17", "nodeType": "YulFunctionCall", - "src": "224:16:17" + "src": "310:12:17" }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "217:3:17", - "type": "" - } - ] - }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "423:28:17", + "nodeType": "YulBlock", + "src": "423:28:17", + "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "278:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "287:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "290:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "280:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "280:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "280:12:17" + "kind": "number", + "nativeSrc": "440:1:17", + "nodeType": "YulLiteral", + "src": "440:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:17", + "nodeType": "YulLiteral", + "src": "443:1:17", + "type": "", + "value": "0" } - ] + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:17", + "nodeType": "YulIdentifier", + "src": "433:6:17" + }, + "nativeSrc": "433:12:17", + "nodeType": "YulFunctionCall", + "src": "433:12:17" }, - "condition": { + "nativeSrc": "433:12:17", + "nodeType": "YulExpressionStatement", + "src": "433:12:17" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:17", + "nodeType": "YulFunctionDefinition", + "src": "334:117:17" + }, + { + "body": { + "nativeSrc": "546:28:17", + "nodeType": "YulBlock", + "src": "546:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:17", + "nodeType": "YulLiteral", + "src": "563:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:17", + "nodeType": "YulLiteral", + "src": "566:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:17", + "nodeType": "YulIdentifier", + "src": "556:6:17" + }, + "nativeSrc": "556:12:17", + "nodeType": "YulFunctionCall", + "src": "556:12:17" + }, + "nativeSrc": "556:12:17", + "nodeType": "YulExpressionStatement", + "src": "556:12:17" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:17", + "nodeType": "YulFunctionDefinition", + "src": "457:117:17" + }, + { + "body": { + "nativeSrc": "628:54:17", + "nodeType": "YulBlock", + "src": "628:54:17", + "statements": [ + { + "nativeSrc": "638:38:17", + "nodeType": "YulAssignment", + "src": "638:38:17", + "value": { "arguments": [ { "arguments": [ { - "name": "src", + "name": "value", + "nativeSrc": "656:5:17", "nodeType": "YulIdentifier", - "src": "259:3:17" + "src": "656:5:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "264:6:17" + "kind": "number", + "nativeSrc": "663:2:17", + "nodeType": "YulLiteral", + "src": "663:2:17", + "type": "", + "value": "31" } ], "functionName": { "name": "add", + "nativeSrc": "652:3:17", "nodeType": "YulIdentifier", - "src": "255:3:17" + "src": "652:3:17" }, + "nativeSrc": "652:14:17", "nodeType": "YulFunctionCall", - "src": "255:16:17" + "src": "652:14:17" }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "273:3:17" + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:17", + "nodeType": "YulLiteral", + "src": "672:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:17", + "nodeType": "YulIdentifier", + "src": "668:3:17" + }, + "nativeSrc": "668:7:17", + "nodeType": "YulFunctionCall", + "src": "668:7:17" } ], "functionName": { - "name": "gt", + "name": "and", + "nativeSrc": "648:3:17", "nodeType": "YulIdentifier", - "src": "252:2:17" + "src": "648:3:17" }, + "nativeSrc": "648:28:17", "nodeType": "YulFunctionCall", - "src": "252:25:17" + "src": "648:28:17" }, - "nodeType": "YulIf", - "src": "249:2:17" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "327:3:17" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "332:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "337:6:17" - } - ], - "functionName": { - "name": "copy_calldata_to_memory", + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:17", "nodeType": "YulIdentifier", - "src": "303:23:17" - }, - "nodeType": "YulFunctionCall", - "src": "303:41:17" - }, - "nodeType": "YulExpressionStatement", - "src": "303:41:17" + "src": "638:6:17" + } + ] } ] }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nodeType": "YulTypedName", - "src": "63:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "68:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "611:5:17", "nodeType": "YulTypedName", - "src": "76:3:17", + "src": "611:5:17", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "result", + "nativeSrc": "621:6:17", "nodeType": "YulTypedName", - "src": "84:5:17", + "src": "621:6:17", "type": "" } ], - "src": "7:343:17" + "src": "580:102:17" }, { "body": { + "nativeSrc": "716:152:17", "nodeType": "YulBlock", - "src": "430:210:17", + "src": "716:152:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "479:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "488:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "491:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "481:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "481:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "481:12:17" + "kind": "number", + "nativeSrc": "733:1:17", + "nodeType": "YulLiteral", + "src": "733:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:17", + "nodeType": "YulLiteral", + "src": "736:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } - ] + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:17", + "nodeType": "YulIdentifier", + "src": "726:6:17" + }, + "nativeSrc": "726:88:17", + "nodeType": "YulFunctionCall", + "src": "726:88:17" }, - "condition": { + "nativeSrc": "726:88:17", + "nodeType": "YulExpressionStatement", + "src": "726:88:17" + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "458:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "466:4:17", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "454:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "454:17:17" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "473:3:17" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "450:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "450:27:17" + "kind": "number", + "nativeSrc": "830:1:17", + "nodeType": "YulLiteral", + "src": "830:1:17", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:17", + "nodeType": "YulLiteral", + "src": "833:4:17", + "type": "", + "value": "0x41" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "823:6:17", "nodeType": "YulIdentifier", - "src": "443:6:17" + "src": "823:6:17" }, + "nativeSrc": "823:15:17", "nodeType": "YulFunctionCall", - "src": "443:35:17" + "src": "823:15:17" }, - "nodeType": "YulIf", - "src": "440:2:17" + "nativeSrc": "823:15:17", + "nodeType": "YulExpressionStatement", + "src": "823:15:17" }, { - "nodeType": "YulVariableDeclaration", - "src": "504:34:17", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "531:6:17" + "kind": "number", + "nativeSrc": "854:1:17", + "nodeType": "YulLiteral", + "src": "854:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:17", + "nodeType": "YulLiteral", + "src": "857:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "calldataload", + "name": "revert", + "nativeSrc": "847:6:17", "nodeType": "YulIdentifier", - "src": "518:12:17" + "src": "847:6:17" }, + "nativeSrc": "847:15:17", "nodeType": "YulFunctionCall", - "src": "518:20:17" + "src": "847:15:17" }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "508:6:17", - "type": "" - } - ] - }, + "nativeSrc": "847:15:17", + "nodeType": "YulExpressionStatement", + "src": "847:15:17" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:17", + "nodeType": "YulFunctionDefinition", + "src": "688:180:17" + }, + { + "body": { + "nativeSrc": "917:238:17", + "nodeType": "YulBlock", + "src": "917:238:17", + "statements": [ { - "nodeType": "YulAssignment", - "src": "547:87:17", + "nativeSrc": "927:58:17", + "nodeType": "YulVariableDeclaration", + "src": "927:58:17", "value": { "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:17", + "nodeType": "YulIdentifier", + "src": "949:6:17" + }, { "arguments": [ { - "name": "offset", + "name": "size", + "nativeSrc": "979:4:17", "nodeType": "YulIdentifier", - "src": "607:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "615:4:17", - "type": "", - "value": "0x20" + "src": "979:4:17" } ], "functionName": { - "name": "add", + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:17", "nodeType": "YulIdentifier", - "src": "603:3:17" + "src": "957:21:17" }, + "nativeSrc": "957:27:17", "nodeType": "YulFunctionCall", - "src": "603:17:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "622:6:17" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "630:3:17" + "src": "957:27:17" } ], "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", + "name": "add", + "nativeSrc": "945:3:17", "nodeType": "YulIdentifier", - "src": "556:46:17" + "src": "945:3:17" }, + "nativeSrc": "945:40:17", "nodeType": "YulFunctionCall", - "src": "556:78:17" + "src": "945:40:17" }, - "variableNames": [ + "variables": [ { - "name": "array", - "nodeType": "YulIdentifier", - "src": "547:5:17" + "name": "newFreePtr", + "nativeSrc": "931:10:17", + "nodeType": "YulTypedName", + "src": "931:10:17", + "type": "" } ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "408:6:17", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "416:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "424:5:17", - "type": "" - } - ], - "src": "369:271:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "721:298:17", - "statements": [ + }, { "body": { + "nativeSrc": "1096:22:17", "nodeType": "YulBlock", - "src": "767:16:17", + "src": "1096:22:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "776:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "779:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x41", + "nativeSrc": "1098:16:17", "nodeType": "YulIdentifier", - "src": "769:6:17" + "src": "1098:16:17" }, + "nativeSrc": "1098:18:17", "nodeType": "YulFunctionCall", - "src": "769:12:17" + "src": "1098:18:17" }, + "nativeSrc": "1098:18:17", "nodeType": "YulExpressionStatement", - "src": "769:12:17" + "src": "1098:18:17" } ] }, @@ -529,295 +753,153 @@ { "arguments": [ { - "name": "dataEnd", + "name": "newFreePtr", + "nativeSrc": "1039:10:17", "nodeType": "YulIdentifier", - "src": "742:7:17" + "src": "1039:10:17" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "751:9:17" + "kind": "number", + "nativeSrc": "1051:18:17", + "nodeType": "YulLiteral", + "src": "1051:18:17", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "sub", + "name": "gt", + "nativeSrc": "1036:2:17", "nodeType": "YulIdentifier", - "src": "738:3:17" + "src": "1036:2:17" }, + "nativeSrc": "1036:34:17", "nodeType": "YulFunctionCall", - "src": "738:23:17" + "src": "1036:34:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "763:2:17", - "type": "", - "value": "32" + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:17", + "nodeType": "YulIdentifier", + "src": "1075:10:17" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:17", + "nodeType": "YulIdentifier", + "src": "1087:6:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:17", + "nodeType": "YulIdentifier", + "src": "1072:2:17" + }, + "nativeSrc": "1072:22:17", + "nodeType": "YulFunctionCall", + "src": "1072:22:17" } ], "functionName": { - "name": "slt", + "name": "or", + "nativeSrc": "1033:2:17", "nodeType": "YulIdentifier", - "src": "734:3:17" + "src": "1033:2:17" }, + "nativeSrc": "1033:62:17", "nodeType": "YulFunctionCall", - "src": "734:32:17" + "src": "1033:62:17" }, + "nativeSrc": "1030:88:17", "nodeType": "YulIf", - "src": "731:2:17" + "src": "1030:88:17" }, { - "nodeType": "YulBlock", - "src": "793:219:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "808:45:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "839:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "850:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "835:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "835:17:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "822:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "822:31:17" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "812:6:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "900:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "909:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "912:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "902:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "902:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "902:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "872:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "880:18:17", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "869:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "869:30:17" + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:17", + "nodeType": "YulLiteral", + "src": "1134:2:17", + "type": "", + "value": "64" }, - "nodeType": "YulIf", - "src": "866:2:17" + { + "name": "newFreePtr", + "nativeSrc": "1138:10:17", + "nodeType": "YulIdentifier", + "src": "1138:10:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:17", + "nodeType": "YulIdentifier", + "src": "1127:6:17" }, - { - "nodeType": "YulAssignment", - "src": "930:72:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "974:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "985:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "970:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "970:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "994:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "940:29:17" - }, - "nodeType": "YulFunctionCall", - "src": "940:62:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "930:6:17" - } - ] - } - ] + "nativeSrc": "1127:22:17", + "nodeType": "YulFunctionCall", + "src": "1127:22:17" + }, + "nativeSrc": "1127:22:17", + "nodeType": "YulExpressionStatement", + "src": "1127:22:17" } ] }, - "name": "abi_decode_tuple_t_bytes_memory_ptr", + "name": "finalize_allocation", + "nativeSrc": "874:281:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "memPtr", + "nativeSrc": "903:6:17", "nodeType": "YulTypedName", - "src": "691:9:17", + "src": "903:6:17", "type": "" }, { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "702:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "size", + "nativeSrc": "911:4:17", "nodeType": "YulTypedName", - "src": "714:6:17", + "src": "911:4:17", "type": "" } ], - "src": "646:373:17" + "src": "874:281:17" }, { "body": { + "nativeSrc": "1202:88:17", "nodeType": "YulBlock", - "src": "1115:270:17", + "src": "1202:88:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "1125:52:17", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1171:5:17" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "1139:31:17" - }, - "nodeType": "YulFunctionCall", - "src": "1139:38:17" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1129:6:17", - "type": "" - } - ] - }, - { + "nativeSrc": "1212:30:17", "nodeType": "YulAssignment", - "src": "1186:77:17", + "src": "1212:30:17", "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1251:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1256:6:17" - } - ], + "arguments": [], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "name": "allocate_unbounded", + "nativeSrc": "1222:18:17", "nodeType": "YulIdentifier", - "src": "1193:57:17" + "src": "1222:18:17" }, + "nativeSrc": "1222:20:17", "nodeType": "YulFunctionCall", - "src": "1193:70:17" + "src": "1222:20:17" }, "variableNames": [ { - "name": "pos", + "name": "memPtr", + "nativeSrc": "1212:6:17", "nodeType": "YulIdentifier", - "src": "1186:3:17" + "src": "1212:6:17" } ] }, @@ -825,1372 +907,1833 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1298:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1305:4:17", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1294:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1294:16:17" - }, - { - "name": "pos", + "name": "memPtr", + "nativeSrc": "1271:6:17", "nodeType": "YulIdentifier", - "src": "1312:3:17" + "src": "1271:6:17" }, { - "name": "length", + "name": "size", + "nativeSrc": "1279:4:17", "nodeType": "YulIdentifier", - "src": "1317:6:17" + "src": "1279:4:17" } ], "functionName": { - "name": "copy_memory_to_memory", + "name": "finalize_allocation", + "nativeSrc": "1251:19:17", "nodeType": "YulIdentifier", - "src": "1272:21:17" + "src": "1251:19:17" }, + "nativeSrc": "1251:33:17", "nodeType": "YulFunctionCall", - "src": "1272:52:17" + "src": "1251:33:17" }, + "nativeSrc": "1251:33:17", "nodeType": "YulExpressionStatement", - "src": "1272:52:17" - }, - { - "nodeType": "YulAssignment", - "src": "1333:46:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1344:3:17" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1371:6:17" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "1349:21:17" - }, - "nodeType": "YulFunctionCall", - "src": "1349:29:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1340:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1340:39:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1333:3:17" - } - ] + "src": "1251:33:17" } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "allocate_memory", + "nativeSrc": "1161:129:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "1096:5:17", - "type": "" - }, - { - "name": "pos", + "name": "size", + "nativeSrc": "1186:4:17", "nodeType": "YulTypedName", - "src": "1103:3:17", + "src": "1186:4:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "memPtr", + "nativeSrc": "1195:6:17", "nodeType": "YulTypedName", - "src": "1111:3:17", + "src": "1195:6:17", "type": "" } ], - "src": "1025:360:17" + "src": "1161:129:17" }, { "body": { + "nativeSrc": "1362:241:17", "nodeType": "YulBlock", - "src": "1499:265:17", + "src": "1362:241:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "1509:52:17", - "value": { + "body": { + "nativeSrc": "1467:22:17", + "nodeType": "YulBlock", + "src": "1467:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1469:16:17", + "nodeType": "YulIdentifier", + "src": "1469:16:17" + }, + "nativeSrc": "1469:18:17", + "nodeType": "YulFunctionCall", + "src": "1469:18:17" + }, + "nativeSrc": "1469:18:17", + "nodeType": "YulExpressionStatement", + "src": "1469:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value", + "name": "length", + "nativeSrc": "1439:6:17", "nodeType": "YulIdentifier", - "src": "1555:5:17" + "src": "1439:6:17" + }, + { + "kind": "number", + "nativeSrc": "1447:18:17", + "nodeType": "YulLiteral", + "src": "1447:18:17", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "array_length_t_bytes_memory_ptr", + "name": "gt", + "nativeSrc": "1436:2:17", "nodeType": "YulIdentifier", - "src": "1523:31:17" + "src": "1436:2:17" }, + "nativeSrc": "1436:30:17", "nodeType": "YulFunctionCall", - "src": "1523:38:17" + "src": "1436:30:17" }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1513:6:17", - "type": "" - } - ] + "nativeSrc": "1433:56:17", + "nodeType": "YulIf", + "src": "1433:56:17" }, { + "nativeSrc": "1499:37:17", "nodeType": "YulAssignment", - "src": "1570:95:17", + "src": "1499:37:17", "value": { "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1653:3:17" - }, { "name": "length", + "nativeSrc": "1529:6:17", "nodeType": "YulIdentifier", - "src": "1658:6:17" + "src": "1529:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "round_up_to_mul_of_32", + "nativeSrc": "1507:21:17", "nodeType": "YulIdentifier", - "src": "1577:75:17" + "src": "1507:21:17" }, + "nativeSrc": "1507:29:17", "nodeType": "YulFunctionCall", - "src": "1577:88:17" + "src": "1507:29:17" }, "variableNames": [ { - "name": "pos", + "name": "size", + "nativeSrc": "1499:4:17", "nodeType": "YulIdentifier", - "src": "1570:3:17" + "src": "1499:4:17" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1700:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1707:4:17", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1696:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1696:16:17" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1714:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1719:6:17" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "1674:21:17" - }, - "nodeType": "YulFunctionCall", - "src": "1674:52:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1674:52:17" - }, - { + "nativeSrc": "1573:23:17", "nodeType": "YulAssignment", - "src": "1735:23:17", + "src": "1573:23:17", "value": { "arguments": [ { - "name": "pos", + "name": "size", + "nativeSrc": "1585:4:17", "nodeType": "YulIdentifier", - "src": "1746:3:17" + "src": "1585:4:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1751:6:17" + "kind": "number", + "nativeSrc": "1591:4:17", + "nodeType": "YulLiteral", + "src": "1591:4:17", + "type": "", + "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "1581:3:17", "nodeType": "YulIdentifier", - "src": "1742:3:17" + "src": "1581:3:17" }, + "nativeSrc": "1581:15:17", "nodeType": "YulFunctionCall", - "src": "1742:16:17" + "src": "1581:15:17" }, "variableNames": [ { - "name": "end", + "name": "size", + "nativeSrc": "1573:4:17", "nodeType": "YulIdentifier", - "src": "1735:3:17" + "src": "1573:4:17" } ] } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "1296:307:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "1480:5:17", - "type": "" - }, - { - "name": "pos", + "name": "length", + "nativeSrc": "1346:6:17", "nodeType": "YulTypedName", - "src": "1487:3:17", + "src": "1346:6:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "size", + "nativeSrc": "1357:4:17", "nodeType": "YulTypedName", - "src": "1495:3:17", + "src": "1357:4:17", "type": "" } ], - "src": "1391:373:17" + "src": "1296:307:17" }, { "body": { + "nativeSrc": "1673:82:17", "nodeType": "YulBlock", - "src": "1916:220:17", + "src": "1673:82:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "1926:74:17", - "value": { + "expression": { "arguments": [ { - "name": "pos", + "name": "dst", + "nativeSrc": "1696:3:17", "nodeType": "YulIdentifier", - "src": "1992:3:17" + "src": "1696:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1997:2:17", - "type": "", - "value": "24" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "1933:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "1933:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1926:3:17" - } - ] - }, - { - "expression": { - "arguments": [ + "name": "src", + "nativeSrc": "1701:3:17", + "nodeType": "YulIdentifier", + "src": "1701:3:17" + }, { - "name": "pos", + "name": "length", + "nativeSrc": "1706:6:17", "nodeType": "YulIdentifier", - "src": "2098:3:17" + "src": "1706:6:17" } ], "functionName": { - "name": "store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307", + "name": "calldatacopy", + "nativeSrc": "1683:12:17", "nodeType": "YulIdentifier", - "src": "2009:88:17" + "src": "1683:12:17" }, + "nativeSrc": "1683:30:17", "nodeType": "YulFunctionCall", - "src": "2009:93:17" + "src": "1683:30:17" }, + "nativeSrc": "1683:30:17", "nodeType": "YulExpressionStatement", - "src": "2009:93:17" + "src": "1683:30:17" }, { - "nodeType": "YulAssignment", - "src": "2111:19:17", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2122:3:17" + "arguments": [ + { + "name": "dst", + "nativeSrc": "1733:3:17", + "nodeType": "YulIdentifier", + "src": "1733:3:17" + }, + { + "name": "length", + "nativeSrc": "1738:6:17", + "nodeType": "YulIdentifier", + "src": "1738:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1729:3:17", + "nodeType": "YulIdentifier", + "src": "1729:3:17" + }, + "nativeSrc": "1729:16:17", + "nodeType": "YulFunctionCall", + "src": "1729:16:17" }, { "kind": "number", + "nativeSrc": "1747:1:17", "nodeType": "YulLiteral", - "src": "2127:2:17", + "src": "1747:1:17", "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2118:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2118:12:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2111:3:17" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1904:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1912:3:17", - "type": "" - } - ], - "src": "1770:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2276:137:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2287:100:17", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2374:6:17" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2383:3:17" + "value": "0" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "mstore", + "nativeSrc": "1722:6:17", "nodeType": "YulIdentifier", - "src": "2294:79:17" + "src": "1722:6:17" }, + "nativeSrc": "1722:27:17", "nodeType": "YulFunctionCall", - "src": "2294:93:17" + "src": "1722:27:17" }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2287:3:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2397:10:17", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2404:3:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2397:3:17" - } - ] + "nativeSrc": "1722:27:17", + "nodeType": "YulExpressionStatement", + "src": "1722:27:17" } ] }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "1609:146:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "src", + "nativeSrc": "1655:3:17", "nodeType": "YulTypedName", - "src": "2255:3:17", + "src": "1655:3:17", "type": "" }, { - "name": "value0", + "name": "dst", + "nativeSrc": "1660:3:17", "nodeType": "YulTypedName", - "src": "2261:6:17", + "src": "1660:3:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "end", + "name": "length", + "nativeSrc": "1665:6:17", "nodeType": "YulTypedName", - "src": "2272:3:17", + "src": "1665:6:17", "type": "" } ], - "src": "2142:271:17" + "src": "1609:146:17" }, { "body": { + "nativeSrc": "1844:340:17", "nodeType": "YulBlock", - "src": "2535:193:17", + "src": "1844:340:17", "statements": [ { + "nativeSrc": "1854:74:17", "nodeType": "YulAssignment", - "src": "2545:26:17", + "src": "1854:74:17", "value": { "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2557:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2568:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2553:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2553:18:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2545:4:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2592:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2603:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2588:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2588:17:17" - }, { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2611:4:17" - }, - { - "name": "headStart", + "name": "length", + "nativeSrc": "1920:6:17", "nodeType": "YulIdentifier", - "src": "2617:9:17" + "src": "1920:6:17" } ], "functionName": { - "name": "sub", + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "1879:40:17", "nodeType": "YulIdentifier", - "src": "2607:3:17" + "src": "1879:40:17" }, + "nativeSrc": "1879:48:17", "nodeType": "YulFunctionCall", - "src": "2607:20:17" + "src": "1879:48:17" } ], "functionName": { - "name": "mstore", + "name": "allocate_memory", + "nativeSrc": "1863:15:17", "nodeType": "YulIdentifier", - "src": "2581:6:17" + "src": "1863:15:17" }, + "nativeSrc": "1863:65:17", "nodeType": "YulFunctionCall", - "src": "2581:47:17" + "src": "1863:65:17" }, - "nodeType": "YulExpressionStatement", - "src": "2581:47:17" + "variableNames": [ + { + "name": "array", + "nativeSrc": "1854:5:17", + "nodeType": "YulIdentifier", + "src": "1854:5:17" + } + ] }, { - "nodeType": "YulAssignment", - "src": "2637:84:17", - "value": { + "expression": { "arguments": [ { - "name": "value0", + "name": "array", + "nativeSrc": "1944:5:17", "nodeType": "YulIdentifier", - "src": "2707:6:17" + "src": "1944:5:17" }, { - "name": "tail", + "name": "length", + "nativeSrc": "1951:6:17", "nodeType": "YulIdentifier", - "src": "2716:4:17" + "src": "1951:6:17" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "mstore", + "nativeSrc": "1937:6:17", "nodeType": "YulIdentifier", - "src": "2645:61:17" + "src": "1937:6:17" }, + "nativeSrc": "1937:21:17", "nodeType": "YulFunctionCall", - "src": "2645:76:17" + "src": "1937:21:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2637:4:17" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2507:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2519:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2530:4:17", - "type": "" - } - ], - "src": "2419:309:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2905:248:17", - "statements": [ + "nativeSrc": "1937:21:17", + "nodeType": "YulExpressionStatement", + "src": "1937:21:17" + }, { - "nodeType": "YulAssignment", - "src": "2915:26:17", + "nativeSrc": "1967:27:17", + "nodeType": "YulVariableDeclaration", + "src": "1967:27:17", "value": { "arguments": [ { - "name": "headStart", + "name": "array", + "nativeSrc": "1982:5:17", "nodeType": "YulIdentifier", - "src": "2927:9:17" + "src": "1982:5:17" }, { "kind": "number", + "nativeSrc": "1989:4:17", "nodeType": "YulLiteral", - "src": "2938:2:17", + "src": "1989:4:17", "type": "", - "value": "32" + "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "1978:3:17", "nodeType": "YulIdentifier", - "src": "2923:3:17" + "src": "1978:3:17" }, + "nativeSrc": "1978:16:17", "nodeType": "YulFunctionCall", - "src": "2923:18:17" + "src": "1978:16:17" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2915:4:17" + "name": "dst", + "nativeSrc": "1971:3:17", + "nodeType": "YulTypedName", + "src": "1971:3:17", + "type": "" } ] }, { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "2032:83:17", + "nodeType": "YulBlock", + "src": "2032:83:17", + "statements": [ { - "arguments": [ - { - "name": "headStart", + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2034:77:17", "nodeType": "YulIdentifier", - "src": "2962:9:17" + "src": "2034:77:17" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2973:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2958:3:17" + "nativeSrc": "2034:79:17", + "nodeType": "YulFunctionCall", + "src": "2034:79:17" }, - "nodeType": "YulFunctionCall", - "src": "2958:17:17" - }, + "nativeSrc": "2034:79:17", + "nodeType": "YulExpressionStatement", + "src": "2034:79:17" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "tail", + "name": "src", + "nativeSrc": "2013:3:17", "nodeType": "YulIdentifier", - "src": "2981:4:17" + "src": "2013:3:17" }, { - "name": "headStart", + "name": "length", + "nativeSrc": "2018:6:17", "nodeType": "YulIdentifier", - "src": "2987:9:17" + "src": "2018:6:17" } ], "functionName": { - "name": "sub", + "name": "add", + "nativeSrc": "2009:3:17", "nodeType": "YulIdentifier", - "src": "2977:3:17" + "src": "2009:3:17" }, + "nativeSrc": "2009:16:17", "nodeType": "YulFunctionCall", - "src": "2977:20:17" + "src": "2009:16:17" + }, + { + "name": "end", + "nativeSrc": "2027:3:17", + "nodeType": "YulIdentifier", + "src": "2027:3:17" } ], "functionName": { - "name": "mstore", + "name": "gt", + "nativeSrc": "2006:2:17", "nodeType": "YulIdentifier", - "src": "2951:6:17" + "src": "2006:2:17" }, + "nativeSrc": "2006:25:17", "nodeType": "YulFunctionCall", - "src": "2951:47:17" + "src": "2006:25:17" }, - "nodeType": "YulExpressionStatement", - "src": "2951:47:17" + "nativeSrc": "2003:112:17", + "nodeType": "YulIf", + "src": "2003:112:17" }, { - "nodeType": "YulAssignment", - "src": "3007:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", + "name": "src", + "nativeSrc": "2161:3:17", + "nodeType": "YulIdentifier", + "src": "2161:3:17" + }, + { + "name": "dst", + "nativeSrc": "2166:3:17", + "nodeType": "YulIdentifier", + "src": "2166:3:17" + }, + { + "name": "length", + "nativeSrc": "2171:6:17", "nodeType": "YulIdentifier", - "src": "3141:4:17" + "src": "2171:6:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "2124:36:17", "nodeType": "YulIdentifier", - "src": "3015:124:17" + "src": "2124:36:17" }, + "nativeSrc": "2124:54:17", "nodeType": "YulFunctionCall", - "src": "3015:131:17" + "src": "2124:54:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3007:4:17" - } - ] + "nativeSrc": "2124:54:17", + "nodeType": "YulExpressionStatement", + "src": "2124:54:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "1761:423:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "src", + "nativeSrc": "1817:3:17", + "nodeType": "YulTypedName", + "src": "1817:3:17", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1822:6:17", + "nodeType": "YulTypedName", + "src": "1822:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1830:3:17", "nodeType": "YulTypedName", - "src": "2885:9:17", + "src": "1830:3:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "array", + "nativeSrc": "1838:5:17", "nodeType": "YulTypedName", - "src": "2900:4:17", + "src": "1838:5:17", "type": "" } ], - "src": "2734:419:17" + "src": "1761:423:17" }, { "body": { + "nativeSrc": "2264:277:17", "nodeType": "YulBlock", - "src": "3200:88:17", + "src": "2264:277:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "3210:30:17", - "value": { - "arguments": [], + "body": { + "nativeSrc": "2313:83:17", + "nodeType": "YulBlock", + "src": "2313:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2315:77:17", + "nodeType": "YulIdentifier", + "src": "2315:77:17" + }, + "nativeSrc": "2315:79:17", + "nodeType": "YulFunctionCall", + "src": "2315:79:17" + }, + "nativeSrc": "2315:79:17", + "nodeType": "YulExpressionStatement", + "src": "2315:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2292:6:17", + "nodeType": "YulIdentifier", + "src": "2292:6:17" + }, + { + "kind": "number", + "nativeSrc": "2300:4:17", + "nodeType": "YulLiteral", + "src": "2300:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2288:3:17", + "nodeType": "YulIdentifier", + "src": "2288:3:17" + }, + "nativeSrc": "2288:17:17", + "nodeType": "YulFunctionCall", + "src": "2288:17:17" + }, + { + "name": "end", + "nativeSrc": "2307:3:17", + "nodeType": "YulIdentifier", + "src": "2307:3:17" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2284:3:17", + "nodeType": "YulIdentifier", + "src": "2284:3:17" + }, + "nativeSrc": "2284:27:17", + "nodeType": "YulFunctionCall", + "src": "2284:27:17" + } + ], "functionName": { - "name": "allocate_unbounded", + "name": "iszero", + "nativeSrc": "2277:6:17", "nodeType": "YulIdentifier", - "src": "3220:18:17" + "src": "2277:6:17" }, + "nativeSrc": "2277:35:17", "nodeType": "YulFunctionCall", - "src": "3220:20:17" + "src": "2277:35:17" }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "3210:6:17" - } - ] + "nativeSrc": "2274:122:17", + "nodeType": "YulIf", + "src": "2274:122:17" }, { - "expression": { + "nativeSrc": "2405:34:17", + "nodeType": "YulVariableDeclaration", + "src": "2405:34:17", + "value": { "arguments": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "3269:6:17" - }, - { - "name": "size", + "name": "offset", + "nativeSrc": "2432:6:17", "nodeType": "YulIdentifier", - "src": "3277:4:17" + "src": "2432:6:17" } ], "functionName": { - "name": "finalize_allocation", + "name": "calldataload", + "nativeSrc": "2419:12:17", "nodeType": "YulIdentifier", - "src": "3249:19:17" + "src": "2419:12:17" }, + "nativeSrc": "2419:20:17", "nodeType": "YulFunctionCall", - "src": "3249:33:17" + "src": "2419:20:17" }, - "nodeType": "YulExpressionStatement", - "src": "3249:33:17" - } - ] - }, - "name": "allocate_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "3184:4:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "3193:6:17", - "type": "" - } - ], - "src": "3159:129:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3334:35:17", - "statements": [ + "variables": [ + { + "name": "length", + "nativeSrc": "2409:6:17", + "nodeType": "YulTypedName", + "src": "2409:6:17", + "type": "" + } + ] + }, { + "nativeSrc": "2448:87:17", "nodeType": "YulAssignment", - "src": "3344:19:17", + "src": "2448:87:17", "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3360:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "offset", + "nativeSrc": "2508:6:17", + "nodeType": "YulIdentifier", + "src": "2508:6:17" + }, + { + "kind": "number", + "nativeSrc": "2516:4:17", + "nodeType": "YulLiteral", + "src": "2516:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2504:3:17", + "nodeType": "YulIdentifier", + "src": "2504:3:17" + }, + "nativeSrc": "2504:17:17", + "nodeType": "YulFunctionCall", + "src": "2504:17:17" + }, + { + "name": "length", + "nativeSrc": "2523:6:17", + "nodeType": "YulIdentifier", + "src": "2523:6:17" + }, + { + "name": "end", + "nativeSrc": "2531:3:17", + "nodeType": "YulIdentifier", + "src": "2531:3:17" } ], "functionName": { - "name": "mload", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "2457:46:17", "nodeType": "YulIdentifier", - "src": "3354:5:17" + "src": "2457:46:17" }, + "nativeSrc": "2457:78:17", "nodeType": "YulFunctionCall", - "src": "3354:9:17" + "src": "2457:78:17" }, "variableNames": [ { - "name": "memPtr", + "name": "array", + "nativeSrc": "2448:5:17", "nodeType": "YulIdentifier", - "src": "3344:6:17" + "src": "2448:5:17" } ] } ] }, - "name": "allocate_unbounded", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "2203:338:17", "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2242:6:17", + "nodeType": "YulTypedName", + "src": "2242:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2250:3:17", + "nodeType": "YulTypedName", + "src": "2250:3:17", + "type": "" + } + ], "returnVariables": [ { - "name": "memPtr", + "name": "array", + "nativeSrc": "2258:5:17", "nodeType": "YulTypedName", - "src": "3327:6:17", + "src": "2258:5:17", "type": "" } ], - "src": "3294:75:17" + "src": "2203:338:17" }, { "body": { + "nativeSrc": "2622:432:17", "nodeType": "YulBlock", - "src": "3441:241:17", + "src": "2622:432:17", "statements": [ { "body": { + "nativeSrc": "2668:83:17", "nodeType": "YulBlock", - "src": "3546:22:17", + "src": "2668:83:17", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x41", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2670:77:17", "nodeType": "YulIdentifier", - "src": "3548:16:17" + "src": "2670:77:17" }, + "nativeSrc": "2670:79:17", "nodeType": "YulFunctionCall", - "src": "3548:18:17" + "src": "2670:79:17" }, + "nativeSrc": "2670:79:17", "nodeType": "YulExpressionStatement", - "src": "3548:18:17" + "src": "2670:79:17" } ] }, "condition": { "arguments": [ { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3518:6:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2643:7:17", + "nodeType": "YulIdentifier", + "src": "2643:7:17" + }, + { + "name": "headStart", + "nativeSrc": "2652:9:17", + "nodeType": "YulIdentifier", + "src": "2652:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2639:3:17", + "nodeType": "YulIdentifier", + "src": "2639:3:17" + }, + "nativeSrc": "2639:23:17", + "nodeType": "YulFunctionCall", + "src": "2639:23:17" }, { "kind": "number", + "nativeSrc": "2664:2:17", "nodeType": "YulLiteral", - "src": "3526:18:17", + "src": "2664:2:17", "type": "", - "value": "0xffffffffffffffff" + "value": "32" } ], "functionName": { - "name": "gt", + "name": "slt", + "nativeSrc": "2635:3:17", "nodeType": "YulIdentifier", - "src": "3515:2:17" + "src": "2635:3:17" }, + "nativeSrc": "2635:32:17", "nodeType": "YulFunctionCall", - "src": "3515:30:17" + "src": "2635:32:17" }, + "nativeSrc": "2632:119:17", "nodeType": "YulIf", - "src": "3512:2:17" + "src": "2632:119:17" }, { - "nodeType": "YulAssignment", - "src": "3578:37:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3608:6:17" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "3586:21:17" + "nativeSrc": "2761:286:17", + "nodeType": "YulBlock", + "src": "2761:286:17", + "statements": [ + { + "nativeSrc": "2776:45:17", + "nodeType": "YulVariableDeclaration", + "src": "2776:45:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2807:9:17", + "nodeType": "YulIdentifier", + "src": "2807:9:17" + }, + { + "kind": "number", + "nativeSrc": "2818:1:17", + "nodeType": "YulLiteral", + "src": "2818:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2803:3:17", + "nodeType": "YulIdentifier", + "src": "2803:3:17" + }, + "nativeSrc": "2803:17:17", + "nodeType": "YulFunctionCall", + "src": "2803:17:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2790:12:17", + "nodeType": "YulIdentifier", + "src": "2790:12:17" + }, + "nativeSrc": "2790:31:17", + "nodeType": "YulFunctionCall", + "src": "2790:31:17" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2780:6:17", + "nodeType": "YulTypedName", + "src": "2780:6:17", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "3586:29:17" - }, - "variableNames": [ { - "name": "size", - "nodeType": "YulIdentifier", - "src": "3578:4:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3652:23:17", - "value": { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "3664:4:17" + "body": { + "nativeSrc": "2868:83:17", + "nodeType": "YulBlock", + "src": "2868:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "2870:77:17", + "nodeType": "YulIdentifier", + "src": "2870:77:17" + }, + "nativeSrc": "2870:79:17", + "nodeType": "YulFunctionCall", + "src": "2870:79:17" + }, + "nativeSrc": "2870:79:17", + "nodeType": "YulExpressionStatement", + "src": "2870:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2840:6:17", + "nodeType": "YulIdentifier", + "src": "2840:6:17" + }, + { + "kind": "number", + "nativeSrc": "2848:18:17", + "nodeType": "YulLiteral", + "src": "2848:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2837:2:17", + "nodeType": "YulIdentifier", + "src": "2837:2:17" + }, + "nativeSrc": "2837:30:17", + "nodeType": "YulFunctionCall", + "src": "2837:30:17" + }, + "nativeSrc": "2834:117:17", + "nodeType": "YulIf", + "src": "2834:117:17" + }, + { + "nativeSrc": "2965:72:17", + "nodeType": "YulAssignment", + "src": "2965:72:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3009:9:17", + "nodeType": "YulIdentifier", + "src": "3009:9:17" + }, + { + "name": "offset", + "nativeSrc": "3020:6:17", + "nodeType": "YulIdentifier", + "src": "3020:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3005:3:17", + "nodeType": "YulIdentifier", + "src": "3005:3:17" + }, + "nativeSrc": "3005:22:17", + "nodeType": "YulFunctionCall", + "src": "3005:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "3029:7:17", + "nodeType": "YulIdentifier", + "src": "3029:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "2975:29:17", + "nodeType": "YulIdentifier", + "src": "2975:29:17" + }, + "nativeSrc": "2975:62:17", + "nodeType": "YulFunctionCall", + "src": "2975:62:17" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3670:4:17", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3660:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3660:15:17" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "3652:4:17" + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2965:6:17", + "nodeType": "YulIdentifier", + "src": "2965:6:17" + } + ] } ] } ] }, - "name": "array_allocation_size_t_bytes_memory_ptr", + "name": "abi_decode_tuple_t_bytes_memory_ptr", + "nativeSrc": "2547:507:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", + "name": "headStart", + "nativeSrc": "2592:9:17", + "nodeType": "YulTypedName", + "src": "2592:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2603:7:17", "nodeType": "YulTypedName", - "src": "3425:6:17", + "src": "2603:7:17", "type": "" } ], "returnVariables": [ { - "name": "size", + "name": "value0", + "nativeSrc": "2615:6:17", "nodeType": "YulTypedName", - "src": "3436:4:17", + "src": "2615:6:17", "type": "" } ], - "src": "3375:307:17" + "src": "2547:507:17" }, { "body": { + "nativeSrc": "3118:40:17", "nodeType": "YulBlock", - "src": "3746:40:17", + "src": "3118:40:17", "statements": [ { + "nativeSrc": "3129:22:17", "nodeType": "YulAssignment", - "src": "3757:22:17", + "src": "3129:22:17", "value": { "arguments": [ { "name": "value", + "nativeSrc": "3145:5:17", "nodeType": "YulIdentifier", - "src": "3773:5:17" + "src": "3145:5:17" } ], "functionName": { "name": "mload", + "nativeSrc": "3139:5:17", "nodeType": "YulIdentifier", - "src": "3767:5:17" + "src": "3139:5:17" }, + "nativeSrc": "3139:12:17", "nodeType": "YulFunctionCall", - "src": "3767:12:17" + "src": "3139:12:17" }, "variableNames": [ { "name": "length", + "nativeSrc": "3129:6:17", "nodeType": "YulIdentifier", - "src": "3757:6:17" + "src": "3129:6:17" } ] } ] }, "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "3060:98:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "3101:5:17", "nodeType": "YulTypedName", - "src": "3729:5:17", + "src": "3101:5:17", "type": "" } ], "returnVariables": [ { "name": "length", + "nativeSrc": "3111:6:17", "nodeType": "YulTypedName", - "src": "3739:6:17", + "src": "3111:6:17", "type": "" } ], - "src": "3688:98:17" + "src": "3060:98:17" }, { "body": { + "nativeSrc": "3259:73:17", "nodeType": "YulBlock", - "src": "3887:73:17", + "src": "3259:73:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3276:3:17", "nodeType": "YulIdentifier", - "src": "3904:3:17" + "src": "3276:3:17" }, { "name": "length", + "nativeSrc": "3281:6:17", "nodeType": "YulIdentifier", - "src": "3909:6:17" + "src": "3281:6:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "3269:6:17", "nodeType": "YulIdentifier", - "src": "3897:6:17" + "src": "3269:6:17" }, + "nativeSrc": "3269:19:17", "nodeType": "YulFunctionCall", - "src": "3897:19:17" + "src": "3269:19:17" }, + "nativeSrc": "3269:19:17", "nodeType": "YulExpressionStatement", - "src": "3897:19:17" + "src": "3269:19:17" }, { + "nativeSrc": "3297:29:17", "nodeType": "YulAssignment", - "src": "3925:29:17", + "src": "3297:29:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "3316:3:17", "nodeType": "YulIdentifier", - "src": "3944:3:17" + "src": "3316:3:17" }, { "kind": "number", + "nativeSrc": "3321:4:17", "nodeType": "YulLiteral", - "src": "3949:4:17", + "src": "3321:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "3312:3:17", "nodeType": "YulIdentifier", - "src": "3940:3:17" + "src": "3312:3:17" }, + "nativeSrc": "3312:14:17", "nodeType": "YulFunctionCall", - "src": "3940:14:17" + "src": "3312:14:17" }, "variableNames": [ { "name": "updated_pos", + "nativeSrc": "3297:11:17", "nodeType": "YulIdentifier", - "src": "3925:11:17" + "src": "3297:11:17" } ] } ] }, "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "3164:168:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", + "nativeSrc": "3231:3:17", "nodeType": "YulTypedName", - "src": "3859:3:17", + "src": "3231:3:17", "type": "" }, { "name": "length", + "nativeSrc": "3236:6:17", "nodeType": "YulTypedName", - "src": "3864:6:17", + "src": "3236:6:17", "type": "" } ], "returnVariables": [ { "name": "updated_pos", + "nativeSrc": "3247:11:17", "nodeType": "YulTypedName", - "src": "3875:11:17", + "src": "3247:11:17", "type": "" } ], - "src": "3792:168:17" + "src": "3164:168:17" }, { "body": { + "nativeSrc": "3400:184:17", "nodeType": "YulBlock", - "src": "4079:34:17", + "src": "3400:184:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4089:18:17", + "nativeSrc": "3410:10:17", + "nodeType": "YulVariableDeclaration", + "src": "3410:10:17", "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4104:3:17" + "kind": "number", + "nativeSrc": "3419:1:17", + "nodeType": "YulLiteral", + "src": "3419:1:17", + "type": "", + "value": "0" }, - "variableNames": [ + "variables": [ { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "4089:11:17" + "name": "i", + "nativeSrc": "3414:1:17", + "nodeType": "YulTypedName", + "src": "3414:1:17", + "type": "" } ] + }, + { + "body": { + "nativeSrc": "3479:63:17", + "nodeType": "YulBlock", + "src": "3479:63:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3504:3:17", + "nodeType": "YulIdentifier", + "src": "3504:3:17" + }, + { + "name": "i", + "nativeSrc": "3509:1:17", + "nodeType": "YulIdentifier", + "src": "3509:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3500:3:17", + "nodeType": "YulIdentifier", + "src": "3500:3:17" + }, + "nativeSrc": "3500:11:17", + "nodeType": "YulFunctionCall", + "src": "3500:11:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "3523:3:17", + "nodeType": "YulIdentifier", + "src": "3523:3:17" + }, + { + "name": "i", + "nativeSrc": "3528:1:17", + "nodeType": "YulIdentifier", + "src": "3528:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3519:3:17", + "nodeType": "YulIdentifier", + "src": "3519:3:17" + }, + "nativeSrc": "3519:11:17", + "nodeType": "YulFunctionCall", + "src": "3519:11:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3513:5:17", + "nodeType": "YulIdentifier", + "src": "3513:5:17" + }, + "nativeSrc": "3513:18:17", + "nodeType": "YulFunctionCall", + "src": "3513:18:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3493:6:17", + "nodeType": "YulIdentifier", + "src": "3493:6:17" + }, + "nativeSrc": "3493:39:17", + "nodeType": "YulFunctionCall", + "src": "3493:39:17" + }, + "nativeSrc": "3493:39:17", + "nodeType": "YulExpressionStatement", + "src": "3493:39:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3440:1:17", + "nodeType": "YulIdentifier", + "src": "3440:1:17" + }, + { + "name": "length", + "nativeSrc": "3443:6:17", + "nodeType": "YulIdentifier", + "src": "3443:6:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3437:2:17", + "nodeType": "YulIdentifier", + "src": "3437:2:17" + }, + "nativeSrc": "3437:13:17", + "nodeType": "YulFunctionCall", + "src": "3437:13:17" + }, + "nativeSrc": "3429:113:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3451:19:17", + "nodeType": "YulBlock", + "src": "3451:19:17", + "statements": [ + { + "nativeSrc": "3453:15:17", + "nodeType": "YulAssignment", + "src": "3453:15:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3462:1:17", + "nodeType": "YulIdentifier", + "src": "3462:1:17" + }, + { + "kind": "number", + "nativeSrc": "3465:2:17", + "nodeType": "YulLiteral", + "src": "3465:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3458:3:17", + "nodeType": "YulIdentifier", + "src": "3458:3:17" + }, + "nativeSrc": "3458:10:17", + "nodeType": "YulFunctionCall", + "src": "3458:10:17" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "3453:1:17", + "nodeType": "YulIdentifier", + "src": "3453:1:17" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "3433:3:17", + "nodeType": "YulBlock", + "src": "3433:3:17", + "statements": [] + }, + "src": "3429:113:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3562:3:17", + "nodeType": "YulIdentifier", + "src": "3562:3:17" + }, + { + "name": "length", + "nativeSrc": "3567:6:17", + "nodeType": "YulIdentifier", + "src": "3567:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3558:3:17", + "nodeType": "YulIdentifier", + "src": "3558:3:17" + }, + "nativeSrc": "3558:16:17", + "nodeType": "YulFunctionCall", + "src": "3558:16:17" + }, + { + "kind": "number", + "nativeSrc": "3576:1:17", + "nodeType": "YulLiteral", + "src": "3576:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3551:6:17", + "nodeType": "YulIdentifier", + "src": "3551:6:17" + }, + "nativeSrc": "3551:27:17", + "nodeType": "YulFunctionCall", + "src": "3551:27:17" + }, + "nativeSrc": "3551:27:17", + "nodeType": "YulExpressionStatement", + "src": "3551:27:17" } ] }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3338:246:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "src", + "nativeSrc": "3382:3:17", "nodeType": "YulTypedName", - "src": "4051:3:17", + "src": "3382:3:17", "type": "" }, { - "name": "length", + "name": "dst", + "nativeSrc": "3387:3:17", "nodeType": "YulTypedName", - "src": "4056:6:17", + "src": "3387:3:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "updated_pos", + "name": "length", + "nativeSrc": "3392:6:17", "nodeType": "YulTypedName", - "src": "4067:11:17", + "src": "3392:6:17", "type": "" } ], - "src": "3966:147:17" + "src": "3338:246:17" }, { "body": { + "nativeSrc": "3680:283:17", "nodeType": "YulBlock", - "src": "4215:73:17", + "src": "3680:283:17", "statements": [ + { + "nativeSrc": "3690:52:17", + "nodeType": "YulVariableDeclaration", + "src": "3690:52:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3736:5:17", + "nodeType": "YulIdentifier", + "src": "3736:5:17" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "3704:31:17", + "nodeType": "YulIdentifier", + "src": "3704:31:17" + }, + "nativeSrc": "3704:38:17", + "nodeType": "YulFunctionCall", + "src": "3704:38:17" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3694:6:17", + "nodeType": "YulTypedName", + "src": "3694:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "3751:77:17", + "nodeType": "YulAssignment", + "src": "3751:77:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3816:3:17", + "nodeType": "YulIdentifier", + "src": "3816:3:17" + }, + { + "name": "length", + "nativeSrc": "3821:6:17", + "nodeType": "YulIdentifier", + "src": "3821:6:17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "3758:57:17", + "nodeType": "YulIdentifier", + "src": "3758:57:17" + }, + "nativeSrc": "3758:70:17", + "nodeType": "YulFunctionCall", + "src": "3758:70:17" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "3751:3:17", + "nodeType": "YulIdentifier", + "src": "3751:3:17" + } + ] + }, { "expression": { "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3876:5:17", + "nodeType": "YulIdentifier", + "src": "3876:5:17" + }, + { + "kind": "number", + "nativeSrc": "3883:4:17", + "nodeType": "YulLiteral", + "src": "3883:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3872:3:17", + "nodeType": "YulIdentifier", + "src": "3872:3:17" + }, + "nativeSrc": "3872:16:17", + "nodeType": "YulFunctionCall", + "src": "3872:16:17" + }, { "name": "pos", + "nativeSrc": "3890:3:17", "nodeType": "YulIdentifier", - "src": "4232:3:17" + "src": "3890:3:17" }, { "name": "length", + "nativeSrc": "3895:6:17", "nodeType": "YulIdentifier", - "src": "4237:6:17" + "src": "3895:6:17" } ], "functionName": { - "name": "mstore", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3837:34:17", "nodeType": "YulIdentifier", - "src": "4225:6:17" + "src": "3837:34:17" }, + "nativeSrc": "3837:65:17", "nodeType": "YulFunctionCall", - "src": "4225:19:17" + "src": "3837:65:17" }, + "nativeSrc": "3837:65:17", "nodeType": "YulExpressionStatement", - "src": "4225:19:17" + "src": "3837:65:17" }, { + "nativeSrc": "3911:46:17", "nodeType": "YulAssignment", - "src": "4253:29:17", + "src": "3911:46:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "3922:3:17", "nodeType": "YulIdentifier", - "src": "4272:3:17" + "src": "3922:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4277:4:17", - "type": "", - "value": "0x20" + "arguments": [ + { + "name": "length", + "nativeSrc": "3949:6:17", + "nodeType": "YulIdentifier", + "src": "3949:6:17" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "3927:21:17", + "nodeType": "YulIdentifier", + "src": "3927:21:17" + }, + "nativeSrc": "3927:29:17", + "nodeType": "YulFunctionCall", + "src": "3927:29:17" } ], "functionName": { "name": "add", + "nativeSrc": "3918:3:17", "nodeType": "YulIdentifier", - "src": "4268:3:17" + "src": "3918:3:17" }, + "nativeSrc": "3918:39:17", "nodeType": "YulFunctionCall", - "src": "4268:14:17" + "src": "3918:39:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "3911:3:17", "nodeType": "YulIdentifier", - "src": "4253:11:17" + "src": "3911:3:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "3590:373:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "3661:5:17", "nodeType": "YulTypedName", - "src": "4187:3:17", + "src": "3661:5:17", "type": "" }, { - "name": "length", + "name": "pos", + "nativeSrc": "3668:3:17", "nodeType": "YulTypedName", - "src": "4192:6:17", + "src": "3668:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "3676:3:17", "nodeType": "YulTypedName", - "src": "4203:11:17", + "src": "3676:3:17", "type": "" } ], - "src": "4119:169:17" + "src": "3590:373:17" }, { "body": { + "nativeSrc": "4085:193:17", "nodeType": "YulBlock", - "src": "4345:103:17", + "src": "4085:193:17", "statements": [ { - "expression": { + "nativeSrc": "4095:26:17", + "nodeType": "YulAssignment", + "src": "4095:26:17", + "value": { "arguments": [ { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "4368:3:17" - }, - { - "name": "src", + "name": "headStart", + "nativeSrc": "4107:9:17", "nodeType": "YulIdentifier", - "src": "4373:3:17" + "src": "4107:9:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4378:6:17" + "kind": "number", + "nativeSrc": "4118:2:17", + "nodeType": "YulLiteral", + "src": "4118:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "calldatacopy", + "name": "add", + "nativeSrc": "4103:3:17", "nodeType": "YulIdentifier", - "src": "4355:12:17" + "src": "4103:3:17" }, + "nativeSrc": "4103:18:17", "nodeType": "YulFunctionCall", - "src": "4355:30:17" + "src": "4103:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "4355:30:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4095:4:17", + "nodeType": "YulIdentifier", + "src": "4095:4:17" + } + ] }, { "expression": { @@ -2198,767 +2741,991 @@ { "arguments": [ { - "name": "dst", + "name": "headStart", + "nativeSrc": "4142:9:17", "nodeType": "YulIdentifier", - "src": "4426:3:17" + "src": "4142:9:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4431:6:17" + "kind": "number", + "nativeSrc": "4153:1:17", + "nodeType": "YulLiteral", + "src": "4153:1:17", + "type": "", + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "4138:3:17", "nodeType": "YulIdentifier", - "src": "4422:3:17" + "src": "4138:3:17" }, + "nativeSrc": "4138:17:17", "nodeType": "YulFunctionCall", - "src": "4422:16:17" + "src": "4138:17:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4440:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "tail", + "nativeSrc": "4161:4:17", + "nodeType": "YulIdentifier", + "src": "4161:4:17" + }, + { + "name": "headStart", + "nativeSrc": "4167:9:17", + "nodeType": "YulIdentifier", + "src": "4167:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4157:3:17", + "nodeType": "YulIdentifier", + "src": "4157:3:17" + }, + "nativeSrc": "4157:20:17", + "nodeType": "YulFunctionCall", + "src": "4157:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "4131:6:17", "nodeType": "YulIdentifier", - "src": "4415:6:17" + "src": "4131:6:17" }, + "nativeSrc": "4131:47:17", "nodeType": "YulFunctionCall", - "src": "4415:27:17" + "src": "4131:47:17" }, + "nativeSrc": "4131:47:17", "nodeType": "YulExpressionStatement", - "src": "4415:27:17" + "src": "4131:47:17" + }, + { + "nativeSrc": "4187:84:17", + "nodeType": "YulAssignment", + "src": "4187:84:17", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4257:6:17", + "nodeType": "YulIdentifier", + "src": "4257:6:17" + }, + { + "name": "tail", + "nativeSrc": "4266:4:17", + "nodeType": "YulIdentifier", + "src": "4266:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "4195:61:17", + "nodeType": "YulIdentifier", + "src": "4195:61:17" + }, + "nativeSrc": "4195:76:17", + "nodeType": "YulFunctionCall", + "src": "4195:76:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4187:4:17", + "nodeType": "YulIdentifier", + "src": "4187:4:17" + } + ] } ] }, - "name": "copy_calldata_to_memory", + "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "3969:309:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", + "name": "headStart", + "nativeSrc": "4057:9:17", "nodeType": "YulTypedName", - "src": "4327:3:17", + "src": "4057:9:17", "type": "" }, { - "name": "dst", + "name": "value0", + "nativeSrc": "4069:6:17", + "nodeType": "YulTypedName", + "src": "4069:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4080:4:17", + "nodeType": "YulTypedName", + "src": "4080:4:17", + "type": "" + } + ], + "src": "3969:309:17" + }, + { + "body": { + "nativeSrc": "4397:34:17", + "nodeType": "YulBlock", + "src": "4397:34:17", + "statements": [ + { + "nativeSrc": "4407:18:17", + "nodeType": "YulAssignment", + "src": "4407:18:17", + "value": { + "name": "pos", + "nativeSrc": "4422:3:17", + "nodeType": "YulIdentifier", + "src": "4422:3:17" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "4407:11:17", + "nodeType": "YulIdentifier", + "src": "4407:11:17" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4284:147:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4369:3:17", "nodeType": "YulTypedName", - "src": "4332:3:17", + "src": "4369:3:17", "type": "" }, { "name": "length", + "nativeSrc": "4374:6:17", + "nodeType": "YulTypedName", + "src": "4374:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "4385:11:17", "nodeType": "YulTypedName", - "src": "4337:6:17", + "src": "4385:11:17", "type": "" } ], - "src": "4294:154:17" + "src": "4284:147:17" }, { "body": { + "nativeSrc": "4545:278:17", "nodeType": "YulBlock", - "src": "4503:258:17", + "src": "4545:278:17", "statements": [ { + "nativeSrc": "4555:52:17", "nodeType": "YulVariableDeclaration", - "src": "4513:10:17", + "src": "4555:52:17", "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4522:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "value", + "nativeSrc": "4601:5:17", + "nodeType": "YulIdentifier", + "src": "4601:5:17" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4569:31:17", + "nodeType": "YulIdentifier", + "src": "4569:31:17" + }, + "nativeSrc": "4569:38:17", + "nodeType": "YulFunctionCall", + "src": "4569:38:17" }, "variables": [ { - "name": "i", + "name": "length", + "nativeSrc": "4559:6:17", "nodeType": "YulTypedName", - "src": "4517:1:17", + "src": "4559:6:17", "type": "" } ] }, - { - "body": { - "nodeType": "YulBlock", - "src": "4582:63:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "4607:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "4612:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4603:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4603:11:17" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "4626:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "4631:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4622:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4622:11:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "4616:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "4616:18:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4596:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "4596:39:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4596:39:17" - } - ] - }, - "condition": { + { + "nativeSrc": "4616:95:17", + "nodeType": "YulAssignment", + "src": "4616:95:17", + "value": { "arguments": [ { - "name": "i", + "name": "pos", + "nativeSrc": "4699:3:17", "nodeType": "YulIdentifier", - "src": "4543:1:17" + "src": "4699:3:17" }, { "name": "length", + "nativeSrc": "4704:6:17", "nodeType": "YulIdentifier", - "src": "4546:6:17" + "src": "4704:6:17" } ], "functionName": { - "name": "lt", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4623:75:17", "nodeType": "YulIdentifier", - "src": "4540:2:17" + "src": "4623:75:17" }, + "nativeSrc": "4623:88:17", "nodeType": "YulFunctionCall", - "src": "4540:13:17" + "src": "4623:88:17" }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "4554:19:17", - "statements": [ + "variableNames": [ + { + "name": "pos", + "nativeSrc": "4616:3:17", + "nodeType": "YulIdentifier", + "src": "4616:3:17" + } + ] + }, + { + "expression": { + "arguments": [ { - "nodeType": "YulAssignment", - "src": "4556:15:17", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "4565:1:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4568:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", + "arguments": [ + { + "name": "value", + "nativeSrc": "4759:5:17", "nodeType": "YulIdentifier", - "src": "4561:3:17" + "src": "4759:5:17" }, - "nodeType": "YulFunctionCall", - "src": "4561:10:17" - }, - "variableNames": [ { - "name": "i", - "nodeType": "YulIdentifier", - "src": "4556:1:17" + "kind": "number", + "nativeSrc": "4766:4:17", + "nodeType": "YulLiteral", + "src": "4766:4:17", + "type": "", + "value": "0x20" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "4755:3:17", + "nodeType": "YulIdentifier", + "src": "4755:3:17" + }, + "nativeSrc": "4755:16:17", + "nodeType": "YulFunctionCall", + "src": "4755:16:17" + }, + { + "name": "pos", + "nativeSrc": "4773:3:17", + "nodeType": "YulIdentifier", + "src": "4773:3:17" + }, + { + "name": "length", + "nativeSrc": "4778:6:17", + "nodeType": "YulIdentifier", + "src": "4778:6:17" } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "4536:3:17", - "statements": [] + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4720:34:17", + "nodeType": "YulIdentifier", + "src": "4720:34:17" + }, + "nativeSrc": "4720:65:17", + "nodeType": "YulFunctionCall", + "src": "4720:65:17" }, - "src": "4532:113:17" + "nativeSrc": "4720:65:17", + "nodeType": "YulExpressionStatement", + "src": "4720:65:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "4679:76:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "4729:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "4734:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4725:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4725:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4743:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4718:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "4718:27:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4718:27:17" - } - ] - }, - "condition": { + "nativeSrc": "4794:23:17", + "nodeType": "YulAssignment", + "src": "4794:23:17", + "value": { "arguments": [ { - "name": "i", + "name": "pos", + "nativeSrc": "4805:3:17", "nodeType": "YulIdentifier", - "src": "4660:1:17" + "src": "4805:3:17" }, { "name": "length", + "nativeSrc": "4810:6:17", "nodeType": "YulIdentifier", - "src": "4663:6:17" + "src": "4810:6:17" } ], "functionName": { - "name": "gt", + "name": "add", + "nativeSrc": "4801:3:17", "nodeType": "YulIdentifier", - "src": "4657:2:17" + "src": "4801:3:17" }, + "nativeSrc": "4801:16:17", "nodeType": "YulFunctionCall", - "src": "4657:13:17" + "src": "4801:16:17" }, - "nodeType": "YulIf", - "src": "4654:2:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "4794:3:17", + "nodeType": "YulIdentifier", + "src": "4794:3:17" + } + ] } ] }, - "name": "copy_memory_to_memory", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4437:386:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", + "name": "value", + "nativeSrc": "4526:5:17", "nodeType": "YulTypedName", - "src": "4485:3:17", + "src": "4526:5:17", "type": "" }, { - "name": "dst", + "name": "pos", + "nativeSrc": "4533:3:17", "nodeType": "YulTypedName", - "src": "4490:3:17", + "src": "4533:3:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", + "name": "end", + "nativeSrc": "4541:3:17", "nodeType": "YulTypedName", - "src": "4495:6:17", + "src": "4541:3:17", "type": "" } ], - "src": "4454:307:17" + "src": "4437:386:17" }, { "body": { + "nativeSrc": "4963:137:17", "nodeType": "YulBlock", - "src": "4810:238:17", + "src": "4963:137:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "4820:58:17", + "nativeSrc": "4974:100:17", + "nodeType": "YulAssignment", + "src": "4974:100:17", "value": { "arguments": [ { - "name": "memPtr", + "name": "value0", + "nativeSrc": "5061:6:17", "nodeType": "YulIdentifier", - "src": "4842:6:17" + "src": "5061:6:17" }, { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "4872:4:17" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "4850:21:17" - }, - "nodeType": "YulFunctionCall", - "src": "4850:27:17" + "name": "pos", + "nativeSrc": "5070:3:17", + "nodeType": "YulIdentifier", + "src": "5070:3:17" } ], "functionName": { - "name": "add", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "4981:79:17", "nodeType": "YulIdentifier", - "src": "4838:3:17" + "src": "4981:79:17" }, + "nativeSrc": "4981:93:17", "nodeType": "YulFunctionCall", - "src": "4838:40:17" + "src": "4981:93:17" }, - "variables": [ + "variableNames": [ { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "4824:10:17", - "type": "" + "name": "pos", + "nativeSrc": "4974:3:17", + "nodeType": "YulIdentifier", + "src": "4974:3:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "4989:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "4991:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "4991:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4991:18:17" - } - ] + "nativeSrc": "5084:10:17", + "nodeType": "YulAssignment", + "src": "5084:10:17", + "value": { + "name": "pos", + "nativeSrc": "5091:3:17", + "nodeType": "YulIdentifier", + "src": "5091:3:17" }, - "condition": { + "variableNames": [ + { + "name": "end", + "nativeSrc": "5084:3:17", + "nodeType": "YulIdentifier", + "src": "5084:3:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "4829:271:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4942:3:17", + "nodeType": "YulTypedName", + "src": "4942:3:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4948:6:17", + "nodeType": "YulTypedName", + "src": "4948:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4959:3:17", + "nodeType": "YulTypedName", + "src": "4959:3:17", + "type": "" + } + ], + "src": "4829:271:17" + }, + { + "body": { + "nativeSrc": "5202:73:17", + "nodeType": "YulBlock", + "src": "5202:73:17", + "statements": [ + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "4932:10:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4944:18:17", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4929:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "4929:34:17" + "name": "pos", + "nativeSrc": "5219:3:17", + "nodeType": "YulIdentifier", + "src": "5219:3:17" }, { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "4968:10:17" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4980:6:17" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "4965:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "4965:22:17" + "name": "length", + "nativeSrc": "5224:6:17", + "nodeType": "YulIdentifier", + "src": "5224:6:17" } ], "functionName": { - "name": "or", + "name": "mstore", + "nativeSrc": "5212:6:17", "nodeType": "YulIdentifier", - "src": "4926:2:17" + "src": "5212:6:17" }, + "nativeSrc": "5212:19:17", "nodeType": "YulFunctionCall", - "src": "4926:62:17" + "src": "5212:19:17" }, - "nodeType": "YulIf", - "src": "4923:2:17" + "nativeSrc": "5212:19:17", + "nodeType": "YulExpressionStatement", + "src": "5212:19:17" }, { - "expression": { + "nativeSrc": "5240:29:17", + "nodeType": "YulAssignment", + "src": "5240:29:17", + "value": { "arguments": [ + { + "name": "pos", + "nativeSrc": "5259:3:17", + "nodeType": "YulIdentifier", + "src": "5259:3:17" + }, { "kind": "number", + "nativeSrc": "5264:4:17", "nodeType": "YulLiteral", - "src": "5027:2:17", + "src": "5264:4:17", "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5031:10:17" + "value": "0x20" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "5255:3:17", "nodeType": "YulIdentifier", - "src": "5020:6:17" + "src": "5255:3:17" }, + "nativeSrc": "5255:14:17", "nodeType": "YulFunctionCall", - "src": "5020:22:17" + "src": "5255:14:17" }, - "nodeType": "YulExpressionStatement", - "src": "5020:22:17" + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "5240:11:17", + "nodeType": "YulIdentifier", + "src": "5240:11:17" + } + ] } ] }, - "name": "finalize_allocation", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5106:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "5174:3:17", "nodeType": "YulTypedName", - "src": "4796:6:17", + "src": "5174:3:17", "type": "" }, { - "name": "size", + "name": "length", + "nativeSrc": "5179:6:17", + "nodeType": "YulTypedName", + "src": "5179:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "5190:11:17", "nodeType": "YulTypedName", - "src": "4804:4:17", + "src": "5190:11:17", "type": "" } ], - "src": "4767:281:17" + "src": "5106:169:17" }, { "body": { + "nativeSrc": "5387:68:17", "nodeType": "YulBlock", - "src": "5082:152:17", + "src": "5387:68:17", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5099:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "5409:6:17", + "nodeType": "YulIdentifier", + "src": "5409:6:17" + }, + { + "kind": "number", + "nativeSrc": "5417:1:17", + "nodeType": "YulLiteral", + "src": "5417:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5405:3:17", + "nodeType": "YulIdentifier", + "src": "5405:3:17" + }, + "nativeSrc": "5405:14:17", + "nodeType": "YulFunctionCall", + "src": "5405:14:17" }, { - "kind": "number", + "hexValue": "65637265636f7665722061646472657373206661696c6564", + "kind": "string", + "nativeSrc": "5421:26:17", "nodeType": "YulLiteral", - "src": "5102:77:17", + "src": "5421:26:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "ecrecover address failed" } ], "functionName": { "name": "mstore", + "nativeSrc": "5398:6:17", "nodeType": "YulIdentifier", - "src": "5092:6:17" + "src": "5398:6:17" }, + "nativeSrc": "5398:50:17", "nodeType": "YulFunctionCall", - "src": "5092:88:17" + "src": "5398:50:17" }, + "nativeSrc": "5398:50:17", "nodeType": "YulExpressionStatement", - "src": "5092:88:17" - }, + "src": "5398:50:17" + } + ] + }, + "name": "store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307", + "nativeSrc": "5281:174:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "5379:6:17", + "nodeType": "YulTypedName", + "src": "5379:6:17", + "type": "" + } + ], + "src": "5281:174:17" + }, + { + "body": { + "nativeSrc": "5607:220:17", + "nodeType": "YulBlock", + "src": "5607:220:17", + "statements": [ { - "expression": { + "nativeSrc": "5617:74:17", + "nodeType": "YulAssignment", + "src": "5617:74:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5196:1:17", - "type": "", - "value": "4" + "name": "pos", + "nativeSrc": "5683:3:17", + "nodeType": "YulIdentifier", + "src": "5683:3:17" }, { "kind": "number", + "nativeSrc": "5688:2:17", "nodeType": "YulLiteral", - "src": "5199:4:17", + "src": "5688:2:17", "type": "", - "value": "0x41" + "value": "24" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5624:58:17", "nodeType": "YulIdentifier", - "src": "5189:6:17" + "src": "5624:58:17" }, + "nativeSrc": "5624:67:17", "nodeType": "YulFunctionCall", - "src": "5189:15:17" + "src": "5624:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "5189:15:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5617:3:17", + "nodeType": "YulIdentifier", + "src": "5617:3:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5220:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5223:4:17", - "type": "", - "value": "0x24" + "name": "pos", + "nativeSrc": "5789:3:17", + "nodeType": "YulIdentifier", + "src": "5789:3:17" } ], "functionName": { - "name": "revert", + "name": "store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307", + "nativeSrc": "5700:88:17", "nodeType": "YulIdentifier", - "src": "5213:6:17" + "src": "5700:88:17" }, + "nativeSrc": "5700:93:17", "nodeType": "YulFunctionCall", - "src": "5213:15:17" + "src": "5700:93:17" }, + "nativeSrc": "5700:93:17", "nodeType": "YulExpressionStatement", - "src": "5213:15:17" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "5054:180:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5288:54:17", - "statements": [ + "src": "5700:93:17" + }, { + "nativeSrc": "5802:19:17", "nodeType": "YulAssignment", - "src": "5298:38:17", + "src": "5802:19:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5316:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5323:2:17", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5312:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5312:14:17" + "name": "pos", + "nativeSrc": "5813:3:17", + "nodeType": "YulIdentifier", + "src": "5813:3:17" }, { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5332:2:17", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "5328:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5328:7:17" + "kind": "number", + "nativeSrc": "5818:2:17", + "nodeType": "YulLiteral", + "src": "5818:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "and", + "name": "add", + "nativeSrc": "5809:3:17", "nodeType": "YulIdentifier", - "src": "5308:3:17" + "src": "5809:3:17" }, + "nativeSrc": "5809:12:17", "nodeType": "YulFunctionCall", - "src": "5308:28:17" + "src": "5809:12:17" }, "variableNames": [ { - "name": "result", + "name": "end", + "nativeSrc": "5802:3:17", "nodeType": "YulIdentifier", - "src": "5298:6:17" + "src": "5802:3:17" } ] } ] }, - "name": "round_up_to_mul_of_32", + "name": "abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5461:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "5595:3:17", "nodeType": "YulTypedName", - "src": "5271:5:17", + "src": "5595:3:17", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "end", + "nativeSrc": "5603:3:17", "nodeType": "YulTypedName", - "src": "5281:6:17", + "src": "5603:3:17", "type": "" } ], - "src": "5240:102:17" + "src": "5461:366:17" }, { "body": { + "nativeSrc": "6004:248:17", "nodeType": "YulBlock", - "src": "5454:68:17", + "src": "6004:248:17", "statements": [ + { + "nativeSrc": "6014:26:17", + "nodeType": "YulAssignment", + "src": "6014:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6026:9:17", + "nodeType": "YulIdentifier", + "src": "6026:9:17" + }, + { + "kind": "number", + "nativeSrc": "6037:2:17", + "nodeType": "YulLiteral", + "src": "6037:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6022:3:17", + "nodeType": "YulIdentifier", + "src": "6022:3:17" + }, + "nativeSrc": "6022:18:17", + "nodeType": "YulFunctionCall", + "src": "6022:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6014:4:17", + "nodeType": "YulIdentifier", + "src": "6014:4:17" + } + ] + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "6061:9:17", "nodeType": "YulIdentifier", - "src": "5476:6:17" + "src": "6061:9:17" }, { "kind": "number", + "nativeSrc": "6072:1:17", "nodeType": "YulLiteral", - "src": "5484:1:17", + "src": "6072:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "6057:3:17", "nodeType": "YulIdentifier", - "src": "5472:3:17" + "src": "6057:3:17" }, + "nativeSrc": "6057:17:17", "nodeType": "YulFunctionCall", - "src": "5472:14:17" + "src": "6057:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "5488:26:17", - "type": "", - "value": "ecrecover address failed" + "arguments": [ + { + "name": "tail", + "nativeSrc": "6080:4:17", + "nodeType": "YulIdentifier", + "src": "6080:4:17" + }, + { + "name": "headStart", + "nativeSrc": "6086:9:17", + "nodeType": "YulIdentifier", + "src": "6086:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6076:3:17", + "nodeType": "YulIdentifier", + "src": "6076:3:17" + }, + "nativeSrc": "6076:20:17", + "nodeType": "YulFunctionCall", + "src": "6076:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "6050:6:17", "nodeType": "YulIdentifier", - "src": "5465:6:17" + "src": "6050:6:17" }, + "nativeSrc": "6050:47:17", "nodeType": "YulFunctionCall", - "src": "5465:50:17" + "src": "6050:47:17" }, + "nativeSrc": "6050:47:17", "nodeType": "YulExpressionStatement", - "src": "5465:50:17" + "src": "6050:47:17" + }, + { + "nativeSrc": "6106:139:17", + "nodeType": "YulAssignment", + "src": "6106:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "6240:4:17", + "nodeType": "YulIdentifier", + "src": "6240:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6114:124:17", + "nodeType": "YulIdentifier", + "src": "6114:124:17" + }, + "nativeSrc": "6114:131:17", + "nodeType": "YulFunctionCall", + "src": "6114:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6106:4:17", + "nodeType": "YulIdentifier", + "src": "6106:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307", + "name": "abi_encode_tuple_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "5833:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "5984:9:17", + "nodeType": "YulTypedName", + "src": "5984:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5999:4:17", "nodeType": "YulTypedName", - "src": "5446:6:17", + "src": "5999:4:17", "type": "" } ], - "src": "5348:174:17" + "src": "5833:419:17" } ] }, - "contents": "{\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307(memPtr) {\n\n mstore(add(memPtr, 0), \"ecrecover address failed\")\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307(memPtr) {\n\n mstore(add(memPtr, 0), \"ecrecover address failed\")\n\n }\n\n function abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_58c3c15cdf15c6ccbd83c2011919a592c03e58f1ee6a84c4c70350dcc6157307_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -2966,10 +3733,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80634bef793914610030575b600080fd5b61004a6004803603810190610045919061018a565b610060565b604051610057919061026f565b60405180910390f35b60606000600190506000808273ffffffffffffffffffffffffffffffffffffffff16856040516100909190610258565b6000604051808303816000865af19150503d80600081146100cd576040519150601f19603f3d011682016040523d82523d6000602084013e6100d2565b606091505b509150915081610117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010e90610291565b60405180910390fd5b809350505050919050565b6000610135610130846102d6565b6102b1565b90508281526020810184848401111561014d57600080fd5b61015884828561033f565b509392505050565b600082601f83011261017157600080fd5b8135610181848260208601610122565b91505092915050565b60006020828403121561019c57600080fd5b600082013567ffffffffffffffff8111156101b657600080fd5b6101c284828501610160565b91505092915050565b60006101d682610307565b6101e08185610312565b93506101f081856020860161034e565b6101f9816103e1565b840191505092915050565b600061020f82610307565b6102198185610323565b935061022981856020860161034e565b80840191505092915050565b600061024260188361032e565b915061024d826103f2565b602082019050919050565b60006102648284610204565b915081905092915050565b6000602082019050818103600083015261028981846101cb565b905092915050565b600060208201905081810360008301526102aa81610235565b9050919050565b60006102bb6102cc565b90506102c78282610381565b919050565b6000604051905090565b600067ffffffffffffffff8211156102f1576102f06103b2565b5b6102fa826103e1565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b82818337600083830152505050565b60005b8381101561036c578082015181840152602081019050610351565b8381111561037b576000848401525b50505050565b61038a826103e1565b810181811067ffffffffffffffff821117156103a9576103a86103b2565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f65637265636f7665722061646472657373206661696c6564000000000000000060008201525056fea26469706673582212204992e35783728f6515e5af7155adbbe18becd915d688d02f8619097136515f9364736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BEF7939 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x26F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x258 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCD JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xD2 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x117 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E SWAP1 PUSH2 0x291 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135 PUSH2 0x130 DUP5 PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x2B1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x158 DUP5 DUP3 DUP6 PUSH2 0x33F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x171 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x181 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x122 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2 DUP5 DUP3 DUP6 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6 DUP3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x1E0 DUP2 DUP6 PUSH2 0x312 JUMP JUMPDEST SWAP4 POP PUSH2 0x1F0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x34E JUMP JUMPDEST PUSH2 0x1F9 DUP2 PUSH2 0x3E1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F DUP3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x219 DUP2 DUP6 PUSH2 0x323 JUMP JUMPDEST SWAP4 POP PUSH2 0x229 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x34E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x242 PUSH1 0x18 DUP4 PUSH2 0x32E JUMP JUMPDEST SWAP2 POP PUSH2 0x24D DUP3 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264 DUP3 DUP5 PUSH2 0x204 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x289 DUP2 DUP5 PUSH2 0x1CB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2AA DUP2 PUSH2 0x235 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BB PUSH2 0x2CC JUMP JUMPDEST SWAP1 POP PUSH2 0x2C7 DUP3 DUP3 PUSH2 0x381 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2F1 JUMPI PUSH2 0x2F0 PUSH2 0x3B2 JUMP JUMPDEST JUMPDEST PUSH2 0x2FA DUP3 PUSH2 0x3E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x36C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x351 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x38A DUP3 PUSH2 0x3E1 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3A9 JUMPI PUSH2 0x3A8 PUSH2 0x3B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x65637265636F7665722061646472657373206661696C65640000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x49 SWAP3 0xE3 JUMPI DUP4 PUSH19 0x8F6515E5AF7155ADBBE18BECD915D688D02F86 NOT MULMOD PUSH18 0x36515F9364736F6C63430008020033000000 ", - "sourceMap": "70:361:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;100:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;158:12;182:24;217:42;182:78;;271:12;285:23;312:16;:21;;334:5;312:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:70;;;;359:7;351:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;412:10;405:17;;;;;100:329;;;:::o;7:343:17:-;;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:2;;;290:1;287;280:12;249:2;303:41;337:6;332:3;327;303:41;:::i;:::-;90:260;;;;;;:::o;369:271::-;;473:3;466:4;458:6;454:17;450:27;440:2;;491:1;488;481:12;440:2;531:6;518:20;556:78;630:3;622:6;615:4;607:6;603:17;556:78;:::i;:::-;547:87;;430:210;;;;;:::o;646:373::-;;763:2;751:9;742:7;738:23;734:32;731:2;;;779:1;776;769:12;731:2;850:1;839:9;835:17;822:31;880:18;872:6;869:30;866:2;;;912:1;909;902:12;866:2;940:62;994:7;985:6;974:9;970:22;940:62;:::i;:::-;930:72;;793:219;721:298;;;;:::o;1025:360::-;;1139:38;1171:5;1139:38;:::i;:::-;1193:70;1256:6;1251:3;1193:70;:::i;:::-;1186:77;;1272:52;1317:6;1312:3;1305:4;1298:5;1294:16;1272:52;:::i;:::-;1349:29;1371:6;1349:29;:::i;:::-;1344:3;1340:39;1333:46;;1115:270;;;;;:::o;1391:373::-;;1523:38;1555:5;1523:38;:::i;:::-;1577:88;1658:6;1653:3;1577:88;:::i;:::-;1570:95;;1674:52;1719:6;1714:3;1707:4;1700:5;1696:16;1674:52;:::i;:::-;1751:6;1746:3;1742:16;1735:23;;1499:265;;;;;:::o;1770:366::-;;1933:67;1997:2;1992:3;1933:67;:::i;:::-;1926:74;;2009:93;2098:3;2009:93;:::i;:::-;2127:2;2122:3;2118:12;2111:19;;1916:220;;;:::o;2142:271::-;;2294:93;2383:3;2374:6;2294:93;:::i;:::-;2287:100;;2404:3;2397:10;;2276:137;;;;:::o;2419:309::-;;2568:2;2557:9;2553:18;2545:26;;2617:9;2611:4;2607:20;2603:1;2592:9;2588:17;2581:47;2645:76;2716:4;2707:6;2645:76;:::i;:::-;2637:84;;2535:193;;;;:::o;2734:419::-;;2938:2;2927:9;2923:18;2915:26;;2987:9;2981:4;2977:20;2973:1;2962:9;2958:17;2951:47;3015:131;3141:4;3015:131;:::i;:::-;3007:139;;2905:248;;;:::o;3159:129::-;;3220:20;;:::i;:::-;3210:30;;3249:33;3277:4;3269:6;3249:33;:::i;:::-;3200:88;;;:::o;3294:75::-;;3360:2;3354:9;3344:19;;3334:35;:::o;3375:307::-;;3526:18;3518:6;3515:30;3512:2;;;3548:18;;:::i;:::-;3512:2;3586:29;3608:6;3586:29;:::i;:::-;3578:37;;3670:4;3664;3660:15;3652:23;;3441:241;;;:::o;3688:98::-;;3773:5;3767:12;3757:22;;3746:40;;;:::o;3792:168::-;;3909:6;3904:3;3897:19;3949:4;3944:3;3940:14;3925:29;;3887:73;;;;:::o;3966:147::-;;4104:3;4089:18;;4079:34;;;;:::o;4119:169::-;;4237:6;4232:3;4225:19;4277:4;4272:3;4268:14;4253:29;;4215:73;;;;:::o;4294:154::-;4378:6;4373:3;4368;4355:30;4440:1;4431:6;4426:3;4422:16;4415:27;4345:103;;;:::o;4454:307::-;4522:1;4532:113;4546:6;4543:1;4540:13;4532:113;;;4631:1;4626:3;4622:11;4616:18;4612:1;4607:3;4603:11;4596:39;4568:2;4565:1;4561:10;4556:15;;4532:113;;;4663:6;4660:1;4657:13;4654:2;;;4743:1;4734:6;4729:3;4725:16;4718:27;4654:2;4503:258;;;;:::o;4767:281::-;4850:27;4872:4;4850:27;:::i;:::-;4842:6;4838:40;4980:6;4968:10;4965:22;4944:18;4932:10;4929:34;4926:62;4923:2;;;4991:18;;:::i;:::-;4923:2;5031:10;5027:2;5020:22;4810:238;;;:::o;5054:180::-;5102:77;5099:1;5092:88;5199:4;5196:1;5189:15;5223:4;5220:1;5213:15;5240:102;;5332:2;5328:7;5323:2;5316:5;5312:14;5308:28;5298:38;;5288:54;;;:::o;5348:174::-;5488:26;5484:1;5476:6;5472:14;5465:50;5454:68;:::o" + "object": "608060405234801561000f575f80fd5b5060043610610029575f3560e01c80634bef79391461002d575b5f80fd5b61004760048036038101906100429190610266565b61005d565b6040516100549190610327565b60405180910390f35b60605f600190505f808273ffffffffffffffffffffffffffffffffffffffff168560405161008b9190610381565b5f604051808303815f865af19150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b50915091508161010e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610105906103f1565b60405180910390fd5b809350505050919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61017882610132565b810181811067ffffffffffffffff8211171561019757610196610142565b5b80604052505050565b5f6101a9610119565b90506101b5828261016f565b919050565b5f67ffffffffffffffff8211156101d4576101d3610142565b5b6101dd82610132565b9050602081019050919050565b828183375f83830152505050565b5f61020a610205846101ba565b6101a0565b9050828152602081018484840111156102265761022561012e565b5b6102318482856101ea565b509392505050565b5f82601f83011261024d5761024c61012a565b5b813561025d8482602086016101f8565b91505092915050565b5f6020828403121561027b5761027a610122565b5b5f82013567ffffffffffffffff81111561029857610297610126565b5b6102a484828501610239565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102e45780820151818401526020810190506102c9565b5f8484015250505050565b5f6102f9826102ad565b61030381856102b7565b93506103138185602086016102c7565b61031c81610132565b840191505092915050565b5f6020820190508181035f83015261033f81846102ef565b905092915050565b5f81905092915050565b5f61035b826102ad565b6103658185610347565b93506103758185602086016102c7565b80840191505092915050565b5f61038c8284610351565b915081905092915050565b5f82825260208201905092915050565b7f65637265636f7665722061646472657373206661696c656400000000000000005f82015250565b5f6103db601883610397565b91506103e6826103a7565b602082019050919050565b5f6020820190508181035f830152610408816103cf565b905091905056fea2646970667358221220f761f8147d1d4e050a06cc9309096780354632ef81546c996dba3c222e67b02664736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BEF7939 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0x266 JUMP JUMPDEST PUSH2 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x54 SWAP2 SWAP1 PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 PUSH1 0x1 SWAP1 POP PUSH0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x381 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0xC4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xC9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x10E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x105 SWAP1 PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x178 DUP3 PUSH2 0x132 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x197 JUMPI PUSH2 0x196 PUSH2 0x142 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A9 PUSH2 0x119 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B5 DUP3 DUP3 PUSH2 0x16F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1D4 JUMPI PUSH2 0x1D3 PUSH2 0x142 JUMP JUMPDEST JUMPDEST PUSH2 0x1DD DUP3 PUSH2 0x132 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20A PUSH2 0x205 DUP5 PUSH2 0x1BA JUMP JUMPDEST PUSH2 0x1A0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x226 JUMPI PUSH2 0x225 PUSH2 0x12E JUMP JUMPDEST JUMPDEST PUSH2 0x231 DUP5 DUP3 DUP6 PUSH2 0x1EA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x24D JUMPI PUSH2 0x24C PUSH2 0x12A JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27B JUMPI PUSH2 0x27A PUSH2 0x122 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x298 JUMPI PUSH2 0x297 PUSH2 0x126 JUMP JUMPDEST JUMPDEST PUSH2 0x2A4 DUP5 DUP3 DUP6 ADD PUSH2 0x239 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E4 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2C9 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2F9 DUP3 PUSH2 0x2AD JUMP JUMPDEST PUSH2 0x303 DUP2 DUP6 PUSH2 0x2B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x313 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2C7 JUMP JUMPDEST PUSH2 0x31C DUP2 PUSH2 0x132 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x33F DUP2 DUP5 PUSH2 0x2EF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x35B DUP3 PUSH2 0x2AD JUMP JUMPDEST PUSH2 0x365 DUP2 DUP6 PUSH2 0x347 JUMP JUMPDEST SWAP4 POP PUSH2 0x375 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2C7 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x38C DUP3 DUP5 PUSH2 0x351 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x65637265636F7665722061646472657373206661696C65640000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x3DB PUSH1 0x18 DUP4 PUSH2 0x397 JUMP JUMPDEST SWAP2 POP PUSH2 0x3E6 DUP3 PUSH2 0x3A7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x408 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 PUSH2 0xF814 PUSH30 0x1D4E050A06CC9309096780354632EF81546C996DBA3C222E67B02664736F PUSH13 0x63430008180033000000000000 ", + "sourceMap": "71:361:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;101:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;159:12;183:24;218:42;183:78;;272:12;286:23;313:16;:21;;335:5;313:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;271:70;;;;360:7;352:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;413:10;406:17;;;;;101:329;;;:::o;7:75:17:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:307::-;1357:4;1447:18;1439:6;1436:30;1433:56;;;1469:18;;:::i;:::-;1433:56;1507:29;1529:6;1507:29;:::i;:::-;1499:37;;1591:4;1585;1581:15;1573:23;;1296:307;;;:::o;1609:146::-;1706:6;1701:3;1696;1683:30;1747:1;1738:6;1733:3;1729:16;1722:27;1609:146;;;:::o;1761:423::-;1838:5;1863:65;1879:48;1920:6;1879:48;:::i;:::-;1863:65;:::i;:::-;1854:74;;1951:6;1944:5;1937:21;1989:4;1982:5;1978:16;2027:3;2018:6;2013:3;2009:16;2006:25;2003:112;;;2034:79;;:::i;:::-;2003:112;2124:54;2171:6;2166:3;2161;2124:54;:::i;:::-;1844:340;1761:423;;;;;:::o;2203:338::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:78;2531:3;2523:6;2516:4;2508:6;2504:17;2457:78;:::i;:::-;2448:87;;2264:277;2203:338;;;;:::o;2547:507::-;2615:6;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2818:1;2807:9;2803:17;2790:31;2848:18;2840:6;2837:30;2834:117;;;2870:79;;:::i;:::-;2834:117;2975:62;3029:7;3020:6;3009:9;3005:22;2975:62;:::i;:::-;2965:72;;2761:286;2547:507;;;;:::o;3060:98::-;3111:6;3145:5;3139:12;3129:22;;3060:98;;;:::o;3164:168::-;3247:11;3281:6;3276:3;3269:19;3321:4;3316:3;3312:14;3297:29;;3164:168;;;;:::o;3338:246::-;3419:1;3429:113;3443:6;3440:1;3437:13;3429:113;;;3528:1;3523:3;3519:11;3513:18;3509:1;3504:3;3500:11;3493:39;3465:2;3462:1;3458:10;3453:15;;3429:113;;;3576:1;3567:6;3562:3;3558:16;3551:27;3400:184;3338:246;;;:::o;3590:373::-;3676:3;3704:38;3736:5;3704:38;:::i;:::-;3758:70;3821:6;3816:3;3758:70;:::i;:::-;3751:77;;3837:65;3895:6;3890:3;3883:4;3876:5;3872:16;3837:65;:::i;:::-;3927:29;3949:6;3927:29;:::i;:::-;3922:3;3918:39;3911:46;;3680:283;3590:373;;;;:::o;3969:309::-;4080:4;4118:2;4107:9;4103:18;4095:26;;4167:9;4161:4;4157:20;4153:1;4142:9;4138:17;4131:47;4195:76;4266:4;4257:6;4195:76;:::i;:::-;4187:84;;3969:309;;;;:::o;4284:147::-;4385:11;4422:3;4407:18;;4284:147;;;;:::o;4437:386::-;4541:3;4569:38;4601:5;4569:38;:::i;:::-;4623:88;4704:6;4699:3;4623:88;:::i;:::-;4616:95;;4720:65;4778:6;4773:3;4766:4;4759:5;4755:16;4720:65;:::i;:::-;4810:6;4805:3;4801:16;4794:23;;4545:278;4437:386;;;;:::o;4829:271::-;4959:3;4981:93;5070:3;5061:6;4981:93;:::i;:::-;4974:100;;5091:3;5084:10;;4829:271;;;;:::o;5106:169::-;5190:11;5224:6;5219:3;5212:19;5264:4;5259:3;5255:14;5240:29;;5106:169;;;;:::o;5281:174::-;5421:26;5417:1;5409:6;5405:14;5398:50;5281:174;:::o;5461:366::-;5603:3;5624:67;5688:2;5683:3;5624:67;:::i;:::-;5617:74;;5700:93;5789:3;5700:93;:::i;:::-;5818:2;5813:3;5809:12;5802:19;;5461:366;;;:::o;5833:419::-;5999:4;6037:2;6026:9;6022:18;6014:26;;6086:9;6080:4;6076:20;6072:1;6061:9;6057:17;6050:47;6114:131;6240:4;6114:131;:::i;:::-;6106:139;;5833:419;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b50610451806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634bef793914610030575b600080fd5b61004a6004803603810190610045919061018a565b610060565b604051610057919061026f565b60405180910390f35b60606000600190506000808273ffffffffffffffffffffffffffffffffffffffff16856040516100909190610258565b6000604051808303816000865af19150503d80600081146100cd576040519150601f19603f3d011682016040523d82523d6000602084013e6100d2565b606091505b509150915081610117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010e90610291565b60405180910390fd5b809350505050919050565b6000610135610130846102d6565b6102b1565b90508281526020810184848401111561014d57600080fd5b61015884828561033f565b509392505050565b600082601f83011261017157600080fd5b8135610181848260208601610122565b91505092915050565b60006020828403121561019c57600080fd5b600082013567ffffffffffffffff8111156101b657600080fd5b6101c284828501610160565b91505092915050565b60006101d682610307565b6101e08185610312565b93506101f081856020860161034e565b6101f9816103e1565b840191505092915050565b600061020f82610307565b6102198185610323565b935061022981856020860161034e565b80840191505092915050565b600061024260188361032e565b915061024d826103f2565b602082019050919050565b60006102648284610204565b915081905092915050565b6000602082019050818103600083015261028981846101cb565b905092915050565b600060208201905081810360008301526102aa81610235565b9050919050565b60006102bb6102cc565b90506102c78282610381565b919050565b6000604051905090565b600067ffffffffffffffff8211156102f1576102f06103b2565b5b6102fa826103e1565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b82818337600083830152505050565b60005b8381101561036c578082015181840152602081019050610351565b8381111561037b576000848401525b50505050565b61038a826103e1565b810181811067ffffffffffffffff821117156103a9576103a86103b2565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f65637265636f7665722061646472657373206661696c6564000000000000000060008201525056fea26469706673582212204992e35783728f6515e5af7155adbbe18becd915d688d02f8619097136515f9364736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506104458061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80634bef79391461002d575b5f80fd5b61004760048036038101906100429190610266565b61005d565b6040516100549190610327565b60405180910390f35b60605f600190505f808273ffffffffffffffffffffffffffffffffffffffff168560405161008b9190610381565b5f604051808303815f865af19150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b50915091508161010e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610105906103f1565b60405180910390fd5b809350505050919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61017882610132565b810181811067ffffffffffffffff8211171561019757610196610142565b5b80604052505050565b5f6101a9610119565b90506101b5828261016f565b919050565b5f67ffffffffffffffff8211156101d4576101d3610142565b5b6101dd82610132565b9050602081019050919050565b828183375f83830152505050565b5f61020a610205846101ba565b6101a0565b9050828152602081018484840111156102265761022561012e565b5b6102318482856101ea565b509392505050565b5f82601f83011261024d5761024c61012a565b5b813561025d8482602086016101f8565b91505092915050565b5f6020828403121561027b5761027a610122565b5b5f82013567ffffffffffffffff81111561029857610297610126565b5b6102a484828501610239565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156102e45780820151818401526020810190506102c9565b5f8484015250505050565b5f6102f9826102ad565b61030381856102b7565b93506103138185602086016102c7565b61031c81610132565b840191505092915050565b5f6020820190508181035f83015261033f81846102ef565b905092915050565b5f81905092915050565b5f61035b826102ad565b6103658185610347565b93506103758185602086016102c7565b80840191505092915050565b5f61038c8284610351565b915081905092915050565b5f82825260208201905092915050565b7f65637265636f7665722061646472657373206661696c656400000000000000005f82015250565b5f6103db601883610397565b91506103e6826103a7565b602082019050919050565b5f6020820190508181035f830152610408816103cf565b905091905056fea2646970667358221220f761f8147d1d4e050a06cc9309096780354632ef81546c996dba3c222e67b02664736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/ERC20.json b/ts-tests/build/ERC20.json index 59596693fa..a35bbf1261 100644 --- a/ts-tests/build/ERC20.json +++ b/ts-tests/build/ERC20.json @@ -289,924 +289,924 @@ ], "evm": { "bytecode": { + "functionDebugData": { + "@_44": { + "entryPoint": null, + "id": 44, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 363, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 437, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory": { + "entryPoint": 487, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 238, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 98, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 268, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 618, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1034, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 855, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 996, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 873, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1185, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 321, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 743, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 673, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1156, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 184, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 864, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1126, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 628, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 139, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 912, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 115, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 119, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 111, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 107, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 123, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 758, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1114, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 968, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 770, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 921, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 964, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:8574:17", "nodeType": "YulBlock", - "src": "0:3266:17", + "src": "0:8574:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "102:259:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "112:75:17", + "src": "57:19:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "179:6:17" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "137:41:17" - }, - "nodeType": "YulFunctionCall", - "src": "137:49:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "allocate_memory", + "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "121:15:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "121:66:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "array", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "112:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ { "expression": { "arguments": [ { - "name": "array", - "nodeType": "YulIdentifier", - "src": "203:5:17" + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "210:6:17" + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", + "name": "revert", + "nativeSrc": "187:6:17", "nodeType": "YulIdentifier", - "src": "196:6:17" + "src": "187:6:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulFunctionCall", - "src": "196:21:17" + "src": "187:12:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulExpressionStatement", - "src": "196:21:17" - }, + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "226:27:17", - "value": { + "expression": { "arguments": [ { - "name": "array", - "nodeType": "YulIdentifier", - "src": "241:5:17" + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "320:1:17", "nodeType": "YulLiteral", - "src": "248:4:17", + "src": "320:1:17", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { - "name": "add", + "name": "revert", + "nativeSrc": "310:6:17", "nodeType": "YulIdentifier", - "src": "237:3:17" + "src": "310:6:17" }, + "nativeSrc": "310:12:17", "nodeType": "YulFunctionCall", - "src": "237:16:17" + "src": "310:12:17" }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "230:3:17", - "type": "" - } - ] - }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "423:28:17", + "nodeType": "YulBlock", + "src": "423:28:17", + "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "291:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "300:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "303:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "293:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "293:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "293:12:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "272:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "277:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "268:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "268:16:17" + "kind": "number", + "nativeSrc": "440:1:17", + "nodeType": "YulLiteral", + "src": "440:1:17", + "type": "", + "value": "0" }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "286:3:17" + "kind": "number", + "nativeSrc": "443:1:17", + "nodeType": "YulLiteral", + "src": "443:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "gt", + "name": "revert", + "nativeSrc": "433:6:17", "nodeType": "YulIdentifier", - "src": "265:2:17" + "src": "433:6:17" }, + "nativeSrc": "433:12:17", "nodeType": "YulFunctionCall", - "src": "265:25:17" + "src": "433:12:17" }, - "nodeType": "YulIf", - "src": "262:2:17" - }, + "nativeSrc": "433:12:17", + "nodeType": "YulExpressionStatement", + "src": "433:12:17" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:17", + "nodeType": "YulFunctionDefinition", + "src": "334:117:17" + }, + { + "body": { + "nativeSrc": "546:28:17", + "nodeType": "YulBlock", + "src": "546:28:17", + "statements": [ { "expression": { "arguments": [ { - "name": "src", - "nodeType": "YulIdentifier", - "src": "338:3:17" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "343:3:17" + "kind": "number", + "nativeSrc": "563:1:17", + "nodeType": "YulLiteral", + "src": "563:1:17", + "type": "", + "value": "0" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "348:6:17" + "kind": "number", + "nativeSrc": "566:1:17", + "nodeType": "YulLiteral", + "src": "566:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "copy_memory_to_memory", + "name": "revert", + "nativeSrc": "556:6:17", "nodeType": "YulIdentifier", - "src": "316:21:17" + "src": "556:6:17" }, + "nativeSrc": "556:12:17", "nodeType": "YulFunctionCall", - "src": "316:39:17" + "src": "556:12:17" }, + "nativeSrc": "556:12:17", "nodeType": "YulExpressionStatement", - "src": "316:39:17" + "src": "556:12:17" } ] }, - "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "75:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "80:6:17", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "88:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "96:5:17", - "type": "" - } - ], - "src": "7:354:17" + "src": "457:117:17" }, { "body": { + "nativeSrc": "628:54:17", "nodeType": "YulBlock", - "src": "454:215:17", + "src": "628:54:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "503:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "512:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "515:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "505:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "505:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "505:12:17" - } - ] - }, - "condition": { - "arguments": [ + "nativeSrc": "638:38:17", + "nodeType": "YulAssignment", + "src": "638:38:17", + "value": { + "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "482:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "490:4:17", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "478:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "478:17:17" + "name": "value", + "nativeSrc": "656:5:17", + "nodeType": "YulIdentifier", + "src": "656:5:17" }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "497:3:17" + "kind": "number", + "nativeSrc": "663:2:17", + "nodeType": "YulLiteral", + "src": "663:2:17", + "type": "", + "value": "31" } ], "functionName": { - "name": "slt", + "name": "add", + "nativeSrc": "652:3:17", "nodeType": "YulIdentifier", - "src": "474:3:17" + "src": "652:3:17" }, + "nativeSrc": "652:14:17", "nodeType": "YulFunctionCall", - "src": "474:27:17" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "467:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "467:35:17" - }, - "nodeType": "YulIf", - "src": "464:2:17" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "528:27:17", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "548:6:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "542:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "542:13:17" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "532:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "564:99:17", - "value": { - "arguments": [ + "src": "652:14:17" + }, { "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "636:6:17" - }, { "kind": "number", + "nativeSrc": "672:2:17", "nodeType": "YulLiteral", - "src": "644:4:17", + "src": "672:2:17", "type": "", - "value": "0x20" + "value": "31" } ], "functionName": { - "name": "add", + "name": "not", + "nativeSrc": "668:3:17", "nodeType": "YulIdentifier", - "src": "632:3:17" + "src": "668:3:17" }, + "nativeSrc": "668:7:17", "nodeType": "YulFunctionCall", - "src": "632:17:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "651:6:17" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "659:3:17" + "src": "668:7:17" } ], "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "name": "and", + "nativeSrc": "648:3:17", "nodeType": "YulIdentifier", - "src": "573:58:17" + "src": "648:3:17" }, + "nativeSrc": "648:28:17", "nodeType": "YulFunctionCall", - "src": "573:90:17" + "src": "648:28:17" }, "variableNames": [ { - "name": "array", + "name": "result", + "nativeSrc": "638:6:17", "nodeType": "YulIdentifier", - "src": "564:5:17" + "src": "638:6:17" } ] } ] }, - "name": "abi_decode_t_string_memory_ptr_fromMemory", + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "432:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "611:5:17", "nodeType": "YulTypedName", - "src": "440:3:17", + "src": "611:5:17", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "result", + "nativeSrc": "621:6:17", "nodeType": "YulTypedName", - "src": "448:5:17", + "src": "621:6:17", "type": "" } ], - "src": "381:288:17" + "src": "580:102:17" }, { "body": { + "nativeSrc": "716:152:17", "nodeType": "YulBlock", - "src": "789:538:17", + "src": "716:152:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "835:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "844:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "847:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "837:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "837:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "837:12:17" + "kind": "number", + "nativeSrc": "733:1:17", + "nodeType": "YulLiteral", + "src": "733:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:17", + "nodeType": "YulLiteral", + "src": "736:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } - ] + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:17", + "nodeType": "YulIdentifier", + "src": "726:6:17" + }, + "nativeSrc": "726:88:17", + "nodeType": "YulFunctionCall", + "src": "726:88:17" }, - "condition": { + "nativeSrc": "726:88:17", + "nodeType": "YulExpressionStatement", + "src": "726:88:17" + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "810:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "819:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "806:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "806:23:17" + "kind": "number", + "nativeSrc": "830:1:17", + "nodeType": "YulLiteral", + "src": "830:1:17", + "type": "", + "value": "4" }, { "kind": "number", + "nativeSrc": "833:4:17", "nodeType": "YulLiteral", - "src": "831:2:17", + "src": "833:4:17", "type": "", - "value": "64" + "value": "0x41" } ], "functionName": { - "name": "slt", + "name": "mstore", + "nativeSrc": "823:6:17", "nodeType": "YulIdentifier", - "src": "802:3:17" + "src": "823:6:17" }, + "nativeSrc": "823:15:17", "nodeType": "YulFunctionCall", - "src": "802:32:17" + "src": "823:15:17" }, - "nodeType": "YulIf", - "src": "799:2:17" + "nativeSrc": "823:15:17", + "nodeType": "YulExpressionStatement", + "src": "823:15:17" }, { - "nodeType": "YulBlock", - "src": "861:224:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "876:38:17", - "value": { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:17", + "nodeType": "YulLiteral", + "src": "854:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:17", + "nodeType": "YulLiteral", + "src": "857:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:17", + "nodeType": "YulIdentifier", + "src": "847:6:17" + }, + "nativeSrc": "847:15:17", + "nodeType": "YulFunctionCall", + "src": "847:15:17" + }, + "nativeSrc": "847:15:17", + "nodeType": "YulExpressionStatement", + "src": "847:15:17" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:17", + "nodeType": "YulFunctionDefinition", + "src": "688:180:17" + }, + { + "body": { + "nativeSrc": "917:238:17", + "nodeType": "YulBlock", + "src": "917:238:17", + "statements": [ + { + "nativeSrc": "927:58:17", + "nodeType": "YulVariableDeclaration", + "src": "927:58:17", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:17", + "nodeType": "YulIdentifier", + "src": "949:6:17" + }, + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "900:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "911:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "896:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "896:17:17" + "name": "size", + "nativeSrc": "979:4:17", + "nodeType": "YulIdentifier", + "src": "979:4:17" } ], "functionName": { - "name": "mload", + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:17", "nodeType": "YulIdentifier", - "src": "890:5:17" + "src": "957:21:17" }, + "nativeSrc": "957:27:17", "nodeType": "YulFunctionCall", - "src": "890:24:17" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "880:6:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "961:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "970:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "973:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "963:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "963:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "963:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "933:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "941:18:17", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "930:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "930:30:17" - }, - "nodeType": "YulIf", - "src": "927:2:17" + "src": "957:27:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:17", + "nodeType": "YulIdentifier", + "src": "945:3:17" }, + "nativeSrc": "945:40:17", + "nodeType": "YulFunctionCall", + "src": "945:40:17" + }, + "variables": [ { - "nodeType": "YulAssignment", - "src": "991:84:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1047:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1058:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1043:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1043:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1067:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr_fromMemory", - "nodeType": "YulIdentifier", - "src": "1001:41:17" - }, - "nodeType": "YulFunctionCall", - "src": "1001:74:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "991:6:17" - } - ] + "name": "newFreePtr", + "nativeSrc": "931:10:17", + "nodeType": "YulTypedName", + "src": "931:10:17", + "type": "" } ] }, { - "nodeType": "YulBlock", - "src": "1095:225:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1110:39:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1134:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1145:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1130:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1130:18:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1124:5:17" + "body": { + "nativeSrc": "1096:22:17", + "nodeType": "YulBlock", + "src": "1096:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:17", + "nodeType": "YulIdentifier", + "src": "1098:16:17" + }, + "nativeSrc": "1098:18:17", + "nodeType": "YulFunctionCall", + "src": "1098:18:17" }, - "nodeType": "YulFunctionCall", - "src": "1124:25:17" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1114:6:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1196:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1205:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1208:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1198:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1198:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1198:12:17" - } - ] - }, - "condition": { + "nativeSrc": "1098:18:17", + "nodeType": "YulExpressionStatement", + "src": "1098:18:17" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ { - "name": "offset", + "name": "newFreePtr", + "nativeSrc": "1039:10:17", "nodeType": "YulIdentifier", - "src": "1168:6:17" + "src": "1039:10:17" }, { "kind": "number", + "nativeSrc": "1051:18:17", "nodeType": "YulLiteral", - "src": "1176:18:17", + "src": "1051:18:17", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", + "nativeSrc": "1036:2:17", "nodeType": "YulIdentifier", - "src": "1165:2:17" + "src": "1036:2:17" }, + "nativeSrc": "1036:34:17", "nodeType": "YulFunctionCall", - "src": "1165:30:17" + "src": "1036:34:17" }, - "nodeType": "YulIf", - "src": "1162:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "1226:84:17", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1282:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1293:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1278:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1278:22:17" + "name": "newFreePtr", + "nativeSrc": "1075:10:17", + "nodeType": "YulIdentifier", + "src": "1075:10:17" }, { - "name": "dataEnd", + "name": "memPtr", + "nativeSrc": "1087:6:17", "nodeType": "YulIdentifier", - "src": "1302:7:17" + "src": "1087:6:17" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr_fromMemory", + "name": "lt", + "nativeSrc": "1072:2:17", "nodeType": "YulIdentifier", - "src": "1236:41:17" + "src": "1072:2:17" }, + "nativeSrc": "1072:22:17", "nodeType": "YulFunctionCall", - "src": "1236:74:17" + "src": "1072:22:17" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:17", + "nodeType": "YulIdentifier", + "src": "1033:2:17" + }, + "nativeSrc": "1033:62:17", + "nodeType": "YulFunctionCall", + "src": "1033:62:17" + }, + "nativeSrc": "1030:88:17", + "nodeType": "YulIf", + "src": "1030:88:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:17", + "nodeType": "YulLiteral", + "src": "1134:2:17", + "type": "", + "value": "64" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1226:6:17" - } - ] - } - ] + { + "name": "newFreePtr", + "nativeSrc": "1138:10:17", + "nodeType": "YulIdentifier", + "src": "1138:10:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:17", + "nodeType": "YulIdentifier", + "src": "1127:6:17" + }, + "nativeSrc": "1127:22:17", + "nodeType": "YulFunctionCall", + "src": "1127:22:17" + }, + "nativeSrc": "1127:22:17", + "nodeType": "YulExpressionStatement", + "src": "1127:22:17" } ] }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "name": "finalize_allocation", + "nativeSrc": "874:281:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "memPtr", + "nativeSrc": "903:6:17", "nodeType": "YulTypedName", - "src": "751:9:17", + "src": "903:6:17", "type": "" }, { - "name": "dataEnd", + "name": "size", + "nativeSrc": "911:4:17", "nodeType": "YulTypedName", - "src": "762:7:17", + "src": "911:4:17", "type": "" } ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "774:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "782:6:17", - "type": "" - } - ], - "src": "675:652:17" + "src": "874:281:17" }, { "body": { + "nativeSrc": "1202:88:17", "nodeType": "YulBlock", - "src": "1374:88:17", + "src": "1202:88:17", "statements": [ { + "nativeSrc": "1212:30:17", "nodeType": "YulAssignment", - "src": "1384:30:17", + "src": "1212:30:17", "value": { "arguments": [], "functionName": { "name": "allocate_unbounded", + "nativeSrc": "1222:18:17", "nodeType": "YulIdentifier", - "src": "1394:18:17" + "src": "1222:18:17" }, + "nativeSrc": "1222:20:17", "nodeType": "YulFunctionCall", - "src": "1394:20:17" + "src": "1222:20:17" }, "variableNames": [ { "name": "memPtr", + "nativeSrc": "1212:6:17", "nodeType": "YulIdentifier", - "src": "1384:6:17" + "src": "1212:6:17" } ] }, @@ -1215,119 +1215,84 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "1271:6:17", "nodeType": "YulIdentifier", - "src": "1443:6:17" + "src": "1271:6:17" }, { "name": "size", + "nativeSrc": "1279:4:17", "nodeType": "YulIdentifier", - "src": "1451:4:17" + "src": "1279:4:17" } ], "functionName": { "name": "finalize_allocation", + "nativeSrc": "1251:19:17", "nodeType": "YulIdentifier", - "src": "1423:19:17" + "src": "1251:19:17" }, + "nativeSrc": "1251:33:17", "nodeType": "YulFunctionCall", - "src": "1423:33:17" + "src": "1251:33:17" }, + "nativeSrc": "1251:33:17", "nodeType": "YulExpressionStatement", - "src": "1423:33:17" + "src": "1251:33:17" } ] }, "name": "allocate_memory", + "nativeSrc": "1161:129:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", + "nativeSrc": "1186:4:17", "nodeType": "YulTypedName", - "src": "1358:4:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "1367:6:17", + "src": "1186:4:17", "type": "" } ], - "src": "1333:129:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1508:35:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1518:19:17", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1534:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1528:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "1528:9:17" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1518:6:17" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", + "nativeSrc": "1195:6:17", "nodeType": "YulTypedName", - "src": "1501:6:17", + "src": "1195:6:17", "type": "" } ], - "src": "1468:75:17" + "src": "1161:129:17" }, { "body": { + "nativeSrc": "1363:241:17", "nodeType": "YulBlock", - "src": "1616:241:17", + "src": "1363:241:17", "statements": [ { "body": { + "nativeSrc": "1468:22:17", "nodeType": "YulBlock", - "src": "1721:22:17", + "src": "1468:22:17", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", + "nativeSrc": "1470:16:17", "nodeType": "YulIdentifier", - "src": "1723:16:17" + "src": "1470:16:17" }, + "nativeSrc": "1470:18:17", "nodeType": "YulFunctionCall", - "src": "1723:18:17" + "src": "1470:18:17" }, + "nativeSrc": "1470:18:17", "nodeType": "YulExpressionStatement", - "src": "1723:18:17" + "src": "1470:18:17" } ] }, @@ -1335,139 +1300,163 @@ "arguments": [ { "name": "length", + "nativeSrc": "1440:6:17", "nodeType": "YulIdentifier", - "src": "1693:6:17" + "src": "1440:6:17" }, { "kind": "number", + "nativeSrc": "1448:18:17", "nodeType": "YulLiteral", - "src": "1701:18:17", + "src": "1448:18:17", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", + "nativeSrc": "1437:2:17", "nodeType": "YulIdentifier", - "src": "1690:2:17" + "src": "1437:2:17" }, + "nativeSrc": "1437:30:17", "nodeType": "YulFunctionCall", - "src": "1690:30:17" + "src": "1437:30:17" }, + "nativeSrc": "1434:56:17", "nodeType": "YulIf", - "src": "1687:2:17" + "src": "1434:56:17" }, { + "nativeSrc": "1500:37:17", "nodeType": "YulAssignment", - "src": "1753:37:17", + "src": "1500:37:17", "value": { "arguments": [ { "name": "length", + "nativeSrc": "1530:6:17", "nodeType": "YulIdentifier", - "src": "1783:6:17" + "src": "1530:6:17" } ], "functionName": { "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:17", "nodeType": "YulIdentifier", - "src": "1761:21:17" + "src": "1508:21:17" }, + "nativeSrc": "1508:29:17", "nodeType": "YulFunctionCall", - "src": "1761:29:17" + "src": "1508:29:17" }, "variableNames": [ { "name": "size", + "nativeSrc": "1500:4:17", "nodeType": "YulIdentifier", - "src": "1753:4:17" + "src": "1500:4:17" } ] }, { + "nativeSrc": "1574:23:17", "nodeType": "YulAssignment", - "src": "1827:23:17", + "src": "1574:23:17", "value": { "arguments": [ { "name": "size", + "nativeSrc": "1586:4:17", "nodeType": "YulIdentifier", - "src": "1839:4:17" + "src": "1586:4:17" }, { "kind": "number", + "nativeSrc": "1592:4:17", "nodeType": "YulLiteral", - "src": "1845:4:17", + "src": "1592:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "1582:3:17", "nodeType": "YulIdentifier", - "src": "1835:3:17" + "src": "1582:3:17" }, + "nativeSrc": "1582:15:17", "nodeType": "YulFunctionCall", - "src": "1835:15:17" + "src": "1582:15:17" }, "variableNames": [ { "name": "size", + "nativeSrc": "1574:4:17", "nodeType": "YulIdentifier", - "src": "1827:4:17" + "src": "1574:4:17" } ] } ] }, "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", + "nativeSrc": "1347:6:17", "nodeType": "YulTypedName", - "src": "1600:6:17", + "src": "1347:6:17", "type": "" } ], "returnVariables": [ { "name": "size", + "nativeSrc": "1358:4:17", "nodeType": "YulTypedName", - "src": "1611:4:17", + "src": "1358:4:17", "type": "" } ], - "src": "1549:308:17" + "src": "1296:308:17" }, { "body": { + "nativeSrc": "1672:184:17", "nodeType": "YulBlock", - "src": "1912:258:17", + "src": "1672:184:17", "statements": [ { + "nativeSrc": "1682:10:17", "nodeType": "YulVariableDeclaration", - "src": "1922:10:17", + "src": "1682:10:17", "value": { "kind": "number", + "nativeSrc": "1691:1:17", "nodeType": "YulLiteral", - "src": "1931:1:17", + "src": "1691:1:17", "type": "", "value": "0" }, "variables": [ { "name": "i", + "nativeSrc": "1686:1:17", "nodeType": "YulTypedName", - "src": "1926:1:17", + "src": "1686:1:17", "type": "" } ] }, { "body": { + "nativeSrc": "1751:63:17", "nodeType": "YulBlock", - "src": "1991:63:17", + "src": "1751:63:17", "statements": [ { "expression": { @@ -1476,22 +1465,26 @@ "arguments": [ { "name": "dst", + "nativeSrc": "1776:3:17", "nodeType": "YulIdentifier", - "src": "2016:3:17" + "src": "1776:3:17" }, { "name": "i", + "nativeSrc": "1781:1:17", "nodeType": "YulIdentifier", - "src": "2021:1:17" + "src": "1781:1:17" } ], "functionName": { "name": "add", + "nativeSrc": "1772:3:17", "nodeType": "YulIdentifier", - "src": "2012:3:17" + "src": "1772:3:17" }, + "nativeSrc": "1772:11:17", "nodeType": "YulFunctionCall", - "src": "2012:11:17" + "src": "1772:11:17" }, { "arguments": [ @@ -1499,43 +1492,52 @@ "arguments": [ { "name": "src", + "nativeSrc": "1795:3:17", "nodeType": "YulIdentifier", - "src": "2035:3:17" + "src": "1795:3:17" }, { "name": "i", + "nativeSrc": "1800:1:17", "nodeType": "YulIdentifier", - "src": "2040:1:17" + "src": "1800:1:17" } ], "functionName": { "name": "add", + "nativeSrc": "1791:3:17", "nodeType": "YulIdentifier", - "src": "2031:3:17" + "src": "1791:3:17" }, + "nativeSrc": "1791:11:17", "nodeType": "YulFunctionCall", - "src": "2031:11:17" + "src": "1791:11:17" } ], "functionName": { "name": "mload", + "nativeSrc": "1785:5:17", "nodeType": "YulIdentifier", - "src": "2025:5:17" + "src": "1785:5:17" }, + "nativeSrc": "1785:18:17", "nodeType": "YulFunctionCall", - "src": "2025:18:17" + "src": "1785:18:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "1765:6:17", "nodeType": "YulIdentifier", - "src": "2005:6:17" + "src": "1765:6:17" }, + "nativeSrc": "1765:39:17", "nodeType": "YulFunctionCall", - "src": "2005:39:17" + "src": "1765:39:17" }, + "nativeSrc": "1765:39:17", "nodeType": "YulExpressionStatement", - "src": "2005:39:17" + "src": "1765:39:17" } ] }, @@ -1543,2206 +1545,5552 @@ "arguments": [ { "name": "i", + "nativeSrc": "1712:1:17", "nodeType": "YulIdentifier", - "src": "1952:1:17" + "src": "1712:1:17" }, { "name": "length", + "nativeSrc": "1715:6:17", "nodeType": "YulIdentifier", - "src": "1955:6:17" + "src": "1715:6:17" } ], "functionName": { "name": "lt", + "nativeSrc": "1709:2:17", "nodeType": "YulIdentifier", - "src": "1949:2:17" + "src": "1709:2:17" }, + "nativeSrc": "1709:13:17", "nodeType": "YulFunctionCall", - "src": "1949:13:17" + "src": "1709:13:17" }, + "nativeSrc": "1701:113:17", "nodeType": "YulForLoop", "post": { + "nativeSrc": "1723:19:17", "nodeType": "YulBlock", - "src": "1963:19:17", + "src": "1723:19:17", "statements": [ { + "nativeSrc": "1725:15:17", "nodeType": "YulAssignment", - "src": "1965:15:17", + "src": "1725:15:17", "value": { "arguments": [ { "name": "i", + "nativeSrc": "1734:1:17", "nodeType": "YulIdentifier", - "src": "1974:1:17" + "src": "1734:1:17" }, { "kind": "number", + "nativeSrc": "1737:2:17", "nodeType": "YulLiteral", - "src": "1977:2:17", + "src": "1737:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "1730:3:17", "nodeType": "YulIdentifier", - "src": "1970:3:17" + "src": "1730:3:17" }, + "nativeSrc": "1730:10:17", "nodeType": "YulFunctionCall", - "src": "1970:10:17" + "src": "1730:10:17" }, "variableNames": [ { "name": "i", + "nativeSrc": "1725:1:17", "nodeType": "YulIdentifier", - "src": "1965:1:17" + "src": "1725:1:17" } ] } ] }, "pre": { + "nativeSrc": "1705:3:17", "nodeType": "YulBlock", - "src": "1945:3:17", + "src": "1705:3:17", "statements": [] }, - "src": "1941:113:17" + "src": "1701:113:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "2088:76:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "2138:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2143:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2134:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2134:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2152:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "dst", + "nativeSrc": "1834:3:17", "nodeType": "YulIdentifier", - "src": "2127:6:17" + "src": "1834:3:17" }, - "nodeType": "YulFunctionCall", - "src": "2127:27:17" + { + "name": "length", + "nativeSrc": "1839:6:17", + "nodeType": "YulIdentifier", + "src": "1839:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1830:3:17", + "nodeType": "YulIdentifier", + "src": "1830:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "2127:27:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "2069:1:17" + "nativeSrc": "1830:16:17", + "nodeType": "YulFunctionCall", + "src": "1830:16:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2072:6:17" + "kind": "number", + "nativeSrc": "1848:1:17", + "nodeType": "YulLiteral", + "src": "1848:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "gt", + "name": "mstore", + "nativeSrc": "1823:6:17", "nodeType": "YulIdentifier", - "src": "2066:2:17" + "src": "1823:6:17" }, + "nativeSrc": "1823:27:17", "nodeType": "YulFunctionCall", - "src": "2066:13:17" + "src": "1823:27:17" }, - "nodeType": "YulIf", - "src": "2063:2:17" + "nativeSrc": "1823:27:17", + "nodeType": "YulExpressionStatement", + "src": "1823:27:17" } ] }, - "name": "copy_memory_to_memory", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:246:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", + "nativeSrc": "1654:3:17", "nodeType": "YulTypedName", - "src": "1894:3:17", + "src": "1654:3:17", "type": "" }, { "name": "dst", + "nativeSrc": "1659:3:17", "nodeType": "YulTypedName", - "src": "1899:3:17", + "src": "1659:3:17", "type": "" }, { "name": "length", + "nativeSrc": "1664:6:17", "nodeType": "YulTypedName", - "src": "1904:6:17", + "src": "1664:6:17", "type": "" } ], - "src": "1863:307:17" + "src": "1610:246:17" }, { "body": { + "nativeSrc": "1957:339:17", "nodeType": "YulBlock", - "src": "2227:269:17", + "src": "1957:339:17", "statements": [ { + "nativeSrc": "1967:75:17", "nodeType": "YulAssignment", - "src": "2237:22:17", + "src": "1967:75:17", "value": { "arguments": [ { - "name": "data", - "nodeType": "YulIdentifier", - "src": "2251:4:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2257:1:17", - "type": "", - "value": "2" + "arguments": [ + { + "name": "length", + "nativeSrc": "2034:6:17", + "nodeType": "YulIdentifier", + "src": "2034:6:17" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1992:41:17", + "nodeType": "YulIdentifier", + "src": "1992:41:17" + }, + "nativeSrc": "1992:49:17", + "nodeType": "YulFunctionCall", + "src": "1992:49:17" } ], "functionName": { - "name": "div", + "name": "allocate_memory", + "nativeSrc": "1976:15:17", "nodeType": "YulIdentifier", - "src": "2247:3:17" + "src": "1976:15:17" }, + "nativeSrc": "1976:66:17", "nodeType": "YulFunctionCall", - "src": "2247:12:17" + "src": "1976:66:17" }, "variableNames": [ { - "name": "length", + "name": "array", + "nativeSrc": "1967:5:17", "nodeType": "YulIdentifier", - "src": "2237:6:17" + "src": "1967:5:17" } ] }, { - "nodeType": "YulVariableDeclaration", - "src": "2268:38:17", - "value": { + "expression": { "arguments": [ { - "name": "data", + "name": "array", + "nativeSrc": "2058:5:17", "nodeType": "YulIdentifier", - "src": "2298:4:17" + "src": "2058:5:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2304:1:17", - "type": "", - "value": "1" + "name": "length", + "nativeSrc": "2065:6:17", + "nodeType": "YulIdentifier", + "src": "2065:6:17" } ], "functionName": { - "name": "and", + "name": "mstore", + "nativeSrc": "2051:6:17", "nodeType": "YulIdentifier", - "src": "2294:3:17" + "src": "2051:6:17" }, + "nativeSrc": "2051:21:17", "nodeType": "YulFunctionCall", - "src": "2294:12:17" + "src": "2051:21:17" }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "2272:18:17", - "type": "" - } - ] + "nativeSrc": "2051:21:17", + "nodeType": "YulExpressionStatement", + "src": "2051:21:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "2345:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2359:27:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2373:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2381:4:17", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2369:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2369:17:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2359:6:17" - } - ] - } - ] - }, - "condition": { + "nativeSrc": "2081:27:17", + "nodeType": "YulVariableDeclaration", + "src": "2081:27:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "array", + "nativeSrc": "2096:5:17", "nodeType": "YulIdentifier", - "src": "2325:18:17" + "src": "2096:5:17" + }, + { + "kind": "number", + "nativeSrc": "2103:4:17", + "nodeType": "YulLiteral", + "src": "2103:4:17", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "iszero", + "name": "add", + "nativeSrc": "2092:3:17", "nodeType": "YulIdentifier", - "src": "2318:6:17" + "src": "2092:3:17" }, + "nativeSrc": "2092:16:17", "nodeType": "YulFunctionCall", - "src": "2318:26:17" + "src": "2092:16:17" }, - "nodeType": "YulIf", - "src": "2315:2:17" + "variables": [ + { + "name": "dst", + "nativeSrc": "2085:3:17", + "nodeType": "YulTypedName", + "src": "2085:3:17", + "type": "" + } + ] }, { "body": { + "nativeSrc": "2146:83:17", "nodeType": "YulBlock", - "src": "2448:42:17", + "src": "2146:83:17", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x22", + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2148:77:17", "nodeType": "YulIdentifier", - "src": "2462:16:17" + "src": "2148:77:17" }, + "nativeSrc": "2148:79:17", "nodeType": "YulFunctionCall", - "src": "2462:18:17" + "src": "2148:79:17" }, + "nativeSrc": "2148:79:17", "nodeType": "YulExpressionStatement", - "src": "2462:18:17" + "src": "2148:79:17" } ] }, "condition": { "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "2412:18:17" - }, { "arguments": [ { - "name": "length", + "name": "src", + "nativeSrc": "2127:3:17", "nodeType": "YulIdentifier", - "src": "2435:6:17" + "src": "2127:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2443:2:17", - "type": "", - "value": "32" + "name": "length", + "nativeSrc": "2132:6:17", + "nodeType": "YulIdentifier", + "src": "2132:6:17" } ], "functionName": { - "name": "lt", + "name": "add", + "nativeSrc": "2123:3:17", "nodeType": "YulIdentifier", - "src": "2432:2:17" + "src": "2123:3:17" }, + "nativeSrc": "2123:16:17", "nodeType": "YulFunctionCall", - "src": "2432:14:17" + "src": "2123:16:17" + }, + { + "name": "end", + "nativeSrc": "2141:3:17", + "nodeType": "YulIdentifier", + "src": "2141:3:17" } ], "functionName": { - "name": "eq", + "name": "gt", + "nativeSrc": "2120:2:17", "nodeType": "YulIdentifier", - "src": "2409:2:17" + "src": "2120:2:17" }, + "nativeSrc": "2120:25:17", "nodeType": "YulFunctionCall", - "src": "2409:38:17" + "src": "2120:25:17" }, + "nativeSrc": "2117:112:17", "nodeType": "YulIf", - "src": "2406:2:17" + "src": "2117:112:17" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2273:3:17", + "nodeType": "YulIdentifier", + "src": "2273:3:17" + }, + { + "name": "dst", + "nativeSrc": "2278:3:17", + "nodeType": "YulIdentifier", + "src": "2278:3:17" + }, + { + "name": "length", + "nativeSrc": "2283:6:17", + "nodeType": "YulIdentifier", + "src": "2283:6:17" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2238:34:17", + "nodeType": "YulIdentifier", + "src": "2238:34:17" + }, + "nativeSrc": "2238:52:17", + "nodeType": "YulFunctionCall", + "src": "2238:52:17" + }, + "nativeSrc": "2238:52:17", + "nodeType": "YulExpressionStatement", + "src": "2238:52:17" } ] }, - "name": "extract_byte_array_length", + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1862:434:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "src", + "nativeSrc": "1930:3:17", "nodeType": "YulTypedName", - "src": "2211:4:17", + "src": "1930:3:17", "type": "" - } + }, + { + "name": "length", + "nativeSrc": "1935:6:17", + "nodeType": "YulTypedName", + "src": "1935:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1943:3:17", + "nodeType": "YulTypedName", + "src": "1943:3:17", + "type": "" + } ], "returnVariables": [ { - "name": "length", + "name": "array", + "nativeSrc": "1951:5:17", "nodeType": "YulTypedName", - "src": "2220:6:17", + "src": "1951:5:17", "type": "" } ], - "src": "2176:320:17" + "src": "1862:434:17" }, { "body": { + "nativeSrc": "2389:282:17", "nodeType": "YulBlock", - "src": "2545:238:17", + "src": "2389:282:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "2555:58:17", - "value": { - "arguments": [ + "body": { + "nativeSrc": "2438:83:17", + "nodeType": "YulBlock", + "src": "2438:83:17", + "statements": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2577:6:17" - }, + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2440:77:17", + "nodeType": "YulIdentifier", + "src": "2440:77:17" + }, + "nativeSrc": "2440:79:17", + "nodeType": "YulFunctionCall", + "src": "2440:79:17" + }, + "nativeSrc": "2440:79:17", + "nodeType": "YulExpressionStatement", + "src": "2440:79:17" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "size", + "arguments": [ + { + "name": "offset", + "nativeSrc": "2417:6:17", + "nodeType": "YulIdentifier", + "src": "2417:6:17" + }, + { + "kind": "number", + "nativeSrc": "2425:4:17", + "nodeType": "YulLiteral", + "src": "2425:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2413:3:17", + "nodeType": "YulIdentifier", + "src": "2413:3:17" + }, + "nativeSrc": "2413:17:17", + "nodeType": "YulFunctionCall", + "src": "2413:17:17" + }, + { + "name": "end", + "nativeSrc": "2432:3:17", "nodeType": "YulIdentifier", - "src": "2607:4:17" + "src": "2432:3:17" } ], "functionName": { - "name": "round_up_to_mul_of_32", + "name": "slt", + "nativeSrc": "2409:3:17", "nodeType": "YulIdentifier", - "src": "2585:21:17" + "src": "2409:3:17" }, + "nativeSrc": "2409:27:17", "nodeType": "YulFunctionCall", - "src": "2585:27:17" + "src": "2409:27:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "2402:6:17", + "nodeType": "YulIdentifier", + "src": "2402:6:17" + }, + "nativeSrc": "2402:35:17", + "nodeType": "YulFunctionCall", + "src": "2402:35:17" + }, + "nativeSrc": "2399:122:17", + "nodeType": "YulIf", + "src": "2399:122:17" + }, + { + "nativeSrc": "2530:27:17", + "nodeType": "YulVariableDeclaration", + "src": "2530:27:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2550:6:17", + "nodeType": "YulIdentifier", + "src": "2550:6:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2544:5:17", "nodeType": "YulIdentifier", - "src": "2573:3:17" + "src": "2544:5:17" }, + "nativeSrc": "2544:13:17", "nodeType": "YulFunctionCall", - "src": "2573:40:17" + "src": "2544:13:17" }, "variables": [ { - "name": "newFreePtr", + "name": "length", + "nativeSrc": "2534:6:17", "nodeType": "YulTypedName", - "src": "2559:10:17", + "src": "2534:6:17", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "2724:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "2726:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "2726:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2726:18:17" - } - ] - }, - "condition": { + "nativeSrc": "2566:99:17", + "nodeType": "YulAssignment", + "src": "2566:99:17", + "value": { "arguments": [ { "arguments": [ { - "name": "newFreePtr", + "name": "offset", + "nativeSrc": "2638:6:17", "nodeType": "YulIdentifier", - "src": "2667:10:17" + "src": "2638:6:17" }, { "kind": "number", + "nativeSrc": "2646:4:17", "nodeType": "YulLiteral", - "src": "2679:18:17", + "src": "2646:4:17", "type": "", - "value": "0xffffffffffffffff" + "value": "0x20" } ], "functionName": { - "name": "gt", + "name": "add", + "nativeSrc": "2634:3:17", "nodeType": "YulIdentifier", - "src": "2664:2:17" + "src": "2634:3:17" }, + "nativeSrc": "2634:17:17", "nodeType": "YulFunctionCall", - "src": "2664:34:17" + "src": "2634:17:17" }, { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "2703:10:17" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2715:6:17" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "2700:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "2700:22:17" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "2661:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "2661:62:17" - }, - "nodeType": "YulIf", - "src": "2658:2:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2762:2:17", - "type": "", - "value": "64" + "name": "length", + "nativeSrc": "2653:6:17", + "nodeType": "YulIdentifier", + "src": "2653:6:17" }, { - "name": "newFreePtr", + "name": "end", + "nativeSrc": "2661:3:17", "nodeType": "YulIdentifier", - "src": "2766:10:17" + "src": "2661:3:17" } ], "functionName": { - "name": "mstore", + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2575:58:17", "nodeType": "YulIdentifier", - "src": "2755:6:17" + "src": "2575:58:17" }, + "nativeSrc": "2575:90:17", "nodeType": "YulFunctionCall", - "src": "2755:22:17" + "src": "2575:90:17" }, - "nodeType": "YulExpressionStatement", - "src": "2755:22:17" + "variableNames": [ + { + "name": "array", + "nativeSrc": "2566:5:17", + "nodeType": "YulIdentifier", + "src": "2566:5:17" + } + ] } ] }, - "name": "finalize_allocation", + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2316:355:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "offset", + "nativeSrc": "2367:6:17", "nodeType": "YulTypedName", - "src": "2531:6:17", + "src": "2367:6:17", "type": "" }, { - "name": "size", + "name": "end", + "nativeSrc": "2375:3:17", + "nodeType": "YulTypedName", + "src": "2375:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2383:5:17", "nodeType": "YulTypedName", - "src": "2539:4:17", + "src": "2383:5:17", "type": "" } ], - "src": "2502:281:17" + "src": "2316:355:17" }, { "body": { + "nativeSrc": "2791:739:17", "nodeType": "YulBlock", - "src": "2817:152:17", + "src": "2791:739:17", "statements": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2834:1:17", - "type": "", - "value": "0" - }, + "body": { + "nativeSrc": "2837:83:17", + "nodeType": "YulBlock", + "src": "2837:83:17", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2837:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2839:77:17", + "nodeType": "YulIdentifier", + "src": "2839:77:17" + }, + "nativeSrc": "2839:79:17", + "nodeType": "YulFunctionCall", + "src": "2839:79:17" + }, + "nativeSrc": "2839:79:17", + "nodeType": "YulExpressionStatement", + "src": "2839:79:17" } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2827:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2827:88:17" + ] }, - "nodeType": "YulExpressionStatement", - "src": "2827:88:17" - }, - { - "expression": { + "condition": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2931:1:17", - "type": "", - "value": "4" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2812:7:17", + "nodeType": "YulIdentifier", + "src": "2812:7:17" + }, + { + "name": "headStart", + "nativeSrc": "2821:9:17", + "nodeType": "YulIdentifier", + "src": "2821:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2808:3:17", + "nodeType": "YulIdentifier", + "src": "2808:3:17" + }, + "nativeSrc": "2808:23:17", + "nodeType": "YulFunctionCall", + "src": "2808:23:17" }, { "kind": "number", + "nativeSrc": "2833:2:17", "nodeType": "YulLiteral", - "src": "2934:4:17", + "src": "2833:2:17", "type": "", - "value": "0x22" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "slt", + "nativeSrc": "2804:3:17", "nodeType": "YulIdentifier", - "src": "2924:6:17" + "src": "2804:3:17" }, + "nativeSrc": "2804:32:17", "nodeType": "YulFunctionCall", - "src": "2924:15:17" + "src": "2804:32:17" }, - "nodeType": "YulExpressionStatement", - "src": "2924:15:17" + "nativeSrc": "2801:119:17", + "nodeType": "YulIf", + "src": "2801:119:17" + }, + { + "nativeSrc": "2930:291:17", + "nodeType": "YulBlock", + "src": "2930:291:17", + "statements": [ + { + "nativeSrc": "2945:38:17", + "nodeType": "YulVariableDeclaration", + "src": "2945:38:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2969:9:17", + "nodeType": "YulIdentifier", + "src": "2969:9:17" + }, + { + "kind": "number", + "nativeSrc": "2980:1:17", + "nodeType": "YulLiteral", + "src": "2980:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2965:3:17", + "nodeType": "YulIdentifier", + "src": "2965:3:17" + }, + "nativeSrc": "2965:17:17", + "nodeType": "YulFunctionCall", + "src": "2965:17:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2959:5:17", + "nodeType": "YulIdentifier", + "src": "2959:5:17" + }, + "nativeSrc": "2959:24:17", + "nodeType": "YulFunctionCall", + "src": "2959:24:17" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2949:6:17", + "nodeType": "YulTypedName", + "src": "2949:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3030:83:17", + "nodeType": "YulBlock", + "src": "3030:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3032:77:17", + "nodeType": "YulIdentifier", + "src": "3032:77:17" + }, + "nativeSrc": "3032:79:17", + "nodeType": "YulFunctionCall", + "src": "3032:79:17" + }, + "nativeSrc": "3032:79:17", + "nodeType": "YulExpressionStatement", + "src": "3032:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3002:6:17", + "nodeType": "YulIdentifier", + "src": "3002:6:17" + }, + { + "kind": "number", + "nativeSrc": "3010:18:17", + "nodeType": "YulLiteral", + "src": "3010:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2999:2:17", + "nodeType": "YulIdentifier", + "src": "2999:2:17" + }, + "nativeSrc": "2999:30:17", + "nodeType": "YulFunctionCall", + "src": "2999:30:17" + }, + "nativeSrc": "2996:117:17", + "nodeType": "YulIf", + "src": "2996:117:17" + }, + { + "nativeSrc": "3127:84:17", + "nodeType": "YulAssignment", + "src": "3127:84:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3183:9:17", + "nodeType": "YulIdentifier", + "src": "3183:9:17" + }, + { + "name": "offset", + "nativeSrc": "3194:6:17", + "nodeType": "YulIdentifier", + "src": "3194:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3179:3:17", + "nodeType": "YulIdentifier", + "src": "3179:3:17" + }, + "nativeSrc": "3179:22:17", + "nodeType": "YulFunctionCall", + "src": "3179:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "3203:7:17", + "nodeType": "YulIdentifier", + "src": "3203:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3137:41:17", + "nodeType": "YulIdentifier", + "src": "3137:41:17" + }, + "nativeSrc": "3137:74:17", + "nodeType": "YulFunctionCall", + "src": "3137:74:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3127:6:17", + "nodeType": "YulIdentifier", + "src": "3127:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "3231:292:17", + "nodeType": "YulBlock", + "src": "3231:292:17", + "statements": [ + { + "nativeSrc": "3246:39:17", + "nodeType": "YulVariableDeclaration", + "src": "3246:39:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3270:9:17", + "nodeType": "YulIdentifier", + "src": "3270:9:17" + }, + { + "kind": "number", + "nativeSrc": "3281:2:17", + "nodeType": "YulLiteral", + "src": "3281:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3266:3:17", + "nodeType": "YulIdentifier", + "src": "3266:3:17" + }, + "nativeSrc": "3266:18:17", + "nodeType": "YulFunctionCall", + "src": "3266:18:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3260:5:17", + "nodeType": "YulIdentifier", + "src": "3260:5:17" + }, + "nativeSrc": "3260:25:17", + "nodeType": "YulFunctionCall", + "src": "3260:25:17" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3250:6:17", + "nodeType": "YulTypedName", + "src": "3250:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3332:83:17", + "nodeType": "YulBlock", + "src": "3332:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3334:77:17", + "nodeType": "YulIdentifier", + "src": "3334:77:17" + }, + "nativeSrc": "3334:79:17", + "nodeType": "YulFunctionCall", + "src": "3334:79:17" + }, + "nativeSrc": "3334:79:17", + "nodeType": "YulExpressionStatement", + "src": "3334:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3304:6:17", + "nodeType": "YulIdentifier", + "src": "3304:6:17" + }, + { + "kind": "number", + "nativeSrc": "3312:18:17", + "nodeType": "YulLiteral", + "src": "3312:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3301:2:17", + "nodeType": "YulIdentifier", + "src": "3301:2:17" + }, + "nativeSrc": "3301:30:17", + "nodeType": "YulFunctionCall", + "src": "3301:30:17" + }, + "nativeSrc": "3298:117:17", + "nodeType": "YulIf", + "src": "3298:117:17" + }, + { + "nativeSrc": "3429:84:17", + "nodeType": "YulAssignment", + "src": "3429:84:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3485:9:17", + "nodeType": "YulIdentifier", + "src": "3485:9:17" + }, + { + "name": "offset", + "nativeSrc": "3496:6:17", + "nodeType": "YulIdentifier", + "src": "3496:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3481:3:17", + "nodeType": "YulIdentifier", + "src": "3481:3:17" + }, + "nativeSrc": "3481:22:17", + "nodeType": "YulFunctionCall", + "src": "3481:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "3505:7:17", + "nodeType": "YulIdentifier", + "src": "3505:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3439:41:17", + "nodeType": "YulIdentifier", + "src": "3439:41:17" + }, + "nativeSrc": "3439:74:17", + "nodeType": "YulFunctionCall", + "src": "3439:74:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3429:6:17", + "nodeType": "YulIdentifier", + "src": "3429:6:17" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory", + "nativeSrc": "2677:853:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2753:9:17", + "nodeType": "YulTypedName", + "src": "2753:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2764:7:17", + "nodeType": "YulTypedName", + "src": "2764:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2776:6:17", + "nodeType": "YulTypedName", + "src": "2776:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2784:6:17", + "nodeType": "YulTypedName", + "src": "2784:6:17", + "type": "" + } + ], + "src": "2677:853:17" + }, + { + "body": { + "nativeSrc": "3595:40:17", + "nodeType": "YulBlock", + "src": "3595:40:17", + "statements": [ + { + "nativeSrc": "3606:22:17", + "nodeType": "YulAssignment", + "src": "3606:22:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3622:5:17", + "nodeType": "YulIdentifier", + "src": "3622:5:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3616:5:17", + "nodeType": "YulIdentifier", + "src": "3616:5:17" + }, + "nativeSrc": "3616:12:17", + "nodeType": "YulFunctionCall", + "src": "3616:12:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3606:6:17", + "nodeType": "YulIdentifier", + "src": "3606:6:17" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3536:99:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3578:5:17", + "nodeType": "YulTypedName", + "src": "3578:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3588:6:17", + "nodeType": "YulTypedName", + "src": "3588:6:17", + "type": "" + } + ], + "src": "3536:99:17" + }, + { + "body": { + "nativeSrc": "3669:152:17", + "nodeType": "YulBlock", + "src": "3669:152:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3686:1:17", + "nodeType": "YulLiteral", + "src": "3686:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3689:77:17", + "nodeType": "YulLiteral", + "src": "3689:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3679:6:17", + "nodeType": "YulIdentifier", + "src": "3679:6:17" + }, + "nativeSrc": "3679:88:17", + "nodeType": "YulFunctionCall", + "src": "3679:88:17" + }, + "nativeSrc": "3679:88:17", + "nodeType": "YulExpressionStatement", + "src": "3679:88:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3783:1:17", + "nodeType": "YulLiteral", + "src": "3783:1:17", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3786:4:17", + "nodeType": "YulLiteral", + "src": "3786:4:17", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3776:6:17", + "nodeType": "YulIdentifier", + "src": "3776:6:17" + }, + "nativeSrc": "3776:15:17", + "nodeType": "YulFunctionCall", + "src": "3776:15:17" + }, + "nativeSrc": "3776:15:17", + "nodeType": "YulExpressionStatement", + "src": "3776:15:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3807:1:17", + "nodeType": "YulLiteral", + "src": "3807:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3810:4:17", + "nodeType": "YulLiteral", + "src": "3810:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3800:6:17", + "nodeType": "YulIdentifier", + "src": "3800:6:17" + }, + "nativeSrc": "3800:15:17", + "nodeType": "YulFunctionCall", + "src": "3800:15:17" + }, + "nativeSrc": "3800:15:17", + "nodeType": "YulExpressionStatement", + "src": "3800:15:17" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3641:180:17", + "nodeType": "YulFunctionDefinition", + "src": "3641:180:17" + }, + { + "body": { + "nativeSrc": "3878:269:17", + "nodeType": "YulBlock", + "src": "3878:269:17", + "statements": [ + { + "nativeSrc": "3888:22:17", + "nodeType": "YulAssignment", + "src": "3888:22:17", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3902:4:17", + "nodeType": "YulIdentifier", + "src": "3902:4:17" + }, + { + "kind": "number", + "nativeSrc": "3908:1:17", + "nodeType": "YulLiteral", + "src": "3908:1:17", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3898:3:17", + "nodeType": "YulIdentifier", + "src": "3898:3:17" + }, + "nativeSrc": "3898:12:17", + "nodeType": "YulFunctionCall", + "src": "3898:12:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3888:6:17", + "nodeType": "YulIdentifier", + "src": "3888:6:17" + } + ] + }, + { + "nativeSrc": "3919:38:17", + "nodeType": "YulVariableDeclaration", + "src": "3919:38:17", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3949:4:17", + "nodeType": "YulIdentifier", + "src": "3949:4:17" + }, + { + "kind": "number", + "nativeSrc": "3955:1:17", + "nodeType": "YulLiteral", + "src": "3955:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3945:3:17", + "nodeType": "YulIdentifier", + "src": "3945:3:17" + }, + "nativeSrc": "3945:12:17", + "nodeType": "YulFunctionCall", + "src": "3945:12:17" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3923:18:17", + "nodeType": "YulTypedName", + "src": "3923:18:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3996:51:17", + "nodeType": "YulBlock", + "src": "3996:51:17", + "statements": [ + { + "nativeSrc": "4010:27:17", + "nodeType": "YulAssignment", + "src": "4010:27:17", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "4024:6:17", + "nodeType": "YulIdentifier", + "src": "4024:6:17" + }, + { + "kind": "number", + "nativeSrc": "4032:4:17", + "nodeType": "YulLiteral", + "src": "4032:4:17", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4020:3:17", + "nodeType": "YulIdentifier", + "src": "4020:3:17" + }, + "nativeSrc": "4020:17:17", + "nodeType": "YulFunctionCall", + "src": "4020:17:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "4010:6:17", + "nodeType": "YulIdentifier", + "src": "4010:6:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3976:18:17", + "nodeType": "YulIdentifier", + "src": "3976:18:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3969:6:17", + "nodeType": "YulIdentifier", + "src": "3969:6:17" + }, + "nativeSrc": "3969:26:17", + "nodeType": "YulFunctionCall", + "src": "3969:26:17" + }, + "nativeSrc": "3966:81:17", + "nodeType": "YulIf", + "src": "3966:81:17" + }, + { + "body": { + "nativeSrc": "4099:42:17", + "nodeType": "YulBlock", + "src": "4099:42:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "4113:16:17", + "nodeType": "YulIdentifier", + "src": "4113:16:17" + }, + "nativeSrc": "4113:18:17", + "nodeType": "YulFunctionCall", + "src": "4113:18:17" + }, + "nativeSrc": "4113:18:17", + "nodeType": "YulExpressionStatement", + "src": "4113:18:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "4063:18:17", + "nodeType": "YulIdentifier", + "src": "4063:18:17" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4086:6:17", + "nodeType": "YulIdentifier", + "src": "4086:6:17" + }, + { + "kind": "number", + "nativeSrc": "4094:2:17", + "nodeType": "YulLiteral", + "src": "4094:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4083:2:17", + "nodeType": "YulIdentifier", + "src": "4083:2:17" + }, + "nativeSrc": "4083:14:17", + "nodeType": "YulFunctionCall", + "src": "4083:14:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4060:2:17", + "nodeType": "YulIdentifier", + "src": "4060:2:17" + }, + "nativeSrc": "4060:38:17", + "nodeType": "YulFunctionCall", + "src": "4060:38:17" + }, + "nativeSrc": "4057:84:17", + "nodeType": "YulIf", + "src": "4057:84:17" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3827:320:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3862:4:17", + "nodeType": "YulTypedName", + "src": "3862:4:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3871:6:17", + "nodeType": "YulTypedName", + "src": "3871:6:17", + "type": "" + } + ], + "src": "3827:320:17" + }, + { + "body": { + "nativeSrc": "4207:87:17", + "nodeType": "YulBlock", + "src": "4207:87:17", + "statements": [ + { + "nativeSrc": "4217:11:17", + "nodeType": "YulAssignment", + "src": "4217:11:17", + "value": { + "name": "ptr", + "nativeSrc": "4225:3:17", + "nodeType": "YulIdentifier", + "src": "4225:3:17" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "4217:4:17", + "nodeType": "YulIdentifier", + "src": "4217:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4245:1:17", + "nodeType": "YulLiteral", + "src": "4245:1:17", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "4248:3:17", + "nodeType": "YulIdentifier", + "src": "4248:3:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4238:6:17", + "nodeType": "YulIdentifier", + "src": "4238:6:17" + }, + "nativeSrc": "4238:14:17", + "nodeType": "YulFunctionCall", + "src": "4238:14:17" + }, + "nativeSrc": "4238:14:17", + "nodeType": "YulExpressionStatement", + "src": "4238:14:17" + }, + { + "nativeSrc": "4261:26:17", + "nodeType": "YulAssignment", + "src": "4261:26:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4279:1:17", + "nodeType": "YulLiteral", + "src": "4279:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4282:4:17", + "nodeType": "YulLiteral", + "src": "4282:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "4269:9:17", + "nodeType": "YulIdentifier", + "src": "4269:9:17" + }, + "nativeSrc": "4269:18:17", + "nodeType": "YulFunctionCall", + "src": "4269:18:17" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "4261:4:17", + "nodeType": "YulIdentifier", + "src": "4261:4:17" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "4153:141:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "4194:3:17", + "nodeType": "YulTypedName", + "src": "4194:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "4202:4:17", + "nodeType": "YulTypedName", + "src": "4202:4:17", + "type": "" + } + ], + "src": "4153:141:17" + }, + { + "body": { + "nativeSrc": "4344:49:17", + "nodeType": "YulBlock", + "src": "4344:49:17", + "statements": [ + { + "nativeSrc": "4354:33:17", + "nodeType": "YulAssignment", + "src": "4354:33:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4372:5:17", + "nodeType": "YulIdentifier", + "src": "4372:5:17" + }, + { + "kind": "number", + "nativeSrc": "4379:2:17", + "nodeType": "YulLiteral", + "src": "4379:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4368:3:17", + "nodeType": "YulIdentifier", + "src": "4368:3:17" + }, + "nativeSrc": "4368:14:17", + "nodeType": "YulFunctionCall", + "src": "4368:14:17" + }, + { + "kind": "number", + "nativeSrc": "4384:2:17", + "nodeType": "YulLiteral", + "src": "4384:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4364:3:17", + "nodeType": "YulIdentifier", + "src": "4364:3:17" + }, + "nativeSrc": "4364:23:17", + "nodeType": "YulFunctionCall", + "src": "4364:23:17" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4354:6:17", + "nodeType": "YulIdentifier", + "src": "4354:6:17" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "4300:93:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4327:5:17", + "nodeType": "YulTypedName", + "src": "4327:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4337:6:17", + "nodeType": "YulTypedName", + "src": "4337:6:17", + "type": "" + } + ], + "src": "4300:93:17" + }, + { + "body": { + "nativeSrc": "4452:54:17", + "nodeType": "YulBlock", + "src": "4452:54:17", + "statements": [ + { + "nativeSrc": "4462:37:17", + "nodeType": "YulAssignment", + "src": "4462:37:17", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4487:4:17", + "nodeType": "YulIdentifier", + "src": "4487:4:17" + }, + { + "name": "value", + "nativeSrc": "4493:5:17", + "nodeType": "YulIdentifier", + "src": "4493:5:17" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4483:3:17", + "nodeType": "YulIdentifier", + "src": "4483:3:17" + }, + "nativeSrc": "4483:16:17", + "nodeType": "YulFunctionCall", + "src": "4483:16:17" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4462:8:17", + "nodeType": "YulIdentifier", + "src": "4462:8:17" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4399:107:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4427:4:17", + "nodeType": "YulTypedName", + "src": "4427:4:17", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4433:5:17", + "nodeType": "YulTypedName", + "src": "4433:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4443:8:17", + "nodeType": "YulTypedName", + "src": "4443:8:17", + "type": "" + } + ], + "src": "4399:107:17" + }, + { + "body": { + "nativeSrc": "4588:317:17", + "nodeType": "YulBlock", + "src": "4588:317:17", + "statements": [ + { + "nativeSrc": "4598:35:17", + "nodeType": "YulVariableDeclaration", + "src": "4598:35:17", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4619:10:17", + "nodeType": "YulIdentifier", + "src": "4619:10:17" + }, + { + "kind": "number", + "nativeSrc": "4631:1:17", + "nodeType": "YulLiteral", + "src": "4631:1:17", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4615:3:17", + "nodeType": "YulIdentifier", + "src": "4615:3:17" + }, + "nativeSrc": "4615:18:17", + "nodeType": "YulFunctionCall", + "src": "4615:18:17" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4602:9:17", + "nodeType": "YulTypedName", + "src": "4602:9:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4642:109:17", + "nodeType": "YulVariableDeclaration", + "src": "4642:109:17", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4673:9:17", + "nodeType": "YulIdentifier", + "src": "4673:9:17" + }, + { + "kind": "number", + "nativeSrc": "4684:66:17", + "nodeType": "YulLiteral", + "src": "4684:66:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4654:18:17", + "nodeType": "YulIdentifier", + "src": "4654:18:17" + }, + "nativeSrc": "4654:97:17", + "nodeType": "YulFunctionCall", + "src": "4654:97:17" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4646:4:17", + "nodeType": "YulTypedName", + "src": "4646:4:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4760:51:17", + "nodeType": "YulAssignment", + "src": "4760:51:17", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4791:9:17", + "nodeType": "YulIdentifier", + "src": "4791:9:17" + }, + { + "name": "toInsert", + "nativeSrc": "4802:8:17", + "nodeType": "YulIdentifier", + "src": "4802:8:17" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4772:18:17", + "nodeType": "YulIdentifier", + "src": "4772:18:17" + }, + "nativeSrc": "4772:39:17", + "nodeType": "YulFunctionCall", + "src": "4772:39:17" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4760:8:17", + "nodeType": "YulIdentifier", + "src": "4760:8:17" + } + ] + }, + { + "nativeSrc": "4820:30:17", + "nodeType": "YulAssignment", + "src": "4820:30:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4833:5:17", + "nodeType": "YulIdentifier", + "src": "4833:5:17" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4844:4:17", + "nodeType": "YulIdentifier", + "src": "4844:4:17" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4840:3:17", + "nodeType": "YulIdentifier", + "src": "4840:3:17" + }, + "nativeSrc": "4840:9:17", + "nodeType": "YulFunctionCall", + "src": "4840:9:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4829:3:17", + "nodeType": "YulIdentifier", + "src": "4829:3:17" + }, + "nativeSrc": "4829:21:17", + "nodeType": "YulFunctionCall", + "src": "4829:21:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4820:5:17", + "nodeType": "YulIdentifier", + "src": "4820:5:17" + } + ] + }, + { + "nativeSrc": "4859:40:17", + "nodeType": "YulAssignment", + "src": "4859:40:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4872:5:17", + "nodeType": "YulIdentifier", + "src": "4872:5:17" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4883:8:17", + "nodeType": "YulIdentifier", + "src": "4883:8:17" + }, + { + "name": "mask", + "nativeSrc": "4893:4:17", + "nodeType": "YulIdentifier", + "src": "4893:4:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4879:3:17", + "nodeType": "YulIdentifier", + "src": "4879:3:17" + }, + "nativeSrc": "4879:19:17", + "nodeType": "YulFunctionCall", + "src": "4879:19:17" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4869:2:17", + "nodeType": "YulIdentifier", + "src": "4869:2:17" + }, + "nativeSrc": "4869:30:17", + "nodeType": "YulFunctionCall", + "src": "4869:30:17" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4859:6:17", + "nodeType": "YulIdentifier", + "src": "4859:6:17" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4512:393:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4549:5:17", + "nodeType": "YulTypedName", + "src": "4549:5:17", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4556:10:17", + "nodeType": "YulTypedName", + "src": "4556:10:17", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4568:8:17", + "nodeType": "YulTypedName", + "src": "4568:8:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4581:6:17", + "nodeType": "YulTypedName", + "src": "4581:6:17", + "type": "" + } + ], + "src": "4512:393:17" + }, + { + "body": { + "nativeSrc": "4956:32:17", + "nodeType": "YulBlock", + "src": "4956:32:17", + "statements": [ + { + "nativeSrc": "4966:16:17", + "nodeType": "YulAssignment", + "src": "4966:16:17", + "value": { + "name": "value", + "nativeSrc": "4977:5:17", + "nodeType": "YulIdentifier", + "src": "4977:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4966:7:17", + "nodeType": "YulIdentifier", + "src": "4966:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4911:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4938:5:17", + "nodeType": "YulTypedName", + "src": "4938:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4948:7:17", + "nodeType": "YulTypedName", + "src": "4948:7:17", + "type": "" + } + ], + "src": "4911:77:17" + }, + { + "body": { + "nativeSrc": "5026:28:17", + "nodeType": "YulBlock", + "src": "5026:28:17", + "statements": [ + { + "nativeSrc": "5036:12:17", + "nodeType": "YulAssignment", + "src": "5036:12:17", + "value": { + "name": "value", + "nativeSrc": "5043:5:17", + "nodeType": "YulIdentifier", + "src": "5043:5:17" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5036:3:17", + "nodeType": "YulIdentifier", + "src": "5036:3:17" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4994:60:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5012:5:17", + "nodeType": "YulTypedName", + "src": "5012:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5022:3:17", + "nodeType": "YulTypedName", + "src": "5022:3:17", + "type": "" + } + ], + "src": "4994:60:17" + }, + { + "body": { + "nativeSrc": "5120:82:17", + "nodeType": "YulBlock", + "src": "5120:82:17", + "statements": [ + { + "nativeSrc": "5130:66:17", + "nodeType": "YulAssignment", + "src": "5130:66:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5188:5:17", + "nodeType": "YulIdentifier", + "src": "5188:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "5170:17:17", + "nodeType": "YulIdentifier", + "src": "5170:17:17" + }, + "nativeSrc": "5170:24:17", + "nodeType": "YulFunctionCall", + "src": "5170:24:17" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "5161:8:17", + "nodeType": "YulIdentifier", + "src": "5161:8:17" + }, + "nativeSrc": "5161:34:17", + "nodeType": "YulFunctionCall", + "src": "5161:34:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "5143:17:17", + "nodeType": "YulIdentifier", + "src": "5143:17:17" + }, + "nativeSrc": "5143:53:17", + "nodeType": "YulFunctionCall", + "src": "5143:53:17" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "5130:9:17", + "nodeType": "YulIdentifier", + "src": "5130:9:17" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5060:142:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5100:5:17", + "nodeType": "YulTypedName", + "src": "5100:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "5110:9:17", + "nodeType": "YulTypedName", + "src": "5110:9:17", + "type": "" + } + ], + "src": "5060:142:17" + }, + { + "body": { + "nativeSrc": "5255:28:17", + "nodeType": "YulBlock", + "src": "5255:28:17", + "statements": [ + { + "nativeSrc": "5265:12:17", + "nodeType": "YulAssignment", + "src": "5265:12:17", + "value": { + "name": "value", + "nativeSrc": "5272:5:17", + "nodeType": "YulIdentifier", + "src": "5272:5:17" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5265:3:17", + "nodeType": "YulIdentifier", + "src": "5265:3:17" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "5208:75:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5241:5:17", + "nodeType": "YulTypedName", + "src": "5241:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5251:3:17", + "nodeType": "YulTypedName", + "src": "5251:3:17", + "type": "" + } + ], + "src": "5208:75:17" + }, + { + "body": { + "nativeSrc": "5365:193:17", + "nodeType": "YulBlock", + "src": "5365:193:17", + "statements": [ + { + "nativeSrc": "5375:63:17", + "nodeType": "YulVariableDeclaration", + "src": "5375:63:17", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5430:7:17", + "nodeType": "YulIdentifier", + "src": "5430:7:17" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5399:30:17", + "nodeType": "YulIdentifier", + "src": "5399:30:17" + }, + "nativeSrc": "5399:39:17", + "nodeType": "YulFunctionCall", + "src": "5399:39:17" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5379:16:17", + "nodeType": "YulTypedName", + "src": "5379:16:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5454:4:17", + "nodeType": "YulIdentifier", + "src": "5454:4:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5494:4:17", + "nodeType": "YulIdentifier", + "src": "5494:4:17" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5488:5:17", + "nodeType": "YulIdentifier", + "src": "5488:5:17" + }, + "nativeSrc": "5488:11:17", + "nodeType": "YulFunctionCall", + "src": "5488:11:17" + }, + { + "name": "offset", + "nativeSrc": "5501:6:17", + "nodeType": "YulIdentifier", + "src": "5501:6:17" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5533:16:17", + "nodeType": "YulIdentifier", + "src": "5533:16:17" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5509:23:17", + "nodeType": "YulIdentifier", + "src": "5509:23:17" + }, + "nativeSrc": "5509:41:17", + "nodeType": "YulFunctionCall", + "src": "5509:41:17" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5460:27:17", + "nodeType": "YulIdentifier", + "src": "5460:27:17" + }, + "nativeSrc": "5460:91:17", + "nodeType": "YulFunctionCall", + "src": "5460:91:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5447:6:17", + "nodeType": "YulIdentifier", + "src": "5447:6:17" + }, + "nativeSrc": "5447:105:17", + "nodeType": "YulFunctionCall", + "src": "5447:105:17" + }, + "nativeSrc": "5447:105:17", + "nodeType": "YulExpressionStatement", + "src": "5447:105:17" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5289:269:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5342:4:17", + "nodeType": "YulTypedName", + "src": "5342:4:17", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5348:6:17", + "nodeType": "YulTypedName", + "src": "5348:6:17", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5356:7:17", + "nodeType": "YulTypedName", + "src": "5356:7:17", + "type": "" + } + ], + "src": "5289:269:17" + }, + { + "body": { + "nativeSrc": "5613:24:17", + "nodeType": "YulBlock", + "src": "5613:24:17", + "statements": [ + { + "nativeSrc": "5623:8:17", + "nodeType": "YulAssignment", + "src": "5623:8:17", + "value": { + "kind": "number", + "nativeSrc": "5630:1:17", + "nodeType": "YulLiteral", + "src": "5630:1:17", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5623:3:17", + "nodeType": "YulIdentifier", + "src": "5623:3:17" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5564:73:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5609:3:17", + "nodeType": "YulTypedName", + "src": "5609:3:17", + "type": "" + } + ], + "src": "5564:73:17" + }, + { + "body": { + "nativeSrc": "5696:136:17", + "nodeType": "YulBlock", + "src": "5696:136:17", + "statements": [ + { + "nativeSrc": "5706:46:17", + "nodeType": "YulVariableDeclaration", + "src": "5706:46:17", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5720:30:17", + "nodeType": "YulIdentifier", + "src": "5720:30:17" + }, + "nativeSrc": "5720:32:17", + "nodeType": "YulFunctionCall", + "src": "5720:32:17" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5710:6:17", + "nodeType": "YulTypedName", + "src": "5710:6:17", + "type": "" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2955:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2958:4:17", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2948:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2948:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2948:15:17" - } - ] - }, - "name": "panic_error_0x22", - "nodeType": "YulFunctionDefinition", - "src": "2789:180:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3003:152:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3020:1:17", - "type": "", - "value": "0" + "name": "slot", + "nativeSrc": "5805:4:17", + "nodeType": "YulIdentifier", + "src": "5805:4:17" + }, + { + "name": "offset", + "nativeSrc": "5811:6:17", + "nodeType": "YulIdentifier", + "src": "5811:6:17" + }, + { + "name": "zero_0", + "nativeSrc": "5819:6:17", + "nodeType": "YulIdentifier", + "src": "5819:6:17" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5761:43:17", + "nodeType": "YulIdentifier", + "src": "5761:43:17" + }, + "nativeSrc": "5761:65:17", + "nodeType": "YulFunctionCall", + "src": "5761:65:17" + }, + "nativeSrc": "5761:65:17", + "nodeType": "YulExpressionStatement", + "src": "5761:65:17" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5643:189:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5682:4:17", + "nodeType": "YulTypedName", + "src": "5682:4:17", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5688:6:17", + "nodeType": "YulTypedName", + "src": "5688:6:17", + "type": "" + } + ], + "src": "5643:189:17" + }, + { + "body": { + "nativeSrc": "5888:136:17", + "nodeType": "YulBlock", + "src": "5888:136:17", + "statements": [ + { + "body": { + "nativeSrc": "5955:63:17", + "nodeType": "YulBlock", + "src": "5955:63:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5999:5:17", + "nodeType": "YulIdentifier", + "src": "5999:5:17" + }, + { + "kind": "number", + "nativeSrc": "6006:1:17", + "nodeType": "YulLiteral", + "src": "6006:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5969:29:17", + "nodeType": "YulIdentifier", + "src": "5969:29:17" + }, + "nativeSrc": "5969:39:17", + "nodeType": "YulFunctionCall", + "src": "5969:39:17" + }, + "nativeSrc": "5969:39:17", + "nodeType": "YulExpressionStatement", + "src": "5969:39:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5908:5:17", + "nodeType": "YulIdentifier", + "src": "5908:5:17" + }, + { + "name": "end", + "nativeSrc": "5915:3:17", + "nodeType": "YulIdentifier", + "src": "5915:3:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5905:2:17", + "nodeType": "YulIdentifier", + "src": "5905:2:17" + }, + "nativeSrc": "5905:14:17", + "nodeType": "YulFunctionCall", + "src": "5905:14:17" + }, + "nativeSrc": "5898:120:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5920:26:17", + "nodeType": "YulBlock", + "src": "5920:26:17", + "statements": [ + { + "nativeSrc": "5922:22:17", + "nodeType": "YulAssignment", + "src": "5922:22:17", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5935:5:17", + "nodeType": "YulIdentifier", + "src": "5935:5:17" + }, + { + "kind": "number", + "nativeSrc": "5942:1:17", + "nodeType": "YulLiteral", + "src": "5942:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5931:3:17", + "nodeType": "YulIdentifier", + "src": "5931:3:17" + }, + "nativeSrc": "5931:13:17", + "nodeType": "YulFunctionCall", + "src": "5931:13:17" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5922:5:17", + "nodeType": "YulIdentifier", + "src": "5922:5:17" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5902:2:17", + "nodeType": "YulBlock", + "src": "5902:2:17", + "statements": [] + }, + "src": "5898:120:17" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5838:186:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5876:5:17", + "nodeType": "YulTypedName", + "src": "5876:5:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5883:3:17", + "nodeType": "YulTypedName", + "src": "5883:3:17", + "type": "" + } + ], + "src": "5838:186:17" + }, + { + "body": { + "nativeSrc": "6109:464:17", + "nodeType": "YulBlock", + "src": "6109:464:17", + "statements": [ + { + "body": { + "nativeSrc": "6135:431:17", + "nodeType": "YulBlock", + "src": "6135:431:17", + "statements": [ + { + "nativeSrc": "6149:54:17", + "nodeType": "YulVariableDeclaration", + "src": "6149:54:17", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "6197:5:17", + "nodeType": "YulIdentifier", + "src": "6197:5:17" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "6165:31:17", + "nodeType": "YulIdentifier", + "src": "6165:31:17" + }, + "nativeSrc": "6165:38:17", + "nodeType": "YulFunctionCall", + "src": "6165:38:17" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "6153:8:17", + "nodeType": "YulTypedName", + "src": "6153:8:17", + "type": "" + } + ] }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3023:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3013:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "3013:88:17" - }, - "nodeType": "YulExpressionStatement", - "src": "3013:88:17" - }, - { - "expression": { - "arguments": [ + "nativeSrc": "6216:63:17", + "nodeType": "YulVariableDeclaration", + "src": "6216:63:17", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6239:8:17", + "nodeType": "YulIdentifier", + "src": "6239:8:17" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6267:10:17", + "nodeType": "YulIdentifier", + "src": "6267:10:17" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6249:17:17", + "nodeType": "YulIdentifier", + "src": "6249:17:17" + }, + "nativeSrc": "6249:29:17", + "nodeType": "YulFunctionCall", + "src": "6249:29:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6235:3:17", + "nodeType": "YulIdentifier", + "src": "6235:3:17" + }, + "nativeSrc": "6235:44:17", + "nodeType": "YulFunctionCall", + "src": "6235:44:17" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "6220:11:17", + "nodeType": "YulTypedName", + "src": "6220:11:17", + "type": "" + } + ] + }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3117:1:17", - "type": "", - "value": "4" + "body": { + "nativeSrc": "6436:27:17", + "nodeType": "YulBlock", + "src": "6436:27:17", + "statements": [ + { + "nativeSrc": "6438:23:17", + "nodeType": "YulAssignment", + "src": "6438:23:17", + "value": { + "name": "dataArea", + "nativeSrc": "6453:8:17", + "nodeType": "YulIdentifier", + "src": "6453:8:17" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6438:11:17", + "nodeType": "YulIdentifier", + "src": "6438:11:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6420:10:17", + "nodeType": "YulIdentifier", + "src": "6420:10:17" + }, + { + "kind": "number", + "nativeSrc": "6432:2:17", + "nodeType": "YulLiteral", + "src": "6432:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6417:2:17", + "nodeType": "YulIdentifier", + "src": "6417:2:17" + }, + "nativeSrc": "6417:18:17", + "nodeType": "YulFunctionCall", + "src": "6417:18:17" + }, + "nativeSrc": "6414:49:17", + "nodeType": "YulIf", + "src": "6414:49:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3120:4:17", - "type": "", - "value": "0x41" + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6505:11:17", + "nodeType": "YulIdentifier", + "src": "6505:11:17" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6522:8:17", + "nodeType": "YulIdentifier", + "src": "6522:8:17" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6550:3:17", + "nodeType": "YulIdentifier", + "src": "6550:3:17" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6532:17:17", + "nodeType": "YulIdentifier", + "src": "6532:17:17" + }, + "nativeSrc": "6532:22:17", + "nodeType": "YulFunctionCall", + "src": "6532:22:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6518:3:17", + "nodeType": "YulIdentifier", + "src": "6518:3:17" + }, + "nativeSrc": "6518:37:17", + "nodeType": "YulFunctionCall", + "src": "6518:37:17" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6476:28:17", + "nodeType": "YulIdentifier", + "src": "6476:28:17" + }, + "nativeSrc": "6476:80:17", + "nodeType": "YulFunctionCall", + "src": "6476:80:17" + }, + "nativeSrc": "6476:80:17", + "nodeType": "YulExpressionStatement", + "src": "6476:80:17" } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3110:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "3110:15:17" + ] }, - "nodeType": "YulExpressionStatement", - "src": "3110:15:17" - }, - { - "expression": { + "condition": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3141:1:17", - "type": "", - "value": "0" + "name": "len", + "nativeSrc": "6126:3:17", + "nodeType": "YulIdentifier", + "src": "6126:3:17" }, { "kind": "number", + "nativeSrc": "6131:2:17", "nodeType": "YulLiteral", - "src": "3144:4:17", + "src": "6131:2:17", "type": "", - "value": "0x24" + "value": "31" } ], "functionName": { - "name": "revert", + "name": "gt", + "nativeSrc": "6123:2:17", "nodeType": "YulIdentifier", - "src": "3134:6:17" + "src": "6123:2:17" }, + "nativeSrc": "6123:11:17", "nodeType": "YulFunctionCall", - "src": "3134:15:17" + "src": "6123:11:17" }, - "nodeType": "YulExpressionStatement", - "src": "3134:15:17" + "nativeSrc": "6120:446:17", + "nodeType": "YulIf", + "src": "6120:446:17" } ] }, - "name": "panic_error_0x41", + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "6030:543:17", "nodeType": "YulFunctionDefinition", - "src": "2975:180:17" + "parameters": [ + { + "name": "array", + "nativeSrc": "6085:5:17", + "nodeType": "YulTypedName", + "src": "6085:5:17", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6092:3:17", + "nodeType": "YulTypedName", + "src": "6092:3:17", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "6097:10:17", + "nodeType": "YulTypedName", + "src": "6097:10:17", + "type": "" + } + ], + "src": "6030:543:17" }, { "body": { + "nativeSrc": "6642:54:17", "nodeType": "YulBlock", - "src": "3209:54:17", + "src": "6642:54:17", "statements": [ { + "nativeSrc": "6652:37:17", "nodeType": "YulAssignment", - "src": "3219:38:17", + "src": "6652:37:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3237:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3244:2:17", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3233:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3233:14:17" + "name": "bits", + "nativeSrc": "6677:4:17", + "nodeType": "YulIdentifier", + "src": "6677:4:17" }, { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3253:2:17", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "3249:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3249:7:17" + "name": "value", + "nativeSrc": "6683:5:17", + "nodeType": "YulIdentifier", + "src": "6683:5:17" } ], "functionName": { - "name": "and", + "name": "shr", + "nativeSrc": "6673:3:17", "nodeType": "YulIdentifier", - "src": "3229:3:17" + "src": "6673:3:17" }, + "nativeSrc": "6673:16:17", "nodeType": "YulFunctionCall", - "src": "3229:28:17" + "src": "6673:16:17" }, "variableNames": [ { - "name": "result", + "name": "newValue", + "nativeSrc": "6652:8:17", "nodeType": "YulIdentifier", - "src": "3219:6:17" + "src": "6652:8:17" } ] } ] }, - "name": "round_up_to_mul_of_32", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6579:117:17", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "bits", + "nativeSrc": "6617:4:17", + "nodeType": "YulTypedName", + "src": "6617:4:17", + "type": "" + }, { "name": "value", + "nativeSrc": "6623:5:17", "nodeType": "YulTypedName", - "src": "3192:5:17", + "src": "6623:5:17", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "newValue", + "nativeSrc": "6633:8:17", "nodeType": "YulTypedName", - "src": "3202:6:17", + "src": "6633:8:17", "type": "" } ], - "src": "3161:102:17" - } - ] - }, - "contents": "{\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n}\n", - "id": 17, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051620015d0380380620015d0833981810160405281019062000037919062000193565b81600390805190602001906200004f92919062000071565b5080600490805190602001906200006892919062000071565b50505062000376565b8280546200007f906200029b565b90600052602060002090601f016020900481019282620000a35760008555620000ef565b82601f10620000be57805160ff1916838001178555620000ef565b82800160010185558215620000ef579182015b82811115620000ee578251825591602001919060010190620000d1565b5b509050620000fe919062000102565b5090565b5b808211156200011d57600081600090555060010162000103565b5090565b60006200013862000132846200022f565b62000206565b9050828152602081018484840111156200015157600080fd5b6200015e84828562000265565b509392505050565b600082601f8301126200017857600080fd5b81516200018a84826020860162000121565b91505092915050565b60008060408385031215620001a757600080fd5b600083015167ffffffffffffffff811115620001c257600080fd5b620001d08582860162000166565b925050602083015167ffffffffffffffff811115620001ee57600080fd5b620001fc8582860162000166565b9150509250929050565b60006200021262000225565b9050620002208282620002d1565b919050565b6000604051905090565b600067ffffffffffffffff8211156200024d576200024c62000336565b5b620002588262000365565b9050602081019050919050565b60005b838110156200028557808201518184015260208101905062000268565b8381111562000295576000848401525b50505050565b60006002820490506001821680620002b457607f821691505b60208210811415620002cb57620002ca62000307565b5b50919050565b620002dc8262000365565b810181811067ffffffffffffffff82111715620002fe57620002fd62000336565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61124a80620003866000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea2646970667358221220970e45d8d2aa4fef01db9cd9c86dbb99eeab4b9119b798fc877bb43d641b590564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x15D0 CODESIZE SUB DUP1 PUSH3 0x15D0 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x193 JUMP JUMPDEST DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x4F SWAP3 SWAP2 SWAP1 PUSH3 0x71 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x68 SWAP3 SWAP2 SWAP1 PUSH3 0x71 JUMP JUMPDEST POP POP POP PUSH3 0x376 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x7F SWAP1 PUSH3 0x29B JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0xA3 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xEF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xBE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xEF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xEF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xEE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xD1 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0xFE SWAP2 SWAP1 PUSH3 0x102 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x11D JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x103 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x138 PUSH3 0x132 DUP5 PUSH3 0x22F JUMP JUMPDEST PUSH3 0x206 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x15E DUP5 DUP3 DUP6 PUSH3 0x265 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x18A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x121 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1D0 DUP6 DUP3 DUP7 ADD PUSH3 0x166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x1EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1FC DUP6 DUP3 DUP7 ADD PUSH3 0x166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x212 PUSH3 0x225 JUMP JUMPDEST SWAP1 POP PUSH3 0x220 DUP3 DUP3 PUSH3 0x2D1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x24D JUMPI PUSH3 0x24C PUSH3 0x336 JUMP JUMPDEST JUMPDEST PUSH3 0x258 DUP3 PUSH3 0x365 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x285 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x268 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x295 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2B4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x2CB JUMPI PUSH3 0x2CA PUSH3 0x307 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x2DC DUP3 PUSH3 0x365 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x2FE JUMPI PUSH3 0x2FD PUSH3 0x336 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x124A DUP1 PUSH3 0x386 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xB0F JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xE2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xAAA JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B1 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x427 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60E SWAP1 PUSH2 0xDD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67E SWAP1 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x765 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77E DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F8 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x86E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x865 SWAP1 PUSH2 0xDB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP1 PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E9 DUP4 DUP4 DUP4 PUSH2 0xA76 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA70 DUP5 DUP5 DUP5 PUSH2 0xA7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8F DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAA4 DUP2 PUSH2 0x11FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP5 DUP3 DUP6 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB05 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB43 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB54 DUP7 DUP3 DUP8 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB7F DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB90 DUP6 DUP3 DUP7 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA3 DUP2 PUSH2 0xECC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB4 DUP3 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0xBBE DUP2 DUP6 PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF0F JUMP JUMPDEST PUSH2 0xBD7 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBEF PUSH1 0x23 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFA DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 PUSH1 0x22 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC1D DUP3 PUSH2 0x1032 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC35 PUSH1 0x1D DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC40 DUP3 PUSH2 0x1081 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x26 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC63 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC86 DUP3 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH1 0x24 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCA9 DUP3 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCCC DUP3 PUSH2 0x1197 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE0 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xCEF DUP2 PUSH2 0xF02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD2A DUP2 DUP5 PUSH2 0xBA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD4B DUP2 PUSH2 0xBE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD6B DUP2 PUSH2 0xC05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xC28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDAB DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDCB DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDEB DUP2 PUSH2 0xC91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0B DUP2 PUSH2 0xCB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6F DUP3 PUSH2 0xEF8 JUMP JUMPDEST SWAP2 POP PUSH2 0xE7A DUP4 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH2 0xEAE PUSH2 0xF74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEC5 DUP3 PUSH2 0xED8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF2D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF12 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xF5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xF6E JUMPI PUSH2 0xF6D PUSH2 0xFA3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x11EF DUP2 PUSH2 0xEBA JUMP JUMPDEST DUP2 EQ PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1206 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0xE GASLIMIT 0xD8 0xD2 0xAA 0x4F 0xEF ADD 0xDB SWAP13 0xD9 0xC8 PUSH14 0xBB99EEAB4B9119B798FC877BB43D PUSH5 0x1B59056473 PUSH16 0x6C634300080200330000000000000000 ", - "sourceMap": "1532:11312:0:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2054:5;2046;:13;;;;;;;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;;;;;;;:::i;:::-;;1980:113;;1532:11312;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:354:17:-;;121:66;137:49;179:6;137:49;:::i;:::-;121:66;:::i;:::-;112:75;;210:6;203:5;196:21;248:4;241:5;237:16;286:3;277:6;272:3;268:16;265:25;262:2;;;303:1;300;293:12;262:2;316:39;348:6;343:3;338;316:39;:::i;:::-;102:259;;;;;;:::o;381:288::-;;497:3;490:4;482:6;478:17;474:27;464:2;;515:1;512;505:12;464:2;548:6;542:13;573:90;659:3;651:6;644:4;636:6;632:17;573:90;:::i;:::-;564:99;;454:215;;;;;:::o;675:652::-;;;831:2;819:9;810:7;806:23;802:32;799:2;;;847:1;844;837:12;799:2;911:1;900:9;896:17;890:24;941:18;933:6;930:30;927:2;;;973:1;970;963:12;927:2;1001:74;1067:7;1058:6;1047:9;1043:22;1001:74;:::i;:::-;991:84;;861:224;1145:2;1134:9;1130:18;1124:25;1176:18;1168:6;1165:30;1162:2;;;1208:1;1205;1198:12;1162:2;1236:74;1302:7;1293:6;1282:9;1278:22;1236:74;:::i;:::-;1226:84;;1095:225;789:538;;;;;:::o;1333:129::-;;1394:20;;:::i;:::-;1384:30;;1423:33;1451:4;1443:6;1423:33;:::i;:::-;1374:88;;;:::o;1468:75::-;;1534:2;1528:9;1518:19;;1508:35;:::o;1549:308::-;;1701:18;1693:6;1690:30;1687:2;;;1723:18;;:::i;:::-;1687:2;1761:29;1783:6;1761:29;:::i;:::-;1753:37;;1845:4;1839;1835:15;1827:23;;1616:241;;;:::o;1863:307::-;1931:1;1941:113;1955:6;1952:1;1949:13;1941:113;;;2040:1;2035:3;2031:11;2025:18;2021:1;2016:3;2012:11;2005:39;1977:2;1974:1;1970:10;1965:15;;1941:113;;;2072:6;2069:1;2066:13;2063:2;;;2152:1;2143:6;2138:3;2134:16;2127:27;2063:2;1912:258;;;;:::o;2176:320::-;;2257:1;2251:4;2247:12;2237:22;;2304:1;2298:4;2294:12;2325:18;2315:2;;2381:4;2373:6;2369:17;2359:27;;2315:2;2443;2435:6;2432:14;2412:18;2409:38;2406:2;;;2462:18;;:::i;:::-;2406:2;2227:269;;;;:::o;2502:281::-;2585:27;2607:4;2585:27;:::i;:::-;2577:6;2573:40;2715:6;2703:10;2700:22;2679:18;2667:10;2664:34;2661:62;2658:2;;;2726:18;;:::i;:::-;2658:2;2766:10;2762:2;2755:22;2545:238;;;:::o;2789:180::-;2837:77;2834:1;2827:88;2934:4;2931:1;2924:15;2958:4;2955:1;2948:15;2975:180;3023:77;3020:1;3013:88;3120:4;3117:1;3110:15;3144:4;3141:1;3134:15;3161:102;;3253:2;3249:7;3244:2;3237:5;3233:14;3229:28;3219:38;;3209:54;;;:::o;1532:11312:0:-;;;;;;;" - }, - "deployedBytecode": { - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:13266:17", - "statements": [ + "src": "6579:117:17" + }, { "body": { + "nativeSrc": "6753:118:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "6753:118:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "69:29:17", + "nativeSrc": "6763:68:17", + "nodeType": "YulVariableDeclaration", + "src": "6763:68:17", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6812:1:17", + "nodeType": "YulLiteral", + "src": "6812:1:17", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6815:5:17", + "nodeType": "YulIdentifier", + "src": "6815:5:17" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6808:3:17", + "nodeType": "YulIdentifier", + "src": "6808:3:17" + }, + "nativeSrc": "6808:13:17", + "nodeType": "YulFunctionCall", + "src": "6808:13:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6827:1:17", + "nodeType": "YulLiteral", + "src": "6827:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6823:3:17", + "nodeType": "YulIdentifier", + "src": "6823:3:17" + }, + "nativeSrc": "6823:6:17", + "nodeType": "YulFunctionCall", + "src": "6823:6:17" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6779:28:17", + "nodeType": "YulIdentifier", + "src": "6779:28:17" + }, + "nativeSrc": "6779:51:17", + "nodeType": "YulFunctionCall", + "src": "6779:51:17" } ], "functionName": { - "name": "calldataload", + "name": "not", + "nativeSrc": "6775:3:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "6775:3:17" }, + "nativeSrc": "6775:56:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "6775:56:17" }, - "variableNames": [ + "variables": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "69:5:17" + "name": "mask", + "nativeSrc": "6767:4:17", + "nodeType": "YulTypedName", + "src": "6767:4:17", + "type": "" } ] }, { - "expression": { + "nativeSrc": "6840:25:17", + "nodeType": "YulAssignment", + "src": "6840:25:17", + "value": { "arguments": [ { - "name": "value", + "name": "data", + "nativeSrc": "6854:4:17", + "nodeType": "YulIdentifier", + "src": "6854:4:17" + }, + { + "name": "mask", + "nativeSrc": "6860:4:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "6860:4:17" } ], "functionName": { - "name": "validator_revert_t_address", + "name": "and", + "nativeSrc": "6850:3:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "6850:3:17" }, + "nativeSrc": "6850:15:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "6850:15:17" }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "variableNames": [ + { + "name": "result", + "nativeSrc": "6840:6:17", + "nodeType": "YulIdentifier", + "src": "6840:6:17" + } + ] } ] }, - "name": "abi_decode_t_address", + "name": "mask_bytes_dynamic", + "nativeSrc": "6702:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "data", + "nativeSrc": "6730:4:17", "nodeType": "YulTypedName", - "src": "37:6:17", + "src": "6730:4:17", "type": "" }, { - "name": "end", + "name": "bytes", + "nativeSrc": "6736:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "6736:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "result", + "nativeSrc": "6746:6:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "6746:6:17", "type": "" } ], - "src": "7:139:17" + "src": "6702:169:17" }, { "body": { + "nativeSrc": "6957:214:17", "nodeType": "YulBlock", - "src": "204:87:17", + "src": "6957:214:17", "statements": [ { + "nativeSrc": "7090:37:17", "nodeType": "YulAssignment", - "src": "214:29:17", + "src": "7090:37:17", "value": { "arguments": [ { - "name": "offset", + "name": "data", + "nativeSrc": "7117:4:17", + "nodeType": "YulIdentifier", + "src": "7117:4:17" + }, + { + "name": "len", + "nativeSrc": "7123:3:17", "nodeType": "YulIdentifier", - "src": "236:6:17" + "src": "7123:3:17" } ], "functionName": { - "name": "calldataload", + "name": "mask_bytes_dynamic", + "nativeSrc": "7098:18:17", "nodeType": "YulIdentifier", - "src": "223:12:17" + "src": "7098:18:17" }, + "nativeSrc": "7098:29:17", "nodeType": "YulFunctionCall", - "src": "223:20:17" + "src": "7098:29:17" }, "variableNames": [ { - "name": "value", + "name": "data", + "nativeSrc": "7090:4:17", "nodeType": "YulIdentifier", - "src": "214:5:17" + "src": "7090:4:17" } ] }, { - "expression": { + "nativeSrc": "7136:29:17", + "nodeType": "YulAssignment", + "src": "7136:29:17", + "value": { "arguments": [ { - "name": "value", + "name": "data", + "nativeSrc": "7147:4:17", "nodeType": "YulIdentifier", - "src": "279:5:17" + "src": "7147:4:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7157:1:17", + "nodeType": "YulLiteral", + "src": "7157:1:17", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "7160:3:17", + "nodeType": "YulIdentifier", + "src": "7160:3:17" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7153:3:17", + "nodeType": "YulIdentifier", + "src": "7153:3:17" + }, + "nativeSrc": "7153:11:17", + "nodeType": "YulFunctionCall", + "src": "7153:11:17" } ], "functionName": { - "name": "validator_revert_t_uint256", + "name": "or", + "nativeSrc": "7144:2:17", "nodeType": "YulIdentifier", - "src": "252:26:17" + "src": "7144:2:17" }, + "nativeSrc": "7144:21:17", "nodeType": "YulFunctionCall", - "src": "252:33:17" + "src": "7144:21:17" }, - "nodeType": "YulExpressionStatement", - "src": "252:33:17" + "variableNames": [ + { + "name": "used", + "nativeSrc": "7136:4:17", + "nodeType": "YulIdentifier", + "src": "7136:4:17" + } + ] } ] }, - "name": "abi_decode_t_uint256", + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6876:295:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "data", + "nativeSrc": "6938:4:17", "nodeType": "YulTypedName", - "src": "182:6:17", + "src": "6938:4:17", "type": "" }, { - "name": "end", + "name": "len", + "nativeSrc": "6944:3:17", "nodeType": "YulTypedName", - "src": "190:3:17", + "src": "6944:3:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "used", + "nativeSrc": "6952:4:17", "nodeType": "YulTypedName", - "src": "198:5:17", + "src": "6952:4:17", "type": "" } ], - "src": "152:139:17" + "src": "6876:295:17" }, { "body": { + "nativeSrc": "7268:1303:17", "nodeType": "YulBlock", - "src": "363:196:17", + "src": "7268:1303:17", "statements": [ + { + "nativeSrc": "7279:51:17", + "nodeType": "YulVariableDeclaration", + "src": "7279:51:17", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7326:3:17", + "nodeType": "YulIdentifier", + "src": "7326:3:17" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7293:32:17", + "nodeType": "YulIdentifier", + "src": "7293:32:17" + }, + "nativeSrc": "7293:37:17", + "nodeType": "YulFunctionCall", + "src": "7293:37:17" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "7283:6:17", + "nodeType": "YulTypedName", + "src": "7283:6:17", + "type": "" + } + ] + }, { "body": { + "nativeSrc": "7415:22:17", "nodeType": "YulBlock", - "src": "409:16:17", + "src": "7415:22:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "418:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "421:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x41", + "nativeSrc": "7417:16:17", "nodeType": "YulIdentifier", - "src": "411:6:17" + "src": "7417:16:17" }, + "nativeSrc": "7417:18:17", "nodeType": "YulFunctionCall", - "src": "411:12:17" + "src": "7417:18:17" }, + "nativeSrc": "7417:18:17", "nodeType": "YulExpressionStatement", - "src": "411:12:17" + "src": "7417:18:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "384:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "393:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "380:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "380:23:17" + "name": "newLen", + "nativeSrc": "7387:6:17", + "nodeType": "YulIdentifier", + "src": "7387:6:17" }, { "kind": "number", + "nativeSrc": "7395:18:17", "nodeType": "YulLiteral", - "src": "405:2:17", + "src": "7395:18:17", "type": "", - "value": "32" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "slt", + "name": "gt", + "nativeSrc": "7384:2:17", "nodeType": "YulIdentifier", - "src": "376:3:17" + "src": "7384:2:17" }, + "nativeSrc": "7384:30:17", "nodeType": "YulFunctionCall", - "src": "376:32:17" + "src": "7384:30:17" }, + "nativeSrc": "7381:56:17", "nodeType": "YulIf", - "src": "373:2:17" + "src": "7381:56:17" }, { - "nodeType": "YulBlock", - "src": "435:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "450:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "464:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "454:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "479:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "514:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "525:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "510:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "510:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "534:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "489:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "489:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "479:6:17" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "333:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "344:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "356:6:17", - "type": "" - } - ], - "src": "297:262:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "648:324:17", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "694:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "703:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "706:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "696:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "696:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "696:12:17" - } - ] - }, - "condition": { + "nativeSrc": "7447:52:17", + "nodeType": "YulVariableDeclaration", + "src": "7447:52:17", + "value": { "arguments": [ { "arguments": [ { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "669:7:17" - }, - { - "name": "headStart", + "name": "slot", + "nativeSrc": "7493:4:17", "nodeType": "YulIdentifier", - "src": "678:9:17" + "src": "7493:4:17" } ], "functionName": { - "name": "sub", + "name": "sload", + "nativeSrc": "7487:5:17", "nodeType": "YulIdentifier", - "src": "665:3:17" + "src": "7487:5:17" }, + "nativeSrc": "7487:11:17", "nodeType": "YulFunctionCall", - "src": "665:23:17" + "src": "7487:11:17" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7461:25:17", + "nodeType": "YulIdentifier", + "src": "7461:25:17" + }, + "nativeSrc": "7461:38:17", + "nodeType": "YulFunctionCall", + "src": "7461:38:17" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7451:6:17", + "nodeType": "YulTypedName", + "src": "7451:6:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7592:4:17", + "nodeType": "YulIdentifier", + "src": "7592:4:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "690:2:17", - "type": "", - "value": "64" + "name": "oldLen", + "nativeSrc": "7598:6:17", + "nodeType": "YulIdentifier", + "src": "7598:6:17" + }, + { + "name": "newLen", + "nativeSrc": "7606:6:17", + "nodeType": "YulIdentifier", + "src": "7606:6:17" } ], "functionName": { - "name": "slt", + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7546:45:17", "nodeType": "YulIdentifier", - "src": "661:3:17" + "src": "7546:45:17" }, + "nativeSrc": "7546:67:17", "nodeType": "YulFunctionCall", - "src": "661:32:17" + "src": "7546:67:17" }, - "nodeType": "YulIf", - "src": "658:2:17" + "nativeSrc": "7546:67:17", + "nodeType": "YulExpressionStatement", + "src": "7546:67:17" }, { - "nodeType": "YulBlock", - "src": "720:117:17", - "statements": [ + "nativeSrc": "7623:18:17", + "nodeType": "YulVariableDeclaration", + "src": "7623:18:17", + "value": { + "kind": "number", + "nativeSrc": "7640:1:17", + "nodeType": "YulLiteral", + "src": "7640:1:17", + "type": "", + "value": "0" + }, + "variables": [ { - "nodeType": "YulVariableDeclaration", - "src": "735:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "749:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "739:6:17", - "type": "" - } - ] - }, + "name": "srcOffset", + "nativeSrc": "7627:9:17", + "nodeType": "YulTypedName", + "src": "7627:9:17", + "type": "" + } + ] + }, + { + "nativeSrc": "7651:17:17", + "nodeType": "YulAssignment", + "src": "7651:17:17", + "value": { + "kind": "number", + "nativeSrc": "7664:4:17", + "nodeType": "YulLiteral", + "src": "7664:4:17", + "type": "", + "value": "0x20" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "764:63:17", - "value": { - "arguments": [ + "name": "srcOffset", + "nativeSrc": "7651:9:17", + "nodeType": "YulIdentifier", + "src": "7651:9:17" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7715:611:17", + "nodeType": "YulBlock", + "src": "7715:611:17", + "statements": [ { - "arguments": [ - { - "name": "headStart", + "nativeSrc": "7729:37:17", + "nodeType": "YulVariableDeclaration", + "src": "7729:37:17", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7748:6:17", + "nodeType": "YulIdentifier", + "src": "7748:6:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7760:4:17", + "nodeType": "YulLiteral", + "src": "7760:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7756:3:17", + "nodeType": "YulIdentifier", + "src": "7756:3:17" + }, + "nativeSrc": "7756:9:17", + "nodeType": "YulFunctionCall", + "src": "7756:9:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7744:3:17", "nodeType": "YulIdentifier", - "src": "799:9:17" + "src": "7744:3:17" }, + "nativeSrc": "7744:22:17", + "nodeType": "YulFunctionCall", + "src": "7744:22:17" + }, + "variables": [ { - "name": "offset", + "name": "loopEnd", + "nativeSrc": "7733:7:17", + "nodeType": "YulTypedName", + "src": "7733:7:17", + "type": "" + } + ] + }, + { + "nativeSrc": "7780:51:17", + "nodeType": "YulVariableDeclaration", + "src": "7780:51:17", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7826:4:17", + "nodeType": "YulIdentifier", + "src": "7826:4:17" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7794:31:17", "nodeType": "YulIdentifier", - "src": "810:6:17" + "src": "7794:31:17" + }, + "nativeSrc": "7794:37:17", + "nodeType": "YulFunctionCall", + "src": "7794:37:17" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7784:6:17", + "nodeType": "YulTypedName", + "src": "7784:6:17", + "type": "" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "795:3:17" + ] + }, + { + "nativeSrc": "7844:10:17", + "nodeType": "YulVariableDeclaration", + "src": "7844:10:17", + "value": { + "kind": "number", + "nativeSrc": "7853:1:17", + "nodeType": "YulLiteral", + "src": "7853:1:17", + "type": "", + "value": "0" }, - "nodeType": "YulFunctionCall", - "src": "795:22:17" + "variables": [ + { + "name": "i", + "nativeSrc": "7848:1:17", + "nodeType": "YulTypedName", + "src": "7848:1:17", + "type": "" + } + ] }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "819:7:17" + "body": { + "nativeSrc": "7912:163:17", + "nodeType": "YulBlock", + "src": "7912:163:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7937:6:17", + "nodeType": "YulIdentifier", + "src": "7937:6:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7955:3:17", + "nodeType": "YulIdentifier", + "src": "7955:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "7960:9:17", + "nodeType": "YulIdentifier", + "src": "7960:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7951:3:17", + "nodeType": "YulIdentifier", + "src": "7951:3:17" + }, + "nativeSrc": "7951:19:17", + "nodeType": "YulFunctionCall", + "src": "7951:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7945:5:17", + "nodeType": "YulIdentifier", + "src": "7945:5:17" + }, + "nativeSrc": "7945:26:17", + "nodeType": "YulFunctionCall", + "src": "7945:26:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7930:6:17", + "nodeType": "YulIdentifier", + "src": "7930:6:17" + }, + "nativeSrc": "7930:42:17", + "nodeType": "YulFunctionCall", + "src": "7930:42:17" + }, + "nativeSrc": "7930:42:17", + "nodeType": "YulExpressionStatement", + "src": "7930:42:17" + }, + { + "nativeSrc": "7989:24:17", + "nodeType": "YulAssignment", + "src": "7989:24:17", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "8003:6:17", + "nodeType": "YulIdentifier", + "src": "8003:6:17" + }, + { + "kind": "number", + "nativeSrc": "8011:1:17", + "nodeType": "YulLiteral", + "src": "8011:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7999:3:17", + "nodeType": "YulIdentifier", + "src": "7999:3:17" + }, + "nativeSrc": "7999:14:17", + "nodeType": "YulFunctionCall", + "src": "7999:14:17" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7989:6:17", + "nodeType": "YulIdentifier", + "src": "7989:6:17" + } + ] + }, + { + "nativeSrc": "8030:31:17", + "nodeType": "YulAssignment", + "src": "8030:31:17", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "8047:9:17", + "nodeType": "YulIdentifier", + "src": "8047:9:17" + }, + { + "kind": "number", + "nativeSrc": "8058:2:17", + "nodeType": "YulLiteral", + "src": "8058:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8043:3:17", + "nodeType": "YulIdentifier", + "src": "8043:3:17" + }, + "nativeSrc": "8043:18:17", + "nodeType": "YulFunctionCall", + "src": "8043:18:17" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "8030:9:17", + "nodeType": "YulIdentifier", + "src": "8030:9:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7878:1:17", + "nodeType": "YulIdentifier", + "src": "7878:1:17" + }, + { + "name": "loopEnd", + "nativeSrc": "7881:7:17", + "nodeType": "YulIdentifier", + "src": "7881:7:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7875:2:17", + "nodeType": "YulIdentifier", + "src": "7875:2:17" + }, + "nativeSrc": "7875:14:17", + "nodeType": "YulFunctionCall", + "src": "7875:14:17" + }, + "nativeSrc": "7867:208:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7890:21:17", + "nodeType": "YulBlock", + "src": "7890:21:17", + "statements": [ + { + "nativeSrc": "7892:17:17", + "nodeType": "YulAssignment", + "src": "7892:17:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7901:1:17", + "nodeType": "YulIdentifier", + "src": "7901:1:17" + }, + { + "kind": "number", + "nativeSrc": "7904:4:17", + "nodeType": "YulLiteral", + "src": "7904:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7897:3:17", + "nodeType": "YulIdentifier", + "src": "7897:3:17" + }, + "nativeSrc": "7897:12:17", + "nodeType": "YulFunctionCall", + "src": "7897:12:17" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7892:1:17", + "nodeType": "YulIdentifier", + "src": "7892:1:17" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7871:3:17", + "nodeType": "YulBlock", + "src": "7871:3:17", + "statements": [] + }, + "src": "7867:208:17" + }, + { + "body": { + "nativeSrc": "8111:156:17", + "nodeType": "YulBlock", + "src": "8111:156:17", + "statements": [ + { + "nativeSrc": "8129:43:17", + "nodeType": "YulVariableDeclaration", + "src": "8129:43:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8156:3:17", + "nodeType": "YulIdentifier", + "src": "8156:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "8161:9:17", + "nodeType": "YulIdentifier", + "src": "8161:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8152:3:17", + "nodeType": "YulIdentifier", + "src": "8152:3:17" + }, + "nativeSrc": "8152:19:17", + "nodeType": "YulFunctionCall", + "src": "8152:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8146:5:17", + "nodeType": "YulIdentifier", + "src": "8146:5:17" + }, + "nativeSrc": "8146:26:17", + "nodeType": "YulFunctionCall", + "src": "8146:26:17" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "8133:9:17", + "nodeType": "YulTypedName", + "src": "8133:9:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "8196:6:17", + "nodeType": "YulIdentifier", + "src": "8196:6:17" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "8223:9:17", + "nodeType": "YulIdentifier", + "src": "8223:9:17" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "8238:6:17", + "nodeType": "YulIdentifier", + "src": "8238:6:17" + }, + { + "kind": "number", + "nativeSrc": "8246:4:17", + "nodeType": "YulLiteral", + "src": "8246:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8234:3:17", + "nodeType": "YulIdentifier", + "src": "8234:3:17" + }, + "nativeSrc": "8234:17:17", + "nodeType": "YulFunctionCall", + "src": "8234:17:17" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "8204:18:17", + "nodeType": "YulIdentifier", + "src": "8204:18:17" + }, + "nativeSrc": "8204:48:17", + "nodeType": "YulFunctionCall", + "src": "8204:48:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8189:6:17", + "nodeType": "YulIdentifier", + "src": "8189:6:17" + }, + "nativeSrc": "8189:64:17", + "nodeType": "YulFunctionCall", + "src": "8189:64:17" + }, + "nativeSrc": "8189:64:17", + "nodeType": "YulExpressionStatement", + "src": "8189:64:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "8094:7:17", + "nodeType": "YulIdentifier", + "src": "8094:7:17" + }, + { + "name": "newLen", + "nativeSrc": "8103:6:17", + "nodeType": "YulIdentifier", + "src": "8103:6:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8091:2:17", + "nodeType": "YulIdentifier", + "src": "8091:2:17" + }, + "nativeSrc": "8091:19:17", + "nodeType": "YulFunctionCall", + "src": "8091:19:17" + }, + "nativeSrc": "8088:179:17", + "nodeType": "YulIf", + "src": "8088:179:17" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8287:4:17", + "nodeType": "YulIdentifier", + "src": "8287:4:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "8301:6:17", + "nodeType": "YulIdentifier", + "src": "8301:6:17" + }, + { + "kind": "number", + "nativeSrc": "8309:1:17", + "nodeType": "YulLiteral", + "src": "8309:1:17", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "8297:3:17", + "nodeType": "YulIdentifier", + "src": "8297:3:17" + }, + "nativeSrc": "8297:14:17", + "nodeType": "YulFunctionCall", + "src": "8297:14:17" + }, + { + "kind": "number", + "nativeSrc": "8313:1:17", + "nodeType": "YulLiteral", + "src": "8313:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8293:3:17", + "nodeType": "YulIdentifier", + "src": "8293:3:17" + }, + "nativeSrc": "8293:22:17", + "nodeType": "YulFunctionCall", + "src": "8293:22:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8280:6:17", + "nodeType": "YulIdentifier", + "src": "8280:6:17" + }, + "nativeSrc": "8280:36:17", + "nodeType": "YulFunctionCall", + "src": "8280:36:17" + }, + "nativeSrc": "8280:36:17", + "nodeType": "YulExpressionStatement", + "src": "8280:36:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "774:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "774:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "764:6:17" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "847:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "862:16:17", + ] + }, + "nativeSrc": "7708:618:17", + "nodeType": "YulCase", + "src": "7708:618:17", "value": { "kind": "number", + "nativeSrc": "7713:1:17", "nodeType": "YulLiteral", - "src": "876:2:17", + "src": "7713:1:17", "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "866:6:17", - "type": "" - } - ] + "value": "1" + } }, { - "nodeType": "YulAssignment", - "src": "892:63:17", - "value": { - "arguments": [ + "body": { + "nativeSrc": "8343:222:17", + "nodeType": "YulBlock", + "src": "8343:222:17", + "statements": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "927:9:17" - }, + "nativeSrc": "8357:14:17", + "nodeType": "YulVariableDeclaration", + "src": "8357:14:17", + "value": { + "kind": "number", + "nativeSrc": "8370:1:17", + "nodeType": "YulLiteral", + "src": "8370:1:17", + "type": "", + "value": "0" + }, + "variables": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "938:6:17" + "name": "value", + "nativeSrc": "8361:5:17", + "nodeType": "YulTypedName", + "src": "8361:5:17", + "type": "" } - ], - "functionName": { - "name": "add", + ] + }, + { + "body": { + "nativeSrc": "8394:67:17", + "nodeType": "YulBlock", + "src": "8394:67:17", + "statements": [ + { + "nativeSrc": "8412:35:17", + "nodeType": "YulAssignment", + "src": "8412:35:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8431:3:17", + "nodeType": "YulIdentifier", + "src": "8431:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "8436:9:17", + "nodeType": "YulIdentifier", + "src": "8436:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8427:3:17", + "nodeType": "YulIdentifier", + "src": "8427:3:17" + }, + "nativeSrc": "8427:19:17", + "nodeType": "YulFunctionCall", + "src": "8427:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8421:5:17", + "nodeType": "YulIdentifier", + "src": "8421:5:17" + }, + "nativeSrc": "8421:26:17", + "nodeType": "YulFunctionCall", + "src": "8421:26:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8412:5:17", + "nodeType": "YulIdentifier", + "src": "8412:5:17" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8387:6:17", "nodeType": "YulIdentifier", - "src": "923:3:17" + "src": "8387:6:17" }, - "nodeType": "YulFunctionCall", - "src": "923:22:17" + "nativeSrc": "8384:77:17", + "nodeType": "YulIf", + "src": "8384:77:17" }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "947:7:17" + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8481:4:17", + "nodeType": "YulIdentifier", + "src": "8481:4:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8540:5:17", + "nodeType": "YulIdentifier", + "src": "8540:5:17" + }, + { + "name": "newLen", + "nativeSrc": "8547:6:17", + "nodeType": "YulIdentifier", + "src": "8547:6:17" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8487:52:17", + "nodeType": "YulIdentifier", + "src": "8487:52:17" + }, + "nativeSrc": "8487:67:17", + "nodeType": "YulFunctionCall", + "src": "8487:67:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8474:6:17", + "nodeType": "YulIdentifier", + "src": "8474:6:17" + }, + "nativeSrc": "8474:81:17", + "nodeType": "YulFunctionCall", + "src": "8474:81:17" + }, + "nativeSrc": "8474:81:17", + "nodeType": "YulExpressionStatement", + "src": "8474:81:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "902:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "902:53:17" + ] }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "892:6:17" - } - ] + "nativeSrc": "8335:230:17", + "nodeType": "YulCase", + "src": "8335:230:17", + "value": "default" } - ] + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7688:6:17", + "nodeType": "YulIdentifier", + "src": "7688:6:17" + }, + { + "kind": "number", + "nativeSrc": "7696:2:17", + "nodeType": "YulLiteral", + "src": "7696:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7685:2:17", + "nodeType": "YulIdentifier", + "src": "7685:2:17" + }, + "nativeSrc": "7685:14:17", + "nodeType": "YulFunctionCall", + "src": "7685:14:17" + }, + "nativeSrc": "7678:887:17", + "nodeType": "YulSwitch", + "src": "7678:887:17" } ] }, - "name": "abi_decode_tuple_t_addresst_address", + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "7176:1395:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "610:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "621:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "slot", + "nativeSrc": "7257:4:17", "nodeType": "YulTypedName", - "src": "633:6:17", + "src": "7257:4:17", "type": "" }, { - "name": "value1", + "name": "src", + "nativeSrc": "7263:3:17", "nodeType": "YulTypedName", - "src": "641:6:17", + "src": "7263:3:17", "type": "" } ], - "src": "565:407:17" - }, + "src": "7176:1395:17" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n", + "id": 17, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801562000010575f80fd5b5060405162001756380380620017568339818101604052810190620000369190620001e7565b8160039081620000479190620004a1565b508060049081620000599190620004a1565b50505062000585565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000c3826200007b565b810181811067ffffffffffffffff82111715620000e557620000e46200008b565b5b80604052505050565b5f620000f962000062565b9050620001078282620000b8565b919050565b5f67ffffffffffffffff8211156200012957620001286200008b565b5b62000134826200007b565b9050602081019050919050565b5f5b838110156200016057808201518184015260208101905062000143565b5f8484015250505050565b5f620001816200017b846200010c565b620000ee565b905082815260208101848484011115620001a0576200019f62000077565b5b620001ad84828562000141565b509392505050565b5f82601f830112620001cc57620001cb62000073565b5b8151620001de8482602086016200016b565b91505092915050565b5f80604083850312156200020057620001ff6200006b565b5b5f83015167ffffffffffffffff81111562000220576200021f6200006f565b5b6200022e85828601620001b5565b925050602083015167ffffffffffffffff8111156200025257620002516200006f565b5b6200026085828601620001b5565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002b957607f821691505b602082108103620002cf57620002ce62000274565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002f6565b6200033f8683620002f6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000389620003836200037d8462000357565b62000360565b62000357565b9050919050565b5f819050919050565b620003a48362000369565b620003bc620003b38262000390565b84845462000302565b825550505050565b5f90565b620003d2620003c4565b620003df81848462000399565b505050565b5b818110156200040657620003fa5f82620003c8565b600181019050620003e5565b5050565b601f82111562000455576200041f81620002d5565b6200042a84620002e7565b810160208510156200043a578190505b620004526200044985620002e7565b830182620003e4565b50505b505050565b5f82821c905092915050565b5f620004775f19846008026200045a565b1980831691505092915050565b5f62000491838362000466565b9150826002028217905092915050565b620004ac826200026a565b67ffffffffffffffff811115620004c857620004c76200008b565b5b620004d48254620002a1565b620004e18282856200040a565b5f60209050601f83116001811462000517575f841562000502578287015190505b6200050e858262000484565b8655506200057d565b601f1984166200052786620002d5565b5f5b82811015620005505784890151825560018201915060208501945060208101905062000529565b868310156200057057848901516200056c601f89168262000466565b8355505b6001600288020188555050505b505050505050565b6111c380620005935f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6012905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea2646970667358221220fcffdaa2ead0ea153974caa1c4759558216042891bd50954cbe869554c7f205364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1756 CODESIZE SUB DUP1 PUSH3 0x1756 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x36 SWAP2 SWAP1 PUSH3 0x1E7 JUMP JUMPDEST DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x47 SWAP2 SWAP1 PUSH3 0x4A1 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x59 SWAP2 SWAP1 PUSH3 0x4A1 JUMP JUMPDEST POP POP POP PUSH3 0x585 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH3 0xC3 DUP3 PUSH3 0x7B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0xE5 JUMPI PUSH3 0xE4 PUSH3 0x8B JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0xF9 PUSH3 0x62 JUMP JUMPDEST SWAP1 POP PUSH3 0x107 DUP3 DUP3 PUSH3 0xB8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x129 JUMPI PUSH3 0x128 PUSH3 0x8B JUMP JUMPDEST JUMPDEST PUSH3 0x134 DUP3 PUSH3 0x7B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x160 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x143 JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x181 PUSH3 0x17B DUP5 PUSH3 0x10C JUMP JUMPDEST PUSH3 0xEE JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x1A0 JUMPI PUSH3 0x19F PUSH3 0x77 JUMP JUMPDEST JUMPDEST PUSH3 0x1AD DUP5 DUP3 DUP6 PUSH3 0x141 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x1CC JUMPI PUSH3 0x1CB PUSH3 0x73 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x1DE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x16B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x200 JUMPI PUSH3 0x1FF PUSH3 0x6B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x220 JUMPI PUSH3 0x21F PUSH3 0x6F JUMP JUMPDEST JUMPDEST PUSH3 0x22E DUP6 DUP3 DUP7 ADD PUSH3 0x1B5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x252 JUMPI PUSH3 0x251 PUSH3 0x6F JUMP JUMPDEST JUMPDEST PUSH3 0x260 DUP6 DUP3 DUP7 ADD PUSH3 0x1B5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2B9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2CF JUMPI PUSH3 0x2CE PUSH3 0x274 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH3 0x333 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2F6 JUMP JUMPDEST PUSH3 0x33F DUP7 DUP4 PUSH3 0x2F6 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x389 PUSH3 0x383 PUSH3 0x37D DUP5 PUSH3 0x357 JUMP JUMPDEST PUSH3 0x360 JUMP JUMPDEST PUSH3 0x357 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3A4 DUP4 PUSH3 0x369 JUMP JUMPDEST PUSH3 0x3BC PUSH3 0x3B3 DUP3 PUSH3 0x390 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x302 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0x3D2 PUSH3 0x3C4 JUMP JUMPDEST PUSH3 0x3DF DUP2 DUP5 DUP5 PUSH3 0x399 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x406 JUMPI PUSH3 0x3FA PUSH0 DUP3 PUSH3 0x3C8 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x3E5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x455 JUMPI PUSH3 0x41F DUP2 PUSH3 0x2D5 JUMP JUMPDEST PUSH3 0x42A DUP5 PUSH3 0x2E7 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x43A JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x452 PUSH3 0x449 DUP6 PUSH3 0x2E7 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x3E4 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x477 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x45A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x491 DUP4 DUP4 PUSH3 0x466 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4AC DUP3 PUSH3 0x26A JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4C8 JUMPI PUSH3 0x4C7 PUSH3 0x8B JUMP JUMPDEST JUMPDEST PUSH3 0x4D4 DUP3 SLOAD PUSH3 0x2A1 JUMP JUMPDEST PUSH3 0x4E1 DUP3 DUP3 DUP6 PUSH3 0x40A JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x517 JUMPI PUSH0 DUP5 ISZERO PUSH3 0x502 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x50E DUP6 DUP3 PUSH3 0x484 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x57D JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x527 DUP7 PUSH3 0x2D5 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x550 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x529 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x570 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x56C PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x466 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11C3 DUP1 PUSH3 0x593 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x243 JUMPI PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB3 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xCAB JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x30D PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x31A DUP2 DUP6 DUP6 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x338 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x345 DUP6 DUP3 DUP6 PUSH2 0x752 JUMP JUMPDEST PUSH2 0x350 DUP6 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x36E PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x38F DUP2 DUP6 DUP6 PUSH2 0x380 DUP6 DUP10 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x38A SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3EE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41A SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x465 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x43C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x465 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x448 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x479 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x486 DUP3 DUP7 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP1 PUSH2 0xE41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4EE PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x4FB DUP2 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F4 SWAP1 PUSH2 0xECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x66B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x662 SWAP1 PUSH2 0xF5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x75D DUP5 DUP5 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7D7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP1 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x842 SWAP1 PUSH2 0x1053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8B0 SWAP1 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8C4 DUP4 DUP4 DUP4 PUSH2 0xA49 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93E SWAP1 PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA30 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA43 DUP5 DUP5 DUP5 PUSH2 0xA4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA8A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA6F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAAF DUP3 PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xAB9 DUP2 DUP6 PUSH2 0xA5D JUMP JUMPDEST SWAP4 POP PUSH2 0xAC9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA6D JUMP JUMPDEST PUSH2 0xAD2 DUP2 PUSH2 0xA95 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xAF5 DUP2 DUP5 PUSH2 0xAA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB2A DUP3 PUSH2 0xB01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3A DUP2 PUSH2 0xB20 JUMP JUMPDEST DUP2 EQ PUSH2 0xB44 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB55 DUP2 PUSH2 0xB31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6D DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP2 EQ PUSH2 0xB77 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB88 DUP2 PUSH2 0xB64 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBB1 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBC2 DUP6 DUP3 DUP7 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0xBCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBF9 PUSH0 DUP4 ADD DUP5 PUSH2 0xBD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC08 DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC21 PUSH0 DUP4 ADD DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC3D PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC4B DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC5C DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC6D DUP7 DUP3 DUP8 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC8C DUP2 PUSH2 0xC77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA5 PUSH0 DUP4 ADD DUP5 PUSH2 0xC83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC0 JUMPI PUSH2 0xCBF PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCCD DUP5 DUP3 DUP6 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEB PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCF9 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0A DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD6B JUMPI PUSH2 0xD6A PUSH2 0xD14 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xDA8 DUP3 PUSH2 0xB5B JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 DUP4 PUSH2 0xB5B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0xD71 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE2B PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xE36 DUP3 PUSH2 0xDD1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE58 DUP2 PUSH2 0xE1F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xEB9 PUSH1 0x24 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xEC4 DUP3 PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF47 PUSH1 0x22 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xF52 DUP3 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xF74 DUP2 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xFAF PUSH1 0x1D DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xFBA DUP3 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFDC DUP2 PUSH2 0xFA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x103D PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1048 DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x106A DUP2 PUSH2 0x1031 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x10CB PUSH1 0x23 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x10D6 DUP3 PUSH2 0x1071 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10F8 DUP2 PUSH2 0x10BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1159 PUSH1 0x26 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1164 DUP3 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1186 DUP2 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC SELFDESTRUCT 0xDA LOG2 0xEA 0xD0 0xEA ISZERO CODECOPY PUSH21 0xCAA1C4759558216042891BD50954CBE869554C7F20 MSTORE8 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1532:11312:0:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2054:5;2046;:13;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;:::i;:::-;;1980:113;;1532:11312;;7:75:17;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:853::-;2776:6;2784;2833:2;2821:9;2812:7;2808:23;2804:32;2801:119;;;2839:79;;:::i;:::-;2801:119;2980:1;2969:9;2965:17;2959:24;3010:18;3002:6;2999:30;2996:117;;;3032:79;;:::i;:::-;2996:117;3137:74;3203:7;3194:6;3183:9;3179:22;3137:74;:::i;:::-;3127:84;;2930:291;3281:2;3270:9;3266:18;3260:25;3312:18;3304:6;3301:30;3298:117;;;3334:79;;:::i;:::-;3298:117;3439:74;3505:7;3496:6;3485:9;3481:22;3439:74;:::i;:::-;3429:84;;3231:292;2677:853;;;;;:::o;3536:99::-;3588:6;3622:5;3616:12;3606:22;;3536:99;;;:::o;3641:180::-;3689:77;3686:1;3679:88;3786:4;3783:1;3776:15;3810:4;3807:1;3800:15;3827:320;3871:6;3908:1;3902:4;3898:12;3888:22;;3955:1;3949:4;3945:12;3976:18;3966:81;;4032:4;4024:6;4020:17;4010:27;;3966:81;4094:2;4086:6;4083:14;4063:18;4060:38;4057:84;;4113:18;;:::i;:::-;4057:84;3878:269;3827:320;;;:::o;4153:141::-;4202:4;4225:3;4217:11;;4248:3;4245:1;4238:14;4282:4;4279:1;4269:18;4261:26;;4153:141;;;:::o;4300:93::-;4337:6;4384:2;4379;4372:5;4368:14;4364:23;4354:33;;4300:93;;;:::o;4399:107::-;4443:8;4493:5;4487:4;4483:16;4462:37;;4399:107;;;;:::o;4512:393::-;4581:6;4631:1;4619:10;4615:18;4654:97;4684:66;4673:9;4654:97;:::i;:::-;4772:39;4802:8;4791:9;4772:39;:::i;:::-;4760:51;;4844:4;4840:9;4833:5;4829:21;4820:30;;4893:4;4883:8;4879:19;4872:5;4869:30;4859:40;;4588:317;;4512:393;;;;;:::o;4911:77::-;4948:7;4977:5;4966:16;;4911:77;;;:::o;4994:60::-;5022:3;5043:5;5036:12;;4994:60;;;:::o;5060:142::-;5110:9;5143:53;5161:34;5170:24;5188:5;5170:24;:::i;:::-;5161:34;:::i;:::-;5143:53;:::i;:::-;5130:66;;5060:142;;;:::o;5208:75::-;5251:3;5272:5;5265:12;;5208:75;;;:::o;5289:269::-;5399:39;5430:7;5399:39;:::i;:::-;5460:91;5509:41;5533:16;5509:41;:::i;:::-;5501:6;5494:4;5488:11;5460:91;:::i;:::-;5454:4;5447:105;5365:193;5289:269;;;:::o;5564:73::-;5609:3;5564:73;:::o;5643:189::-;5720:32;;:::i;:::-;5761:65;5819:6;5811;5805:4;5761:65;:::i;:::-;5696:136;5643:189;;:::o;5838:186::-;5898:120;5915:3;5908:5;5905:14;5898:120;;;5969:39;6006:1;5999:5;5969:39;:::i;:::-;5942:1;5935:5;5931:13;5922:22;;5898:120;;;5838:186;;:::o;6030:543::-;6131:2;6126:3;6123:11;6120:446;;;6165:38;6197:5;6165:38;:::i;:::-;6249:29;6267:10;6249:29;:::i;:::-;6239:8;6235:44;6432:2;6420:10;6417:18;6414:49;;;6453:8;6438:23;;6414:49;6476:80;6532:22;6550:3;6532:22;:::i;:::-;6522:8;6518:37;6505:11;6476:80;:::i;:::-;6135:431;;6120:446;6030:543;;;:::o;6579:117::-;6633:8;6683:5;6677:4;6673:16;6652:37;;6579:117;;;;:::o;6702:169::-;6746:6;6779:51;6827:1;6823:6;6815:5;6812:1;6808:13;6779:51;:::i;:::-;6775:56;6860:4;6854;6850:15;6840:25;;6753:118;6702:169;;;;:::o;6876:295::-;6952:4;7098:29;7123:3;7117:4;7098:29;:::i;:::-;7090:37;;7160:3;7157:1;7153:11;7147:4;7144:21;7136:29;;6876:295;;;;:::o;7176:1395::-;7293:37;7326:3;7293:37;:::i;:::-;7395:18;7387:6;7384:30;7381:56;;;7417:18;;:::i;:::-;7381:56;7461:38;7493:4;7487:11;7461:38;:::i;:::-;7546:67;7606:6;7598;7592:4;7546:67;:::i;:::-;7640:1;7664:4;7651:17;;7696:2;7688:6;7685:14;7713:1;7708:618;;;;8370:1;8387:6;8384:77;;;8436:9;8431:3;8427:19;8421:26;8412:35;;8384:77;8487:67;8547:6;8540:5;8487:67;:::i;:::-;8481:4;8474:81;8343:222;7678:887;;7708:618;7760:4;7756:9;7748:6;7744:22;7794:37;7826:4;7794:37;:::i;:::-;7853:1;7867:208;7881:7;7878:1;7875:14;7867:208;;;7960:9;7955:3;7951:19;7945:26;7937:6;7930:42;8011:1;8003:6;7999:14;7989:24;;8058:2;8047:9;8043:18;8030:31;;7904:4;7901:1;7897:12;7892:17;;7867:208;;;8103:6;8094:7;8091:19;8088:179;;;8161:9;8156:3;8152:19;8146:26;8204:48;8246:4;8238:6;8234:17;8223:9;8204:48;:::i;:::-;8196:6;8189:64;8111:156;8088:179;8313:1;8309;8301:6;8297:14;8293:22;8287:4;8280:36;7715:611;;;7678:887;;7268:1303;;;7176:1395;;:::o;1532:11312:0:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_585": { + "entryPoint": 2638, + "id": 585, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_520": { + "entryPoint": 1423, + "id": 520, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_574": { + "entryPoint": 2633, + "id": 574, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_701": { + "entryPoint": 1416, + "id": 701, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_563": { + "entryPoint": 1874, + "id": 563, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_346": { + "entryPoint": 2013, + "id": 346, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_141": { + "entryPoint": 1286, + "id": 141, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_166": { + "entryPoint": 771, + "id": 166, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_98": { + "entryPoint": 922, + "id": 98, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_74": { + "entryPoint": 860, + "id": 74, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_269": { + "entryPoint": 1135, + "id": 269, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_228": { + "entryPoint": 868, + "id": 228, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_54": { + "entryPoint": 627, + "id": 54, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_64": { + "entryPoint": 991, + "id": 64, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_84": { + "entryPoint": 805, + "id": 84, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_199": { + "entryPoint": 814, + "id": 199, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_123": { + "entryPoint": 1252, + "id": 123, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 2887, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2938, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3243, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3286, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3111, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 2958, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3031, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2725, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4287, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3899, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4003, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4429, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3757, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3615, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3071, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3203, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3046, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4321, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3933, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4037, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4179, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3791, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3086, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3218, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2653, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2848, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3020, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2907, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3191, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2669, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3393, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3441, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3348, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2813, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2709, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4209, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 3821, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 3963, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4351, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4067, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 3679, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 3537, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2865, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2916, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:13699:17", + "nodeType": "YulBlock", + "src": "0:13699:17", + "statements": [ { "body": { + "nativeSrc": "66:40:17", "nodeType": "YulBlock", - "src": "1078:452:17", + "src": "66:40:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "1124:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1133:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1136:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1126:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1126:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1126:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1099:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1108:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1095:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1095:23:17" - }, + "nativeSrc": "77:22:17", + "nodeType": "YulAssignment", + "src": "77:22:17", + "value": { + "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1120:2:17", - "type": "", - "value": "96" + "name": "value", + "nativeSrc": "93:5:17", + "nodeType": "YulIdentifier", + "src": "93:5:17" } ], "functionName": { - "name": "slt", + "name": "mload", + "nativeSrc": "87:5:17", "nodeType": "YulIdentifier", - "src": "1091:3:17" + "src": "87:5:17" }, + "nativeSrc": "87:12:17", "nodeType": "YulFunctionCall", - "src": "1091:32:17" + "src": "87:12:17" }, - "nodeType": "YulIf", - "src": "1088:2:17" - }, - { - "nodeType": "YulBlock", - "src": "1150:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1165:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1179:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1169:6:17", - "type": "" - } - ] - }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "1194:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1229:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1240:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1225:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1225:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1249:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1204:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1204:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1194:6:17" - } - ] + "name": "length", + "nativeSrc": "77:6:17", + "nodeType": "YulIdentifier", + "src": "77:6:17" } ] - }, + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:17", + "nodeType": "YulTypedName", + "src": "49:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:17", + "nodeType": "YulTypedName", + "src": "59:6:17", + "type": "" + } + ], + "src": "7:99:17" + }, + { + "body": { + "nativeSrc": "208:73:17", + "nodeType": "YulBlock", + "src": "208:73:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "1277:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1292:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1306:2:17", - "type": "", - "value": "32" + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "225:3:17", + "nodeType": "YulIdentifier", + "src": "225:3:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1296:6:17", - "type": "" - } - ] + { + "name": "length", + "nativeSrc": "230:6:17", + "nodeType": "YulIdentifier", + "src": "230:6:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "218:6:17", + "nodeType": "YulIdentifier", + "src": "218:6:17" }, - { - "nodeType": "YulAssignment", - "src": "1322:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1357:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1368:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1353:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1353:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1377:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1332:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1332:53:17" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1322:6:17" - } - ] - } - ] + "nativeSrc": "218:19:17", + "nodeType": "YulFunctionCall", + "src": "218:19:17" + }, + "nativeSrc": "218:19:17", + "nodeType": "YulExpressionStatement", + "src": "218:19:17" }, { - "nodeType": "YulBlock", - "src": "1405:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1420:16:17", - "value": { + "nativeSrc": "246:29:17", + "nodeType": "YulAssignment", + "src": "246:29:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "265:3:17", + "nodeType": "YulIdentifier", + "src": "265:3:17" + }, + { "kind": "number", + "nativeSrc": "270:4:17", "nodeType": "YulLiteral", - "src": "1434:2:17", + "src": "270:4:17", "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1424:6:17", - "type": "" - } - ] + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "261:3:17", + "nodeType": "YulIdentifier", + "src": "261:3:17" }, + "nativeSrc": "261:14:17", + "nodeType": "YulFunctionCall", + "src": "261:14:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "1450:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1485:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1496:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1481:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1481:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1505:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "1460:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1460:53:17" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1450:6:17" - } - ] + "name": "updated_pos", + "nativeSrc": "246:11:17", + "nodeType": "YulIdentifier", + "src": "246:11:17" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "112:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "pos", + "nativeSrc": "180:3:17", "nodeType": "YulTypedName", - "src": "1032:9:17", + "src": "180:3:17", "type": "" }, { - "name": "dataEnd", + "name": "length", + "nativeSrc": "185:6:17", "nodeType": "YulTypedName", - "src": "1043:7:17", + "src": "185:6:17", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1055:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1063:6:17", - "type": "" - }, - { - "name": "value2", + "name": "updated_pos", + "nativeSrc": "196:11:17", "nodeType": "YulTypedName", - "src": "1071:6:17", + "src": "196:11:17", "type": "" } ], - "src": "978:552:17" + "src": "112:169:17" }, { "body": { + "nativeSrc": "349:184:17", "nodeType": "YulBlock", - "src": "1619:324:17", + "src": "349:184:17", "statements": [ + { + "nativeSrc": "359:10:17", + "nodeType": "YulVariableDeclaration", + "src": "359:10:17", + "value": { + "kind": "number", + "nativeSrc": "368:1:17", + "nodeType": "YulLiteral", + "src": "368:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "363:1:17", + "nodeType": "YulTypedName", + "src": "363:1:17", + "type": "" + } + ] + }, { "body": { + "nativeSrc": "428:63:17", "nodeType": "YulBlock", - "src": "1665:16:17", + "src": "428:63:17", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1674:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "dst", + "nativeSrc": "453:3:17", + "nodeType": "YulIdentifier", + "src": "453:3:17" + }, + { + "name": "i", + "nativeSrc": "458:1:17", + "nodeType": "YulIdentifier", + "src": "458:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "449:3:17", + "nodeType": "YulIdentifier", + "src": "449:3:17" + }, + "nativeSrc": "449:11:17", + "nodeType": "YulFunctionCall", + "src": "449:11:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1677:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "472:3:17", + "nodeType": "YulIdentifier", + "src": "472:3:17" + }, + { + "name": "i", + "nativeSrc": "477:1:17", + "nodeType": "YulIdentifier", + "src": "477:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "468:3:17", + "nodeType": "YulIdentifier", + "src": "468:3:17" + }, + "nativeSrc": "468:11:17", + "nodeType": "YulFunctionCall", + "src": "468:11:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "462:5:17", + "nodeType": "YulIdentifier", + "src": "462:5:17" + }, + "nativeSrc": "462:18:17", + "nodeType": "YulFunctionCall", + "src": "462:18:17" } ], "functionName": { - "name": "revert", + "name": "mstore", + "nativeSrc": "442:6:17", "nodeType": "YulIdentifier", - "src": "1667:6:17" + "src": "442:6:17" }, + "nativeSrc": "442:39:17", "nodeType": "YulFunctionCall", - "src": "1667:12:17" + "src": "442:39:17" }, + "nativeSrc": "442:39:17", "nodeType": "YulExpressionStatement", - "src": "1667:12:17" + "src": "442:39:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1640:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1649:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1636:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1636:23:17" + "name": "i", + "nativeSrc": "389:1:17", + "nodeType": "YulIdentifier", + "src": "389:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1661:2:17", - "type": "", - "value": "64" + "name": "length", + "nativeSrc": "392:6:17", + "nodeType": "YulIdentifier", + "src": "392:6:17" } ], "functionName": { - "name": "slt", + "name": "lt", + "nativeSrc": "386:2:17", "nodeType": "YulIdentifier", - "src": "1632:3:17" + "src": "386:2:17" }, + "nativeSrc": "386:13:17", "nodeType": "YulFunctionCall", - "src": "1632:32:17" + "src": "386:13:17" }, - "nodeType": "YulIf", - "src": "1629:2:17" - }, - { - "nodeType": "YulBlock", - "src": "1691:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1706:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1720:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1710:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1735:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1770:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1781:6:17" - } - ], - "functionName": { - "name": "add", + "nativeSrc": "378:113:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "400:19:17", + "nodeType": "YulBlock", + "src": "400:19:17", + "statements": [ + { + "nativeSrc": "402:15:17", + "nodeType": "YulAssignment", + "src": "402:15:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "411:1:17", "nodeType": "YulIdentifier", - "src": "1766:3:17" + "src": "411:1:17" }, - "nodeType": "YulFunctionCall", - "src": "1766:22:17" + { + "kind": "number", + "nativeSrc": "414:2:17", + "nodeType": "YulLiteral", + "src": "414:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "407:3:17", + "nodeType": "YulIdentifier", + "src": "407:3:17" }, + "nativeSrc": "407:10:17", + "nodeType": "YulFunctionCall", + "src": "407:10:17" + }, + "variableNames": [ { - "name": "dataEnd", + "name": "i", + "nativeSrc": "402:1:17", "nodeType": "YulIdentifier", - "src": "1790:7:17" + "src": "402:1:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1745:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1745:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1735:6:17" - } - ] - } - ] + ] + } + ] + }, + "pre": { + "nativeSrc": "382:3:17", + "nodeType": "YulBlock", + "src": "382:3:17", + "statements": [] + }, + "src": "378:113:17" }, { - "nodeType": "YulBlock", - "src": "1818:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1833:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1847:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1837:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1863:63:17", - "value": { + "expression": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1898:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1909:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1894:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1894:22:17" + "name": "dst", + "nativeSrc": "511:3:17", + "nodeType": "YulIdentifier", + "src": "511:3:17" }, { - "name": "dataEnd", + "name": "length", + "nativeSrc": "516:6:17", "nodeType": "YulIdentifier", - "src": "1918:7:17" + "src": "516:6:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "add", + "nativeSrc": "507:3:17", "nodeType": "YulIdentifier", - "src": "1873:20:17" + "src": "507:3:17" }, + "nativeSrc": "507:16:17", "nodeType": "YulFunctionCall", - "src": "1873:53:17" + "src": "507:16:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1863:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "525:1:17", + "nodeType": "YulLiteral", + "src": "525:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "500:6:17", + "nodeType": "YulIdentifier", + "src": "500:6:17" + }, + "nativeSrc": "500:27:17", + "nodeType": "YulFunctionCall", + "src": "500:27:17" + }, + "nativeSrc": "500:27:17", + "nodeType": "YulExpressionStatement", + "src": "500:27:17" } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "287:246:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1581:9:17", - "type": "" - }, - { - "name": "dataEnd", + "name": "src", + "nativeSrc": "331:3:17", "nodeType": "YulTypedName", - "src": "1592:7:17", - "type": "" - } - ], - "returnVariables": [ + "src": "331:3:17", + "type": "" + }, { - "name": "value0", + "name": "dst", + "nativeSrc": "336:3:17", "nodeType": "YulTypedName", - "src": "1604:6:17", + "src": "336:3:17", "type": "" }, { - "name": "value1", + "name": "length", + "nativeSrc": "341:6:17", "nodeType": "YulTypedName", - "src": "1612:6:17", + "src": "341:6:17", "type": "" } ], - "src": "1536:407:17" + "src": "287:246:17" }, { "body": { + "nativeSrc": "587:54:17", "nodeType": "YulBlock", - "src": "2008:50:17", + "src": "587:54:17", "statements": [ { - "expression": { + "nativeSrc": "597:38:17", + "nodeType": "YulAssignment", + "src": "597:38:17", + "value": { "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2025:3:17" - }, { "arguments": [ { "name": "value", + "nativeSrc": "615:5:17", "nodeType": "YulIdentifier", - "src": "2045:5:17" + "src": "615:5:17" + }, + { + "kind": "number", + "nativeSrc": "622:2:17", + "nodeType": "YulLiteral", + "src": "622:2:17", + "type": "", + "value": "31" } ], "functionName": { - "name": "cleanup_t_bool", + "name": "add", + "nativeSrc": "611:3:17", + "nodeType": "YulIdentifier", + "src": "611:3:17" + }, + "nativeSrc": "611:14:17", + "nodeType": "YulFunctionCall", + "src": "611:14:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "631:2:17", + "nodeType": "YulLiteral", + "src": "631:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "627:3:17", "nodeType": "YulIdentifier", - "src": "2030:14:17" + "src": "627:3:17" }, + "nativeSrc": "627:7:17", "nodeType": "YulFunctionCall", - "src": "2030:21:17" + "src": "627:7:17" } ], "functionName": { - "name": "mstore", + "name": "and", + "nativeSrc": "607:3:17", "nodeType": "YulIdentifier", - "src": "2018:6:17" + "src": "607:3:17" }, + "nativeSrc": "607:28:17", "nodeType": "YulFunctionCall", - "src": "2018:34:17" + "src": "607:28:17" }, - "nodeType": "YulExpressionStatement", - "src": "2018:34:17" + "variableNames": [ + { + "name": "result", + "nativeSrc": "597:6:17", + "nodeType": "YulIdentifier", + "src": "597:6:17" + } + ] } ] }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", + "name": "round_up_to_mul_of_32", + "nativeSrc": "539:102:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "570:5:17", "nodeType": "YulTypedName", - "src": "1996:5:17", + "src": "570:5:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "result", + "nativeSrc": "580:6:17", "nodeType": "YulTypedName", - "src": "2003:3:17", + "src": "580:6:17", "type": "" } ], - "src": "1949:109:17" + "src": "539:102:17" }, { "body": { + "nativeSrc": "739:285:17", "nodeType": "YulBlock", - "src": "2156:272:17", + "src": "739:285:17", "statements": [ { + "nativeSrc": "749:53:17", "nodeType": "YulVariableDeclaration", - "src": "2166:53:17", + "src": "749:53:17", "value": { "arguments": [ { "name": "value", + "nativeSrc": "796:5:17", "nodeType": "YulIdentifier", - "src": "2213:5:17" + "src": "796:5:17" } ], "functionName": { "name": "array_length_t_string_memory_ptr", + "nativeSrc": "763:32:17", "nodeType": "YulIdentifier", - "src": "2180:32:17" + "src": "763:32:17" }, + "nativeSrc": "763:39:17", "nodeType": "YulFunctionCall", - "src": "2180:39:17" + "src": "763:39:17" }, "variables": [ { "name": "length", + "nativeSrc": "753:6:17", "nodeType": "YulTypedName", - "src": "2170:6:17", + "src": "753:6:17", "type": "" } ] }, { + "nativeSrc": "811:78:17", "nodeType": "YulAssignment", - "src": "2228:78:17", + "src": "811:78:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "877:3:17", "nodeType": "YulIdentifier", - "src": "2294:3:17" + "src": "877:3:17" }, { "name": "length", + "nativeSrc": "882:6:17", "nodeType": "YulIdentifier", - "src": "2299:6:17" + "src": "882:6:17" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "818:58:17", "nodeType": "YulIdentifier", - "src": "2235:58:17" + "src": "818:58:17" }, + "nativeSrc": "818:71:17", "nodeType": "YulFunctionCall", - "src": "2235:71:17" + "src": "818:71:17" }, "variableNames": [ { "name": "pos", + "nativeSrc": "811:3:17", "nodeType": "YulIdentifier", - "src": "2228:3:17" + "src": "811:3:17" } ] }, @@ -3753,154 +7101,182 @@ "arguments": [ { "name": "value", + "nativeSrc": "937:5:17", "nodeType": "YulIdentifier", - "src": "2341:5:17" + "src": "937:5:17" }, { "kind": "number", + "nativeSrc": "944:4:17", "nodeType": "YulLiteral", - "src": "2348:4:17", + "src": "944:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "933:3:17", "nodeType": "YulIdentifier", - "src": "2337:3:17" + "src": "933:3:17" }, + "nativeSrc": "933:16:17", "nodeType": "YulFunctionCall", - "src": "2337:16:17" + "src": "933:16:17" }, { "name": "pos", + "nativeSrc": "951:3:17", "nodeType": "YulIdentifier", - "src": "2355:3:17" + "src": "951:3:17" }, { "name": "length", + "nativeSrc": "956:6:17", "nodeType": "YulIdentifier", - "src": "2360:6:17" + "src": "956:6:17" } ], "functionName": { - "name": "copy_memory_to_memory", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "898:34:17", "nodeType": "YulIdentifier", - "src": "2315:21:17" + "src": "898:34:17" }, + "nativeSrc": "898:65:17", "nodeType": "YulFunctionCall", - "src": "2315:52:17" + "src": "898:65:17" }, + "nativeSrc": "898:65:17", "nodeType": "YulExpressionStatement", - "src": "2315:52:17" + "src": "898:65:17" }, { + "nativeSrc": "972:46:17", "nodeType": "YulAssignment", - "src": "2376:46:17", + "src": "972:46:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "983:3:17", "nodeType": "YulIdentifier", - "src": "2387:3:17" + "src": "983:3:17" }, { "arguments": [ { "name": "length", + "nativeSrc": "1010:6:17", "nodeType": "YulIdentifier", - "src": "2414:6:17" + "src": "1010:6:17" } ], "functionName": { "name": "round_up_to_mul_of_32", + "nativeSrc": "988:21:17", "nodeType": "YulIdentifier", - "src": "2392:21:17" + "src": "988:21:17" }, + "nativeSrc": "988:29:17", "nodeType": "YulFunctionCall", - "src": "2392:29:17" + "src": "988:29:17" } ], "functionName": { "name": "add", + "nativeSrc": "979:3:17", "nodeType": "YulIdentifier", - "src": "2383:3:17" + "src": "979:3:17" }, + "nativeSrc": "979:39:17", "nodeType": "YulFunctionCall", - "src": "2383:39:17" + "src": "979:39:17" }, "variableNames": [ { "name": "end", + "nativeSrc": "972:3:17", "nodeType": "YulIdentifier", - "src": "2376:3:17" + "src": "972:3:17" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "647:377:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "720:5:17", "nodeType": "YulTypedName", - "src": "2137:5:17", + "src": "720:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "727:3:17", "nodeType": "YulTypedName", - "src": "2144:3:17", + "src": "727:3:17", "type": "" } ], "returnVariables": [ { "name": "end", + "nativeSrc": "735:3:17", "nodeType": "YulTypedName", - "src": "2152:3:17", + "src": "735:3:17", "type": "" } ], - "src": "2064:364:17" + "src": "647:377:17" }, { "body": { + "nativeSrc": "1148:195:17", "nodeType": "YulBlock", - "src": "2580:220:17", + "src": "1148:195:17", "statements": [ { + "nativeSrc": "1158:26:17", "nodeType": "YulAssignment", - "src": "2590:74:17", + "src": "1158:26:17", "value": { "arguments": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "1170:9:17", "nodeType": "YulIdentifier", - "src": "2656:3:17" + "src": "1170:9:17" }, { "kind": "number", + "nativeSrc": "1181:2:17", "nodeType": "YulLiteral", - "src": "2661:2:17", + "src": "1181:2:17", "type": "", - "value": "35" + "value": "32" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "add", + "nativeSrc": "1166:3:17", "nodeType": "YulIdentifier", - "src": "2597:58:17" + "src": "1166:3:17" }, + "nativeSrc": "1166:18:17", "nodeType": "YulFunctionCall", - "src": "2597:67:17" + "src": "1166:18:17" }, "variableNames": [ { - "name": "pos", + "name": "tail", + "nativeSrc": "1158:4:17", "nodeType": "YulIdentifier", - "src": "2590:3:17" + "src": "1158:4:17" } ] }, @@ -3908,229 +7284,580 @@ "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2762:3:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1205:9:17", + "nodeType": "YulIdentifier", + "src": "1205:9:17" + }, + { + "kind": "number", + "nativeSrc": "1216:1:17", + "nodeType": "YulLiteral", + "src": "1216:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1201:3:17", + "nodeType": "YulIdentifier", + "src": "1201:3:17" + }, + "nativeSrc": "1201:17:17", + "nodeType": "YulFunctionCall", + "src": "1201:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "1224:4:17", + "nodeType": "YulIdentifier", + "src": "1224:4:17" + }, + { + "name": "headStart", + "nativeSrc": "1230:9:17", + "nodeType": "YulIdentifier", + "src": "1230:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1220:3:17", + "nodeType": "YulIdentifier", + "src": "1220:3:17" + }, + "nativeSrc": "1220:20:17", + "nodeType": "YulFunctionCall", + "src": "1220:20:17" } ], "functionName": { - "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "name": "mstore", + "nativeSrc": "1194:6:17", "nodeType": "YulIdentifier", - "src": "2673:88:17" + "src": "1194:6:17" }, + "nativeSrc": "1194:47:17", "nodeType": "YulFunctionCall", - "src": "2673:93:17" + "src": "1194:47:17" }, + "nativeSrc": "1194:47:17", "nodeType": "YulExpressionStatement", - "src": "2673:93:17" + "src": "1194:47:17" }, { + "nativeSrc": "1250:86:17", + "nodeType": "YulAssignment", + "src": "1250:86:17", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1322:6:17", + "nodeType": "YulIdentifier", + "src": "1322:6:17" + }, + { + "name": "tail", + "nativeSrc": "1331:4:17", + "nodeType": "YulIdentifier", + "src": "1331:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "1258:63:17", + "nodeType": "YulIdentifier", + "src": "1258:63:17" + }, + "nativeSrc": "1258:78:17", + "nodeType": "YulFunctionCall", + "src": "1258:78:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1250:4:17", + "nodeType": "YulIdentifier", + "src": "1250:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "1030:313:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1120:9:17", + "nodeType": "YulTypedName", + "src": "1120:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1132:6:17", + "nodeType": "YulTypedName", + "src": "1132:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1143:4:17", + "nodeType": "YulTypedName", + "src": "1143:4:17", + "type": "" + } + ], + "src": "1030:313:17" + }, + { + "body": { + "nativeSrc": "1389:35:17", + "nodeType": "YulBlock", + "src": "1389:35:17", + "statements": [ + { + "nativeSrc": "1399:19:17", + "nodeType": "YulAssignment", + "src": "1399:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1415:2:17", + "nodeType": "YulLiteral", + "src": "1415:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1409:5:17", + "nodeType": "YulIdentifier", + "src": "1409:5:17" + }, + "nativeSrc": "1409:9:17", + "nodeType": "YulFunctionCall", + "src": "1409:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1399:6:17", + "nodeType": "YulIdentifier", + "src": "1399:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "1349:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1382:6:17", + "nodeType": "YulTypedName", + "src": "1382:6:17", + "type": "" + } + ], + "src": "1349:75:17" + }, + { + "body": { + "nativeSrc": "1519:28:17", + "nodeType": "YulBlock", + "src": "1519:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1536:1:17", + "nodeType": "YulLiteral", + "src": "1536:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1539:1:17", + "nodeType": "YulLiteral", + "src": "1539:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1529:6:17", + "nodeType": "YulIdentifier", + "src": "1529:6:17" + }, + "nativeSrc": "1529:12:17", + "nodeType": "YulFunctionCall", + "src": "1529:12:17" + }, + "nativeSrc": "1529:12:17", + "nodeType": "YulExpressionStatement", + "src": "1529:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1430:117:17", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:17" + }, + { + "body": { + "nativeSrc": "1642:28:17", + "nodeType": "YulBlock", + "src": "1642:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1659:1:17", + "nodeType": "YulLiteral", + "src": "1659:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1662:1:17", + "nodeType": "YulLiteral", + "src": "1662:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1652:6:17", + "nodeType": "YulIdentifier", + "src": "1652:6:17" + }, + "nativeSrc": "1652:12:17", + "nodeType": "YulFunctionCall", + "src": "1652:12:17" + }, + "nativeSrc": "1652:12:17", + "nodeType": "YulExpressionStatement", + "src": "1652:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "1553:117:17", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:17" + }, + { + "body": { + "nativeSrc": "1721:81:17", + "nodeType": "YulBlock", + "src": "1721:81:17", + "statements": [ + { + "nativeSrc": "1731:65:17", "nodeType": "YulAssignment", - "src": "2775:19:17", + "src": "1731:65:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1746:5:17", "nodeType": "YulIdentifier", - "src": "2786:3:17" + "src": "1746:5:17" }, { "kind": "number", + "nativeSrc": "1753:42:17", "nodeType": "YulLiteral", - "src": "2791:2:17", + "src": "1753:42:17", "type": "", - "value": "64" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "add", + "name": "and", + "nativeSrc": "1742:3:17", "nodeType": "YulIdentifier", - "src": "2782:3:17" + "src": "1742:3:17" }, + "nativeSrc": "1742:54:17", "nodeType": "YulFunctionCall", - "src": "2782:12:17" + "src": "1742:54:17" }, "variableNames": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "1731:7:17", "nodeType": "YulIdentifier", - "src": "2775:3:17" + "src": "1731:7:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1676:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1703:5:17", "nodeType": "YulTypedName", - "src": "2568:3:17", + "src": "1703:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "1713:7:17", "nodeType": "YulTypedName", - "src": "2576:3:17", + "src": "1713:7:17", "type": "" } ], - "src": "2434:366:17" + "src": "1676:126:17" }, { "body": { + "nativeSrc": "1853:51:17", "nodeType": "YulBlock", - "src": "2952:220:17", + "src": "1853:51:17", "statements": [ { + "nativeSrc": "1863:35:17", "nodeType": "YulAssignment", - "src": "2962:74:17", + "src": "1863:35:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1892:5:17", "nodeType": "YulIdentifier", - "src": "3028:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3033:2:17", - "type": "", - "value": "34" + "src": "1892:5:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1874:17:17", "nodeType": "YulIdentifier", - "src": "2969:58:17" + "src": "1874:17:17" }, + "nativeSrc": "1874:24:17", "nodeType": "YulFunctionCall", - "src": "2969:67:17" + "src": "1874:24:17" }, "variableNames": [ { - "name": "pos", + "name": "cleaned", + "nativeSrc": "1863:7:17", "nodeType": "YulIdentifier", - "src": "2962:3:17" + "src": "1863:7:17" } ] - }, + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1808:96:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1835:5:17", + "nodeType": "YulTypedName", + "src": "1835:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1845:7:17", + "nodeType": "YulTypedName", + "src": "1845:7:17", + "type": "" + } + ], + "src": "1808:96:17" + }, + { + "body": { + "nativeSrc": "1953:79:17", + "nodeType": "YulBlock", + "src": "1953:79:17", + "statements": [ { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "2010:16:17", + "nodeType": "YulBlock", + "src": "2010:16:17", + "statements": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3134:3:17" + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2019:1:17", + "nodeType": "YulLiteral", + "src": "2019:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2022:1:17", + "nodeType": "YulLiteral", + "src": "2022:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2012:6:17", + "nodeType": "YulIdentifier", + "src": "2012:6:17" + }, + "nativeSrc": "2012:12:17", + "nodeType": "YulFunctionCall", + "src": "2012:12:17" + }, + "nativeSrc": "2012:12:17", + "nodeType": "YulExpressionStatement", + "src": "2012:12:17" } - ], - "functionName": { - "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", - "nodeType": "YulIdentifier", - "src": "3045:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "3045:93:17" + ] }, - "nodeType": "YulExpressionStatement", - "src": "3045:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "3147:19:17", - "value": { + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3158:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3163:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "1976:5:17", + "nodeType": "YulIdentifier", + "src": "1976:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2001:5:17", + "nodeType": "YulIdentifier", + "src": "2001:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1983:17:17", + "nodeType": "YulIdentifier", + "src": "1983:17:17" + }, + "nativeSrc": "1983:24:17", + "nodeType": "YulFunctionCall", + "src": "1983:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1973:2:17", + "nodeType": "YulIdentifier", + "src": "1973:2:17" + }, + "nativeSrc": "1973:35:17", + "nodeType": "YulFunctionCall", + "src": "1973:35:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "1966:6:17", "nodeType": "YulIdentifier", - "src": "3154:3:17" + "src": "1966:6:17" }, + "nativeSrc": "1966:43:17", "nodeType": "YulFunctionCall", - "src": "3154:12:17" + "src": "1966:43:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3147:3:17" - } - ] + "nativeSrc": "1963:63:17", + "nodeType": "YulIf", + "src": "1963:63:17" } ] }, - "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "name": "validator_revert_t_address", + "nativeSrc": "1910:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2940:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", + "name": "value", + "nativeSrc": "1946:5:17", "nodeType": "YulTypedName", - "src": "2948:3:17", + "src": "1946:5:17", "type": "" } ], - "src": "2806:366:17" + "src": "1910:122:17" }, { "body": { + "nativeSrc": "2090:87:17", "nodeType": "YulBlock", - "src": "3324:220:17", + "src": "2090:87:17", "statements": [ { + "nativeSrc": "2100:29:17", "nodeType": "YulAssignment", - "src": "3334:74:17", + "src": "2100:29:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2122:6:17", "nodeType": "YulIdentifier", - "src": "3400:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3405:2:17", - "type": "", - "value": "29" + "src": "2122:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2109:12:17", "nodeType": "YulIdentifier", - "src": "3341:58:17" + "src": "2109:12:17" }, + "nativeSrc": "2109:20:17", "nodeType": "YulFunctionCall", - "src": "3341:67:17" + "src": "2109:20:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2100:5:17", "nodeType": "YulIdentifier", - "src": "3334:3:17" + "src": "2100:5:17" } ] }, @@ -4138,114 +7865,262 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2165:5:17", "nodeType": "YulIdentifier", - "src": "3506:3:17" + "src": "2165:5:17" } ], "functionName": { - "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "name": "validator_revert_t_address", + "nativeSrc": "2138:26:17", "nodeType": "YulIdentifier", - "src": "3417:88:17" + "src": "2138:26:17" }, + "nativeSrc": "2138:33:17", "nodeType": "YulFunctionCall", - "src": "3417:93:17" + "src": "2138:33:17" }, + "nativeSrc": "2138:33:17", "nodeType": "YulExpressionStatement", - "src": "3417:93:17" - }, + "src": "2138:33:17" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "2038:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2068:6:17", + "nodeType": "YulTypedName", + "src": "2068:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2076:3:17", + "nodeType": "YulTypedName", + "src": "2076:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2084:5:17", + "nodeType": "YulTypedName", + "src": "2084:5:17", + "type": "" + } + ], + "src": "2038:139:17" + }, + { + "body": { + "nativeSrc": "2228:32:17", + "nodeType": "YulBlock", + "src": "2228:32:17", + "statements": [ { + "nativeSrc": "2238:16:17", "nodeType": "YulAssignment", - "src": "3519:19:17", + "src": "2238:16:17", "value": { + "name": "value", + "nativeSrc": "2249:5:17", + "nodeType": "YulIdentifier", + "src": "2249:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2238:7:17", + "nodeType": "YulIdentifier", + "src": "2238:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2183:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2210:5:17", + "nodeType": "YulTypedName", + "src": "2210:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2220:7:17", + "nodeType": "YulTypedName", + "src": "2220:7:17", + "type": "" + } + ], + "src": "2183:77:17" + }, + { + "body": { + "nativeSrc": "2309:79:17", + "nodeType": "YulBlock", + "src": "2309:79:17", + "statements": [ + { + "body": { + "nativeSrc": "2366:16:17", + "nodeType": "YulBlock", + "src": "2366:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2375:1:17", + "nodeType": "YulLiteral", + "src": "2375:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2378:1:17", + "nodeType": "YulLiteral", + "src": "2378:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2368:6:17", + "nodeType": "YulIdentifier", + "src": "2368:6:17" + }, + "nativeSrc": "2368:12:17", + "nodeType": "YulFunctionCall", + "src": "2368:12:17" + }, + "nativeSrc": "2368:12:17", + "nodeType": "YulExpressionStatement", + "src": "2368:12:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3530:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3535:2:17", - "type": "", - "value": "32" + "arguments": [ + { + "name": "value", + "nativeSrc": "2332:5:17", + "nodeType": "YulIdentifier", + "src": "2332:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2357:5:17", + "nodeType": "YulIdentifier", + "src": "2357:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2339:17:17", + "nodeType": "YulIdentifier", + "src": "2339:17:17" + }, + "nativeSrc": "2339:24:17", + "nodeType": "YulFunctionCall", + "src": "2339:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2329:2:17", + "nodeType": "YulIdentifier", + "src": "2329:2:17" + }, + "nativeSrc": "2329:35:17", + "nodeType": "YulFunctionCall", + "src": "2329:35:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "2322:6:17", "nodeType": "YulIdentifier", - "src": "3526:3:17" + "src": "2322:6:17" }, + "nativeSrc": "2322:43:17", "nodeType": "YulFunctionCall", - "src": "3526:12:17" + "src": "2322:43:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3519:3:17" - } - ] + "nativeSrc": "2319:63:17", + "nodeType": "YulIf", + "src": "2319:63:17" } ] }, - "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "name": "validator_revert_t_uint256", + "nativeSrc": "2266:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3312:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", + "name": "value", + "nativeSrc": "2302:5:17", "nodeType": "YulTypedName", - "src": "3320:3:17", + "src": "2302:5:17", "type": "" } ], - "src": "3178:366:17" + "src": "2266:122:17" }, { "body": { + "nativeSrc": "2446:87:17", "nodeType": "YulBlock", - "src": "3696:220:17", + "src": "2446:87:17", "statements": [ { + "nativeSrc": "2456:29:17", "nodeType": "YulAssignment", - "src": "3706:74:17", + "src": "2456:29:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2478:6:17", "nodeType": "YulIdentifier", - "src": "3772:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3777:2:17", - "type": "", - "value": "38" + "src": "2478:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2465:12:17", "nodeType": "YulIdentifier", - "src": "3713:58:17" + "src": "2465:12:17" }, + "nativeSrc": "2465:20:17", "nodeType": "YulFunctionCall", - "src": "3713:67:17" + "src": "2465:20:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2456:5:17", "nodeType": "YulIdentifier", - "src": "3706:3:17" + "src": "2456:5:17" } ] }, @@ -4253,581 +8128,742 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2521:5:17", "nodeType": "YulIdentifier", - "src": "3878:3:17" + "src": "2521:5:17" } ], "functionName": { - "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "name": "validator_revert_t_uint256", + "nativeSrc": "2494:26:17", "nodeType": "YulIdentifier", - "src": "3789:88:17" + "src": "2494:26:17" }, + "nativeSrc": "2494:33:17", "nodeType": "YulFunctionCall", - "src": "3789:93:17" + "src": "2494:33:17" }, + "nativeSrc": "2494:33:17", "nodeType": "YulExpressionStatement", - "src": "3789:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "3891:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3902:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3907:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3898:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3898:12:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3891:3:17" - } - ] + "src": "2494:33:17" } ] }, - "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_t_uint256", + "nativeSrc": "2394:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2424:6:17", + "nodeType": "YulTypedName", + "src": "2424:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2432:3:17", "nodeType": "YulTypedName", - "src": "3684:3:17", + "src": "2432:3:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value", + "nativeSrc": "2440:5:17", "nodeType": "YulTypedName", - "src": "3692:3:17", + "src": "2440:5:17", "type": "" } ], - "src": "3550:366:17" + "src": "2394:139:17" }, { "body": { + "nativeSrc": "2622:391:17", "nodeType": "YulBlock", - "src": "4068:220:17", + "src": "2622:391:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4078:74:17", - "value": { + "body": { + "nativeSrc": "2668:83:17", + "nodeType": "YulBlock", + "src": "2668:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2670:77:17", + "nodeType": "YulIdentifier", + "src": "2670:77:17" + }, + "nativeSrc": "2670:79:17", + "nodeType": "YulFunctionCall", + "src": "2670:79:17" + }, + "nativeSrc": "2670:79:17", + "nodeType": "YulExpressionStatement", + "src": "2670:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4144:3:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2643:7:17", + "nodeType": "YulIdentifier", + "src": "2643:7:17" + }, + { + "name": "headStart", + "nativeSrc": "2652:9:17", + "nodeType": "YulIdentifier", + "src": "2652:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2639:3:17", + "nodeType": "YulIdentifier", + "src": "2639:3:17" + }, + "nativeSrc": "2639:23:17", + "nodeType": "YulFunctionCall", + "src": "2639:23:17" }, { "kind": "number", + "nativeSrc": "2664:2:17", "nodeType": "YulLiteral", - "src": "4149:2:17", + "src": "2664:2:17", "type": "", - "value": "37" + "value": "64" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "slt", + "nativeSrc": "2635:3:17", "nodeType": "YulIdentifier", - "src": "4085:58:17" + "src": "2635:3:17" }, + "nativeSrc": "2635:32:17", "nodeType": "YulFunctionCall", - "src": "4085:67:17" + "src": "2635:32:17" }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4078:3:17" - } - ] + "nativeSrc": "2632:119:17", + "nodeType": "YulIf", + "src": "2632:119:17" }, { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4250:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", - "nodeType": "YulIdentifier", - "src": "4161:88:17" + "nativeSrc": "2761:117:17", + "nodeType": "YulBlock", + "src": "2761:117:17", + "statements": [ + { + "nativeSrc": "2776:15:17", + "nodeType": "YulVariableDeclaration", + "src": "2776:15:17", + "value": { + "kind": "number", + "nativeSrc": "2790:1:17", + "nodeType": "YulLiteral", + "src": "2790:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2780:6:17", + "nodeType": "YulTypedName", + "src": "2780:6:17", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "4161:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4161:93:17" + { + "nativeSrc": "2805:63:17", + "nodeType": "YulAssignment", + "src": "2805:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2840:9:17", + "nodeType": "YulIdentifier", + "src": "2840:9:17" + }, + { + "name": "offset", + "nativeSrc": "2851:6:17", + "nodeType": "YulIdentifier", + "src": "2851:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2836:3:17", + "nodeType": "YulIdentifier", + "src": "2836:3:17" + }, + "nativeSrc": "2836:22:17", + "nodeType": "YulFunctionCall", + "src": "2836:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2860:7:17", + "nodeType": "YulIdentifier", + "src": "2860:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2815:20:17", + "nodeType": "YulIdentifier", + "src": "2815:20:17" + }, + "nativeSrc": "2815:53:17", + "nodeType": "YulFunctionCall", + "src": "2815:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2805:6:17", + "nodeType": "YulIdentifier", + "src": "2805:6:17" + } + ] + } + ] }, { - "nodeType": "YulAssignment", - "src": "4263:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4274:3:17" - }, - { + "nativeSrc": "2888:118:17", + "nodeType": "YulBlock", + "src": "2888:118:17", + "statements": [ + { + "nativeSrc": "2903:16:17", + "nodeType": "YulVariableDeclaration", + "src": "2903:16:17", + "value": { "kind": "number", + "nativeSrc": "2917:2:17", "nodeType": "YulLiteral", - "src": "4279:2:17", + "src": "2917:2:17", "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4270:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4270:12:17" - }, - "variableNames": [ + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2907:6:17", + "nodeType": "YulTypedName", + "src": "2907:6:17", + "type": "" + } + ] + }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4263:3:17" + "nativeSrc": "2933:63:17", + "nodeType": "YulAssignment", + "src": "2933:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2968:9:17", + "nodeType": "YulIdentifier", + "src": "2968:9:17" + }, + { + "name": "offset", + "nativeSrc": "2979:6:17", + "nodeType": "YulIdentifier", + "src": "2979:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2964:3:17", + "nodeType": "YulIdentifier", + "src": "2964:3:17" + }, + "nativeSrc": "2964:22:17", + "nodeType": "YulFunctionCall", + "src": "2964:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2988:7:17", + "nodeType": "YulIdentifier", + "src": "2988:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "2943:20:17", + "nodeType": "YulIdentifier", + "src": "2943:20:17" + }, + "nativeSrc": "2943:53:17", + "nodeType": "YulFunctionCall", + "src": "2943:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2933:6:17", + "nodeType": "YulIdentifier", + "src": "2933:6:17" + } + ] } ] } ] }, - "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "2539:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "2584:9:17", + "nodeType": "YulTypedName", + "src": "2584:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2595:7:17", "nodeType": "YulTypedName", - "src": "4056:3:17", + "src": "2595:7:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value0", + "nativeSrc": "2607:6:17", + "nodeType": "YulTypedName", + "src": "2607:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2615:6:17", "nodeType": "YulTypedName", - "src": "4064:3:17", + "src": "2615:6:17", "type": "" } ], - "src": "3922:366:17" + "src": "2539:474:17" }, { "body": { + "nativeSrc": "3061:48:17", "nodeType": "YulBlock", - "src": "4440:220:17", + "src": "3061:48:17", "statements": [ { + "nativeSrc": "3071:32:17", "nodeType": "YulAssignment", - "src": "4450:74:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4516:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4521:2:17", - "type": "", - "value": "36" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4457:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "4457:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4450:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4622:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", - "nodeType": "YulIdentifier", - "src": "4533:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "4533:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4533:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "4635:19:17", + "src": "3071:32:17", "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4646:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4651:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "3096:5:17", + "nodeType": "YulIdentifier", + "src": "3096:5:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3089:6:17", + "nodeType": "YulIdentifier", + "src": "3089:6:17" + }, + "nativeSrc": "3089:13:17", + "nodeType": "YulFunctionCall", + "src": "3089:13:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "3082:6:17", "nodeType": "YulIdentifier", - "src": "4642:3:17" + "src": "3082:6:17" }, + "nativeSrc": "3082:21:17", "nodeType": "YulFunctionCall", - "src": "4642:12:17" + "src": "3082:21:17" }, "variableNames": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "3071:7:17", "nodeType": "YulIdentifier", - "src": "4635:3:17" + "src": "3071:7:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_bool", + "nativeSrc": "3019:90:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "3043:5:17", "nodeType": "YulTypedName", - "src": "4428:3:17", + "src": "3043:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "3053:7:17", "nodeType": "YulTypedName", - "src": "4436:3:17", + "src": "3053:7:17", "type": "" } ], - "src": "4294:366:17" + "src": "3019:90:17" }, { "body": { + "nativeSrc": "3174:50:17", "nodeType": "YulBlock", - "src": "4812:220:17", + "src": "3174:50:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4822:74:17", - "value": { + "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3191:3:17", "nodeType": "YulIdentifier", - "src": "4888:3:17" + "src": "3191:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4893:2:17", - "type": "", - "value": "37" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4829:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "4829:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4822:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4994:3:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "3211:5:17", + "nodeType": "YulIdentifier", + "src": "3211:5:17" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "3196:14:17", + "nodeType": "YulIdentifier", + "src": "3196:14:17" + }, + "nativeSrc": "3196:21:17", + "nodeType": "YulFunctionCall", + "src": "3196:21:17" } ], "functionName": { - "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "name": "mstore", + "nativeSrc": "3184:6:17", "nodeType": "YulIdentifier", - "src": "4905:88:17" + "src": "3184:6:17" }, + "nativeSrc": "3184:34:17", "nodeType": "YulFunctionCall", - "src": "4905:93:17" + "src": "3184:34:17" }, + "nativeSrc": "3184:34:17", "nodeType": "YulExpressionStatement", - "src": "4905:93:17" - }, + "src": "3184:34:17" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3115:109:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3162:5:17", + "nodeType": "YulTypedName", + "src": "3162:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3169:3:17", + "nodeType": "YulTypedName", + "src": "3169:3:17", + "type": "" + } + ], + "src": "3115:109:17" + }, + { + "body": { + "nativeSrc": "3322:118:17", + "nodeType": "YulBlock", + "src": "3322:118:17", + "statements": [ { + "nativeSrc": "3332:26:17", "nodeType": "YulAssignment", - "src": "5007:19:17", + "src": "3332:26:17", "value": { "arguments": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "3344:9:17", "nodeType": "YulIdentifier", - "src": "5018:3:17" + "src": "3344:9:17" }, { "kind": "number", + "nativeSrc": "3355:2:17", "nodeType": "YulLiteral", - "src": "5023:2:17", + "src": "3355:2:17", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3340:3:17", "nodeType": "YulIdentifier", - "src": "5014:3:17" + "src": "3340:3:17" }, + "nativeSrc": "3340:18:17", "nodeType": "YulFunctionCall", - "src": "5014:12:17" + "src": "3340:18:17" }, "variableNames": [ { - "name": "end", + "name": "tail", + "nativeSrc": "3332:4:17", "nodeType": "YulIdentifier", - "src": "5007:3:17" + "src": "3332:4:17" } ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4800:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "4808:3:17", - "type": "" - } - ], - "src": "4666:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5103:53:17", - "statements": [ + }, { "expression": { "arguments": [ { - "name": "pos", + "name": "value0", + "nativeSrc": "3406:6:17", "nodeType": "YulIdentifier", - "src": "5120:3:17" + "src": "3406:6:17" }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3419:9:17", "nodeType": "YulIdentifier", - "src": "5143:5:17" + "src": "3419:9:17" + }, + { + "kind": "number", + "nativeSrc": "3430:1:17", + "nodeType": "YulLiteral", + "src": "3430:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "add", + "nativeSrc": "3415:3:17", "nodeType": "YulIdentifier", - "src": "5125:17:17" + "src": "3415:3:17" }, + "nativeSrc": "3415:17:17", "nodeType": "YulFunctionCall", - "src": "5125:24:17" + "src": "3415:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3368:37:17", "nodeType": "YulIdentifier", - "src": "5113:6:17" + "src": "3368:37:17" }, + "nativeSrc": "3368:65:17", "nodeType": "YulFunctionCall", - "src": "5113:37:17" + "src": "3368:65:17" }, + "nativeSrc": "3368:65:17", "nodeType": "YulExpressionStatement", - "src": "5113:37:17" + "src": "3368:65:17" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "3230:210:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3294:9:17", "nodeType": "YulTypedName", - "src": "5091:5:17", + "src": "3294:9:17", "type": "" }, { - "name": "pos", + "name": "value0", + "nativeSrc": "3306:6:17", + "nodeType": "YulTypedName", + "src": "3306:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3317:4:17", "nodeType": "YulTypedName", - "src": "5098:3:17", + "src": "3317:4:17", "type": "" } ], - "src": "5038:118:17" + "src": "3230:210:17" }, { "body": { + "nativeSrc": "3511:53:17", "nodeType": "YulBlock", - "src": "5223:51:17", + "src": "3511:53:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3528:3:17", "nodeType": "YulIdentifier", - "src": "5240:3:17" + "src": "3528:3:17" }, { "arguments": [ { "name": "value", + "nativeSrc": "3551:5:17", "nodeType": "YulIdentifier", - "src": "5261:5:17" + "src": "3551:5:17" } ], "functionName": { - "name": "cleanup_t_uint8", + "name": "cleanup_t_uint256", + "nativeSrc": "3533:17:17", "nodeType": "YulIdentifier", - "src": "5245:15:17" + "src": "3533:17:17" }, + "nativeSrc": "3533:24:17", "nodeType": "YulFunctionCall", - "src": "5245:22:17" + "src": "3533:24:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "3521:6:17", "nodeType": "YulIdentifier", - "src": "5233:6:17" + "src": "3521:6:17" }, + "nativeSrc": "3521:37:17", "nodeType": "YulFunctionCall", - "src": "5233:35:17" + "src": "3521:37:17" }, + "nativeSrc": "3521:37:17", "nodeType": "YulExpressionStatement", - "src": "5233:35:17" + "src": "3521:37:17" } ] }, - "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3446:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "3499:5:17", "nodeType": "YulTypedName", - "src": "5211:5:17", + "src": "3499:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "3506:3:17", "nodeType": "YulTypedName", - "src": "5218:3:17", + "src": "3506:3:17", "type": "" } ], - "src": "5162:112:17" + "src": "3446:118:17" }, { "body": { + "nativeSrc": "3668:124:17", "nodeType": "YulBlock", - "src": "5372:118:17", + "src": "3668:124:17", "statements": [ { + "nativeSrc": "3678:26:17", "nodeType": "YulAssignment", - "src": "5382:26:17", + "src": "3678:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "3690:9:17", "nodeType": "YulIdentifier", - "src": "5394:9:17" + "src": "3690:9:17" }, { "kind": "number", + "nativeSrc": "3701:2:17", "nodeType": "YulLiteral", - "src": "5405:2:17", + "src": "3701:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3686:3:17", "nodeType": "YulIdentifier", - "src": "5390:3:17" + "src": "3686:3:17" }, + "nativeSrc": "3686:18:17", "nodeType": "YulFunctionCall", - "src": "5390:18:17" + "src": "3686:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "3678:4:17", "nodeType": "YulIdentifier", - "src": "5382:4:17" + "src": "3678:4:17" } ] }, @@ -4836,2868 +8872,3617 @@ "arguments": [ { "name": "value0", + "nativeSrc": "3758:6:17", "nodeType": "YulIdentifier", - "src": "5456:6:17" + "src": "3758:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "3771:9:17", "nodeType": "YulIdentifier", - "src": "5469:9:17" + "src": "3771:9:17" }, { "kind": "number", + "nativeSrc": "3782:1:17", "nodeType": "YulLiteral", - "src": "5480:1:17", + "src": "3782:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "3767:3:17", "nodeType": "YulIdentifier", - "src": "5465:3:17" + "src": "3767:3:17" }, + "nativeSrc": "3767:17:17", "nodeType": "YulFunctionCall", - "src": "5465:17:17" + "src": "3767:17:17" } ], "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3714:43:17", "nodeType": "YulIdentifier", - "src": "5418:37:17" + "src": "3714:43:17" }, + "nativeSrc": "3714:71:17", "nodeType": "YulFunctionCall", - "src": "5418:65:17" + "src": "3714:71:17" }, + "nativeSrc": "3714:71:17", "nodeType": "YulExpressionStatement", - "src": "5418:65:17" + "src": "3714:71:17" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "3570:222:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3640:9:17", + "nodeType": "YulTypedName", + "src": "3640:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3652:6:17", + "nodeType": "YulTypedName", + "src": "3652:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3663:4:17", + "nodeType": "YulTypedName", + "src": "3663:4:17", + "type": "" + } + ], + "src": "3570:222:17" + }, + { + "body": { + "nativeSrc": "3898:519:17", + "nodeType": "YulBlock", + "src": "3898:519:17", + "statements": [ + { + "body": { + "nativeSrc": "3944:83:17", + "nodeType": "YulBlock", + "src": "3944:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3946:77:17", + "nodeType": "YulIdentifier", + "src": "3946:77:17" + }, + "nativeSrc": "3946:79:17", + "nodeType": "YulFunctionCall", + "src": "3946:79:17" + }, + "nativeSrc": "3946:79:17", + "nodeType": "YulExpressionStatement", + "src": "3946:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3919:7:17", + "nodeType": "YulIdentifier", + "src": "3919:7:17" + }, + { + "name": "headStart", + "nativeSrc": "3928:9:17", + "nodeType": "YulIdentifier", + "src": "3928:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3915:3:17", + "nodeType": "YulIdentifier", + "src": "3915:3:17" + }, + "nativeSrc": "3915:23:17", + "nodeType": "YulFunctionCall", + "src": "3915:23:17" + }, + { + "kind": "number", + "nativeSrc": "3940:2:17", + "nodeType": "YulLiteral", + "src": "3940:2:17", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3911:3:17", + "nodeType": "YulIdentifier", + "src": "3911:3:17" + }, + "nativeSrc": "3911:32:17", + "nodeType": "YulFunctionCall", + "src": "3911:32:17" + }, + "nativeSrc": "3908:119:17", + "nodeType": "YulIf", + "src": "3908:119:17" + }, + { + "nativeSrc": "4037:117:17", + "nodeType": "YulBlock", + "src": "4037:117:17", + "statements": [ + { + "nativeSrc": "4052:15:17", + "nodeType": "YulVariableDeclaration", + "src": "4052:15:17", + "value": { + "kind": "number", + "nativeSrc": "4066:1:17", + "nodeType": "YulLiteral", + "src": "4066:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4056:6:17", + "nodeType": "YulTypedName", + "src": "4056:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4081:63:17", + "nodeType": "YulAssignment", + "src": "4081:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4116:9:17", + "nodeType": "YulIdentifier", + "src": "4116:9:17" + }, + { + "name": "offset", + "nativeSrc": "4127:6:17", + "nodeType": "YulIdentifier", + "src": "4127:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4112:3:17", + "nodeType": "YulIdentifier", + "src": "4112:3:17" + }, + "nativeSrc": "4112:22:17", + "nodeType": "YulFunctionCall", + "src": "4112:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4136:7:17", + "nodeType": "YulIdentifier", + "src": "4136:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4091:20:17", + "nodeType": "YulIdentifier", + "src": "4091:20:17" + }, + "nativeSrc": "4091:53:17", + "nodeType": "YulFunctionCall", + "src": "4091:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4081:6:17", + "nodeType": "YulIdentifier", + "src": "4081:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4164:118:17", + "nodeType": "YulBlock", + "src": "4164:118:17", + "statements": [ + { + "nativeSrc": "4179:16:17", + "nodeType": "YulVariableDeclaration", + "src": "4179:16:17", + "value": { + "kind": "number", + "nativeSrc": "4193:2:17", + "nodeType": "YulLiteral", + "src": "4193:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4183:6:17", + "nodeType": "YulTypedName", + "src": "4183:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4209:63:17", + "nodeType": "YulAssignment", + "src": "4209:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4244:9:17", + "nodeType": "YulIdentifier", + "src": "4244:9:17" + }, + { + "name": "offset", + "nativeSrc": "4255:6:17", + "nodeType": "YulIdentifier", + "src": "4255:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4240:3:17", + "nodeType": "YulIdentifier", + "src": "4240:3:17" + }, + "nativeSrc": "4240:22:17", + "nodeType": "YulFunctionCall", + "src": "4240:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4264:7:17", + "nodeType": "YulIdentifier", + "src": "4264:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4219:20:17", + "nodeType": "YulIdentifier", + "src": "4219:20:17" + }, + "nativeSrc": "4219:53:17", + "nodeType": "YulFunctionCall", + "src": "4219:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4209:6:17", + "nodeType": "YulIdentifier", + "src": "4209:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4292:118:17", + "nodeType": "YulBlock", + "src": "4292:118:17", + "statements": [ + { + "nativeSrc": "4307:16:17", + "nodeType": "YulVariableDeclaration", + "src": "4307:16:17", + "value": { + "kind": "number", + "nativeSrc": "4321:2:17", + "nodeType": "YulLiteral", + "src": "4321:2:17", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4311:6:17", + "nodeType": "YulTypedName", + "src": "4311:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4337:63:17", + "nodeType": "YulAssignment", + "src": "4337:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4372:9:17", + "nodeType": "YulIdentifier", + "src": "4372:9:17" + }, + { + "name": "offset", + "nativeSrc": "4383:6:17", + "nodeType": "YulIdentifier", + "src": "4383:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4368:3:17", + "nodeType": "YulIdentifier", + "src": "4368:3:17" + }, + "nativeSrc": "4368:22:17", + "nodeType": "YulFunctionCall", + "src": "4368:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4392:7:17", + "nodeType": "YulIdentifier", + "src": "4392:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4347:20:17", + "nodeType": "YulIdentifier", + "src": "4347:20:17" + }, + "nativeSrc": "4347:53:17", + "nodeType": "YulFunctionCall", + "src": "4347:53:17" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4337:6:17", + "nodeType": "YulIdentifier", + "src": "4337:6:17" + } + ] + } + ] } ] }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "3798:619:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "3852:9:17", "nodeType": "YulTypedName", - "src": "5344:9:17", + "src": "3852:9:17", "type": "" }, { - "name": "value0", + "name": "dataEnd", + "nativeSrc": "3863:7:17", "nodeType": "YulTypedName", - "src": "5356:6:17", + "src": "3863:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "3875:6:17", + "nodeType": "YulTypedName", + "src": "3875:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3883:6:17", + "nodeType": "YulTypedName", + "src": "3883:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3891:6:17", "nodeType": "YulTypedName", - "src": "5367:4:17", + "src": "3891:6:17", "type": "" } ], - "src": "5280:210:17" + "src": "3798:619:17" }, { "body": { + "nativeSrc": "4466:43:17", "nodeType": "YulBlock", - "src": "5614:195:17", + "src": "4466:43:17", "statements": [ { + "nativeSrc": "4476:27:17", "nodeType": "YulAssignment", - "src": "5624:26:17", + "src": "4476:27:17", "value": { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "4491:5:17", "nodeType": "YulIdentifier", - "src": "5636:9:17" + "src": "4491:5:17" }, { "kind": "number", + "nativeSrc": "4498:4:17", "nodeType": "YulLiteral", - "src": "5647:2:17", + "src": "4498:4:17", "type": "", - "value": "32" + "value": "0xff" } ], "functionName": { - "name": "add", + "name": "and", + "nativeSrc": "4487:3:17", "nodeType": "YulIdentifier", - "src": "5632:3:17" + "src": "4487:3:17" }, + "nativeSrc": "4487:16:17", "nodeType": "YulFunctionCall", - "src": "5632:18:17" + "src": "4487:16:17" }, "variableNames": [ { - "name": "tail", + "name": "cleaned", + "nativeSrc": "4476:7:17", "nodeType": "YulIdentifier", - "src": "5624:4:17" + "src": "4476:7:17" } ] - }, + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "4423:86:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4448:5:17", + "nodeType": "YulTypedName", + "src": "4448:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4458:7:17", + "nodeType": "YulTypedName", + "src": "4458:7:17", + "type": "" + } + ], + "src": "4423:86:17" + }, + { + "body": { + "nativeSrc": "4576:51:17", + "nodeType": "YulBlock", + "src": "4576:51:17", + "statements": [ { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5671:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5682:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5667:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5667:17:17" + "name": "pos", + "nativeSrc": "4593:3:17", + "nodeType": "YulIdentifier", + "src": "4593:3:17" }, { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5690:4:17" - }, - { - "name": "headStart", + "name": "value", + "nativeSrc": "4614:5:17", "nodeType": "YulIdentifier", - "src": "5696:9:17" + "src": "4614:5:17" } ], "functionName": { - "name": "sub", + "name": "cleanup_t_uint8", + "nativeSrc": "4598:15:17", "nodeType": "YulIdentifier", - "src": "5686:3:17" + "src": "4598:15:17" }, + "nativeSrc": "4598:22:17", "nodeType": "YulFunctionCall", - "src": "5686:20:17" + "src": "4598:22:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "4586:6:17", "nodeType": "YulIdentifier", - "src": "5660:6:17" + "src": "4586:6:17" }, + "nativeSrc": "4586:35:17", "nodeType": "YulFunctionCall", - "src": "5660:47:17" + "src": "4586:35:17" }, + "nativeSrc": "4586:35:17", "nodeType": "YulExpressionStatement", - "src": "5660:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "5716:86:17", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5788:6:17" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5797:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "5724:63:17" - }, - "nodeType": "YulFunctionCall", - "src": "5724:78:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5716:4:17" - } - ] + "src": "4586:35:17" } ] }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "4515:112:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "4564:5:17", "nodeType": "YulTypedName", - "src": "5586:9:17", + "src": "4564:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5598:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "4571:3:17", "nodeType": "YulTypedName", - "src": "5609:4:17", + "src": "4571:3:17", "type": "" } ], - "src": "5496:313:17" + "src": "4515:112:17" }, { "body": { + "nativeSrc": "4727:120:17", "nodeType": "YulBlock", - "src": "5986:248:17", + "src": "4727:120:17", "statements": [ { + "nativeSrc": "4737:26:17", "nodeType": "YulAssignment", - "src": "5996:26:17", + "src": "4737:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "4749:9:17", "nodeType": "YulIdentifier", - "src": "6008:9:17" + "src": "4749:9:17" }, { "kind": "number", + "nativeSrc": "4760:2:17", "nodeType": "YulLiteral", - "src": "6019:2:17", + "src": "4760:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "4745:3:17", "nodeType": "YulIdentifier", - "src": "6004:3:17" + "src": "4745:3:17" }, + "nativeSrc": "4745:18:17", "nodeType": "YulFunctionCall", - "src": "6004:18:17" + "src": "4745:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "4737:4:17", "nodeType": "YulIdentifier", - "src": "5996:4:17" + "src": "4737:4:17" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "4813:6:17", + "nodeType": "YulIdentifier", + "src": "4813:6:17" + }, { "arguments": [ { "name": "headStart", + "nativeSrc": "4826:9:17", "nodeType": "YulIdentifier", - "src": "6043:9:17" + "src": "4826:9:17" }, { "kind": "number", + "nativeSrc": "4837:1:17", "nodeType": "YulLiteral", - "src": "6054:1:17", + "src": "4837:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "4822:3:17", "nodeType": "YulIdentifier", - "src": "6039:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6039:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6062:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6068:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6058:3:17" + "src": "4822:3:17" }, + "nativeSrc": "4822:17:17", "nodeType": "YulFunctionCall", - "src": "6058:20:17" + "src": "4822:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "4773:39:17", "nodeType": "YulIdentifier", - "src": "6032:6:17" + "src": "4773:39:17" }, + "nativeSrc": "4773:67:17", "nodeType": "YulFunctionCall", - "src": "6032:47:17" + "src": "4773:67:17" }, + "nativeSrc": "4773:67:17", "nodeType": "YulExpressionStatement", - "src": "6032:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6088:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6222:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6096:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6096:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6088:4:17" - } - ] + "src": "4773:67:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nativeSrc": "4633:214:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "4699:9:17", + "nodeType": "YulTypedName", + "src": "4699:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4711:6:17", "nodeType": "YulTypedName", - "src": "5966:9:17", + "src": "4711:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "4722:4:17", "nodeType": "YulTypedName", - "src": "5981:4:17", + "src": "4722:4:17", "type": "" } ], - "src": "5815:419:17" + "src": "4633:214:17" }, { "body": { + "nativeSrc": "4919:263:17", "nodeType": "YulBlock", - "src": "6411:248:17", + "src": "4919:263:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "6421:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6433:9:17" - }, + "body": { + "nativeSrc": "4965:83:17", + "nodeType": "YulBlock", + "src": "4965:83:17", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6444:2:17", - "type": "", - "value": "32" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4967:77:17", + "nodeType": "YulIdentifier", + "src": "4967:77:17" + }, + "nativeSrc": "4967:79:17", + "nodeType": "YulFunctionCall", + "src": "4967:79:17" + }, + "nativeSrc": "4967:79:17", + "nodeType": "YulExpressionStatement", + "src": "4967:79:17" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6429:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6429:18:17" + ] }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6421:4:17" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "4940:7:17", "nodeType": "YulIdentifier", - "src": "6468:9:17" + "src": "4940:7:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6479:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "4949:9:17", + "nodeType": "YulIdentifier", + "src": "4949:9:17" } ], "functionName": { - "name": "add", + "name": "sub", + "nativeSrc": "4936:3:17", "nodeType": "YulIdentifier", - "src": "6464:3:17" + "src": "4936:3:17" }, + "nativeSrc": "4936:23:17", "nodeType": "YulFunctionCall", - "src": "6464:17:17" + "src": "4936:23:17" }, { + "kind": "number", + "nativeSrc": "4961:2:17", + "nodeType": "YulLiteral", + "src": "4961:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4932:3:17", + "nodeType": "YulIdentifier", + "src": "4932:3:17" + }, + "nativeSrc": "4932:32:17", + "nodeType": "YulFunctionCall", + "src": "4932:32:17" + }, + "nativeSrc": "4929:119:17", + "nodeType": "YulIf", + "src": "4929:119:17" + }, + { + "nativeSrc": "5058:117:17", + "nodeType": "YulBlock", + "src": "5058:117:17", + "statements": [ + { + "nativeSrc": "5073:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5073:15:17", + "value": { + "kind": "number", + "nativeSrc": "5087:1:17", + "nodeType": "YulLiteral", + "src": "5087:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5077:6:17", + "nodeType": "YulTypedName", + "src": "5077:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5102:63:17", + "nodeType": "YulAssignment", + "src": "5102:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6487:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5137:9:17", + "nodeType": "YulIdentifier", + "src": "5137:9:17" + }, + { + "name": "offset", + "nativeSrc": "5148:6:17", + "nodeType": "YulIdentifier", + "src": "5148:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5133:3:17", + "nodeType": "YulIdentifier", + "src": "5133:3:17" + }, + "nativeSrc": "5133:22:17", + "nodeType": "YulFunctionCall", + "src": "5133:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "5157:7:17", "nodeType": "YulIdentifier", - "src": "6493:9:17" + "src": "5157:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_address", + "nativeSrc": "5112:20:17", "nodeType": "YulIdentifier", - "src": "6483:3:17" + "src": "5112:20:17" }, + "nativeSrc": "5112:53:17", "nodeType": "YulFunctionCall", - "src": "6483:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6457:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6457:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6457:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6513:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6647:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6521:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6521:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6513:4:17" + "src": "5112:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5102:6:17", + "nodeType": "YulIdentifier", + "src": "5102:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_address", + "nativeSrc": "4853:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "4889:9:17", + "nodeType": "YulTypedName", + "src": "4889:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4900:7:17", "nodeType": "YulTypedName", - "src": "6391:9:17", + "src": "4900:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "4912:6:17", "nodeType": "YulTypedName", - "src": "6406:4:17", + "src": "4912:6:17", "type": "" } ], - "src": "6240:419:17" + "src": "4853:329:17" }, { "body": { + "nativeSrc": "5271:391:17", "nodeType": "YulBlock", - "src": "6836:248:17", + "src": "5271:391:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "6846:26:17", - "value": { + "body": { + "nativeSrc": "5317:83:17", + "nodeType": "YulBlock", + "src": "5317:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5319:77:17", + "nodeType": "YulIdentifier", + "src": "5319:77:17" + }, + "nativeSrc": "5319:79:17", + "nodeType": "YulFunctionCall", + "src": "5319:79:17" + }, + "nativeSrc": "5319:79:17", + "nodeType": "YulExpressionStatement", + "src": "5319:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6858:9:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5292:7:17", + "nodeType": "YulIdentifier", + "src": "5292:7:17" + }, + { + "name": "headStart", + "nativeSrc": "5301:9:17", + "nodeType": "YulIdentifier", + "src": "5301:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5288:3:17", + "nodeType": "YulIdentifier", + "src": "5288:3:17" + }, + "nativeSrc": "5288:23:17", + "nodeType": "YulFunctionCall", + "src": "5288:23:17" }, { "kind": "number", + "nativeSrc": "5313:2:17", "nodeType": "YulLiteral", - "src": "6869:2:17", + "src": "5313:2:17", "type": "", - "value": "32" + "value": "64" } ], "functionName": { - "name": "add", + "name": "slt", + "nativeSrc": "5284:3:17", "nodeType": "YulIdentifier", - "src": "6854:3:17" + "src": "5284:3:17" }, + "nativeSrc": "5284:32:17", "nodeType": "YulFunctionCall", - "src": "6854:18:17" + "src": "5284:32:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6846:4:17" - } - ] + "nativeSrc": "5281:119:17", + "nodeType": "YulIf", + "src": "5281:119:17" }, { - "expression": { - "arguments": [ - { + "nativeSrc": "5410:117:17", + "nodeType": "YulBlock", + "src": "5410:117:17", + "statements": [ + { + "nativeSrc": "5425:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5425:15:17", + "value": { + "kind": "number", + "nativeSrc": "5439:1:17", + "nodeType": "YulLiteral", + "src": "5439:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5429:6:17", + "nodeType": "YulTypedName", + "src": "5429:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5454:63:17", + "nodeType": "YulAssignment", + "src": "5454:63:17", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6893:9:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5489:9:17", + "nodeType": "YulIdentifier", + "src": "5489:9:17" + }, + { + "name": "offset", + "nativeSrc": "5500:6:17", + "nodeType": "YulIdentifier", + "src": "5500:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5485:3:17", + "nodeType": "YulIdentifier", + "src": "5485:3:17" + }, + "nativeSrc": "5485:22:17", + "nodeType": "YulFunctionCall", + "src": "5485:22:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6904:1:17", - "type": "", - "value": "0" + "name": "dataEnd", + "nativeSrc": "5509:7:17", + "nodeType": "YulIdentifier", + "src": "5509:7:17" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_address", + "nativeSrc": "5464:20:17", "nodeType": "YulIdentifier", - "src": "6889:3:17" + "src": "5464:20:17" }, + "nativeSrc": "5464:53:17", "nodeType": "YulFunctionCall", - "src": "6889:17:17" + "src": "5464:53:17" }, - { + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5454:6:17", + "nodeType": "YulIdentifier", + "src": "5454:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "5537:118:17", + "nodeType": "YulBlock", + "src": "5537:118:17", + "statements": [ + { + "nativeSrc": "5552:16:17", + "nodeType": "YulVariableDeclaration", + "src": "5552:16:17", + "value": { + "kind": "number", + "nativeSrc": "5566:2:17", + "nodeType": "YulLiteral", + "src": "5566:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5556:6:17", + "nodeType": "YulTypedName", + "src": "5556:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5582:63:17", + "nodeType": "YulAssignment", + "src": "5582:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6912:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5617:9:17", + "nodeType": "YulIdentifier", + "src": "5617:9:17" + }, + { + "name": "offset", + "nativeSrc": "5628:6:17", + "nodeType": "YulIdentifier", + "src": "5628:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5613:3:17", + "nodeType": "YulIdentifier", + "src": "5613:3:17" + }, + "nativeSrc": "5613:22:17", + "nodeType": "YulFunctionCall", + "src": "5613:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "5637:7:17", "nodeType": "YulIdentifier", - "src": "6918:9:17" + "src": "5637:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_address", + "nativeSrc": "5592:20:17", "nodeType": "YulIdentifier", - "src": "6908:3:17" + "src": "5592:20:17" }, + "nativeSrc": "5592:53:17", "nodeType": "YulFunctionCall", - "src": "6908:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6882:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6882:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6882:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6938:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7072:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6946:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6946:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6938:4:17" + "src": "5592:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5582:6:17", + "nodeType": "YulIdentifier", + "src": "5582:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "5188:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "5233:9:17", + "nodeType": "YulTypedName", + "src": "5233:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5244:7:17", "nodeType": "YulTypedName", - "src": "6816:9:17", + "src": "5244:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "5256:6:17", + "nodeType": "YulTypedName", + "src": "5256:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5264:6:17", "nodeType": "YulTypedName", - "src": "6831:4:17", + "src": "5264:6:17", "type": "" } ], - "src": "6665:419:17" + "src": "5188:474:17" }, { "body": { + "nativeSrc": "5696:152:17", "nodeType": "YulBlock", - "src": "7261:248:17", + "src": "5696:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "7271:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7283:9:17" + "kind": "number", + "nativeSrc": "5713:1:17", + "nodeType": "YulLiteral", + "src": "5713:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "5716:77:17", "nodeType": "YulLiteral", - "src": "7294:2:17", + "src": "5716:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "5706:6:17", "nodeType": "YulIdentifier", - "src": "7279:3:17" + "src": "5706:6:17" }, + "nativeSrc": "5706:88:17", "nodeType": "YulFunctionCall", - "src": "7279:18:17" + "src": "5706:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7271:4:17" - } - ] + "nativeSrc": "5706:88:17", + "nodeType": "YulExpressionStatement", + "src": "5706:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7318:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7329:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7314:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7314:17:17" + "kind": "number", + "nativeSrc": "5810:1:17", + "nodeType": "YulLiteral", + "src": "5810:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7337:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7343:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7333:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7333:20:17" + "kind": "number", + "nativeSrc": "5813:4:17", + "nodeType": "YulLiteral", + "src": "5813:4:17", + "type": "", + "value": "0x22" } ], "functionName": { "name": "mstore", + "nativeSrc": "5803:6:17", "nodeType": "YulIdentifier", - "src": "7307:6:17" + "src": "5803:6:17" }, + "nativeSrc": "5803:15:17", "nodeType": "YulFunctionCall", - "src": "7307:47:17" + "src": "5803:15:17" }, + "nativeSrc": "5803:15:17", "nodeType": "YulExpressionStatement", - "src": "7307:47:17" + "src": "5803:15:17" }, { - "nodeType": "YulAssignment", - "src": "7363:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7497:4:17" + "kind": "number", + "nativeSrc": "5834:1:17", + "nodeType": "YulLiteral", + "src": "5834:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5837:4:17", + "nodeType": "YulLiteral", + "src": "5837:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "5827:6:17", "nodeType": "YulIdentifier", - "src": "7371:124:17" + "src": "5827:6:17" }, + "nativeSrc": "5827:15:17", "nodeType": "YulFunctionCall", - "src": "7371:131:17" + "src": "5827:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7363:4:17" - } - ] + "nativeSrc": "5827:15:17", + "nodeType": "YulExpressionStatement", + "src": "5827:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x22", + "nativeSrc": "5668:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7241:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7256:4:17", - "type": "" - } - ], - "src": "7090:419:17" + "src": "5668:180:17" }, { "body": { + "nativeSrc": "5905:269:17", "nodeType": "YulBlock", - "src": "7686:248:17", + "src": "5905:269:17", "statements": [ { + "nativeSrc": "5915:22:17", "nodeType": "YulAssignment", - "src": "7696:26:17", + "src": "5915:22:17", "value": { "arguments": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "5929:4:17", "nodeType": "YulIdentifier", - "src": "7708:9:17" + "src": "5929:4:17" }, { "kind": "number", + "nativeSrc": "5935:1:17", "nodeType": "YulLiteral", - "src": "7719:2:17", + "src": "5935:1:17", "type": "", - "value": "32" + "value": "2" } ], "functionName": { - "name": "add", + "name": "div", + "nativeSrc": "5925:3:17", "nodeType": "YulIdentifier", - "src": "7704:3:17" + "src": "5925:3:17" }, + "nativeSrc": "5925:12:17", "nodeType": "YulFunctionCall", - "src": "7704:18:17" + "src": "5925:12:17" }, "variableNames": [ { - "name": "tail", + "name": "length", + "nativeSrc": "5915:6:17", "nodeType": "YulIdentifier", - "src": "7696:4:17" + "src": "5915:6:17" } ] }, { - "expression": { + "nativeSrc": "5946:38:17", + "nodeType": "YulVariableDeclaration", + "src": "5946:38:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7743:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7754:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7739:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7739:17:17" + "name": "data", + "nativeSrc": "5976:4:17", + "nodeType": "YulIdentifier", + "src": "5976:4:17" }, { - "arguments": [ - { - "name": "tail", + "kind": "number", + "nativeSrc": "5982:1:17", + "nodeType": "YulLiteral", + "src": "5982:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5972:3:17", + "nodeType": "YulIdentifier", + "src": "5972:3:17" + }, + "nativeSrc": "5972:12:17", + "nodeType": "YulFunctionCall", + "src": "5972:12:17" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5950:18:17", + "nodeType": "YulTypedName", + "src": "5950:18:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6023:51:17", + "nodeType": "YulBlock", + "src": "6023:51:17", + "statements": [ + { + "nativeSrc": "6037:27:17", + "nodeType": "YulAssignment", + "src": "6037:27:17", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6051:6:17", + "nodeType": "YulIdentifier", + "src": "6051:6:17" + }, + { + "kind": "number", + "nativeSrc": "6059:4:17", + "nodeType": "YulLiteral", + "src": "6059:4:17", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6047:3:17", "nodeType": "YulIdentifier", - "src": "7762:4:17" + "src": "6047:3:17" }, + "nativeSrc": "6047:17:17", + "nodeType": "YulFunctionCall", + "src": "6047:17:17" + }, + "variableNames": [ { - "name": "headStart", + "name": "length", + "nativeSrc": "6037:6:17", "nodeType": "YulIdentifier", - "src": "7768:9:17" + "src": "6037:6:17" } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7758:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7758:20:17" + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "6003:18:17", + "nodeType": "YulIdentifier", + "src": "6003:18:17" } ], "functionName": { - "name": "mstore", + "name": "iszero", + "nativeSrc": "5996:6:17", "nodeType": "YulIdentifier", - "src": "7732:6:17" + "src": "5996:6:17" }, + "nativeSrc": "5996:26:17", "nodeType": "YulFunctionCall", - "src": "7732:47:17" + "src": "5996:26:17" }, - "nodeType": "YulExpressionStatement", - "src": "7732:47:17" + "nativeSrc": "5993:81:17", + "nodeType": "YulIf", + "src": "5993:81:17" }, { - "nodeType": "YulAssignment", - "src": "7788:139:17", - "value": { + "body": { + "nativeSrc": "6126:42:17", + "nodeType": "YulBlock", + "src": "6126:42:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "6140:16:17", + "nodeType": "YulIdentifier", + "src": "6140:16:17" + }, + "nativeSrc": "6140:18:17", + "nodeType": "YulFunctionCall", + "src": "6140:18:17" + }, + "nativeSrc": "6140:18:17", + "nodeType": "YulExpressionStatement", + "src": "6140:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "tail", + "name": "outOfPlaceEncoding", + "nativeSrc": "6090:18:17", "nodeType": "YulIdentifier", - "src": "7922:4:17" + "src": "6090:18:17" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "6113:6:17", + "nodeType": "YulIdentifier", + "src": "6113:6:17" + }, + { + "kind": "number", + "nativeSrc": "6121:2:17", + "nodeType": "YulLiteral", + "src": "6121:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6110:2:17", + "nodeType": "YulIdentifier", + "src": "6110:2:17" + }, + "nativeSrc": "6110:14:17", + "nodeType": "YulFunctionCall", + "src": "6110:14:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "name": "eq", + "nativeSrc": "6087:2:17", "nodeType": "YulIdentifier", - "src": "7796:124:17" + "src": "6087:2:17" }, + "nativeSrc": "6087:38:17", "nodeType": "YulFunctionCall", - "src": "7796:131:17" + "src": "6087:38:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7788:4:17" - } - ] + "nativeSrc": "6084:84:17", + "nodeType": "YulIf", + "src": "6084:84:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "name": "extract_byte_array_length", + "nativeSrc": "5854:320:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "5889:4:17", "nodeType": "YulTypedName", - "src": "7666:9:17", + "src": "5889:4:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "length", + "nativeSrc": "5898:6:17", "nodeType": "YulTypedName", - "src": "7681:4:17", + "src": "5898:6:17", "type": "" } ], - "src": "7515:419:17" + "src": "5854:320:17" }, { "body": { + "nativeSrc": "6208:152:17", "nodeType": "YulBlock", - "src": "8111:248:17", + "src": "6208:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "8121:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8133:9:17" + "kind": "number", + "nativeSrc": "6225:1:17", + "nodeType": "YulLiteral", + "src": "6225:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "6228:77:17", "nodeType": "YulLiteral", - "src": "8144:2:17", + "src": "6228:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "6218:6:17", "nodeType": "YulIdentifier", - "src": "8129:3:17" + "src": "6218:6:17" }, + "nativeSrc": "6218:88:17", "nodeType": "YulFunctionCall", - "src": "8129:18:17" + "src": "6218:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8121:4:17" - } - ] + "nativeSrc": "6218:88:17", + "nodeType": "YulExpressionStatement", + "src": "6218:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8168:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8179:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8164:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8164:17:17" + "kind": "number", + "nativeSrc": "6322:1:17", + "nodeType": "YulLiteral", + "src": "6322:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8187:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8193:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8183:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8183:20:17" + "kind": "number", + "nativeSrc": "6325:4:17", + "nodeType": "YulLiteral", + "src": "6325:4:17", + "type": "", + "value": "0x11" } ], "functionName": { "name": "mstore", + "nativeSrc": "6315:6:17", "nodeType": "YulIdentifier", - "src": "8157:6:17" + "src": "6315:6:17" }, + "nativeSrc": "6315:15:17", "nodeType": "YulFunctionCall", - "src": "8157:47:17" + "src": "6315:15:17" }, + "nativeSrc": "6315:15:17", "nodeType": "YulExpressionStatement", - "src": "8157:47:17" + "src": "6315:15:17" }, { - "nodeType": "YulAssignment", - "src": "8213:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8347:4:17" + "kind": "number", + "nativeSrc": "6346:1:17", + "nodeType": "YulLiteral", + "src": "6346:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6349:4:17", + "nodeType": "YulLiteral", + "src": "6349:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "6339:6:17", "nodeType": "YulIdentifier", - "src": "8221:124:17" + "src": "6339:6:17" }, + "nativeSrc": "6339:15:17", "nodeType": "YulFunctionCall", - "src": "8221:131:17" + "src": "6339:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8213:4:17" - } - ] + "nativeSrc": "6339:15:17", + "nodeType": "YulExpressionStatement", + "src": "6339:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x11", + "nativeSrc": "6180:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8091:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8106:4:17", - "type": "" - } - ], - "src": "7940:419:17" + "src": "6180:180:17" }, { "body": { + "nativeSrc": "6410:147:17", "nodeType": "YulBlock", - "src": "8536:248:17", + "src": "6410:147:17", "statements": [ { + "nativeSrc": "6420:25:17", "nodeType": "YulAssignment", - "src": "8546:26:17", + "src": "6420:25:17", "value": { "arguments": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6443:1:17", "nodeType": "YulIdentifier", - "src": "8558:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8569:2:17", - "type": "", - "value": "32" + "src": "6443:1:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "6425:17:17", "nodeType": "YulIdentifier", - "src": "8554:3:17" + "src": "6425:17:17" }, + "nativeSrc": "6425:20:17", "nodeType": "YulFunctionCall", - "src": "8554:18:17" + "src": "6425:20:17" }, "variableNames": [ { - "name": "tail", + "name": "x", + "nativeSrc": "6420:1:17", "nodeType": "YulIdentifier", - "src": "8546:4:17" + "src": "6420:1:17" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8593:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8604:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8589:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8589:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8612:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8618:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8608:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8608:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8582:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "8582:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "8582:47:17" - }, - { + "nativeSrc": "6454:25:17", "nodeType": "YulAssignment", - "src": "8638:139:17", + "src": "6454:25:17", "value": { "arguments": [ { - "name": "tail", + "name": "y", + "nativeSrc": "6477:1:17", "nodeType": "YulIdentifier", - "src": "8772:4:17" + "src": "6477:1:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint256", + "nativeSrc": "6459:17:17", "nodeType": "YulIdentifier", - "src": "8646:124:17" + "src": "6459:17:17" }, + "nativeSrc": "6459:20:17", "nodeType": "YulFunctionCall", - "src": "8646:131:17" + "src": "6459:20:17" }, "variableNames": [ { - "name": "tail", + "name": "y", + "nativeSrc": "6454:1:17", "nodeType": "YulIdentifier", - "src": "8638:4:17" + "src": "6454:1:17" } ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8516:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8531:4:17", - "type": "" - } - ], - "src": "8365:419:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8888:124:17", - "statements": [ + }, { + "nativeSrc": "6488:16:17", "nodeType": "YulAssignment", - "src": "8898:26:17", + "src": "6488:16:17", "value": { "arguments": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6499:1:17", "nodeType": "YulIdentifier", - "src": "8910:9:17" + "src": "6499:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8921:2:17", - "type": "", - "value": "32" + "name": "y", + "nativeSrc": "6502:1:17", + "nodeType": "YulIdentifier", + "src": "6502:1:17" } ], "functionName": { "name": "add", + "nativeSrc": "6495:3:17", "nodeType": "YulIdentifier", - "src": "8906:3:17" + "src": "6495:3:17" }, + "nativeSrc": "6495:9:17", "nodeType": "YulFunctionCall", - "src": "8906:18:17" + "src": "6495:9:17" }, "variableNames": [ { - "name": "tail", + "name": "sum", + "nativeSrc": "6488:3:17", "nodeType": "YulIdentifier", - "src": "8898:4:17" + "src": "6488:3:17" } ] }, { - "expression": { + "body": { + "nativeSrc": "6528:22:17", + "nodeType": "YulBlock", + "src": "6528:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "6530:16:17", + "nodeType": "YulIdentifier", + "src": "6530:16:17" + }, + "nativeSrc": "6530:18:17", + "nodeType": "YulFunctionCall", + "src": "6530:18:17" + }, + "nativeSrc": "6530:18:17", + "nodeType": "YulExpressionStatement", + "src": "6530:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value0", + "name": "x", + "nativeSrc": "6520:1:17", "nodeType": "YulIdentifier", - "src": "8978:6:17" + "src": "6520:1:17" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8991:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9002:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8987:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8987:17:17" + "name": "sum", + "nativeSrc": "6523:3:17", + "nodeType": "YulIdentifier", + "src": "6523:3:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "gt", + "nativeSrc": "6517:2:17", "nodeType": "YulIdentifier", - "src": "8934:43:17" + "src": "6517:2:17" }, + "nativeSrc": "6517:10:17", "nodeType": "YulFunctionCall", - "src": "8934:71:17" + "src": "6517:10:17" }, - "nodeType": "YulExpressionStatement", - "src": "8934:71:17" + "nativeSrc": "6514:36:17", + "nodeType": "YulIf", + "src": "6514:36:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "checked_add_t_uint256", + "nativeSrc": "6366:191:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6397:1:17", "nodeType": "YulTypedName", - "src": "8860:9:17", + "src": "6397:1:17", "type": "" }, { - "name": "value0", + "name": "y", + "nativeSrc": "6400:1:17", "nodeType": "YulTypedName", - "src": "8872:6:17", + "src": "6400:1:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "sum", + "nativeSrc": "6406:3:17", "nodeType": "YulTypedName", - "src": "8883:4:17", + "src": "6406:3:17", "type": "" } ], - "src": "8790:222:17" + "src": "6366:191:17" }, { "body": { + "nativeSrc": "6669:118:17", "nodeType": "YulBlock", - "src": "9112:120:17", + "src": "6669:118:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "9122:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9134:9:17" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6691:6:17", + "nodeType": "YulIdentifier", + "src": "6691:6:17" + }, + { + "kind": "number", + "nativeSrc": "6699:1:17", + "nodeType": "YulLiteral", + "src": "6699:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6687:3:17", + "nodeType": "YulIdentifier", + "src": "6687:3:17" + }, + "nativeSrc": "6687:14:17", + "nodeType": "YulFunctionCall", + "src": "6687:14:17" }, { - "kind": "number", + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nativeSrc": "6703:34:17", "nodeType": "YulLiteral", - "src": "9145:2:17", + "src": "6703:34:17", "type": "", - "value": "32" + "value": "ERC20: decreased allowance below" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "6680:6:17", "nodeType": "YulIdentifier", - "src": "9130:3:17" + "src": "6680:6:17" }, + "nativeSrc": "6680:58:17", "nodeType": "YulFunctionCall", - "src": "9130:18:17" + "src": "6680:58:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "9122:4:17" - } - ] + "nativeSrc": "6680:58:17", + "nodeType": "YulExpressionStatement", + "src": "6680:58:17" }, { "expression": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "9198:6:17" - }, { "arguments": [ { - "name": "headStart", + "name": "memPtr", + "nativeSrc": "6759:6:17", "nodeType": "YulIdentifier", - "src": "9211:9:17" + "src": "6759:6:17" }, { "kind": "number", + "nativeSrc": "6767:2:17", "nodeType": "YulLiteral", - "src": "9222:1:17", + "src": "6767:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "6755:3:17", "nodeType": "YulIdentifier", - "src": "9207:3:17" + "src": "6755:3:17" }, + "nativeSrc": "6755:15:17", "nodeType": "YulFunctionCall", - "src": "9207:17:17" + "src": "6755:15:17" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nativeSrc": "6772:7:17", + "nodeType": "YulLiteral", + "src": "6772:7:17", + "type": "", + "value": " zero" } ], "functionName": { - "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "name": "mstore", + "nativeSrc": "6748:6:17", "nodeType": "YulIdentifier", - "src": "9158:39:17" + "src": "6748:6:17" }, + "nativeSrc": "6748:32:17", "nodeType": "YulFunctionCall", - "src": "9158:67:17" + "src": "6748:32:17" }, + "nativeSrc": "6748:32:17", "nodeType": "YulExpressionStatement", - "src": "9158:67:17" + "src": "6748:32:17" } ] }, - "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nativeSrc": "6563:224:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "9084:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "9096:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "memPtr", + "nativeSrc": "6661:6:17", "nodeType": "YulTypedName", - "src": "9107:4:17", + "src": "6661:6:17", "type": "" } ], - "src": "9018:214:17" + "src": "6563:224:17" }, { "body": { + "nativeSrc": "6939:220:17", "nodeType": "YulBlock", - "src": "9297:40:17", + "src": "6939:220:17", "statements": [ { + "nativeSrc": "6949:74:17", "nodeType": "YulAssignment", - "src": "9308:22:17", + "src": "6949:74:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "7015:3:17", "nodeType": "YulIdentifier", - "src": "9324:5:17" + "src": "7015:3:17" + }, + { + "kind": "number", + "nativeSrc": "7020:2:17", + "nodeType": "YulLiteral", + "src": "7020:2:17", + "type": "", + "value": "37" } ], "functionName": { - "name": "mload", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6956:58:17", "nodeType": "YulIdentifier", - "src": "9318:5:17" + "src": "6956:58:17" }, + "nativeSrc": "6956:67:17", "nodeType": "YulFunctionCall", - "src": "9318:12:17" + "src": "6956:67:17" }, "variableNames": [ { - "name": "length", + "name": "pos", + "nativeSrc": "6949:3:17", "nodeType": "YulIdentifier", - "src": "9308:6:17" + "src": "6949:3:17" } ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9280:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9290:6:17", - "type": "" - } - ], - "src": "9238:99:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9439:73:17", - "statements": [ + }, { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "7121:3:17", "nodeType": "YulIdentifier", - "src": "9456:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "9461:6:17" + "src": "7121:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nativeSrc": "7032:88:17", "nodeType": "YulIdentifier", - "src": "9449:6:17" + "src": "7032:88:17" }, + "nativeSrc": "7032:93:17", "nodeType": "YulFunctionCall", - "src": "9449:19:17" + "src": "7032:93:17" }, + "nativeSrc": "7032:93:17", "nodeType": "YulExpressionStatement", - "src": "9449:19:17" + "src": "7032:93:17" }, { + "nativeSrc": "7134:19:17", "nodeType": "YulAssignment", - "src": "9477:29:17", + "src": "7134:19:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "7145:3:17", "nodeType": "YulIdentifier", - "src": "9496:3:17" + "src": "7145:3:17" }, { "kind": "number", + "nativeSrc": "7150:2:17", "nodeType": "YulLiteral", - "src": "9501:4:17", + "src": "7150:2:17", "type": "", - "value": "0x20" + "value": "64" } ], "functionName": { "name": "add", + "nativeSrc": "7141:3:17", "nodeType": "YulIdentifier", - "src": "9492:3:17" + "src": "7141:3:17" }, + "nativeSrc": "7141:12:17", "nodeType": "YulFunctionCall", - "src": "9492:14:17" + "src": "7141:12:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "7134:3:17", "nodeType": "YulIdentifier", - "src": "9477:11:17" + "src": "7134:3:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6793:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", + "nativeSrc": "6927:3:17", "nodeType": "YulTypedName", - "src": "9411:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9416:6:17", + "src": "6927:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "6935:3:17", "nodeType": "YulTypedName", - "src": "9427:11:17", + "src": "6935:3:17", "type": "" } ], - "src": "9343:169:17" + "src": "6793:366:17" }, { "body": { + "nativeSrc": "7336:248:17", "nodeType": "YulBlock", - "src": "9562:261:17", + "src": "7336:248:17", "statements": [ { + "nativeSrc": "7346:26:17", "nodeType": "YulAssignment", - "src": "9572:25:17", + "src": "7346:26:17", "value": { "arguments": [ { - "name": "x", + "name": "headStart", + "nativeSrc": "7358:9:17", "nodeType": "YulIdentifier", - "src": "9595:1:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "9577:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "9577:20:17" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9572:1:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9606:25:17", - "value": { - "arguments": [ + "src": "7358:9:17" + }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9629:1:17" + "kind": "number", + "nativeSrc": "7369:2:17", + "nodeType": "YulLiteral", + "src": "7369:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "add", + "nativeSrc": "7354:3:17", "nodeType": "YulIdentifier", - "src": "9611:17:17" + "src": "7354:3:17" }, + "nativeSrc": "7354:18:17", "nodeType": "YulFunctionCall", - "src": "9611:20:17" + "src": "7354:18:17" }, "variableNames": [ { - "name": "y", + "name": "tail", + "nativeSrc": "7346:4:17", "nodeType": "YulIdentifier", - "src": "9606:1:17" + "src": "7346:4:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "9769:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "9771:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "9771:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "9771:18:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9690:1:17" - }, { "arguments": [ + { + "name": "headStart", + "nativeSrc": "7393:9:17", + "nodeType": "YulIdentifier", + "src": "7393:9:17" + }, { "kind": "number", + "nativeSrc": "7404:1:17", "nodeType": "YulLiteral", - "src": "9697:66:17", + "src": "7404:1:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9765:1:17" + "value": "0" } ], "functionName": { - "name": "sub", + "name": "add", + "nativeSrc": "7389:3:17", "nodeType": "YulIdentifier", - "src": "9693:3:17" + "src": "7389:3:17" }, + "nativeSrc": "7389:17:17", "nodeType": "YulFunctionCall", - "src": "9693:74:17" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9687:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "9687:81:17" - }, - "nodeType": "YulIf", - "src": "9684:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "9801:16:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9812:1:17" + "src": "7389:17:17" }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9815:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9808:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "9808:9:17" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "9801:3:17" - } - ] - } - ] - }, - "name": "checked_add_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "9549:1:17", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "9552:1:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "9558:3:17", - "type": "" - } - ], - "src": "9518:305:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9874:51:17", - "statements": [ + "arguments": [ + { + "name": "tail", + "nativeSrc": "7412:4:17", + "nodeType": "YulIdentifier", + "src": "7412:4:17" + }, + { + "name": "headStart", + "nativeSrc": "7418:9:17", + "nodeType": "YulIdentifier", + "src": "7418:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7408:3:17", + "nodeType": "YulIdentifier", + "src": "7408:3:17" + }, + "nativeSrc": "7408:20:17", + "nodeType": "YulFunctionCall", + "src": "7408:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7382:6:17", + "nodeType": "YulIdentifier", + "src": "7382:6:17" + }, + "nativeSrc": "7382:47:17", + "nodeType": "YulFunctionCall", + "src": "7382:47:17" + }, + "nativeSrc": "7382:47:17", + "nodeType": "YulExpressionStatement", + "src": "7382:47:17" + }, { + "nativeSrc": "7438:139:17", "nodeType": "YulAssignment", - "src": "9884:35:17", + "src": "7438:139:17", "value": { "arguments": [ { - "name": "value", + "name": "tail", + "nativeSrc": "7572:4:17", "nodeType": "YulIdentifier", - "src": "9913:5:17" + "src": "7572:4:17" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7446:124:17", "nodeType": "YulIdentifier", - "src": "9895:17:17" + "src": "7446:124:17" }, + "nativeSrc": "7446:131:17", "nodeType": "YulFunctionCall", - "src": "9895:24:17" + "src": "7446:131:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "7438:4:17", "nodeType": "YulIdentifier", - "src": "9884:7:17" + "src": "7438:4:17" } ] } ] }, - "name": "cleanup_t_address", + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7165:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "7316:9:17", "nodeType": "YulTypedName", - "src": "9856:5:17", + "src": "7316:9:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "7331:4:17", "nodeType": "YulTypedName", - "src": "9866:7:17", + "src": "7331:4:17", "type": "" } ], - "src": "9829:96:17" + "src": "7165:419:17" }, { "body": { + "nativeSrc": "7696:117:17", "nodeType": "YulBlock", - "src": "9973:48:17", + "src": "7696:117:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "9983:32:17", - "value": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "7718:6:17", "nodeType": "YulIdentifier", - "src": "10008:5:17" + "src": "7718:6:17" + }, + { + "kind": "number", + "nativeSrc": "7726:1:17", + "nodeType": "YulLiteral", + "src": "7726:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "iszero", + "name": "add", + "nativeSrc": "7714:3:17", "nodeType": "YulIdentifier", - "src": "10001:6:17" + "src": "7714:3:17" }, + "nativeSrc": "7714:14:17", "nodeType": "YulFunctionCall", - "src": "10001:13:17" + "src": "7714:14:17" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nativeSrc": "7730:34:17", + "nodeType": "YulLiteral", + "src": "7730:34:17", + "type": "", + "value": "ERC20: approve from the zero add" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "7707:6:17", "nodeType": "YulIdentifier", - "src": "9994:6:17" + "src": "7707:6:17" }, + "nativeSrc": "7707:58:17", "nodeType": "YulFunctionCall", - "src": "9994:21:17" + "src": "7707:58:17" }, - "variableNames": [ - { - "name": "cleaned", + "nativeSrc": "7707:58:17", + "nodeType": "YulExpressionStatement", + "src": "7707:58:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7786:6:17", + "nodeType": "YulIdentifier", + "src": "7786:6:17" + }, + { + "kind": "number", + "nativeSrc": "7794:2:17", + "nodeType": "YulLiteral", + "src": "7794:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7782:3:17", + "nodeType": "YulIdentifier", + "src": "7782:3:17" + }, + "nativeSrc": "7782:15:17", + "nodeType": "YulFunctionCall", + "src": "7782:15:17" + }, + { + "hexValue": "72657373", + "kind": "string", + "nativeSrc": "7799:6:17", + "nodeType": "YulLiteral", + "src": "7799:6:17", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7775:6:17", "nodeType": "YulIdentifier", - "src": "9983:7:17" - } - ] + "src": "7775:6:17" + }, + "nativeSrc": "7775:31:17", + "nodeType": "YulFunctionCall", + "src": "7775:31:17" + }, + "nativeSrc": "7775:31:17", + "nodeType": "YulExpressionStatement", + "src": "7775:31:17" } ] }, - "name": "cleanup_t_bool", + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nativeSrc": "7590:223:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "9955:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", + "name": "memPtr", + "nativeSrc": "7688:6:17", "nodeType": "YulTypedName", - "src": "9965:7:17", + "src": "7688:6:17", "type": "" } ], - "src": "9931:90:17" + "src": "7590:223:17" }, { "body": { + "nativeSrc": "7965:220:17", "nodeType": "YulBlock", - "src": "10072:81:17", + "src": "7965:220:17", "statements": [ { + "nativeSrc": "7975:74:17", "nodeType": "YulAssignment", - "src": "10082:65:17", + "src": "7975:74:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "8041:3:17", "nodeType": "YulIdentifier", - "src": "10097:5:17" + "src": "8041:3:17" }, { "kind": "number", + "nativeSrc": "8046:2:17", "nodeType": "YulLiteral", - "src": "10104:42:17", + "src": "8046:2:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "value": "36" } ], "functionName": { - "name": "and", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "7982:58:17", "nodeType": "YulIdentifier", - "src": "10093:3:17" + "src": "7982:58:17" }, + "nativeSrc": "7982:67:17", "nodeType": "YulFunctionCall", - "src": "10093:54:17" + "src": "7982:67:17" }, "variableNames": [ { - "name": "cleaned", + "name": "pos", + "nativeSrc": "7975:3:17", "nodeType": "YulIdentifier", - "src": "10082:7:17" + "src": "7975:3:17" } ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "10054:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "10064:7:17", - "type": "" - } - ], - "src": "10027:126:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10204:32:17", - "statements": [ + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8147:3:17", + "nodeType": "YulIdentifier", + "src": "8147:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nativeSrc": "8058:88:17", + "nodeType": "YulIdentifier", + "src": "8058:88:17" + }, + "nativeSrc": "8058:93:17", + "nodeType": "YulFunctionCall", + "src": "8058:93:17" + }, + "nativeSrc": "8058:93:17", + "nodeType": "YulExpressionStatement", + "src": "8058:93:17" + }, { + "nativeSrc": "8160:19:17", "nodeType": "YulAssignment", - "src": "10214:16:17", + "src": "8160:19:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10225:5:17" + "arguments": [ + { + "name": "pos", + "nativeSrc": "8171:3:17", + "nodeType": "YulIdentifier", + "src": "8171:3:17" + }, + { + "kind": "number", + "nativeSrc": "8176:2:17", + "nodeType": "YulLiteral", + "src": "8176:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8167:3:17", + "nodeType": "YulIdentifier", + "src": "8167:3:17" + }, + "nativeSrc": "8167:12:17", + "nodeType": "YulFunctionCall", + "src": "8167:12:17" }, "variableNames": [ { - "name": "cleaned", + "name": "end", + "nativeSrc": "8160:3:17", "nodeType": "YulIdentifier", - "src": "10214:7:17" + "src": "8160:3:17" } ] } ] }, - "name": "cleanup_t_uint256", + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7819:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "7953:3:17", "nodeType": "YulTypedName", - "src": "10186:5:17", + "src": "7953:3:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "end", + "nativeSrc": "7961:3:17", "nodeType": "YulTypedName", - "src": "10196:7:17", + "src": "7961:3:17", "type": "" } ], - "src": "10159:77:17" + "src": "7819:366:17" }, { "body": { + "nativeSrc": "8362:248:17", "nodeType": "YulBlock", - "src": "10285:43:17", + "src": "8362:248:17", "statements": [ { + "nativeSrc": "8372:26:17", "nodeType": "YulAssignment", - "src": "10295:27:17", + "src": "8372:26:17", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "8384:9:17", "nodeType": "YulIdentifier", - "src": "10310:5:17" + "src": "8384:9:17" }, { "kind": "number", + "nativeSrc": "8395:2:17", "nodeType": "YulLiteral", - "src": "10317:4:17", + "src": "8395:2:17", "type": "", - "value": "0xff" + "value": "32" } ], "functionName": { - "name": "and", + "name": "add", + "nativeSrc": "8380:3:17", + "nodeType": "YulIdentifier", + "src": "8380:3:17" + }, + "nativeSrc": "8380:18:17", + "nodeType": "YulFunctionCall", + "src": "8380:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8372:4:17", + "nodeType": "YulIdentifier", + "src": "8372:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8419:9:17", + "nodeType": "YulIdentifier", + "src": "8419:9:17" + }, + { + "kind": "number", + "nativeSrc": "8430:1:17", + "nodeType": "YulLiteral", + "src": "8430:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8415:3:17", + "nodeType": "YulIdentifier", + "src": "8415:3:17" + }, + "nativeSrc": "8415:17:17", + "nodeType": "YulFunctionCall", + "src": "8415:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8438:4:17", + "nodeType": "YulIdentifier", + "src": "8438:4:17" + }, + { + "name": "headStart", + "nativeSrc": "8444:9:17", + "nodeType": "YulIdentifier", + "src": "8444:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8434:3:17", + "nodeType": "YulIdentifier", + "src": "8434:3:17" + }, + "nativeSrc": "8434:20:17", + "nodeType": "YulFunctionCall", + "src": "8434:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8408:6:17", + "nodeType": "YulIdentifier", + "src": "8408:6:17" + }, + "nativeSrc": "8408:47:17", + "nodeType": "YulFunctionCall", + "src": "8408:47:17" + }, + "nativeSrc": "8408:47:17", + "nodeType": "YulExpressionStatement", + "src": "8408:47:17" + }, + { + "nativeSrc": "8464:139:17", + "nodeType": "YulAssignment", + "src": "8464:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8598:4:17", + "nodeType": "YulIdentifier", + "src": "8598:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8472:124:17", "nodeType": "YulIdentifier", - "src": "10306:3:17" + "src": "8472:124:17" }, + "nativeSrc": "8472:131:17", "nodeType": "YulFunctionCall", - "src": "10306:16:17" + "src": "8472:131:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "8464:4:17", "nodeType": "YulIdentifier", - "src": "10295:7:17" + "src": "8464:4:17" } ] } ] }, - "name": "cleanup_t_uint8", + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8191:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "8342:9:17", "nodeType": "YulTypedName", - "src": "10267:5:17", + "src": "8342:9:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "8357:4:17", "nodeType": "YulTypedName", - "src": "10277:7:17", + "src": "8357:4:17", "type": "" } ], - "src": "10242:86:17" + "src": "8191:419:17" }, { "body": { + "nativeSrc": "8722:115:17", "nodeType": "YulBlock", - "src": "10383:258:17", + "src": "8722:115:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "10393:10:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10402:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "10397:1:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10462:63:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10487:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10492:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10483:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10483:11:17" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10506:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10511:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10502:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10502:11:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10496:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "10496:18:17" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8744:6:17", "nodeType": "YulIdentifier", - "src": "10476:6:17" + "src": "8744:6:17" }, - "nodeType": "YulFunctionCall", - "src": "10476:39:17" + { + "kind": "number", + "nativeSrc": "8752:1:17", + "nodeType": "YulLiteral", + "src": "8752:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8740:3:17", + "nodeType": "YulIdentifier", + "src": "8740:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "10476:39:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10423:1:17" + "nativeSrc": "8740:14:17", + "nodeType": "YulFunctionCall", + "src": "8740:14:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10426:6:17" + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nativeSrc": "8756:34:17", + "nodeType": "YulLiteral", + "src": "8756:34:17", + "type": "", + "value": "ERC20: approve to the zero addre" } ], "functionName": { - "name": "lt", + "name": "mstore", + "nativeSrc": "8733:6:17", "nodeType": "YulIdentifier", - "src": "10420:2:17" + "src": "8733:6:17" }, + "nativeSrc": "8733:58:17", "nodeType": "YulFunctionCall", - "src": "10420:13:17" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "10434:19:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10436:15:17", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10445:1:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10448:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10441:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10441:10:17" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10436:1:17" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "10416:3:17", - "statements": [] + "src": "8733:58:17" }, - "src": "10412:113:17" + "nativeSrc": "8733:58:17", + "nodeType": "YulExpressionStatement", + "src": "8733:58:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "10559:76:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10609:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10614:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10605:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10605:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10623:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8812:6:17", "nodeType": "YulIdentifier", - "src": "10598:6:17" + "src": "8812:6:17" }, - "nodeType": "YulFunctionCall", - "src": "10598:27:17" + { + "kind": "number", + "nativeSrc": "8820:2:17", + "nodeType": "YulLiteral", + "src": "8820:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8808:3:17", + "nodeType": "YulIdentifier", + "src": "8808:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "10598:27:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10540:1:17" + "nativeSrc": "8808:15:17", + "nodeType": "YulFunctionCall", + "src": "8808:15:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10543:6:17" + "hexValue": "7373", + "kind": "string", + "nativeSrc": "8825:4:17", + "nodeType": "YulLiteral", + "src": "8825:4:17", + "type": "", + "value": "ss" } ], "functionName": { - "name": "gt", + "name": "mstore", + "nativeSrc": "8801:6:17", "nodeType": "YulIdentifier", - "src": "10537:2:17" + "src": "8801:6:17" }, + "nativeSrc": "8801:29:17", "nodeType": "YulFunctionCall", - "src": "10537:13:17" + "src": "8801:29:17" }, - "nodeType": "YulIf", - "src": "10534:2:17" + "nativeSrc": "8801:29:17", + "nodeType": "YulExpressionStatement", + "src": "8801:29:17" } ] }, - "name": "copy_memory_to_memory", + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nativeSrc": "8616:221:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nodeType": "YulTypedName", - "src": "10365:3:17", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "10370:3:17", - "type": "" - }, - { - "name": "length", + "name": "memPtr", + "nativeSrc": "8714:6:17", "nodeType": "YulTypedName", - "src": "10375:6:17", + "src": "8714:6:17", "type": "" } ], - "src": "10334:307:17" + "src": "8616:221:17" }, { "body": { + "nativeSrc": "8989:220:17", "nodeType": "YulBlock", - "src": "10698:269:17", + "src": "8989:220:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "10708:22:17", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "10722:4:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10728:1:17", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "10718:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10718:12:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10708:6:17" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10739:38:17", + "nativeSrc": "8999:74:17", + "nodeType": "YulAssignment", + "src": "8999:74:17", "value": { "arguments": [ { - "name": "data", + "name": "pos", + "nativeSrc": "9065:3:17", "nodeType": "YulIdentifier", - "src": "10769:4:17" + "src": "9065:3:17" }, { "kind": "number", + "nativeSrc": "9070:2:17", "nodeType": "YulLiteral", - "src": "10775:1:17", + "src": "9070:2:17", "type": "", - "value": "1" + "value": "34" } ], "functionName": { - "name": "and", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9006:58:17", "nodeType": "YulIdentifier", - "src": "10765:3:17" + "src": "9006:58:17" }, + "nativeSrc": "9006:67:17", "nodeType": "YulFunctionCall", - "src": "10765:12:17" + "src": "9006:67:17" }, - "variables": [ + "variableNames": [ { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "10743:18:17", - "type": "" + "name": "pos", + "nativeSrc": "8999:3:17", + "nodeType": "YulIdentifier", + "src": "8999:3:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "10816:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10830:27:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10844:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10852:4:17", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10840:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10840:17:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10830:6:17" - } - ] - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "pos", + "nativeSrc": "9171:3:17", "nodeType": "YulIdentifier", - "src": "10796:18:17" + "src": "9171:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nativeSrc": "9082:88:17", "nodeType": "YulIdentifier", - "src": "10789:6:17" + "src": "9082:88:17" }, + "nativeSrc": "9082:93:17", "nodeType": "YulFunctionCall", - "src": "10789:26:17" + "src": "9082:93:17" }, - "nodeType": "YulIf", - "src": "10786:2:17" + "nativeSrc": "9082:93:17", + "nodeType": "YulExpressionStatement", + "src": "9082:93:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "10919:42:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "10933:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "10933:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "10933:18:17" - } - ] - }, - "condition": { + "nativeSrc": "9184:19:17", + "nodeType": "YulAssignment", + "src": "9184:19:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "pos", + "nativeSrc": "9195:3:17", "nodeType": "YulIdentifier", - "src": "10883:18:17" + "src": "9195:3:17" }, { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10906:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10914:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10903:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "10903:14:17" + "kind": "number", + "nativeSrc": "9200:2:17", + "nodeType": "YulLiteral", + "src": "9200:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "9191:3:17", "nodeType": "YulIdentifier", - "src": "10880:2:17" + "src": "9191:3:17" }, + "nativeSrc": "9191:12:17", "nodeType": "YulFunctionCall", - "src": "10880:38:17" + "src": "9191:12:17" }, - "nodeType": "YulIf", - "src": "10877:2:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "9184:3:17", + "nodeType": "YulIdentifier", + "src": "9184:3:17" + } + ] } ] }, - "name": "extract_byte_array_length", + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8843:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "pos", + "nativeSrc": "8977:3:17", "nodeType": "YulTypedName", - "src": "10682:4:17", + "src": "8977:3:17", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "end", + "nativeSrc": "8985:3:17", "nodeType": "YulTypedName", - "src": "10691:6:17", + "src": "8985:3:17", "type": "" } ], - "src": "10647:320:17" + "src": "8843:366:17" }, { "body": { + "nativeSrc": "9386:248:17", "nodeType": "YulBlock", - "src": "11001:152:17", + "src": "9386:248:17", "statements": [ { - "expression": { + "nativeSrc": "9396:26:17", + "nodeType": "YulAssignment", + "src": "9396:26:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11018:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "9408:9:17", + "nodeType": "YulIdentifier", + "src": "9408:9:17" }, { "kind": "number", + "nativeSrc": "9419:2:17", "nodeType": "YulLiteral", - "src": "11021:77:17", + "src": "9419:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "9404:3:17", "nodeType": "YulIdentifier", - "src": "11011:6:17" + "src": "9404:3:17" }, + "nativeSrc": "9404:18:17", "nodeType": "YulFunctionCall", - "src": "11011:88:17" + "src": "9404:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "11011:88:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9396:4:17", + "nodeType": "YulIdentifier", + "src": "9396:4:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11115:1:17", - "type": "", - "value": "4" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9443:9:17", + "nodeType": "YulIdentifier", + "src": "9443:9:17" + }, + { + "kind": "number", + "nativeSrc": "9454:1:17", + "nodeType": "YulLiteral", + "src": "9454:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9439:3:17", + "nodeType": "YulIdentifier", + "src": "9439:3:17" + }, + "nativeSrc": "9439:17:17", + "nodeType": "YulFunctionCall", + "src": "9439:17:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11118:4:17", - "type": "", - "value": "0x11" + "arguments": [ + { + "name": "tail", + "nativeSrc": "9462:4:17", + "nodeType": "YulIdentifier", + "src": "9462:4:17" + }, + { + "name": "headStart", + "nativeSrc": "9468:9:17", + "nodeType": "YulIdentifier", + "src": "9468:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9458:3:17", + "nodeType": "YulIdentifier", + "src": "9458:3:17" + }, + "nativeSrc": "9458:20:17", + "nodeType": "YulFunctionCall", + "src": "9458:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "9432:6:17", "nodeType": "YulIdentifier", - "src": "11108:6:17" + "src": "9432:6:17" }, + "nativeSrc": "9432:47:17", "nodeType": "YulFunctionCall", - "src": "11108:15:17" + "src": "9432:47:17" }, + "nativeSrc": "9432:47:17", "nodeType": "YulExpressionStatement", - "src": "11108:15:17" + "src": "9432:47:17" }, + { + "nativeSrc": "9488:139:17", + "nodeType": "YulAssignment", + "src": "9488:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9622:4:17", + "nodeType": "YulIdentifier", + "src": "9622:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9496:124:17", + "nodeType": "YulIdentifier", + "src": "9496:124:17" + }, + "nativeSrc": "9496:131:17", + "nodeType": "YulFunctionCall", + "src": "9496:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9488:4:17", + "nodeType": "YulIdentifier", + "src": "9488:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9215:419:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9366:9:17", + "nodeType": "YulTypedName", + "src": "9366:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9381:4:17", + "nodeType": "YulTypedName", + "src": "9381:4:17", + "type": "" + } + ], + "src": "9215:419:17" + }, + { + "body": { + "nativeSrc": "9746:73:17", + "nodeType": "YulBlock", + "src": "9746:73:17", + "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11139:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9768:6:17", + "nodeType": "YulIdentifier", + "src": "9768:6:17" + }, + { + "kind": "number", + "nativeSrc": "9776:1:17", + "nodeType": "YulLiteral", + "src": "9776:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9764:3:17", + "nodeType": "YulIdentifier", + "src": "9764:3:17" + }, + "nativeSrc": "9764:14:17", + "nodeType": "YulFunctionCall", + "src": "9764:14:17" }, { - "kind": "number", + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nativeSrc": "9780:31:17", "nodeType": "YulLiteral", - "src": "11142:4:17", + "src": "9780:31:17", "type": "", - "value": "0x24" + "value": "ERC20: insufficient allowance" } ], "functionName": { - "name": "revert", + "name": "mstore", + "nativeSrc": "9757:6:17", "nodeType": "YulIdentifier", - "src": "11132:6:17" + "src": "9757:6:17" }, + "nativeSrc": "9757:55:17", "nodeType": "YulFunctionCall", - "src": "11132:15:17" + "src": "9757:55:17" }, + "nativeSrc": "9757:55:17", "nodeType": "YulExpressionStatement", - "src": "11132:15:17" + "src": "9757:55:17" } ] }, - "name": "panic_error_0x11", + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nativeSrc": "9640:179:17", "nodeType": "YulFunctionDefinition", - "src": "10973:180:17" + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "9738:6:17", + "nodeType": "YulTypedName", + "src": "9738:6:17", + "type": "" + } + ], + "src": "9640:179:17" }, { "body": { + "nativeSrc": "9971:220:17", "nodeType": "YulBlock", - "src": "11187:152:17", + "src": "9971:220:17", "statements": [ { - "expression": { + "nativeSrc": "9981:74:17", + "nodeType": "YulAssignment", + "src": "9981:74:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11204:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "10047:3:17", + "nodeType": "YulIdentifier", + "src": "10047:3:17" }, { "kind": "number", + "nativeSrc": "10052:2:17", "nodeType": "YulLiteral", - "src": "11207:77:17", + "src": "10052:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "29" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9988:58:17", "nodeType": "YulIdentifier", - "src": "11197:6:17" + "src": "9988:58:17" }, + "nativeSrc": "9988:67:17", "nodeType": "YulFunctionCall", - "src": "11197:88:17" + "src": "9988:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "11197:88:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9981:3:17", + "nodeType": "YulIdentifier", + "src": "9981:3:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11301:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11304:4:17", - "type": "", - "value": "0x22" + "name": "pos", + "nativeSrc": "10153:3:17", + "nodeType": "YulIdentifier", + "src": "10153:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nativeSrc": "10064:88:17", "nodeType": "YulIdentifier", - "src": "11294:6:17" + "src": "10064:88:17" }, + "nativeSrc": "10064:93:17", "nodeType": "YulFunctionCall", - "src": "11294:15:17" + "src": "10064:93:17" }, + "nativeSrc": "10064:93:17", "nodeType": "YulExpressionStatement", - "src": "11294:15:17" + "src": "10064:93:17" }, { - "expression": { + "nativeSrc": "10166:19:17", + "nodeType": "YulAssignment", + "src": "10166:19:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11325:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "10177:3:17", + "nodeType": "YulIdentifier", + "src": "10177:3:17" }, { "kind": "number", + "nativeSrc": "10182:2:17", "nodeType": "YulLiteral", - "src": "11328:4:17", + "src": "10182:2:17", "type": "", - "value": "0x24" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "add", + "nativeSrc": "10173:3:17", "nodeType": "YulIdentifier", - "src": "11318:6:17" + "src": "10173:3:17" }, + "nativeSrc": "10173:12:17", "nodeType": "YulFunctionCall", - "src": "11318:15:17" + "src": "10173:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "11318:15:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "10166:3:17", + "nodeType": "YulIdentifier", + "src": "10166:3:17" + } + ] } ] }, - "name": "panic_error_0x22", + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9825:366:17", "nodeType": "YulFunctionDefinition", - "src": "11159:180:17" + "parameters": [ + { + "name": "pos", + "nativeSrc": "9959:3:17", + "nodeType": "YulTypedName", + "src": "9959:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "9967:3:17", + "nodeType": "YulTypedName", + "src": "9967:3:17", + "type": "" + } + ], + "src": "9825:366:17" }, { "body": { + "nativeSrc": "10368:248:17", "nodeType": "YulBlock", - "src": "11393:54:17", + "src": "10368:248:17", "statements": [ { + "nativeSrc": "10378:26:17", "nodeType": "YulAssignment", - "src": "11403:38:17", + "src": "10378:26:17", "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10390:9:17", + "nodeType": "YulIdentifier", + "src": "10390:9:17" + }, + { + "kind": "number", + "nativeSrc": "10401:2:17", + "nodeType": "YulLiteral", + "src": "10401:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10386:3:17", + "nodeType": "YulIdentifier", + "src": "10386:3:17" + }, + "nativeSrc": "10386:18:17", + "nodeType": "YulFunctionCall", + "src": "10386:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10378:4:17", + "nodeType": "YulIdentifier", + "src": "10378:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "10425:9:17", "nodeType": "YulIdentifier", - "src": "11421:5:17" + "src": "10425:9:17" }, { "kind": "number", + "nativeSrc": "10436:1:17", "nodeType": "YulLiteral", - "src": "11428:2:17", + "src": "10436:1:17", "type": "", - "value": "31" + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "10421:3:17", "nodeType": "YulIdentifier", - "src": "11417:3:17" + "src": "10421:3:17" }, + "nativeSrc": "10421:17:17", "nodeType": "YulFunctionCall", - "src": "11417:14:17" + "src": "10421:17:17" }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11437:2:17", - "type": "", - "value": "31" + "name": "tail", + "nativeSrc": "10444:4:17", + "nodeType": "YulIdentifier", + "src": "10444:4:17" + }, + { + "name": "headStart", + "nativeSrc": "10450:9:17", + "nodeType": "YulIdentifier", + "src": "10450:9:17" } ], "functionName": { - "name": "not", + "name": "sub", + "nativeSrc": "10440:3:17", "nodeType": "YulIdentifier", - "src": "11433:3:17" + "src": "10440:3:17" }, + "nativeSrc": "10440:20:17", "nodeType": "YulFunctionCall", - "src": "11433:7:17" + "src": "10440:20:17" } ], "functionName": { - "name": "and", + "name": "mstore", + "nativeSrc": "10414:6:17", "nodeType": "YulIdentifier", - "src": "11413:3:17" + "src": "10414:6:17" + }, + "nativeSrc": "10414:47:17", + "nodeType": "YulFunctionCall", + "src": "10414:47:17" + }, + "nativeSrc": "10414:47:17", + "nodeType": "YulExpressionStatement", + "src": "10414:47:17" + }, + { + "nativeSrc": "10470:139:17", + "nodeType": "YulAssignment", + "src": "10470:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10604:4:17", + "nodeType": "YulIdentifier", + "src": "10604:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10478:124:17", + "nodeType": "YulIdentifier", + "src": "10478:124:17" }, + "nativeSrc": "10478:131:17", "nodeType": "YulFunctionCall", - "src": "11413:28:17" + "src": "10478:131:17" }, "variableNames": [ { - "name": "result", + "name": "tail", + "nativeSrc": "10470:4:17", "nodeType": "YulIdentifier", - "src": "11403:6:17" + "src": "10470:4:17" } ] } ] }, - "name": "round_up_to_mul_of_32", + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10197:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "10348:9:17", "nodeType": "YulTypedName", - "src": "11376:5:17", + "src": "10348:9:17", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "tail", + "nativeSrc": "10363:4:17", "nodeType": "YulTypedName", - "src": "11386:6:17", + "src": "10363:4:17", "type": "" } ], - "src": "11345:102:17" + "src": "10197:419:17" }, { "body": { + "nativeSrc": "10728:118:17", "nodeType": "YulBlock", - "src": "11559:116:17", + "src": "10728:118:17", "statements": [ { "expression": { @@ -7706,43 +12491,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "10750:6:17", "nodeType": "YulIdentifier", - "src": "11581:6:17" + "src": "10750:6:17" }, { "kind": "number", + "nativeSrc": "10758:1:17", "nodeType": "YulLiteral", - "src": "11589:1:17", + "src": "10758:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "10746:3:17", "nodeType": "YulIdentifier", - "src": "11577:3:17" + "src": "10746:3:17" }, + "nativeSrc": "10746:14:17", "nodeType": "YulFunctionCall", - "src": "11577:14:17" + "src": "10746:14:17" }, { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", "kind": "string", + "nativeSrc": "10762:34:17", "nodeType": "YulLiteral", - "src": "11593:34:17", + "src": "10762:34:17", "type": "", - "value": "ERC20: transfer to the zero addr" + "value": "ERC20: transfer from the zero ad" } ], "functionName": { "name": "mstore", + "nativeSrc": "10739:6:17", "nodeType": "YulIdentifier", - "src": "11570:6:17" + "src": "10739:6:17" }, + "nativeSrc": "10739:58:17", "nodeType": "YulFunctionCall", - "src": "11570:58:17" + "src": "10739:58:17" }, + "nativeSrc": "10739:58:17", "nodeType": "YulExpressionStatement", - "src": "11570:58:17" + "src": "10739:58:17" }, { "expression": { @@ -7751,235 +12545,382 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "10818:6:17", "nodeType": "YulIdentifier", - "src": "11649:6:17" + "src": "10818:6:17" }, { "kind": "number", + "nativeSrc": "10826:2:17", "nodeType": "YulLiteral", - "src": "11657:2:17", + "src": "10826:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "10814:3:17", "nodeType": "YulIdentifier", - "src": "11645:3:17" + "src": "10814:3:17" }, + "nativeSrc": "10814:15:17", "nodeType": "YulFunctionCall", - "src": "11645:15:17" + "src": "10814:15:17" }, { + "hexValue": "6472657373", "kind": "string", + "nativeSrc": "10831:7:17", "nodeType": "YulLiteral", - "src": "11662:5:17", + "src": "10831:7:17", "type": "", - "value": "ess" + "value": "dress" } ], "functionName": { "name": "mstore", + "nativeSrc": "10807:6:17", "nodeType": "YulIdentifier", - "src": "11638:6:17" + "src": "10807:6:17" }, + "nativeSrc": "10807:32:17", "nodeType": "YulFunctionCall", - "src": "11638:30:17" + "src": "10807:32:17" }, + "nativeSrc": "10807:32:17", "nodeType": "YulExpressionStatement", - "src": "11638:30:17" + "src": "10807:32:17" } ] }, - "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nativeSrc": "10622:224:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "10720:6:17", "nodeType": "YulTypedName", - "src": "11551:6:17", + "src": "10720:6:17", "type": "" } ], - "src": "11453:222:17" + "src": "10622:224:17" }, { "body": { + "nativeSrc": "10998:220:17", "nodeType": "YulBlock", - "src": "11787:115:17", + "src": "10998:220:17", "statements": [ { - "expression": { + "nativeSrc": "11008:74:17", + "nodeType": "YulAssignment", + "src": "11008:74:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "11809:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11817:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11805:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "11805:14:17" + "name": "pos", + "nativeSrc": "11074:3:17", + "nodeType": "YulIdentifier", + "src": "11074:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "11079:2:17", "nodeType": "YulLiteral", - "src": "11821:34:17", + "src": "11079:2:17", "type": "", - "value": "ERC20: approve to the zero addre" + "value": "37" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "11015:58:17", "nodeType": "YulIdentifier", - "src": "11798:6:17" + "src": "11015:58:17" }, + "nativeSrc": "11015:67:17", "nodeType": "YulFunctionCall", - "src": "11798:58:17" + "src": "11015:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "11798:58:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11008:3:17", + "nodeType": "YulIdentifier", + "src": "11008:3:17" + } + ] }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "11877:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11885:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11873:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "11873:15:17" + "name": "pos", + "nativeSrc": "11180:3:17", + "nodeType": "YulIdentifier", + "src": "11180:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nativeSrc": "11091:88:17", + "nodeType": "YulIdentifier", + "src": "11091:88:17" + }, + "nativeSrc": "11091:93:17", + "nodeType": "YulFunctionCall", + "src": "11091:93:17" + }, + "nativeSrc": "11091:93:17", + "nodeType": "YulExpressionStatement", + "src": "11091:93:17" + }, + { + "nativeSrc": "11193:19:17", + "nodeType": "YulAssignment", + "src": "11193:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11204:3:17", + "nodeType": "YulIdentifier", + "src": "11204:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "11209:2:17", "nodeType": "YulLiteral", - "src": "11890:4:17", + "src": "11209:2:17", "type": "", - "value": "ss" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "11200:3:17", "nodeType": "YulIdentifier", - "src": "11866:6:17" + "src": "11200:3:17" }, + "nativeSrc": "11200:12:17", "nodeType": "YulFunctionCall", - "src": "11866:29:17" + "src": "11200:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "11866:29:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "11193:3:17", + "nodeType": "YulIdentifier", + "src": "11193:3:17" + } + ] } ] }, - "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10852:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "10986:3:17", "nodeType": "YulTypedName", - "src": "11779:6:17", + "src": "10986:3:17", "type": "" } ], - "src": "11681:221:17" + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10994:3:17", + "nodeType": "YulTypedName", + "src": "10994:3:17", + "type": "" + } + ], + "src": "10852:366:17" }, { "body": { + "nativeSrc": "11395:248:17", "nodeType": "YulBlock", - "src": "12014:73:17", + "src": "11395:248:17", "statements": [ + { + "nativeSrc": "11405:26:17", + "nodeType": "YulAssignment", + "src": "11405:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11417:9:17", + "nodeType": "YulIdentifier", + "src": "11417:9:17" + }, + { + "kind": "number", + "nativeSrc": "11428:2:17", + "nodeType": "YulLiteral", + "src": "11428:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11413:3:17", + "nodeType": "YulIdentifier", + "src": "11413:3:17" + }, + "nativeSrc": "11413:18:17", + "nodeType": "YulFunctionCall", + "src": "11413:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11405:4:17", + "nodeType": "YulIdentifier", + "src": "11405:4:17" + } + ] + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "11452:9:17", "nodeType": "YulIdentifier", - "src": "12036:6:17" + "src": "11452:9:17" }, { "kind": "number", + "nativeSrc": "11463:1:17", "nodeType": "YulLiteral", - "src": "12044:1:17", + "src": "11463:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "11448:3:17", "nodeType": "YulIdentifier", - "src": "12032:3:17" + "src": "11448:3:17" }, + "nativeSrc": "11448:17:17", "nodeType": "YulFunctionCall", - "src": "12032:14:17" + "src": "11448:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "12048:31:17", - "type": "", - "value": "ERC20: insufficient allowance" + "arguments": [ + { + "name": "tail", + "nativeSrc": "11471:4:17", + "nodeType": "YulIdentifier", + "src": "11471:4:17" + }, + { + "name": "headStart", + "nativeSrc": "11477:9:17", + "nodeType": "YulIdentifier", + "src": "11477:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11467:3:17", + "nodeType": "YulIdentifier", + "src": "11467:3:17" + }, + "nativeSrc": "11467:20:17", + "nodeType": "YulFunctionCall", + "src": "11467:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "11441:6:17", "nodeType": "YulIdentifier", - "src": "12025:6:17" + "src": "11441:6:17" }, + "nativeSrc": "11441:47:17", "nodeType": "YulFunctionCall", - "src": "12025:55:17" + "src": "11441:47:17" }, + "nativeSrc": "11441:47:17", "nodeType": "YulExpressionStatement", - "src": "12025:55:17" + "src": "11441:47:17" + }, + { + "nativeSrc": "11497:139:17", + "nodeType": "YulAssignment", + "src": "11497:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11631:4:17", + "nodeType": "YulIdentifier", + "src": "11631:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11505:124:17", + "nodeType": "YulIdentifier", + "src": "11505:124:17" + }, + "nativeSrc": "11505:131:17", + "nodeType": "YulFunctionCall", + "src": "11505:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11497:4:17", + "nodeType": "YulIdentifier", + "src": "11497:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11224:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "11375:9:17", + "nodeType": "YulTypedName", + "src": "11375:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11390:4:17", "nodeType": "YulTypedName", - "src": "12006:6:17", + "src": "11390:4:17", "type": "" } ], - "src": "11908:179:17" + "src": "11224:419:17" }, { "body": { + "nativeSrc": "11755:116:17", "nodeType": "YulBlock", - "src": "12199:119:17", + "src": "11755:116:17", "statements": [ { "expression": { @@ -7988,43 +12929,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "11777:6:17", "nodeType": "YulIdentifier", - "src": "12221:6:17" + "src": "11777:6:17" }, { "kind": "number", + "nativeSrc": "11785:1:17", "nodeType": "YulLiteral", - "src": "12229:1:17", + "src": "11785:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "11773:3:17", "nodeType": "YulIdentifier", - "src": "12217:3:17" + "src": "11773:3:17" }, + "nativeSrc": "11773:14:17", "nodeType": "YulFunctionCall", - "src": "12217:14:17" + "src": "11773:14:17" }, { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", "kind": "string", + "nativeSrc": "11789:34:17", "nodeType": "YulLiteral", - "src": "12233:34:17", + "src": "11789:34:17", "type": "", - "value": "ERC20: transfer amount exceeds b" + "value": "ERC20: transfer to the zero addr" } ], "functionName": { "name": "mstore", + "nativeSrc": "11766:6:17", "nodeType": "YulIdentifier", - "src": "12210:6:17" + "src": "11766:6:17" }, + "nativeSrc": "11766:58:17", "nodeType": "YulFunctionCall", - "src": "12210:58:17" + "src": "11766:58:17" }, + "nativeSrc": "11766:58:17", "nodeType": "YulExpressionStatement", - "src": "12210:58:17" + "src": "11766:58:17" }, { "expression": { @@ -8033,216 +12983,249 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "11845:6:17", "nodeType": "YulIdentifier", - "src": "12289:6:17" + "src": "11845:6:17" }, { "kind": "number", + "nativeSrc": "11853:2:17", "nodeType": "YulLiteral", - "src": "12297:2:17", + "src": "11853:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "11841:3:17", "nodeType": "YulIdentifier", - "src": "12285:3:17" + "src": "11841:3:17" }, + "nativeSrc": "11841:15:17", "nodeType": "YulFunctionCall", - "src": "12285:15:17" + "src": "11841:15:17" }, { + "hexValue": "657373", "kind": "string", + "nativeSrc": "11858:5:17", "nodeType": "YulLiteral", - "src": "12302:8:17", + "src": "11858:5:17", "type": "", - "value": "alance" + "value": "ess" } ], "functionName": { "name": "mstore", + "nativeSrc": "11834:6:17", "nodeType": "YulIdentifier", - "src": "12278:6:17" + "src": "11834:6:17" }, + "nativeSrc": "11834:30:17", "nodeType": "YulFunctionCall", - "src": "12278:33:17" + "src": "11834:30:17" }, + "nativeSrc": "11834:30:17", "nodeType": "YulExpressionStatement", - "src": "12278:33:17" + "src": "11834:30:17" } ] }, - "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nativeSrc": "11649:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "11747:6:17", "nodeType": "YulTypedName", - "src": "12191:6:17", + "src": "11747:6:17", "type": "" } ], - "src": "12093:225:17" + "src": "11649:222:17" }, { "body": { + "nativeSrc": "12023:220:17", "nodeType": "YulBlock", - "src": "12430:118:17", + "src": "12023:220:17", "statements": [ { - "expression": { + "nativeSrc": "12033:74:17", + "nodeType": "YulAssignment", + "src": "12033:74:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12452:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12460:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12448:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12448:14:17" + "name": "pos", + "nativeSrc": "12099:3:17", + "nodeType": "YulIdentifier", + "src": "12099:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12104:2:17", "nodeType": "YulLiteral", - "src": "12464:34:17", + "src": "12104:2:17", "type": "", - "value": "ERC20: transfer from the zero ad" + "value": "35" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12040:58:17", "nodeType": "YulIdentifier", - "src": "12441:6:17" + "src": "12040:58:17" }, + "nativeSrc": "12040:67:17", "nodeType": "YulFunctionCall", - "src": "12441:58:17" + "src": "12040:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "12441:58:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12033:3:17", + "nodeType": "YulIdentifier", + "src": "12033:3:17" + } + ] }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12520:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12528:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12516:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12516:15:17" + "name": "pos", + "nativeSrc": "12205:3:17", + "nodeType": "YulIdentifier", + "src": "12205:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nativeSrc": "12116:88:17", + "nodeType": "YulIdentifier", + "src": "12116:88:17" + }, + "nativeSrc": "12116:93:17", + "nodeType": "YulFunctionCall", + "src": "12116:93:17" + }, + "nativeSrc": "12116:93:17", + "nodeType": "YulExpressionStatement", + "src": "12116:93:17" + }, + { + "nativeSrc": "12218:19:17", + "nodeType": "YulAssignment", + "src": "12218:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12229:3:17", + "nodeType": "YulIdentifier", + "src": "12229:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12234:2:17", "nodeType": "YulLiteral", - "src": "12533:7:17", + "src": "12234:2:17", "type": "", - "value": "dress" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "12225:3:17", "nodeType": "YulIdentifier", - "src": "12509:6:17" + "src": "12225:3:17" }, + "nativeSrc": "12225:12:17", "nodeType": "YulFunctionCall", - "src": "12509:32:17" + "src": "12225:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "12509:32:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "12218:3:17", + "nodeType": "YulIdentifier", + "src": "12218:3:17" + } + ] } ] }, - "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11877:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "12011:3:17", "nodeType": "YulTypedName", - "src": "12422:6:17", + "src": "12011:3:17", "type": "" } ], - "src": "12324:224:17" + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12019:3:17", + "nodeType": "YulTypedName", + "src": "12019:3:17", + "type": "" + } + ], + "src": "11877:366:17" }, { "body": { + "nativeSrc": "12420:248:17", "nodeType": "YulBlock", - "src": "12660:117:17", + "src": "12420:248:17", "statements": [ { - "expression": { + "nativeSrc": "12430:26:17", + "nodeType": "YulAssignment", + "src": "12430:26:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12682:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12690:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12678:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12678:14:17" + "name": "headStart", + "nativeSrc": "12442:9:17", + "nodeType": "YulIdentifier", + "src": "12442:9:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12453:2:17", "nodeType": "YulLiteral", - "src": "12694:34:17", + "src": "12453:2:17", "type": "", - "value": "ERC20: approve from the zero add" + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "12438:3:17", "nodeType": "YulIdentifier", - "src": "12671:6:17" + "src": "12438:3:17" }, + "nativeSrc": "12438:18:17", "nodeType": "YulFunctionCall", - "src": "12671:58:17" + "src": "12438:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "12671:58:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12430:4:17", + "nodeType": "YulIdentifier", + "src": "12430:4:17" + } + ] }, { "expression": { @@ -8250,63 +13233,132 @@ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "12477:9:17", "nodeType": "YulIdentifier", - "src": "12750:6:17" + "src": "12477:9:17" }, { "kind": "number", + "nativeSrc": "12488:1:17", "nodeType": "YulLiteral", - "src": "12758:2:17", + "src": "12488:1:17", "type": "", - "value": "32" + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "12473:3:17", "nodeType": "YulIdentifier", - "src": "12746:3:17" + "src": "12473:3:17" }, + "nativeSrc": "12473:17:17", "nodeType": "YulFunctionCall", - "src": "12746:15:17" + "src": "12473:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "12763:6:17", - "type": "", - "value": "ress" + "arguments": [ + { + "name": "tail", + "nativeSrc": "12496:4:17", + "nodeType": "YulIdentifier", + "src": "12496:4:17" + }, + { + "name": "headStart", + "nativeSrc": "12502:9:17", + "nodeType": "YulIdentifier", + "src": "12502:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12492:3:17", + "nodeType": "YulIdentifier", + "src": "12492:3:17" + }, + "nativeSrc": "12492:20:17", + "nodeType": "YulFunctionCall", + "src": "12492:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "12466:6:17", "nodeType": "YulIdentifier", - "src": "12739:6:17" + "src": "12466:6:17" }, + "nativeSrc": "12466:47:17", "nodeType": "YulFunctionCall", - "src": "12739:31:17" + "src": "12466:47:17" }, + "nativeSrc": "12466:47:17", "nodeType": "YulExpressionStatement", - "src": "12739:31:17" + "src": "12466:47:17" + }, + { + "nativeSrc": "12522:139:17", + "nodeType": "YulAssignment", + "src": "12522:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12656:4:17", + "nodeType": "YulIdentifier", + "src": "12656:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12530:124:17", + "nodeType": "YulIdentifier", + "src": "12530:124:17" + }, + "nativeSrc": "12530:131:17", + "nodeType": "YulFunctionCall", + "src": "12530:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12522:4:17", + "nodeType": "YulIdentifier", + "src": "12522:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12249:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "12400:9:17", + "nodeType": "YulTypedName", + "src": "12400:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12415:4:17", "nodeType": "YulTypedName", - "src": "12652:6:17", + "src": "12415:4:17", "type": "" } ], - "src": "12554:223:17" + "src": "12249:419:17" }, { "body": { + "nativeSrc": "12780:119:17", "nodeType": "YulBlock", - "src": "12889:118:17", + "src": "12780:119:17", "statements": [ { "expression": { @@ -8315,43 +13367,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "12802:6:17", "nodeType": "YulIdentifier", - "src": "12911:6:17" + "src": "12802:6:17" }, { "kind": "number", + "nativeSrc": "12810:1:17", "nodeType": "YulLiteral", - "src": "12919:1:17", + "src": "12810:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "12798:3:17", "nodeType": "YulIdentifier", - "src": "12907:3:17" + "src": "12798:3:17" }, + "nativeSrc": "12798:14:17", "nodeType": "YulFunctionCall", - "src": "12907:14:17" + "src": "12798:14:17" }, { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", "kind": "string", + "nativeSrc": "12814:34:17", "nodeType": "YulLiteral", - "src": "12923:34:17", + "src": "12814:34:17", "type": "", - "value": "ERC20: decreased allowance below" + "value": "ERC20: transfer amount exceeds b" } ], "functionName": { "name": "mstore", + "nativeSrc": "12791:6:17", "nodeType": "YulIdentifier", - "src": "12900:6:17" + "src": "12791:6:17" }, + "nativeSrc": "12791:58:17", "nodeType": "YulFunctionCall", - "src": "12900:58:17" + "src": "12791:58:17" }, + "nativeSrc": "12791:58:17", "nodeType": "YulExpressionStatement", - "src": "12900:58:17" + "src": "12791:58:17" }, { "expression": { @@ -8360,263 +13421,380 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "12870:6:17", "nodeType": "YulIdentifier", - "src": "12979:6:17" + "src": "12870:6:17" }, { "kind": "number", + "nativeSrc": "12878:2:17", "nodeType": "YulLiteral", - "src": "12987:2:17", + "src": "12878:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "12866:3:17", "nodeType": "YulIdentifier", - "src": "12975:3:17" + "src": "12866:3:17" }, + "nativeSrc": "12866:15:17", "nodeType": "YulFunctionCall", - "src": "12975:15:17" + "src": "12866:15:17" }, { + "hexValue": "616c616e6365", "kind": "string", + "nativeSrc": "12883:8:17", "nodeType": "YulLiteral", - "src": "12992:7:17", + "src": "12883:8:17", "type": "", - "value": " zero" + "value": "alance" } ], "functionName": { "name": "mstore", + "nativeSrc": "12859:6:17", "nodeType": "YulIdentifier", - "src": "12968:6:17" + "src": "12859:6:17" }, + "nativeSrc": "12859:33:17", "nodeType": "YulFunctionCall", - "src": "12968:32:17" + "src": "12859:33:17" }, + "nativeSrc": "12859:33:17", "nodeType": "YulExpressionStatement", - "src": "12968:32:17" + "src": "12859:33:17" } ] }, - "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nativeSrc": "12674:225:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "12772:6:17", "nodeType": "YulTypedName", - "src": "12881:6:17", + "src": "12772:6:17", "type": "" } ], - "src": "12783:224:17" + "src": "12674:225:17" }, { "body": { + "nativeSrc": "13051:220:17", "nodeType": "YulBlock", - "src": "13056:79:17", + "src": "13051:220:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "13113:16:17", - "statements": [ + "nativeSrc": "13061:74:17", + "nodeType": "YulAssignment", + "src": "13061:74:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13122:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13125:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "13115:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "13115:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "13115:12:17" + "name": "pos", + "nativeSrc": "13127:3:17", + "nodeType": "YulIdentifier", + "src": "13127:3:17" + }, + { + "kind": "number", + "nativeSrc": "13132:2:17", + "nodeType": "YulLiteral", + "src": "13132:2:17", + "type": "", + "value": "38" } - ] + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13068:58:17", + "nodeType": "YulIdentifier", + "src": "13068:58:17" + }, + "nativeSrc": "13068:67:17", + "nodeType": "YulFunctionCall", + "src": "13068:67:17" }, - "condition": { + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13061:3:17", + "nodeType": "YulIdentifier", + "src": "13061:3:17" + } + ] + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13079:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13104:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "13086:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "13086:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "13076:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "13076:35:17" + "name": "pos", + "nativeSrc": "13233:3:17", + "nodeType": "YulIdentifier", + "src": "13233:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nativeSrc": "13144:88:17", "nodeType": "YulIdentifier", - "src": "13069:6:17" + "src": "13144:88:17" }, + "nativeSrc": "13144:93:17", "nodeType": "YulFunctionCall", - "src": "13069:43:17" + "src": "13144:93:17" }, - "nodeType": "YulIf", - "src": "13066:2:17" + "nativeSrc": "13144:93:17", + "nodeType": "YulExpressionStatement", + "src": "13144:93:17" + }, + { + "nativeSrc": "13246:19:17", + "nodeType": "YulAssignment", + "src": "13246:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13257:3:17", + "nodeType": "YulIdentifier", + "src": "13257:3:17" + }, + { + "kind": "number", + "nativeSrc": "13262:2:17", + "nodeType": "YulLiteral", + "src": "13262:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13253:3:17", + "nodeType": "YulIdentifier", + "src": "13253:3:17" + }, + "nativeSrc": "13253:12:17", + "nodeType": "YulFunctionCall", + "src": "13253:12:17" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13246:3:17", + "nodeType": "YulIdentifier", + "src": "13246:3:17" + } + ] } ] }, - "name": "validator_revert_t_address", + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12905:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "13039:3:17", + "nodeType": "YulTypedName", + "src": "13039:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13047:3:17", "nodeType": "YulTypedName", - "src": "13049:5:17", + "src": "13047:3:17", "type": "" } ], - "src": "13013:122:17" + "src": "12905:366:17" }, { "body": { + "nativeSrc": "13448:248:17", "nodeType": "YulBlock", - "src": "13184:79:17", + "src": "13448:248:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "13241:16:17", - "statements": [ + "nativeSrc": "13458:26:17", + "nodeType": "YulAssignment", + "src": "13458:26:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13250:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13253:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "13243:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "13243:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "13243:12:17" + "name": "headStart", + "nativeSrc": "13470:9:17", + "nodeType": "YulIdentifier", + "src": "13470:9:17" + }, + { + "kind": "number", + "nativeSrc": "13481:2:17", + "nodeType": "YulLiteral", + "src": "13481:2:17", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "13466:3:17", + "nodeType": "YulIdentifier", + "src": "13466:3:17" + }, + "nativeSrc": "13466:18:17", + "nodeType": "YulFunctionCall", + "src": "13466:18:17" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13458:4:17", + "nodeType": "YulIdentifier", + "src": "13458:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "13505:9:17", "nodeType": "YulIdentifier", - "src": "13207:5:17" + "src": "13505:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13232:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "13214:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "13214:24:17" + "kind": "number", + "nativeSrc": "13516:1:17", + "nodeType": "YulLiteral", + "src": "13516:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "13501:3:17", + "nodeType": "YulIdentifier", + "src": "13501:3:17" + }, + "nativeSrc": "13501:17:17", + "nodeType": "YulFunctionCall", + "src": "13501:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13524:4:17", + "nodeType": "YulIdentifier", + "src": "13524:4:17" + }, + { + "name": "headStart", + "nativeSrc": "13530:9:17", + "nodeType": "YulIdentifier", + "src": "13530:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13520:3:17", "nodeType": "YulIdentifier", - "src": "13204:2:17" + "src": "13520:3:17" }, + "nativeSrc": "13520:20:17", "nodeType": "YulFunctionCall", - "src": "13204:35:17" + "src": "13520:20:17" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "13494:6:17", "nodeType": "YulIdentifier", - "src": "13197:6:17" + "src": "13494:6:17" }, + "nativeSrc": "13494:47:17", "nodeType": "YulFunctionCall", - "src": "13197:43:17" + "src": "13494:47:17" }, - "nodeType": "YulIf", - "src": "13194:2:17" + "nativeSrc": "13494:47:17", + "nodeType": "YulExpressionStatement", + "src": "13494:47:17" + }, + { + "nativeSrc": "13550:139:17", + "nodeType": "YulAssignment", + "src": "13550:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13684:4:17", + "nodeType": "YulIdentifier", + "src": "13684:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13558:124:17", + "nodeType": "YulIdentifier", + "src": "13558:124:17" + }, + "nativeSrc": "13558:131:17", + "nodeType": "YulFunctionCall", + "src": "13558:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13550:4:17", + "nodeType": "YulIdentifier", + "src": "13550:4:17" + } + ] } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13277:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "13428:9:17", + "nodeType": "YulTypedName", + "src": "13428:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13443:4:17", "nodeType": "YulTypedName", - "src": "13177:5:17", + "src": "13443:4:17", "type": "" } ], - "src": "13141:122:17" + "src": "13277:419:17" } ] }, - "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -8624,10 +13802,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea2646970667358221220970e45d8d2aa4fef01db9cd9c86dbb99eeab4b9119b798fc877bb43d641b590564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xB0F JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xE2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xAAA JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B1 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x427 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60E SWAP1 PUSH2 0xDD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67E SWAP1 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x765 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77E DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F8 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x86E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x865 SWAP1 PUSH2 0xDB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP1 PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E9 DUP4 DUP4 DUP4 PUSH2 0xA76 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA70 DUP5 DUP5 DUP5 PUSH2 0xA7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8F DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAA4 DUP2 PUSH2 0x11FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP5 DUP3 DUP6 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB05 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB43 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB54 DUP7 DUP3 DUP8 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB7F DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB90 DUP6 DUP3 DUP7 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA3 DUP2 PUSH2 0xECC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB4 DUP3 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0xBBE DUP2 DUP6 PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF0F JUMP JUMPDEST PUSH2 0xBD7 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBEF PUSH1 0x23 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFA DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 PUSH1 0x22 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC1D DUP3 PUSH2 0x1032 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC35 PUSH1 0x1D DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC40 DUP3 PUSH2 0x1081 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x26 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC63 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC86 DUP3 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH1 0x24 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCA9 DUP3 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCCC DUP3 PUSH2 0x1197 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE0 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xCEF DUP2 PUSH2 0xF02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD2A DUP2 DUP5 PUSH2 0xBA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD4B DUP2 PUSH2 0xBE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD6B DUP2 PUSH2 0xC05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xC28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDAB DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDCB DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDEB DUP2 PUSH2 0xC91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0B DUP2 PUSH2 0xCB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6F DUP3 PUSH2 0xEF8 JUMP JUMPDEST SWAP2 POP PUSH2 0xE7A DUP4 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH2 0xEAE PUSH2 0xF74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEC5 DUP3 PUSH2 0xED8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF2D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF12 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xF5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xF6E JUMPI PUSH2 0xF6D PUSH2 0xFA3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x11EF DUP2 PUSH2 0xEBA JUMP JUMPDEST DUP2 EQ PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1206 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0xE GASLIMIT 0xD8 0xD2 0xAA 0x4F 0xEF ADD 0xDB SWAP13 0xD9 0xC8 PUSH14 0xBB99EEAB4B9119B798FC877BB43D PUSH5 0x1B59056473 PUSH16 0x6C634300080200330000000000000000 ", - "sourceMap": "1532:11312:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;3104:91::-;3162:5;3186:2;3179:9;;3104:91;:::o;5854:234::-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;640:96:3:-;693:7;719:10;712:17;;640:96;:::o;10457:340:0:-;10575:1;10558:19;;:5;:19;;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11078:411;;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7456:788;;;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:366::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2673:93;2762:3;2673:93;:::i;:::-;2791:2;2786:3;2782:12;2775:19;;2580:220;;;:::o;2806:366::-;;2969:67;3033:2;3028:3;2969:67;:::i;:::-;2962:74;;3045:93;3134:3;3045:93;:::i;:::-;3163:2;3158:3;3154:12;3147:19;;2952:220;;;:::o;3178:366::-;;3341:67;3405:2;3400:3;3341:67;:::i;:::-;3334:74;;3417:93;3506:3;3417:93;:::i;:::-;3535:2;3530:3;3526:12;3519:19;;3324:220;;;:::o;3550:366::-;;3713:67;3777:2;3772:3;3713:67;:::i;:::-;3706:74;;3789:93;3878:3;3789:93;:::i;:::-;3907:2;3902:3;3898:12;3891:19;;3696:220;;;:::o;3922:366::-;;4085:67;4149:2;4144:3;4085:67;:::i;:::-;4078:74;;4161:93;4250:3;4161:93;:::i;:::-;4279:2;4274:3;4270:12;4263:19;;4068:220;;;:::o;4294:366::-;;4457:67;4521:2;4516:3;4457:67;:::i;:::-;4450:74;;4533:93;4622:3;4533:93;:::i;:::-;4651:2;4646:3;4642:12;4635:19;;4440:220;;;:::o;4666:366::-;;4829:67;4893:2;4888:3;4829:67;:::i;:::-;4822:74;;4905:93;4994:3;4905:93;:::i;:::-;5023:2;5018:3;5014:12;5007:19;;4812:220;;;:::o;5038:118::-;5125:24;5143:5;5125:24;:::i;:::-;5120:3;5113:37;5103:53;;:::o;5162:112::-;5245:22;5261:5;5245:22;:::i;:::-;5240:3;5233:35;5223:51;;:::o;5280:210::-;;5405:2;5394:9;5390:18;5382:26;;5418:65;5480:1;5469:9;5465:17;5456:6;5418:65;:::i;:::-;5372:118;;;;:::o;5496:313::-;;5647:2;5636:9;5632:18;5624:26;;5696:9;5690:4;5686:20;5682:1;5671:9;5667:17;5660:47;5724:78;5797:4;5788:6;5724:78;:::i;:::-;5716:86;;5614:195;;;;:::o;5815:419::-;;6019:2;6008:9;6004:18;5996:26;;6068:9;6062:4;6058:20;6054:1;6043:9;6039:17;6032:47;6096:131;6222:4;6096:131;:::i;:::-;6088:139;;5986:248;;;:::o;6240:419::-;;6444:2;6433:9;6429:18;6421:26;;6493:9;6487:4;6483:20;6479:1;6468:9;6464:17;6457:47;6521:131;6647:4;6521:131;:::i;:::-;6513:139;;6411:248;;;:::o;6665:419::-;;6869:2;6858:9;6854:18;6846:26;;6918:9;6912:4;6908:20;6904:1;6893:9;6889:17;6882:47;6946:131;7072:4;6946:131;:::i;:::-;6938:139;;6836:248;;;:::o;7090:419::-;;7294:2;7283:9;7279:18;7271:26;;7343:9;7337:4;7333:20;7329:1;7318:9;7314:17;7307:47;7371:131;7497:4;7371:131;:::i;:::-;7363:139;;7261:248;;;:::o;7515:419::-;;7719:2;7708:9;7704:18;7696:26;;7768:9;7762:4;7758:20;7754:1;7743:9;7739:17;7732:47;7796:131;7922:4;7796:131;:::i;:::-;7788:139;;7686:248;;;:::o;7940:419::-;;8144:2;8133:9;8129:18;8121:26;;8193:9;8187:4;8183:20;8179:1;8168:9;8164:17;8157:47;8221:131;8347:4;8221:131;:::i;:::-;8213:139;;8111:248;;;:::o;8365:419::-;;8569:2;8558:9;8554:18;8546:26;;8618:9;8612:4;8608:20;8604:1;8593:9;8589:17;8582:47;8646:131;8772:4;8646:131;:::i;:::-;8638:139;;8536:248;;;:::o;8790:222::-;;8921:2;8910:9;8906:18;8898:26;;8934:71;9002:1;8991:9;8987:17;8978:6;8934:71;:::i;:::-;8888:124;;;;:::o;9018:214::-;;9145:2;9134:9;9130:18;9122:26;;9158:67;9222:1;9211:9;9207:17;9198:6;9158:67;:::i;:::-;9112:120;;;;:::o;9238:99::-;;9324:5;9318:12;9308:22;;9297:40;;;:::o;9343:169::-;;9461:6;9456:3;9449:19;9501:4;9496:3;9492:14;9477:29;;9439:73;;;;:::o;9518:305::-;;9577:20;9595:1;9577:20;:::i;:::-;9572:25;;9611:20;9629:1;9611:20;:::i;:::-;9606:25;;9765:1;9697:66;9693:74;9690:1;9687:81;9684:2;;;9771:18;;:::i;:::-;9684:2;9815:1;9812;9808:9;9801:16;;9562:261;;;;:::o;9829:96::-;;9895:24;9913:5;9895:24;:::i;:::-;9884:35;;9874:51;;;:::o;9931:90::-;;10008:5;10001:13;9994:21;9983:32;;9973:48;;;:::o;10027:126::-;;10104:42;10097:5;10093:54;10082:65;;10072:81;;;:::o;10159:77::-;;10225:5;10214:16;;10204:32;;;:::o;10242:86::-;;10317:4;10310:5;10306:16;10295:27;;10285:43;;;:::o;10334:307::-;10402:1;10412:113;10426:6;10423:1;10420:13;10412:113;;;10511:1;10506:3;10502:11;10496:18;10492:1;10487:3;10483:11;10476:39;10448:2;10445:1;10441:10;10436:15;;10412:113;;;10543:6;10540:1;10537:13;10534:2;;;10623:1;10614:6;10609:3;10605:16;10598:27;10534:2;10383:258;;;;:::o;10647:320::-;;10728:1;10722:4;10718:12;10708:22;;10775:1;10769:4;10765:12;10796:18;10786:2;;10852:4;10844:6;10840:17;10830:27;;10786:2;10914;10906:6;10903:14;10883:18;10880:38;10877:2;;;10933:18;;:::i;:::-;10877:2;10698:269;;;;:::o;10973:180::-;11021:77;11018:1;11011:88;11118:4;11115:1;11108:15;11142:4;11139:1;11132:15;11159:180;11207:77;11204:1;11197:88;11304:4;11301:1;11294:15;11328:4;11325:1;11318:15;11345:102;;11437:2;11433:7;11428:2;11421:5;11417:14;11413:28;11403:38;;11393:54;;;:::o;11453:222::-;11593:34;11589:1;11581:6;11577:14;11570:58;11662:5;11657:2;11649:6;11645:15;11638:30;11559:116;:::o;11681:221::-;11821:34;11817:1;11809:6;11805:14;11798:58;11890:4;11885:2;11877:6;11873:15;11866:29;11787:115;:::o;11908:179::-;12048:31;12044:1;12036:6;12032:14;12025:55;12014:73;:::o;12093:225::-;12233:34;12229:1;12221:6;12217:14;12210:58;12302:8;12297:2;12289:6;12285:15;12278:33;12199:119;:::o;12324:224::-;12464:34;12460:1;12452:6;12448:14;12441:58;12533:7;12528:2;12520:6;12516:15;12509:32;12430:118;:::o;12554:223::-;12694:34;12690:1;12682:6;12678:14;12671:58;12763:6;12758:2;12750:6;12746:15;12739:31;12660:117;:::o;12783:224::-;12923:34;12919:1;12911:6;12907:14;12900:58;12992:7;12987:2;12979:6;12975:15;12968:32;12889:118;:::o;13013:122::-;13086:24;13104:5;13086:24;:::i;:::-;13079:5;13076:35;13066:2;;13125:1;13122;13115:12;13066:2;13056:79;:::o;13141:122::-;13214:24;13232:5;13214:24;:::i;:::-;13207:5;13204:35;13194:2;;13253:1;13250;13243:12;13194:2;13184:79;:::o" + "object": "608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6012905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea2646970667358221220fcffdaa2ead0ea153974caa1c4759558216042891bd50954cbe869554c7f205364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x243 JUMPI PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB3 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xCAB JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x30D PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x31A DUP2 DUP6 DUP6 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x338 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x345 DUP6 DUP3 DUP6 PUSH2 0x752 JUMP JUMPDEST PUSH2 0x350 DUP6 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x36E PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x38F DUP2 DUP6 DUP6 PUSH2 0x380 DUP6 DUP10 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x38A SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3EE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41A SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x465 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x43C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x465 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x448 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x479 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x486 DUP3 DUP7 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP1 PUSH2 0xE41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4EE PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x4FB DUP2 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F4 SWAP1 PUSH2 0xECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x66B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x662 SWAP1 PUSH2 0xF5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x75D DUP5 DUP5 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7D7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP1 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x842 SWAP1 PUSH2 0x1053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8B0 SWAP1 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8C4 DUP4 DUP4 DUP4 PUSH2 0xA49 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93E SWAP1 PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA30 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA43 DUP5 DUP5 DUP5 PUSH2 0xA4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA8A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA6F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAAF DUP3 PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xAB9 DUP2 DUP6 PUSH2 0xA5D JUMP JUMPDEST SWAP4 POP PUSH2 0xAC9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA6D JUMP JUMPDEST PUSH2 0xAD2 DUP2 PUSH2 0xA95 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xAF5 DUP2 DUP5 PUSH2 0xAA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB2A DUP3 PUSH2 0xB01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3A DUP2 PUSH2 0xB20 JUMP JUMPDEST DUP2 EQ PUSH2 0xB44 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB55 DUP2 PUSH2 0xB31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6D DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP2 EQ PUSH2 0xB77 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB88 DUP2 PUSH2 0xB64 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBB1 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBC2 DUP6 DUP3 DUP7 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0xBCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBF9 PUSH0 DUP4 ADD DUP5 PUSH2 0xBD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC08 DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC21 PUSH0 DUP4 ADD DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC3D PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC4B DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC5C DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC6D DUP7 DUP3 DUP8 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC8C DUP2 PUSH2 0xC77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA5 PUSH0 DUP4 ADD DUP5 PUSH2 0xC83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC0 JUMPI PUSH2 0xCBF PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCCD DUP5 DUP3 DUP6 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEB PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCF9 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0A DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD6B JUMPI PUSH2 0xD6A PUSH2 0xD14 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xDA8 DUP3 PUSH2 0xB5B JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 DUP4 PUSH2 0xB5B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0xD71 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE2B PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xE36 DUP3 PUSH2 0xDD1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE58 DUP2 PUSH2 0xE1F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xEB9 PUSH1 0x24 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xEC4 DUP3 PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF47 PUSH1 0x22 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xF52 DUP3 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xF74 DUP2 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xFAF PUSH1 0x1D DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xFBA DUP3 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFDC DUP2 PUSH2 0xFA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x103D PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1048 DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x106A DUP2 PUSH2 0x1031 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x10CB PUSH1 0x23 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x10D6 DUP3 PUSH2 0x1071 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10F8 DUP2 PUSH2 0x10BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1159 PUSH1 0x26 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1164 DUP3 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1186 DUP2 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC SELFDESTRUCT 0xDA LOG2 0xEA 0xD0 0xEA ISZERO CODECOPY PUSH21 0xCAA1C4759558216042891BD50954CBE869554C7F20 MSTORE8 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1532:11312:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;3104:91::-;3162:5;3186:2;3179:9;;3104:91;:::o;5854:234::-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;655:96:3:-;708:7;734:10;727:17;;655:96;:::o;10457:340:0:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:17:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:191;6406:3;6425:20;6443:1;6425:20;:::i;:::-;6420:25;;6459:20;6477:1;6459:20;:::i;:::-;6454:25;;6502:1;6499;6495:9;6488:16;;6523:3;6520:1;6517:10;6514:36;;;6530:18;;:::i;:::-;6514:36;6366:191;;;;:::o;6563:224::-;6703:34;6699:1;6691:6;6687:14;6680:58;6772:7;6767:2;6759:6;6755:15;6748:32;6563:224;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6793:366;;;:::o;7165:419::-;7331:4;7369:2;7358:9;7354:18;7346:26;;7418:9;7412:4;7408:20;7404:1;7393:9;7389:17;7382:47;7446:131;7572:4;7446:131;:::i;:::-;7438:139;;7165:419;;;:::o;7590:223::-;7730:34;7726:1;7718:6;7714:14;7707:58;7799:6;7794:2;7786:6;7782:15;7775:31;7590:223;:::o;7819:366::-;7961:3;7982:67;8046:2;8041:3;7982:67;:::i;:::-;7975:74;;8058:93;8147:3;8058:93;:::i;:::-;8176:2;8171:3;8167:12;8160:19;;7819:366;;;:::o;8191:419::-;8357:4;8395:2;8384:9;8380:18;8372:26;;8444:9;8438:4;8434:20;8430:1;8419:9;8415:17;8408:47;8472:131;8598:4;8472:131;:::i;:::-;8464:139;;8191:419;;;:::o;8616:221::-;8756:34;8752:1;8744:6;8740:14;8733:58;8825:4;8820:2;8812:6;8808:15;8801:29;8616:221;:::o;8843:366::-;8985:3;9006:67;9070:2;9065:3;9006:67;:::i;:::-;8999:74;;9082:93;9171:3;9082:93;:::i;:::-;9200:2;9195:3;9191:12;9184:19;;8843:366;;;:::o;9215:419::-;9381:4;9419:2;9408:9;9404:18;9396:26;;9468:9;9462:4;9458:20;9454:1;9443:9;9439:17;9432:47;9496:131;9622:4;9496:131;:::i;:::-;9488:139;;9215:419;;;:::o;9640:179::-;9780:31;9776:1;9768:6;9764:14;9757:55;9640:179;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9825:366;;;:::o;10197:419::-;10363:4;10401:2;10390:9;10386:18;10378:26;;10450:9;10444:4;10440:20;10436:1;10425:9;10421:17;10414:47;10478:131;10604:4;10478:131;:::i;:::-;10470:139;;10197:419;;;:::o;10622:224::-;10762:34;10758:1;10750:6;10746:14;10739:58;10831:7;10826:2;10818:6;10814:15;10807:32;10622:224;:::o;10852:366::-;10994:3;11015:67;11079:2;11074:3;11015:67;:::i;:::-;11008:74;;11091:93;11180:3;11091:93;:::i;:::-;11209:2;11204:3;11200:12;11193:19;;10852:366;;;:::o;11224:419::-;11390:4;11428:2;11417:9;11413:18;11405:26;;11477:9;11471:4;11467:20;11463:1;11452:9;11448:17;11441:47;11505:131;11631:4;11505:131;:::i;:::-;11497:139;;11224:419;;;:::o;11649:222::-;11789:34;11785:1;11777:6;11773:14;11766:58;11858:5;11853:2;11845:6;11841:15;11834:30;11649:222;:::o;11877:366::-;12019:3;12040:67;12104:2;12099:3;12040:67;:::i;:::-;12033:74;;12116:93;12205:3;12116:93;:::i;:::-;12234:2;12229:3;12225:12;12218:19;;11877:366;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12249:419;;;:::o;12674:225::-;12814:34;12810:1;12802:6;12798:14;12791:58;12883:8;12878:2;12870:6;12866:15;12859:33;12674:225;:::o;12905:366::-;13047:3;13068:67;13132:2;13127:3;13068:67;:::i;:::-;13061:74;;13144:93;13233:3;13144:93;:::i;:::-;13262:2;13257:3;13253:12;13246:19;;12905:366;;;:::o;13277:419::-;13443:4;13481:2;13470:9;13466:18;13458:26;;13530:9;13524:4;13520:20;13516:1;13505:9;13501:17;13494:47;13558:131;13684:4;13558:131;:::i;:::-;13550:139;;13277:419;;;:::o" } }, - "bytecode": "60806040523480156200001157600080fd5b50604051620015d0380380620015d0833981810160405281019062000037919062000193565b81600390805190602001906200004f92919062000071565b5080600490805190602001906200006892919062000071565b50505062000376565b8280546200007f906200029b565b90600052602060002090601f016020900481019282620000a35760008555620000ef565b82601f10620000be57805160ff1916838001178555620000ef565b82800160010185558215620000ef579182015b82811115620000ee578251825591602001919060010190620000d1565b5b509050620000fe919062000102565b5090565b5b808211156200011d57600081600090555060010162000103565b5090565b60006200013862000132846200022f565b62000206565b9050828152602081018484840111156200015157600080fd5b6200015e84828562000265565b509392505050565b600082601f8301126200017857600080fd5b81516200018a84826020860162000121565b91505092915050565b60008060408385031215620001a757600080fd5b600083015167ffffffffffffffff811115620001c257600080fd5b620001d08582860162000166565b925050602083015167ffffffffffffffff811115620001ee57600080fd5b620001fc8582860162000166565b9150509250929050565b60006200021262000225565b9050620002208282620002d1565b919050565b6000604051905090565b600067ffffffffffffffff8211156200024d576200024c62000336565b5b620002588262000365565b9050602081019050919050565b60005b838110156200028557808201518184015260208101905062000268565b8381111562000295576000848401525b50505050565b60006002820490506001821680620002b457607f821691505b60208210811415620002cb57620002ca62000307565b5b50919050565b620002dc8262000365565b810181811067ffffffffffffffff82111715620002fe57620002fd62000336565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61124a80620003866000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea2646970667358221220970e45d8d2aa4fef01db9cd9c86dbb99eeab4b9119b798fc877bb43d641b590564736f6c63430008020033" + "bytecode": "608060405234801562000010575f80fd5b5060405162001756380380620017568339818101604052810190620000369190620001e7565b8160039081620000479190620004a1565b508060049081620000599190620004a1565b50505062000585565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000c3826200007b565b810181811067ffffffffffffffff82111715620000e557620000e46200008b565b5b80604052505050565b5f620000f962000062565b9050620001078282620000b8565b919050565b5f67ffffffffffffffff8211156200012957620001286200008b565b5b62000134826200007b565b9050602081019050919050565b5f5b838110156200016057808201518184015260208101905062000143565b5f8484015250505050565b5f620001816200017b846200010c565b620000ee565b905082815260208101848484011115620001a0576200019f62000077565b5b620001ad84828562000141565b509392505050565b5f82601f830112620001cc57620001cb62000073565b5b8151620001de8482602086016200016b565b91505092915050565b5f80604083850312156200020057620001ff6200006b565b5b5f83015167ffffffffffffffff81111562000220576200021f6200006f565b5b6200022e85828601620001b5565b925050602083015167ffffffffffffffff8111156200025257620002516200006f565b5b6200026085828601620001b5565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002b957607f821691505b602082108103620002cf57620002ce62000274565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002f6565b6200033f8683620002f6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000389620003836200037d8462000357565b62000360565b62000357565b9050919050565b5f819050919050565b620003a48362000369565b620003bc620003b38262000390565b84845462000302565b825550505050565b5f90565b620003d2620003c4565b620003df81848462000399565b505050565b5b818110156200040657620003fa5f82620003c8565b600181019050620003e5565b5050565b601f82111562000455576200041f81620002d5565b6200042a84620002e7565b810160208510156200043a578190505b620004526200044985620002e7565b830182620003e4565b50505b505050565b5f82821c905092915050565b5f620004775f19846008026200045a565b1980831691505092915050565b5f62000491838362000466565b9150826002028217905092915050565b620004ac826200026a565b67ffffffffffffffff811115620004c857620004c76200008b565b5b620004d48254620002a1565b620004e18282856200040a565b5f60209050601f83116001811462000517575f841562000502578287015190505b6200050e858262000484565b8655506200057d565b601f1984166200052786620002d5565b5f5b82811015620005505784890151825560018201915060208501945060208101905062000529565b868310156200057057848901516200056c601f89168262000466565b8355505b6001600288020188555050505b505050505050565b6111c380620005935f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6012905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea2646970667358221220fcffdaa2ead0ea153974caa1c4759558216042891bd50954cbe869554c7f205364736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/EmptyContract.json b/ts-tests/build/EmptyContract.json index ddfa618b2b..0b4918fc80 100644 --- a/ts-tests/build/EmptyContract.json +++ b/ts-tests/build/EmptyContract.json @@ -2,20 +2,22 @@ "abi": [], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220d1063b91611d98e58525ce095592ed8f4cc27d0116618497d042ac83dfcd43e064736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 MOD EXTCODESIZE SWAP2 PUSH2 0x1D98 0xE5 DUP6 0x25 0xCE MULMOD SSTORE SWAP3 0xED DUP16 0x4C 0xC2 PUSH30 0x116618497D042AC83DFCD43E064736F6C63430008020033000000000000 ", + "object": "6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220ea4bd9a0bd2db79a949b03d2cdbb2e517fe0881ae60de244c8f99fee60c8adec64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x3E DUP1 PUSH1 0x1A PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0x4B 0xD9 LOG0 0xBD 0x2D 0xB7 SWAP11 SWAP5 SWAP12 SUB 0xD2 0xCD 0xBB 0x2E MLOAD PUSH32 0xE0881AE60DE244C8F99FEE60C8ADEC64736F6C63430008180033000000000000 ", "sourceMap": "71:25:7:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "6080604052600080fdfea2646970667358221220d1063b91611d98e58525ce095592ed8f4cc27d0116618497d042ac83dfcd43e064736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 MOD EXTCODESIZE SWAP2 PUSH2 0x1D98 0xE5 DUP6 0x25 0xCE MULMOD SSTORE SWAP3 0xED DUP16 0x4C 0xC2 PUSH30 0x116618497D042AC83DFCD43E064736F6C63430008020033000000000000 ", + "object": "60806040525f80fdfea2646970667358221220ea4bd9a0bd2db79a949b03d2cdbb2e517fe0881ae60de244c8f99fee60c8adec64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0x4B 0xD9 LOG0 0xBD 0x2D 0xB7 SWAP11 SWAP5 SWAP12 SUB 0xD2 0xCD 0xBB 0x2E MLOAD PUSH32 0xE0881AE60DE244C8F99FEE60C8ADEC64736F6C63430008180033000000000000 ", "sourceMap": "71:25:7:-:0;;;;;" } }, - "bytecode": "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220d1063b91611d98e58525ce095592ed8f4cc27d0116618497d042ac83dfcd43e064736f6c63430008020033" + "bytecode": "6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220ea4bd9a0bd2db79a949b03d2cdbb2e517fe0881ae60de244c8f99fee60c8adec64736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/Erc20DemoContract.json b/ts-tests/build/Erc20DemoContract.json index 748686f06a..523b3ab624 100644 --- a/ts-tests/build/Erc20DemoContract.json +++ b/ts-tests/build/Erc20DemoContract.json @@ -284,130 +284,500 @@ ], "evm": { "bytecode": { + "functionDebugData": { + "@_44": { + "entryPoint": null, + "id": 44, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_990": { + "entryPoint": null, + "id": 990, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_afterTokenTransfer_585": { + "entryPoint": 559, + "id": 585, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_574": { + "entryPoint": 554, + "id": 574, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_403": { + "entryPoint": 197, + "id": 403, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 602, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 624, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1559, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 1732, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1597, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 1749, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 824, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 672, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1503, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 1674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1124, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 568, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1086, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 963, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1275, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 842, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 772, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1246, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 954, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1216, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 1629, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 727, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 682, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1002, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 564, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "shift_left_dynamic": { + "entryPoint": 857, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1204, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1058, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e": { + "entryPoint": 1519, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 869, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1011, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 577, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1054, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:8086:17", "nodeType": "YulBlock", - "src": "0:3174:17", + "src": "0:8086:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "70:80:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "80:22:17", + "src": "57:19:17", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "95:6:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "89:5:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "89:13:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "80:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ { "expression": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "138:5:17" + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "validator_revert_t_uint256", + "name": "revert", + "nativeSrc": "187:6:17", "nodeType": "YulIdentifier", - "src": "111:26:17" + "src": "187:6:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulFunctionCall", - "src": "111:33:17" + "src": "187:12:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulExpressionStatement", - "src": "111:33:17" + "src": "187:12:17" } ] }, - "name": "abi_decode_t_uint256_fromMemory", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:32:17", + "nodeType": "YulBlock", + "src": "379:32:17", + "statements": [ + { + "nativeSrc": "389:16:17", + "nodeType": "YulAssignment", + "src": "389:16:17", + "value": { + "name": "value", + "nativeSrc": "400:5:17", + "nodeType": "YulIdentifier", + "src": "400:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "48:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "361:5:17", "nodeType": "YulTypedName", - "src": "56:3:17", + "src": "361:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "371:7:17", "nodeType": "YulTypedName", - "src": "64:5:17", + "src": "371:7:17", "type": "" } ], - "src": "7:143:17" + "src": "334:77:17" }, { "body": { + "nativeSrc": "460:79:17", "nodeType": "YulBlock", - "src": "233:207:17", + "src": "460:79:17", "statements": [ { "body": { + "nativeSrc": "517:16:17", "nodeType": "YulBlock", - "src": "279:16:17", + "src": "517:16:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "526:1:17", "nodeType": "YulLiteral", - "src": "288:1:17", + "src": "526:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "529:1:17", "nodeType": "YulLiteral", - "src": "291:1:17", + "src": "529:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "519:6:17", "nodeType": "YulIdentifier", - "src": "281:6:17" + "src": "519:6:17" }, + "nativeSrc": "519:12:17", "nodeType": "YulFunctionCall", - "src": "281:12:17" + "src": "519:12:17" }, + "nativeSrc": "519:12:17", "nodeType": "YulExpressionStatement", - "src": "281:12:17" + "src": "519:12:17" } ] }, @@ -416,180 +786,107 @@ { "arguments": [ { - "name": "dataEnd", + "name": "value", + "nativeSrc": "483:5:17", "nodeType": "YulIdentifier", - "src": "254:7:17" + "src": "483:5:17" }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "263:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "250:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "250:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "275:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "246:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "246:32:17" - }, - "nodeType": "YulIf", - "src": "243:2:17" - }, - { - "nodeType": "YulBlock", - "src": "305:128:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "320:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "334:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "324:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "349:74:17", - "value": { - "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "395:9:17" - }, - { - "name": "offset", + "name": "value", + "nativeSrc": "508:5:17", "nodeType": "YulIdentifier", - "src": "406:6:17" + "src": "508:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:17", "nodeType": "YulIdentifier", - "src": "391:3:17" + "src": "490:17:17" }, + "nativeSrc": "490:24:17", "nodeType": "YulFunctionCall", - "src": "391:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "415:7:17" + "src": "490:24:17" } ], "functionName": { - "name": "abi_decode_t_uint256_fromMemory", + "name": "eq", + "nativeSrc": "480:2:17", "nodeType": "YulIdentifier", - "src": "359:31:17" + "src": "480:2:17" }, + "nativeSrc": "480:35:17", "nodeType": "YulFunctionCall", - "src": "359:64:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "349:6:17" - } - ] - } - ] + "src": "480:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:17", + "nodeType": "YulIdentifier", + "src": "473:6:17" + }, + "nativeSrc": "473:43:17", + "nodeType": "YulFunctionCall", + "src": "473:43:17" + }, + "nativeSrc": "470:63:17", + "nodeType": "YulIf", + "src": "470:63:17" } ] }, - "name": "abi_decode_tuple_t_uint256_fromMemory", + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "203:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "214:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "value", + "nativeSrc": "453:5:17", "nodeType": "YulTypedName", - "src": "226:6:17", + "src": "453:5:17", "type": "" } ], - "src": "156:284:17" + "src": "417:122:17" }, { "body": { + "nativeSrc": "608:80:17", "nodeType": "YulBlock", - "src": "592:220:17", + "src": "608:80:17", "statements": [ { + "nativeSrc": "618:22:17", "nodeType": "YulAssignment", - "src": "602:74:17", + "src": "618:22:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "633:6:17", "nodeType": "YulIdentifier", - "src": "668:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "673:2:17", - "type": "", - "value": "31" + "src": "633:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "mload", + "nativeSrc": "627:5:17", "nodeType": "YulIdentifier", - "src": "609:58:17" + "src": "627:5:17" }, + "nativeSrc": "627:13:17", "nodeType": "YulFunctionCall", - "src": "609:67:17" + "src": "627:13:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "618:5:17", "nodeType": "YulIdentifier", - "src": "602:3:17" + "src": "618:5:17" } ] }, @@ -597,1422 +894,1784 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "676:5:17", "nodeType": "YulIdentifier", - "src": "774:3:17" + "src": "676:5:17" } ], "functionName": { - "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "name": "validator_revert_t_uint256", + "nativeSrc": "649:26:17", "nodeType": "YulIdentifier", - "src": "685:88:17" + "src": "649:26:17" }, + "nativeSrc": "649:33:17", "nodeType": "YulFunctionCall", - "src": "685:93:17" + "src": "649:33:17" }, + "nativeSrc": "649:33:17", "nodeType": "YulExpressionStatement", - "src": "685:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "787:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "798:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "803:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "794:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "794:12:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "787:3:17" - } - ] + "src": "649:33:17" } ] }, - "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "545:143:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "586:6:17", + "nodeType": "YulTypedName", + "src": "586:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "594:3:17", "nodeType": "YulTypedName", - "src": "580:3:17", + "src": "594:3:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value", + "nativeSrc": "602:5:17", "nodeType": "YulTypedName", - "src": "588:3:17", + "src": "602:5:17", "type": "" } ], - "src": "446:366:17" + "src": "545:143:17" }, { "body": { + "nativeSrc": "771:274:17", "nodeType": "YulBlock", - "src": "883:53:17", + "src": "771:274:17", "statements": [ { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "817:83:17", + "nodeType": "YulBlock", + "src": "817:83:17", + "statements": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "900:3:17" - }, + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "819:77:17", + "nodeType": "YulIdentifier", + "src": "819:77:17" + }, + "nativeSrc": "819:79:17", + "nodeType": "YulFunctionCall", + "src": "819:79:17" + }, + "nativeSrc": "819:79:17", + "nodeType": "YulExpressionStatement", + "src": "819:79:17" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "value", + "name": "dataEnd", + "nativeSrc": "792:7:17", + "nodeType": "YulIdentifier", + "src": "792:7:17" + }, + { + "name": "headStart", + "nativeSrc": "801:9:17", "nodeType": "YulIdentifier", - "src": "923:5:17" + "src": "801:9:17" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "sub", + "nativeSrc": "788:3:17", "nodeType": "YulIdentifier", - "src": "905:17:17" + "src": "788:3:17" }, + "nativeSrc": "788:23:17", "nodeType": "YulFunctionCall", - "src": "905:24:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "893:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "893:37:17" - }, - "nodeType": "YulExpressionStatement", - "src": "893:37:17" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "871:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "878:3:17", - "type": "" - } - ], - "src": "818:118:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1113:248:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1123:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1135:9:17" + "src": "788:23:17" }, { "kind": "number", + "nativeSrc": "813:2:17", "nodeType": "YulLiteral", - "src": "1146:2:17", + "src": "813:2:17", "type": "", "value": "32" } ], "functionName": { - "name": "add", + "name": "slt", + "nativeSrc": "784:3:17", "nodeType": "YulIdentifier", - "src": "1131:3:17" + "src": "784:3:17" }, + "nativeSrc": "784:32:17", "nodeType": "YulFunctionCall", - "src": "1131:18:17" + "src": "784:32:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1123:4:17" - } - ] + "nativeSrc": "781:119:17", + "nodeType": "YulIf", + "src": "781:119:17" }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1170:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1181:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1166:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1166:17:17" + "nativeSrc": "910:128:17", + "nodeType": "YulBlock", + "src": "910:128:17", + "statements": [ + { + "nativeSrc": "925:15:17", + "nodeType": "YulVariableDeclaration", + "src": "925:15:17", + "value": { + "kind": "number", + "nativeSrc": "939:1:17", + "nodeType": "YulLiteral", + "src": "939:1:17", + "type": "", + "value": "0" }, - { + "variables": [ + { + "name": "offset", + "nativeSrc": "929:6:17", + "nodeType": "YulTypedName", + "src": "929:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "954:74:17", + "nodeType": "YulAssignment", + "src": "954:74:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1189:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1000:9:17", + "nodeType": "YulIdentifier", + "src": "1000:9:17" + }, + { + "name": "offset", + "nativeSrc": "1011:6:17", + "nodeType": "YulIdentifier", + "src": "1011:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "996:3:17", + "nodeType": "YulIdentifier", + "src": "996:3:17" + }, + "nativeSrc": "996:22:17", + "nodeType": "YulFunctionCall", + "src": "996:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "1020:7:17", "nodeType": "YulIdentifier", - "src": "1195:9:17" + "src": "1020:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "964:31:17", "nodeType": "YulIdentifier", - "src": "1185:3:17" + "src": "964:31:17" }, + "nativeSrc": "964:64:17", "nodeType": "YulFunctionCall", - "src": "1185:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1159:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1159:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1159:47:17" - }, + "src": "964:64:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "954:6:17", + "nodeType": "YulIdentifier", + "src": "954:6:17" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "694:351:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "741:9:17", + "nodeType": "YulTypedName", + "src": "741:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "752:7:17", + "nodeType": "YulTypedName", + "src": "752:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "764:6:17", + "nodeType": "YulTypedName", + "src": "764:6:17", + "type": "" + } + ], + "src": "694:351:17" + }, + { + "body": { + "nativeSrc": "1110:40:17", + "nodeType": "YulBlock", + "src": "1110:40:17", + "statements": [ { + "nativeSrc": "1121:22:17", "nodeType": "YulAssignment", - "src": "1215:139:17", + "src": "1121:22:17", "value": { "arguments": [ { - "name": "tail", + "name": "value", + "nativeSrc": "1137:5:17", "nodeType": "YulIdentifier", - "src": "1349:4:17" + "src": "1137:5:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "name": "mload", + "nativeSrc": "1131:5:17", "nodeType": "YulIdentifier", - "src": "1223:124:17" + "src": "1131:5:17" }, + "nativeSrc": "1131:12:17", "nodeType": "YulFunctionCall", - "src": "1223:131:17" + "src": "1131:12:17" }, "variableNames": [ { - "name": "tail", + "name": "length", + "nativeSrc": "1121:6:17", "nodeType": "YulIdentifier", - "src": "1215:4:17" + "src": "1121:6:17" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1051:99:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "1093:5:17", "nodeType": "YulTypedName", - "src": "1093:9:17", + "src": "1093:5:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "length", + "nativeSrc": "1103:6:17", "nodeType": "YulTypedName", - "src": "1108:4:17", + "src": "1103:6:17", "type": "" } ], - "src": "942:419:17" + "src": "1051:99:17" }, { "body": { + "nativeSrc": "1184:152:17", "nodeType": "YulBlock", - "src": "1465:124:17", + "src": "1184:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "1475:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1487:9:17" + "kind": "number", + "nativeSrc": "1201:1:17", + "nodeType": "YulLiteral", + "src": "1201:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "1204:77:17", "nodeType": "YulLiteral", - "src": "1498:2:17", + "src": "1204:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "1194:6:17", "nodeType": "YulIdentifier", - "src": "1483:3:17" + "src": "1194:6:17" }, + "nativeSrc": "1194:88:17", "nodeType": "YulFunctionCall", - "src": "1483:18:17" + "src": "1194:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1475:4:17" - } - ] + "nativeSrc": "1194:88:17", + "nodeType": "YulExpressionStatement", + "src": "1194:88:17" }, { "expression": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1555:6:17" + "kind": "number", + "nativeSrc": "1298:1:17", + "nodeType": "YulLiteral", + "src": "1298:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1568:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1579:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1564:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1564:17:17" + "kind": "number", + "nativeSrc": "1301:4:17", + "nodeType": "YulLiteral", + "src": "1301:4:17", + "type": "", + "value": "0x41" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "mstore", + "nativeSrc": "1291:6:17", + "nodeType": "YulIdentifier", + "src": "1291:6:17" + }, + "nativeSrc": "1291:15:17", + "nodeType": "YulFunctionCall", + "src": "1291:15:17" + }, + "nativeSrc": "1291:15:17", + "nodeType": "YulExpressionStatement", + "src": "1291:15:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1322:1:17", + "nodeType": "YulLiteral", + "src": "1322:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1325:4:17", + "nodeType": "YulLiteral", + "src": "1325:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1315:6:17", "nodeType": "YulIdentifier", - "src": "1511:43:17" + "src": "1315:6:17" }, + "nativeSrc": "1315:15:17", "nodeType": "YulFunctionCall", - "src": "1511:71:17" + "src": "1315:15:17" }, + "nativeSrc": "1315:15:17", "nodeType": "YulExpressionStatement", - "src": "1511:71:17" + "src": "1315:15:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "panic_error_0x41", + "nativeSrc": "1156:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1437:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1449:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "1460:4:17", - "type": "" - } - ], - "src": "1367:222:17" + "src": "1156:180:17" }, { "body": { + "nativeSrc": "1370:152:17", "nodeType": "YulBlock", - "src": "1691:73:17", + "src": "1370:152:17", "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1708:3:17" + "kind": "number", + "nativeSrc": "1387:1:17", + "nodeType": "YulLiteral", + "src": "1387:1:17", + "type": "", + "value": "0" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1713:6:17" + "kind": "number", + "nativeSrc": "1390:77:17", + "nodeType": "YulLiteral", + "src": "1390:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", + "nativeSrc": "1380:6:17", "nodeType": "YulIdentifier", - "src": "1701:6:17" + "src": "1380:6:17" }, + "nativeSrc": "1380:88:17", "nodeType": "YulFunctionCall", - "src": "1701:19:17" + "src": "1380:88:17" }, + "nativeSrc": "1380:88:17", "nodeType": "YulExpressionStatement", - "src": "1701:19:17" + "src": "1380:88:17" }, { - "nodeType": "YulAssignment", - "src": "1729:29:17", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1748:3:17" + "kind": "number", + "nativeSrc": "1484:1:17", + "nodeType": "YulLiteral", + "src": "1484:1:17", + "type": "", + "value": "4" }, { "kind": "number", + "nativeSrc": "1487:4:17", "nodeType": "YulLiteral", - "src": "1753:4:17", + "src": "1487:4:17", "type": "", - "value": "0x20" + "value": "0x22" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "1477:6:17", "nodeType": "YulIdentifier", - "src": "1744:3:17" + "src": "1477:6:17" }, + "nativeSrc": "1477:15:17", "nodeType": "YulFunctionCall", - "src": "1744:14:17" + "src": "1477:15:17" }, - "variableNames": [ - { - "name": "updated_pos", + "nativeSrc": "1477:15:17", + "nodeType": "YulExpressionStatement", + "src": "1477:15:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1508:1:17", + "nodeType": "YulLiteral", + "src": "1508:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1511:4:17", + "nodeType": "YulLiteral", + "src": "1511:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1501:6:17", "nodeType": "YulIdentifier", - "src": "1729:11:17" - } - ] + "src": "1501:6:17" + }, + "nativeSrc": "1501:15:17", + "nodeType": "YulFunctionCall", + "src": "1501:15:17" + }, + "nativeSrc": "1501:15:17", + "nodeType": "YulExpressionStatement", + "src": "1501:15:17" } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "panic_error_0x22", + "nativeSrc": "1342:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1663:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1668:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "1679:11:17", - "type": "" - } - ], - "src": "1595:169:17" + "src": "1342:180:17" }, { "body": { + "nativeSrc": "1579:269:17", "nodeType": "YulBlock", - "src": "1814:261:17", + "src": "1579:269:17", "statements": [ { + "nativeSrc": "1589:22:17", "nodeType": "YulAssignment", - "src": "1824:25:17", + "src": "1589:22:17", "value": { "arguments": [ { - "name": "x", + "name": "data", + "nativeSrc": "1603:4:17", "nodeType": "YulIdentifier", - "src": "1847:1:17" + "src": "1603:4:17" + }, + { + "kind": "number", + "nativeSrc": "1609:1:17", + "nodeType": "YulLiteral", + "src": "1609:1:17", + "type": "", + "value": "2" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "div", + "nativeSrc": "1599:3:17", "nodeType": "YulIdentifier", - "src": "1829:17:17" + "src": "1599:3:17" }, + "nativeSrc": "1599:12:17", "nodeType": "YulFunctionCall", - "src": "1829:20:17" + "src": "1599:12:17" }, "variableNames": [ { - "name": "x", + "name": "length", + "nativeSrc": "1589:6:17", "nodeType": "YulIdentifier", - "src": "1824:1:17" + "src": "1589:6:17" } ] }, { - "nodeType": "YulAssignment", - "src": "1858:25:17", + "nativeSrc": "1620:38:17", + "nodeType": "YulVariableDeclaration", + "src": "1620:38:17", "value": { "arguments": [ { - "name": "y", + "name": "data", + "nativeSrc": "1650:4:17", "nodeType": "YulIdentifier", - "src": "1881:1:17" + "src": "1650:4:17" + }, + { + "kind": "number", + "nativeSrc": "1656:1:17", + "nodeType": "YulLiteral", + "src": "1656:1:17", + "type": "", + "value": "1" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "and", + "nativeSrc": "1646:3:17", "nodeType": "YulIdentifier", - "src": "1863:17:17" + "src": "1646:3:17" }, + "nativeSrc": "1646:12:17", "nodeType": "YulFunctionCall", - "src": "1863:20:17" + "src": "1646:12:17" }, - "variableNames": [ + "variables": [ { - "name": "y", - "nodeType": "YulIdentifier", - "src": "1858:1:17" + "name": "outOfPlaceEncoding", + "nativeSrc": "1624:18:17", + "nodeType": "YulTypedName", + "src": "1624:18:17", + "type": "" } ] }, { "body": { + "nativeSrc": "1697:51:17", + "nodeType": "YulBlock", + "src": "1697:51:17", + "statements": [ + { + "nativeSrc": "1711:27:17", + "nodeType": "YulAssignment", + "src": "1711:27:17", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1725:6:17", + "nodeType": "YulIdentifier", + "src": "1725:6:17" + }, + { + "kind": "number", + "nativeSrc": "1733:4:17", + "nodeType": "YulLiteral", + "src": "1733:4:17", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1721:3:17", + "nodeType": "YulIdentifier", + "src": "1721:3:17" + }, + "nativeSrc": "1721:17:17", + "nodeType": "YulFunctionCall", + "src": "1721:17:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1711:6:17", + "nodeType": "YulIdentifier", + "src": "1711:6:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "1677:18:17", + "nodeType": "YulIdentifier", + "src": "1677:18:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1670:6:17", + "nodeType": "YulIdentifier", + "src": "1670:6:17" + }, + "nativeSrc": "1670:26:17", + "nodeType": "YulFunctionCall", + "src": "1670:26:17" + }, + "nativeSrc": "1667:81:17", + "nodeType": "YulIf", + "src": "1667:81:17" + }, + { + "body": { + "nativeSrc": "1800:42:17", "nodeType": "YulBlock", - "src": "2021:22:17", + "src": "1800:42:17", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x11", + "name": "panic_error_0x22", + "nativeSrc": "1814:16:17", "nodeType": "YulIdentifier", - "src": "2023:16:17" + "src": "1814:16:17" }, + "nativeSrc": "1814:18:17", "nodeType": "YulFunctionCall", - "src": "2023:18:17" + "src": "1814:18:17" }, + "nativeSrc": "1814:18:17", "nodeType": "YulExpressionStatement", - "src": "2023:18:17" + "src": "1814:18:17" } ] }, "condition": { "arguments": [ { - "name": "x", + "name": "outOfPlaceEncoding", + "nativeSrc": "1764:18:17", "nodeType": "YulIdentifier", - "src": "1942:1:17" + "src": "1764:18:17" }, { "arguments": [ + { + "name": "length", + "nativeSrc": "1787:6:17", + "nodeType": "YulIdentifier", + "src": "1787:6:17" + }, { "kind": "number", + "nativeSrc": "1795:2:17", "nodeType": "YulLiteral", - "src": "1949:66:17", + "src": "1795:2:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "2017:1:17" + "value": "32" } ], "functionName": { - "name": "sub", + "name": "lt", + "nativeSrc": "1784:2:17", "nodeType": "YulIdentifier", - "src": "1945:3:17" + "src": "1784:2:17" }, + "nativeSrc": "1784:14:17", "nodeType": "YulFunctionCall", - "src": "1945:74:17" + "src": "1784:14:17" } ], "functionName": { - "name": "gt", + "name": "eq", + "nativeSrc": "1761:2:17", "nodeType": "YulIdentifier", - "src": "1939:2:17" + "src": "1761:2:17" }, + "nativeSrc": "1761:38:17", "nodeType": "YulFunctionCall", - "src": "1939:81:17" + "src": "1761:38:17" }, + "nativeSrc": "1758:84:17", "nodeType": "YulIf", - "src": "1936:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "2053:16:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "2064:1:17" - }, - { - "name": "y", + "src": "1758:84:17" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "1528:320:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "1563:4:17", + "nodeType": "YulTypedName", + "src": "1563:4:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1572:6:17", + "nodeType": "YulTypedName", + "src": "1572:6:17", + "type": "" + } + ], + "src": "1528:320:17" + }, + { + "body": { + "nativeSrc": "1908:87:17", + "nodeType": "YulBlock", + "src": "1908:87:17", + "statements": [ + { + "nativeSrc": "1918:11:17", + "nodeType": "YulAssignment", + "src": "1918:11:17", + "value": { + "name": "ptr", + "nativeSrc": "1926:3:17", + "nodeType": "YulIdentifier", + "src": "1926:3:17" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "1918:4:17", + "nodeType": "YulIdentifier", + "src": "1918:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1946:1:17", + "nodeType": "YulLiteral", + "src": "1946:1:17", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "1949:3:17", "nodeType": "YulIdentifier", - "src": "2067:1:17" + "src": "1949:3:17" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "1939:6:17", + "nodeType": "YulIdentifier", + "src": "1939:6:17" + }, + "nativeSrc": "1939:14:17", + "nodeType": "YulFunctionCall", + "src": "1939:14:17" + }, + "nativeSrc": "1939:14:17", + "nodeType": "YulExpressionStatement", + "src": "1939:14:17" + }, + { + "nativeSrc": "1962:26:17", + "nodeType": "YulAssignment", + "src": "1962:26:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1980:1:17", + "nodeType": "YulLiteral", + "src": "1980:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1983:4:17", + "nodeType": "YulLiteral", + "src": "1983:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "1970:9:17", "nodeType": "YulIdentifier", - "src": "2060:3:17" + "src": "1970:9:17" }, + "nativeSrc": "1970:18:17", "nodeType": "YulFunctionCall", - "src": "2060:9:17" + "src": "1970:18:17" }, "variableNames": [ { - "name": "sum", + "name": "data", + "nativeSrc": "1962:4:17", "nodeType": "YulIdentifier", - "src": "2053:3:17" + "src": "1962:4:17" } ] } ] }, - "name": "checked_add_t_uint256", + "name": "array_dataslot_t_string_storage", + "nativeSrc": "1854:141:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "x", + "name": "ptr", + "nativeSrc": "1895:3:17", "nodeType": "YulTypedName", - "src": "1801:1:17", + "src": "1895:3:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "y", + "name": "data", + "nativeSrc": "1903:4:17", + "nodeType": "YulTypedName", + "src": "1903:4:17", + "type": "" + } + ], + "src": "1854:141:17" + }, + { + "body": { + "nativeSrc": "2045:49:17", + "nodeType": "YulBlock", + "src": "2045:49:17", + "statements": [ + { + "nativeSrc": "2055:33:17", + "nodeType": "YulAssignment", + "src": "2055:33:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2073:5:17", + "nodeType": "YulIdentifier", + "src": "2073:5:17" + }, + { + "kind": "number", + "nativeSrc": "2080:2:17", + "nodeType": "YulLiteral", + "src": "2080:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2069:3:17", + "nodeType": "YulIdentifier", + "src": "2069:3:17" + }, + "nativeSrc": "2069:14:17", + "nodeType": "YulFunctionCall", + "src": "2069:14:17" + }, + { + "kind": "number", + "nativeSrc": "2085:2:17", + "nodeType": "YulLiteral", + "src": "2085:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "2065:3:17", + "nodeType": "YulIdentifier", + "src": "2065:3:17" + }, + "nativeSrc": "2065:23:17", + "nodeType": "YulFunctionCall", + "src": "2065:23:17" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2055:6:17", + "nodeType": "YulIdentifier", + "src": "2055:6:17" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "2001:93:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2028:5:17", "nodeType": "YulTypedName", - "src": "1804:1:17", + "src": "2028:5:17", "type": "" } ], "returnVariables": [ { - "name": "sum", + "name": "result", + "nativeSrc": "2038:6:17", "nodeType": "YulTypedName", - "src": "1810:3:17", + "src": "2038:6:17", "type": "" } ], - "src": "1770:305:17" + "src": "2001:93:17" }, { "body": { + "nativeSrc": "2153:54:17", "nodeType": "YulBlock", - "src": "2126:32:17", + "src": "2153:54:17", "statements": [ { + "nativeSrc": "2163:37:17", "nodeType": "YulAssignment", - "src": "2136:16:17", + "src": "2163:37:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2147:5:17" + "arguments": [ + { + "name": "bits", + "nativeSrc": "2188:4:17", + "nodeType": "YulIdentifier", + "src": "2188:4:17" + }, + { + "name": "value", + "nativeSrc": "2194:5:17", + "nodeType": "YulIdentifier", + "src": "2194:5:17" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2184:3:17", + "nodeType": "YulIdentifier", + "src": "2184:3:17" + }, + "nativeSrc": "2184:16:17", + "nodeType": "YulFunctionCall", + "src": "2184:16:17" }, "variableNames": [ { - "name": "cleaned", + "name": "newValue", + "nativeSrc": "2163:8:17", "nodeType": "YulIdentifier", - "src": "2136:7:17" + "src": "2163:8:17" } ] } ] }, - "name": "cleanup_t_uint256", + "name": "shift_left_dynamic", + "nativeSrc": "2100:107:17", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "bits", + "nativeSrc": "2128:4:17", + "nodeType": "YulTypedName", + "src": "2128:4:17", + "type": "" + }, { "name": "value", + "nativeSrc": "2134:5:17", "nodeType": "YulTypedName", - "src": "2108:5:17", + "src": "2134:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "newValue", + "nativeSrc": "2144:8:17", "nodeType": "YulTypedName", - "src": "2118:7:17", + "src": "2144:8:17", "type": "" } ], - "src": "2081:77:17" + "src": "2100:107:17" }, { "body": { + "nativeSrc": "2289:317:17", "nodeType": "YulBlock", - "src": "2215:269:17", + "src": "2289:317:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "2225:22:17", + "nativeSrc": "2299:35:17", + "nodeType": "YulVariableDeclaration", + "src": "2299:35:17", "value": { "arguments": [ { - "name": "data", + "name": "shiftBytes", + "nativeSrc": "2320:10:17", "nodeType": "YulIdentifier", - "src": "2239:4:17" + "src": "2320:10:17" }, { "kind": "number", + "nativeSrc": "2332:1:17", "nodeType": "YulLiteral", - "src": "2245:1:17", + "src": "2332:1:17", "type": "", - "value": "2" + "value": "8" } ], "functionName": { - "name": "div", + "name": "mul", + "nativeSrc": "2316:3:17", "nodeType": "YulIdentifier", - "src": "2235:3:17" + "src": "2316:3:17" }, + "nativeSrc": "2316:18:17", "nodeType": "YulFunctionCall", - "src": "2235:12:17" + "src": "2316:18:17" }, - "variableNames": [ + "variables": [ { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2225:6:17" + "name": "shiftBits", + "nativeSrc": "2303:9:17", + "nodeType": "YulTypedName", + "src": "2303:9:17", + "type": "" } ] }, { + "nativeSrc": "2343:109:17", "nodeType": "YulVariableDeclaration", - "src": "2256:38:17", + "src": "2343:109:17", "value": { "arguments": [ { - "name": "data", + "name": "shiftBits", + "nativeSrc": "2374:9:17", "nodeType": "YulIdentifier", - "src": "2286:4:17" + "src": "2374:9:17" }, { "kind": "number", + "nativeSrc": "2385:66:17", "nodeType": "YulLiteral", - "src": "2292:1:17", + "src": "2385:66:17", "type": "", - "value": "1" + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "and", + "name": "shift_left_dynamic", + "nativeSrc": "2355:18:17", "nodeType": "YulIdentifier", - "src": "2282:3:17" + "src": "2355:18:17" }, + "nativeSrc": "2355:97:17", "nodeType": "YulFunctionCall", - "src": "2282:12:17" + "src": "2355:97:17" }, "variables": [ { - "name": "outOfPlaceEncoding", + "name": "mask", + "nativeSrc": "2347:4:17", "nodeType": "YulTypedName", - "src": "2260:18:17", + "src": "2347:4:17", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "2333:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2347:27:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2361:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2369:4:17", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2357:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2357:17:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2347:6:17" - } - ] - } - ] - }, - "condition": { + "nativeSrc": "2461:51:17", + "nodeType": "YulAssignment", + "src": "2461:51:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "shiftBits", + "nativeSrc": "2492:9:17", + "nodeType": "YulIdentifier", + "src": "2492:9:17" + }, + { + "name": "toInsert", + "nativeSrc": "2503:8:17", "nodeType": "YulIdentifier", - "src": "2313:18:17" + "src": "2503:8:17" } ], "functionName": { - "name": "iszero", + "name": "shift_left_dynamic", + "nativeSrc": "2473:18:17", "nodeType": "YulIdentifier", - "src": "2306:6:17" + "src": "2473:18:17" }, + "nativeSrc": "2473:39:17", "nodeType": "YulFunctionCall", - "src": "2306:26:17" + "src": "2473:39:17" }, - "nodeType": "YulIf", - "src": "2303:2:17" + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "2461:8:17", + "nodeType": "YulIdentifier", + "src": "2461:8:17" + } + ] }, { - "body": { - "nodeType": "YulBlock", - "src": "2436:42:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "2450:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "2450:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2450:18:17" - } - ] - }, - "condition": { + "nativeSrc": "2521:30:17", + "nodeType": "YulAssignment", + "src": "2521:30:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "value", + "nativeSrc": "2534:5:17", "nodeType": "YulIdentifier", - "src": "2400:18:17" + "src": "2534:5:17" }, { "arguments": [ { - "name": "length", + "name": "mask", + "nativeSrc": "2545:4:17", "nodeType": "YulIdentifier", - "src": "2423:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2431:2:17", - "type": "", - "value": "32" + "src": "2545:4:17" } ], "functionName": { - "name": "lt", + "name": "not", + "nativeSrc": "2541:3:17", "nodeType": "YulIdentifier", - "src": "2420:2:17" + "src": "2541:3:17" }, + "nativeSrc": "2541:9:17", "nodeType": "YulFunctionCall", - "src": "2420:14:17" + "src": "2541:9:17" } ], "functionName": { - "name": "eq", + "name": "and", + "nativeSrc": "2530:3:17", "nodeType": "YulIdentifier", - "src": "2397:2:17" + "src": "2530:3:17" }, + "nativeSrc": "2530:21:17", "nodeType": "YulFunctionCall", - "src": "2397:38:17" + "src": "2530:21:17" }, - "nodeType": "YulIf", - "src": "2394:2:17" + "variableNames": [ + { + "name": "value", + "nativeSrc": "2521:5:17", + "nodeType": "YulIdentifier", + "src": "2521:5:17" + } + ] + }, + { + "nativeSrc": "2560:40:17", + "nodeType": "YulAssignment", + "src": "2560:40:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2573:5:17", + "nodeType": "YulIdentifier", + "src": "2573:5:17" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "2584:8:17", + "nodeType": "YulIdentifier", + "src": "2584:8:17" + }, + { + "name": "mask", + "nativeSrc": "2594:4:17", + "nodeType": "YulIdentifier", + "src": "2594:4:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2580:3:17", + "nodeType": "YulIdentifier", + "src": "2580:3:17" + }, + "nativeSrc": "2580:19:17", + "nodeType": "YulFunctionCall", + "src": "2580:19:17" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2570:2:17", + "nodeType": "YulIdentifier", + "src": "2570:2:17" + }, + "nativeSrc": "2570:30:17", + "nodeType": "YulFunctionCall", + "src": "2570:30:17" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2560:6:17", + "nodeType": "YulIdentifier", + "src": "2560:6:17" + } + ] } ] }, - "name": "extract_byte_array_length", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "2213:393:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "value", + "nativeSrc": "2250:5:17", + "nodeType": "YulTypedName", + "src": "2250:5:17", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "2257:10:17", + "nodeType": "YulTypedName", + "src": "2257:10:17", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "2269:8:17", "nodeType": "YulTypedName", - "src": "2199:4:17", + "src": "2269:8:17", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "result", + "nativeSrc": "2282:6:17", "nodeType": "YulTypedName", - "src": "2208:6:17", + "src": "2282:6:17", "type": "" } ], - "src": "2164:320:17" + "src": "2213:393:17" }, { "body": { + "nativeSrc": "2644:28:17", "nodeType": "YulBlock", - "src": "2518:152:17", + "src": "2644:28:17", "statements": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2535:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2538:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2528:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2528:88:17" + "nativeSrc": "2654:12:17", + "nodeType": "YulAssignment", + "src": "2654:12:17", + "value": { + "name": "value", + "nativeSrc": "2661:5:17", + "nodeType": "YulIdentifier", + "src": "2661:5:17" }, - "nodeType": "YulExpressionStatement", - "src": "2528:88:17" - }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "2654:3:17", + "nodeType": "YulIdentifier", + "src": "2654:3:17" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "2612:60:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2630:5:17", + "nodeType": "YulTypedName", + "src": "2630:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "2640:3:17", + "nodeType": "YulTypedName", + "src": "2640:3:17", + "type": "" + } + ], + "src": "2612:60:17" + }, + { + "body": { + "nativeSrc": "2738:82:17", + "nodeType": "YulBlock", + "src": "2738:82:17", + "statements": [ { - "expression": { + "nativeSrc": "2748:66:17", + "nodeType": "YulAssignment", + "src": "2748:66:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2632:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2635:4:17", - "type": "", - "value": "0x11" + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2806:5:17", + "nodeType": "YulIdentifier", + "src": "2806:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2788:17:17", + "nodeType": "YulIdentifier", + "src": "2788:17:17" + }, + "nativeSrc": "2788:24:17", + "nodeType": "YulFunctionCall", + "src": "2788:24:17" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "2779:8:17", + "nodeType": "YulIdentifier", + "src": "2779:8:17" + }, + "nativeSrc": "2779:34:17", + "nodeType": "YulFunctionCall", + "src": "2779:34:17" } ], "functionName": { - "name": "mstore", + "name": "cleanup_t_uint256", + "nativeSrc": "2761:17:17", "nodeType": "YulIdentifier", - "src": "2625:6:17" + "src": "2761:17:17" }, + "nativeSrc": "2761:53:17", "nodeType": "YulFunctionCall", - "src": "2625:15:17" + "src": "2761:53:17" }, - "nodeType": "YulExpressionStatement", - "src": "2625:15:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2656:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2659:4:17", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", + "variableNames": [ + { + "name": "converted", + "nativeSrc": "2748:9:17", "nodeType": "YulIdentifier", - "src": "2649:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2649:15:17" + "src": "2748:9:17" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "2678:142:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2718:5:17", + "nodeType": "YulTypedName", + "src": "2718:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "2728:9:17", + "nodeType": "YulTypedName", + "src": "2728:9:17", + "type": "" + } + ], + "src": "2678:142:17" + }, + { + "body": { + "nativeSrc": "2873:28:17", + "nodeType": "YulBlock", + "src": "2873:28:17", + "statements": [ + { + "nativeSrc": "2883:12:17", + "nodeType": "YulAssignment", + "src": "2883:12:17", + "value": { + "name": "value", + "nativeSrc": "2890:5:17", + "nodeType": "YulIdentifier", + "src": "2890:5:17" }, - "nodeType": "YulExpressionStatement", - "src": "2649:15:17" + "variableNames": [ + { + "name": "ret", + "nativeSrc": "2883:3:17", + "nodeType": "YulIdentifier", + "src": "2883:3:17" + } + ] } ] }, - "name": "panic_error_0x11", + "name": "prepare_store_t_uint256", + "nativeSrc": "2826:75:17", "nodeType": "YulFunctionDefinition", - "src": "2490:180:17" + "parameters": [ + { + "name": "value", + "nativeSrc": "2859:5:17", + "nodeType": "YulTypedName", + "src": "2859:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "2869:3:17", + "nodeType": "YulTypedName", + "src": "2869:3:17", + "type": "" + } + ], + "src": "2826:75:17" }, { "body": { + "nativeSrc": "2983:193:17", "nodeType": "YulBlock", - "src": "2704:152:17", + "src": "2983:193:17", "statements": [ { - "expression": { + "nativeSrc": "2993:63:17", + "nodeType": "YulVariableDeclaration", + "src": "2993:63:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2721:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2724:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "name": "value_0", + "nativeSrc": "3048:7:17", + "nodeType": "YulIdentifier", + "src": "3048:7:17" } ], "functionName": { - "name": "mstore", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "3017:30:17", "nodeType": "YulIdentifier", - "src": "2714:6:17" + "src": "3017:30:17" }, + "nativeSrc": "3017:39:17", "nodeType": "YulFunctionCall", - "src": "2714:88:17" + "src": "3017:39:17" }, - "nodeType": "YulExpressionStatement", - "src": "2714:88:17" + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "2997:16:17", + "nodeType": "YulTypedName", + "src": "2997:16:17", + "type": "" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2818:1:17", - "type": "", - "value": "4" + "name": "slot", + "nativeSrc": "3072:4:17", + "nodeType": "YulIdentifier", + "src": "3072:4:17" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2821:4:17", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2811:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2811:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2811:15:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2842:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2845:4:17", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2835:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2835:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2835:15:17" - } - ] - }, - "name": "panic_error_0x22", - "nodeType": "YulFunctionDefinition", - "src": "2676:180:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2968:75:17", - "statements": [ - { - "expression": { - "arguments": [ { "arguments": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2990:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2998:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2986:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2986:14:17" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "3002:33:17", - "type": "", - "value": "ERC20: mint to the zero address" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2979:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2979:57:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2979:57:17" - } - ] - }, - "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "2960:6:17", - "type": "" - } - ], - "src": "2862:181:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3092:79:17", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "3149:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3158:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "slot", + "nativeSrc": "3112:4:17", + "nodeType": "YulIdentifier", + "src": "3112:4:17" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "3106:5:17", + "nodeType": "YulIdentifier", + "src": "3106:5:17" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3161:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3151:6:17" + "nativeSrc": "3106:11:17", + "nodeType": "YulFunctionCall", + "src": "3106:11:17" }, - "nodeType": "YulFunctionCall", - "src": "3151:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "3151:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ { - "name": "value", + "name": "offset", + "nativeSrc": "3119:6:17", "nodeType": "YulIdentifier", - "src": "3115:5:17" + "src": "3119:6:17" }, { "arguments": [ { - "name": "value", + "name": "convertedValue_0", + "nativeSrc": "3151:16:17", "nodeType": "YulIdentifier", - "src": "3140:5:17" + "src": "3151:16:17" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "prepare_store_t_uint256", + "nativeSrc": "3127:23:17", "nodeType": "YulIdentifier", - "src": "3122:17:17" + "src": "3127:23:17" }, + "nativeSrc": "3127:41:17", "nodeType": "YulFunctionCall", - "src": "3122:24:17" + "src": "3127:41:17" } ], "functionName": { - "name": "eq", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "3078:27:17", "nodeType": "YulIdentifier", - "src": "3112:2:17" + "src": "3078:27:17" }, + "nativeSrc": "3078:91:17", "nodeType": "YulFunctionCall", - "src": "3112:35:17" + "src": "3078:91:17" } ], "functionName": { - "name": "iszero", + "name": "sstore", + "nativeSrc": "3065:6:17", "nodeType": "YulIdentifier", - "src": "3105:6:17" + "src": "3065:6:17" }, + "nativeSrc": "3065:105:17", "nodeType": "YulFunctionCall", - "src": "3105:43:17" + "src": "3065:105:17" }, - "nodeType": "YulIf", - "src": "3102:2:17" + "nativeSrc": "3065:105:17", + "nodeType": "YulExpressionStatement", + "src": "3065:105:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "2907:269:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "slot", + "nativeSrc": "2960:4:17", + "nodeType": "YulTypedName", + "src": "2960:4:17", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "2966:6:17", + "nodeType": "YulTypedName", + "src": "2966:6:17", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "2974:7:17", "nodeType": "YulTypedName", - "src": "3085:5:17", + "src": "2974:7:17", "type": "" } ], - "src": "3049:122:17" - } - ] - }, - "contents": "{\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", - "id": 17, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051620017b7380380620017b7833981810160405281019062000037919062000313565b6040518060800160405280605881526020016200175f605891396040518060400160405280600981526020017f54657374546f6b656e000000000000000000000000000000000000000000000081525081600390805190602001906200009f9291906200024c565b508060049080519060200190620000b89291906200024c565b505050620000cd3382620000d460201b60201c565b5062000505565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000147576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013e9062000377565b60405180910390fd5b6200015b600083836200024260201b60201c565b80600260008282546200016f9190620003c7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000222919062000399565b60405180910390a36200023e600083836200024760201b60201c565b5050565b505050565b505050565b8280546200025a906200042e565b90600052602060002090601f0160209004810192826200027e5760008555620002ca565b82601f106200029957805160ff1916838001178555620002ca565b82800160010185558215620002ca579182015b82811115620002c9578251825591602001919060010190620002ac565b5b509050620002d99190620002dd565b5090565b5b80821115620002f8576000816000905550600101620002de565b5090565b6000815190506200030d81620004eb565b92915050565b6000602082840312156200032657600080fd5b60006200033684828501620002fc565b91505092915050565b60006200034e601f83620003b6565b91506200035b82620004c2565b602082019050919050565b620003718162000424565b82525050565b6000602082019050818103600083015262000392816200033f565b9050919050565b6000602082019050620003b0600083018462000366565b92915050565b600082825260208201905092915050565b6000620003d48262000424565b9150620003e18362000424565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000419576200041862000464565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200044757607f821691505b602082108114156200045e576200045d62000493565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620004f68162000424565b81146200050257600080fd5b50565b61124a80620005156000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006011905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea26469706673582212208fb6e257320276cbed5b9e1f6e99df5763e4b0490a89404815bcef8fab15c40964736f6c634300080200336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x17B7 CODESIZE SUB DUP1 PUSH3 0x17B7 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x313 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x58 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x175F PUSH1 0x58 SWAP2 CODECOPY PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x54657374546F6B656E0000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x9F SWAP3 SWAP2 SWAP1 PUSH3 0x24C JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0xB8 SWAP3 SWAP2 SWAP1 PUSH3 0x24C JUMP JUMPDEST POP POP POP PUSH3 0xCD CALLER DUP3 PUSH3 0xD4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x505 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH3 0x147 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x13E SWAP1 PUSH3 0x377 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15B PUSH1 0x0 DUP4 DUP4 PUSH3 0x242 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x16F SWAP2 SWAP1 PUSH3 0x3C7 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x222 SWAP2 SWAP1 PUSH3 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x23E PUSH1 0x0 DUP4 DUP4 PUSH3 0x247 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x25A SWAP1 PUSH3 0x42E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x27E JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x2CA JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x299 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x2CA JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x2CA JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x2C9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x2AC JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x2D9 SWAP2 SWAP1 PUSH3 0x2DD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x2F8 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x2DE JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x30D DUP2 PUSH3 0x4EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x336 DUP5 DUP3 DUP6 ADD PUSH3 0x2FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x34E PUSH1 0x1F DUP4 PUSH3 0x3B6 JUMP JUMPDEST SWAP2 POP PUSH3 0x35B DUP3 PUSH3 0x4C2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x371 DUP2 PUSH3 0x424 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x392 DUP2 PUSH3 0x33F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x3B0 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x366 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3D4 DUP3 PUSH3 0x424 JUMP JUMPDEST SWAP2 POP PUSH3 0x3E1 DUP4 PUSH3 0x424 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH3 0x419 JUMPI PUSH3 0x418 PUSH3 0x464 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x447 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x45E JUMPI PUSH3 0x45D PUSH3 0x493 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH3 0x4F6 DUP2 PUSH3 0x424 JUMP JUMPDEST DUP2 EQ PUSH3 0x502 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x124A DUP1 PUSH3 0x515 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xB0F JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xE2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xAAA JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B1 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x427 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60E SWAP1 PUSH2 0xDD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67E SWAP1 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x765 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77E DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F8 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x86E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x865 SWAP1 PUSH2 0xDB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP1 PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E9 DUP4 DUP4 DUP4 PUSH2 0xA76 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA70 DUP5 DUP5 DUP5 PUSH2 0xA7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8F DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAA4 DUP2 PUSH2 0x11FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP5 DUP3 DUP6 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB05 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB43 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB54 DUP7 DUP3 DUP8 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB7F DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB90 DUP6 DUP3 DUP7 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA3 DUP2 PUSH2 0xECC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB4 DUP3 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0xBBE DUP2 DUP6 PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF0F JUMP JUMPDEST PUSH2 0xBD7 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBEF PUSH1 0x23 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFA DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 PUSH1 0x22 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC1D DUP3 PUSH2 0x1032 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC35 PUSH1 0x1D DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC40 DUP3 PUSH2 0x1081 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x26 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC63 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC86 DUP3 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH1 0x24 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCA9 DUP3 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCCC DUP3 PUSH2 0x1197 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE0 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xCEF DUP2 PUSH2 0xF02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD2A DUP2 DUP5 PUSH2 0xBA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD4B DUP2 PUSH2 0xBE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD6B DUP2 PUSH2 0xC05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xC28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDAB DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDCB DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDEB DUP2 PUSH2 0xC91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0B DUP2 PUSH2 0xCB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6F DUP3 PUSH2 0xEF8 JUMP JUMPDEST SWAP2 POP PUSH2 0xE7A DUP4 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH2 0xEAE PUSH2 0xF74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEC5 DUP3 PUSH2 0xED8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF2D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF12 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xF5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xF6E JUMPI PUSH2 0xF6D PUSH2 0xFA3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x11EF DUP2 PUSH2 0xEBA JUMP JUMPDEST DUP2 EQ PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1206 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 0xB6 0xE2 JUMPI ORIGIN MUL PUSH23 0xCBED5B9E1F6E99DF5763E4B0490A89404815BCEF8FAB15 0xC4 MULMOD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER PUSH13 0x6F6E6720737472696E67206E61 PUSH14 0x652C206C6F6E6720737472696E67 KECCAK256 PUSH15 0x616D652C206C6F6E6720737472696E PUSH8 0x206E616D652C206C PUSH16 0x6E6720737472696E67206E616D652C20 PUSH13 0x6F6E6720737472696E67206E61 PUSH14 0x6500000000000000000000000000 ", - "sourceMap": "128:377:8:-:0;;;170:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1980:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2054:5;2046;:13;;;;;;;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;;;;;;;:::i;:::-;;1980:113;;367:32:8::1;373:10;385:13;367:5;;;:32;;:::i;:::-;170:236:::0;128:377;;8520:535:0;8622:1;8603:21;;:7;:21;;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;;;:49;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;;;:48;;:::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;128:377:8:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:143:17:-;;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;70:80;;;;:::o;156:284::-;;275:2;263:9;254:7;250:23;246:32;243:2;;;291:1;288;281:12;243:2;334:1;359:64;415:7;406:6;395:9;391:22;359:64;:::i;:::-;349:74;;305:128;233:207;;;;:::o;446:366::-;;609:67;673:2;668:3;609:67;:::i;:::-;602:74;;685:93;774:3;685:93;:::i;:::-;803:2;798:3;794:12;787:19;;592:220;;;:::o;818:118::-;905:24;923:5;905:24;:::i;:::-;900:3;893:37;883:53;;:::o;942:419::-;;1146:2;1135:9;1131:18;1123:26;;1195:9;1189:4;1185:20;1181:1;1170:9;1166:17;1159:47;1223:131;1349:4;1223:131;:::i;:::-;1215:139;;1113:248;;;:::o;1367:222::-;;1498:2;1487:9;1483:18;1475:26;;1511:71;1579:1;1568:9;1564:17;1555:6;1511:71;:::i;:::-;1465:124;;;;:::o;1595:169::-;;1713:6;1708:3;1701:19;1753:4;1748:3;1744:14;1729:29;;1691:73;;;;:::o;1770:305::-;;1829:20;1847:1;1829:20;:::i;:::-;1824:25;;1863:20;1881:1;1863:20;:::i;:::-;1858:25;;2017:1;1949:66;1945:74;1942:1;1939:81;1936:2;;;2023:18;;:::i;:::-;1936:2;2067:1;2064;2060:9;2053:16;;1814:261;;;;:::o;2081:77::-;;2147:5;2136:16;;2126:32;;;:::o;2164:320::-;;2245:1;2239:4;2235:12;2225:22;;2292:1;2286:4;2282:12;2313:18;2303:2;;2369:4;2361:6;2357:17;2347:27;;2303:2;2431;2423:6;2420:14;2400:18;2397:38;2394:2;;;2450:18;;:::i;:::-;2394:2;2215:269;;;;:::o;2490:180::-;2538:77;2535:1;2528:88;2635:4;2632:1;2625:15;2659:4;2656:1;2649:15;2676:180;2724:77;2721:1;2714:88;2821:4;2818:1;2811:15;2845:4;2842:1;2835:15;2862:181;3002:33;2998:1;2990:6;2986:14;2979:57;2968:75;:::o;3049:122::-;3122:24;3140:5;3122:24;:::i;:::-;3115:5;3112:35;3102:2;;3161:1;3158;3151:12;3102:2;3092:79;:::o;128:377:8:-;;;;;;;" - }, - "deployedBytecode": { - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:13266:17", - "statements": [ + "src": "2907:269:17" + }, { "body": { + "nativeSrc": "3231:24:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "3231:24:17", "statements": [ { + "nativeSrc": "3241:8:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "3241:8:17", "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "78:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "78:20:17" + "kind": "number", + "nativeSrc": "3248:1:17", + "nodeType": "YulLiteral", + "src": "3248:1:17", + "type": "", + "value": "0" }, "variableNames": [ { - "name": "value", + "name": "ret", + "nativeSrc": "3241:3:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "3241:3:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "134:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "107:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "107:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" } ] }, - "name": "abi_decode_t_address", + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "3182:73:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "45:3:17", - "type": "" - } - ], "returnVariables": [ { - "name": "value", + "name": "ret", + "nativeSrc": "3227:3:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "3227:3:17", "type": "" } ], - "src": "7:139:17" + "src": "3182:73:17" }, { "body": { + "nativeSrc": "3314:136:17", "nodeType": "YulBlock", - "src": "204:87:17", + "src": "3314:136:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "214:29:17", + "nativeSrc": "3324:46:17", + "nodeType": "YulVariableDeclaration", + "src": "3324:46:17", "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "236:6:17" - } - ], + "arguments": [], "functionName": { - "name": "calldataload", + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "3338:30:17", "nodeType": "YulIdentifier", - "src": "223:12:17" + "src": "3338:30:17" }, + "nativeSrc": "3338:32:17", "nodeType": "YulFunctionCall", - "src": "223:20:17" + "src": "3338:32:17" }, - "variableNames": [ + "variables": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "214:5:17" + "name": "zero_0", + "nativeSrc": "3328:6:17", + "nodeType": "YulTypedName", + "src": "3328:6:17", + "type": "" } ] }, @@ -2020,1225 +2679,3964 @@ "expression": { "arguments": [ { - "name": "value", + "name": "slot", + "nativeSrc": "3423:4:17", + "nodeType": "YulIdentifier", + "src": "3423:4:17" + }, + { + "name": "offset", + "nativeSrc": "3429:6:17", + "nodeType": "YulIdentifier", + "src": "3429:6:17" + }, + { + "name": "zero_0", + "nativeSrc": "3437:6:17", "nodeType": "YulIdentifier", - "src": "279:5:17" + "src": "3437:6:17" } ], "functionName": { - "name": "validator_revert_t_uint256", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "3379:43:17", "nodeType": "YulIdentifier", - "src": "252:26:17" + "src": "3379:43:17" }, + "nativeSrc": "3379:65:17", "nodeType": "YulFunctionCall", - "src": "252:33:17" + "src": "3379:65:17" }, + "nativeSrc": "3379:65:17", "nodeType": "YulExpressionStatement", - "src": "252:33:17" + "src": "3379:65:17" } ] }, - "name": "abi_decode_t_uint256", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "3261:189:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "slot", + "nativeSrc": "3300:4:17", "nodeType": "YulTypedName", - "src": "182:6:17", + "src": "3300:4:17", "type": "" }, { - "name": "end", - "nodeType": "YulTypedName", - "src": "190:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", + "name": "offset", + "nativeSrc": "3306:6:17", "nodeType": "YulTypedName", - "src": "198:5:17", + "src": "3306:6:17", "type": "" } ], - "src": "152:139:17" + "src": "3261:189:17" }, { "body": { + "nativeSrc": "3506:136:17", "nodeType": "YulBlock", - "src": "363:196:17", + "src": "3506:136:17", "statements": [ { "body": { + "nativeSrc": "3573:63:17", "nodeType": "YulBlock", - "src": "409:16:17", + "src": "3573:63:17", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "418:1:17", - "type": "", - "value": "0" + "name": "start", + "nativeSrc": "3617:5:17", + "nodeType": "YulIdentifier", + "src": "3617:5:17" }, { "kind": "number", + "nativeSrc": "3624:1:17", "nodeType": "YulLiteral", - "src": "421:1:17", + "src": "3624:1:17", "type": "", "value": "0" } ], "functionName": { - "name": "revert", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "3587:29:17", "nodeType": "YulIdentifier", - "src": "411:6:17" + "src": "3587:29:17" }, + "nativeSrc": "3587:39:17", "nodeType": "YulFunctionCall", - "src": "411:12:17" + "src": "3587:39:17" }, + "nativeSrc": "3587:39:17", "nodeType": "YulExpressionStatement", - "src": "411:12:17" + "src": "3587:39:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "384:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "393:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "380:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "380:23:17" + "name": "start", + "nativeSrc": "3526:5:17", + "nodeType": "YulIdentifier", + "src": "3526:5:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "405:2:17", - "type": "", - "value": "32" + "name": "end", + "nativeSrc": "3533:3:17", + "nodeType": "YulIdentifier", + "src": "3533:3:17" } ], "functionName": { - "name": "slt", + "name": "lt", + "nativeSrc": "3523:2:17", "nodeType": "YulIdentifier", - "src": "376:3:17" + "src": "3523:2:17" }, + "nativeSrc": "3523:14:17", "nodeType": "YulFunctionCall", - "src": "376:32:17" + "src": "3523:14:17" }, - "nodeType": "YulIf", - "src": "373:2:17" - }, - { - "nodeType": "YulBlock", - "src": "435:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "450:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "464:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "454:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "479:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "514:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "525:6:17" - } - ], - "functionName": { - "name": "add", + "nativeSrc": "3516:120:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3538:26:17", + "nodeType": "YulBlock", + "src": "3538:26:17", + "statements": [ + { + "nativeSrc": "3540:22:17", + "nodeType": "YulAssignment", + "src": "3540:22:17", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "3553:5:17", "nodeType": "YulIdentifier", - "src": "510:3:17" + "src": "3553:5:17" }, - "nodeType": "YulFunctionCall", - "src": "510:22:17" + { + "kind": "number", + "nativeSrc": "3560:1:17", + "nodeType": "YulLiteral", + "src": "3560:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3549:3:17", + "nodeType": "YulIdentifier", + "src": "3549:3:17" }, + "nativeSrc": "3549:13:17", + "nodeType": "YulFunctionCall", + "src": "3549:13:17" + }, + "variableNames": [ { - "name": "dataEnd", + "name": "start", + "nativeSrc": "3540:5:17", "nodeType": "YulIdentifier", - "src": "534:7:17" + "src": "3540:5:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "489:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "489:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "479:6:17" - } - ] - } - ] + ] + } + ] + }, + "pre": { + "nativeSrc": "3520:2:17", + "nodeType": "YulBlock", + "src": "3520:2:17", + "statements": [] + }, + "src": "3516:120:17" } ] }, - "name": "abi_decode_tuple_t_address", + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "3456:186:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "start", + "nativeSrc": "3494:5:17", "nodeType": "YulTypedName", - "src": "333:9:17", + "src": "3494:5:17", "type": "" }, { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "344:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "end", + "nativeSrc": "3501:3:17", "nodeType": "YulTypedName", - "src": "356:6:17", + "src": "3501:3:17", "type": "" } ], - "src": "297:262:17" + "src": "3456:186:17" }, { "body": { + "nativeSrc": "3727:464:17", "nodeType": "YulBlock", - "src": "648:324:17", + "src": "3727:464:17", "statements": [ { "body": { + "nativeSrc": "3753:431:17", "nodeType": "YulBlock", - "src": "694:16:17", + "src": "3753:431:17", "statements": [ { - "expression": { + "nativeSrc": "3767:54:17", + "nodeType": "YulVariableDeclaration", + "src": "3767:54:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "703:1:17", - "type": "", - "value": "0" + "name": "array", + "nativeSrc": "3815:5:17", + "nodeType": "YulIdentifier", + "src": "3815:5:17" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3783:31:17", + "nodeType": "YulIdentifier", + "src": "3783:31:17" + }, + "nativeSrc": "3783:38:17", + "nodeType": "YulFunctionCall", + "src": "3783:38:17" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "3771:8:17", + "nodeType": "YulTypedName", + "src": "3771:8:17", + "type": "" + } + ] + }, + { + "nativeSrc": "3834:63:17", + "nodeType": "YulVariableDeclaration", + "src": "3834:63:17", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "3857:8:17", + "nodeType": "YulIdentifier", + "src": "3857:8:17" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "3885:10:17", + "nodeType": "YulIdentifier", + "src": "3885:10:17" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "3867:17:17", + "nodeType": "YulIdentifier", + "src": "3867:17:17" + }, + "nativeSrc": "3867:29:17", + "nodeType": "YulFunctionCall", + "src": "3867:29:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3853:3:17", + "nodeType": "YulIdentifier", + "src": "3853:3:17" + }, + "nativeSrc": "3853:44:17", + "nodeType": "YulFunctionCall", + "src": "3853:44:17" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "3838:11:17", + "nodeType": "YulTypedName", + "src": "3838:11:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4054:27:17", + "nodeType": "YulBlock", + "src": "4054:27:17", + "statements": [ + { + "nativeSrc": "4056:23:17", + "nodeType": "YulAssignment", + "src": "4056:23:17", + "value": { + "name": "dataArea", + "nativeSrc": "4071:8:17", + "nodeType": "YulIdentifier", + "src": "4071:8:17" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "4056:11:17", + "nodeType": "YulIdentifier", + "src": "4056:11:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "4038:10:17", + "nodeType": "YulIdentifier", + "src": "4038:10:17" }, { "kind": "number", + "nativeSrc": "4050:2:17", "nodeType": "YulLiteral", - "src": "706:1:17", + "src": "4050:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "lt", + "nativeSrc": "4035:2:17", + "nodeType": "YulIdentifier", + "src": "4035:2:17" + }, + "nativeSrc": "4035:18:17", + "nodeType": "YulFunctionCall", + "src": "4035:18:17" + }, + "nativeSrc": "4032:49:17", + "nodeType": "YulIf", + "src": "4032:49:17" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "4123:11:17", + "nodeType": "YulIdentifier", + "src": "4123:11:17" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "4140:8:17", + "nodeType": "YulIdentifier", + "src": "4140:8:17" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "4168:3:17", + "nodeType": "YulIdentifier", + "src": "4168:3:17" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "4150:17:17", + "nodeType": "YulIdentifier", + "src": "4150:17:17" + }, + "nativeSrc": "4150:22:17", + "nodeType": "YulFunctionCall", + "src": "4150:22:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4136:3:17", + "nodeType": "YulIdentifier", + "src": "4136:3:17" + }, + "nativeSrc": "4136:37:17", + "nodeType": "YulFunctionCall", + "src": "4136:37:17" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "4094:28:17", "nodeType": "YulIdentifier", - "src": "696:6:17" + "src": "4094:28:17" }, + "nativeSrc": "4094:80:17", "nodeType": "YulFunctionCall", - "src": "696:12:17" + "src": "4094:80:17" }, + "nativeSrc": "4094:80:17", "nodeType": "YulExpressionStatement", - "src": "696:12:17" + "src": "4094:80:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "669:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "678:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "665:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "665:23:17" + "name": "len", + "nativeSrc": "3744:3:17", + "nodeType": "YulIdentifier", + "src": "3744:3:17" }, { "kind": "number", + "nativeSrc": "3749:2:17", "nodeType": "YulLiteral", - "src": "690:2:17", + "src": "3749:2:17", "type": "", - "value": "64" + "value": "31" } ], "functionName": { - "name": "slt", + "name": "gt", + "nativeSrc": "3741:2:17", "nodeType": "YulIdentifier", - "src": "661:3:17" + "src": "3741:2:17" }, + "nativeSrc": "3741:11:17", "nodeType": "YulFunctionCall", - "src": "661:32:17" + "src": "3741:11:17" }, + "nativeSrc": "3738:446:17", "nodeType": "YulIf", - "src": "658:2:17" - }, + "src": "3738:446:17" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "3648:543:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "3703:5:17", + "nodeType": "YulTypedName", + "src": "3703:5:17", + "type": "" + }, + { + "name": "len", + "nativeSrc": "3710:3:17", + "nodeType": "YulTypedName", + "src": "3710:3:17", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "3715:10:17", + "nodeType": "YulTypedName", + "src": "3715:10:17", + "type": "" + } + ], + "src": "3648:543:17" + }, + { + "body": { + "nativeSrc": "4260:54:17", + "nodeType": "YulBlock", + "src": "4260:54:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "720:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "735:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "749:1:17", - "type": "", - "value": "0" + "nativeSrc": "4270:37:17", + "nodeType": "YulAssignment", + "src": "4270:37:17", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4295:4:17", + "nodeType": "YulIdentifier", + "src": "4295:4:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "739:6:17", - "type": "" - } - ] + { + "name": "value", + "nativeSrc": "4301:5:17", + "nodeType": "YulIdentifier", + "src": "4301:5:17" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4291:3:17", + "nodeType": "YulIdentifier", + "src": "4291:3:17" }, + "nativeSrc": "4291:16:17", + "nodeType": "YulFunctionCall", + "src": "4291:16:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "764:63:17", - "value": { + "name": "newValue", + "nativeSrc": "4270:8:17", + "nodeType": "YulIdentifier", + "src": "4270:8:17" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "4197:117:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4235:4:17", + "nodeType": "YulTypedName", + "src": "4235:4:17", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4241:5:17", + "nodeType": "YulTypedName", + "src": "4241:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4251:8:17", + "nodeType": "YulTypedName", + "src": "4251:8:17", + "type": "" + } + ], + "src": "4197:117:17" + }, + { + "body": { + "nativeSrc": "4371:118:17", + "nodeType": "YulBlock", + "src": "4371:118:17", + "statements": [ + { + "nativeSrc": "4381:68:17", + "nodeType": "YulVariableDeclaration", + "src": "4381:68:17", + "value": { + "arguments": [ + { "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "799:9:17" + "kind": "number", + "nativeSrc": "4430:1:17", + "nodeType": "YulLiteral", + "src": "4430:1:17", + "type": "", + "value": "8" }, { - "name": "offset", + "name": "bytes", + "nativeSrc": "4433:5:17", "nodeType": "YulIdentifier", - "src": "810:6:17" + "src": "4433:5:17" } ], "functionName": { - "name": "add", + "name": "mul", + "nativeSrc": "4426:3:17", "nodeType": "YulIdentifier", - "src": "795:3:17" + "src": "4426:3:17" }, + "nativeSrc": "4426:13:17", "nodeType": "YulFunctionCall", - "src": "795:22:17" + "src": "4426:13:17" }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "819:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "774:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "774:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "764:6:17" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "847:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "862:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "876:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "866:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "892:63:17", - "value": { - "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "927:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "938:6:17" + "kind": "number", + "nativeSrc": "4445:1:17", + "nodeType": "YulLiteral", + "src": "4445:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "add", + "name": "not", + "nativeSrc": "4441:3:17", "nodeType": "YulIdentifier", - "src": "923:3:17" + "src": "4441:3:17" }, + "nativeSrc": "4441:6:17", "nodeType": "YulFunctionCall", - "src": "923:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "947:7:17" + "src": "4441:6:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "4397:28:17", "nodeType": "YulIdentifier", - "src": "902:20:17" + "src": "4397:28:17" }, + "nativeSrc": "4397:51:17", "nodeType": "YulFunctionCall", - "src": "902:53:17" + "src": "4397:51:17" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4393:3:17", + "nodeType": "YulIdentifier", + "src": "4393:3:17" + }, + "nativeSrc": "4393:56:17", + "nodeType": "YulFunctionCall", + "src": "4393:56:17" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4385:4:17", + "nodeType": "YulTypedName", + "src": "4385:4:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4458:25:17", + "nodeType": "YulAssignment", + "src": "4458:25:17", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "4472:4:17", + "nodeType": "YulIdentifier", + "src": "4472:4:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "892:6:17" - } - ] + { + "name": "mask", + "nativeSrc": "4478:4:17", + "nodeType": "YulIdentifier", + "src": "4478:4:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4468:3:17", + "nodeType": "YulIdentifier", + "src": "4468:3:17" + }, + "nativeSrc": "4468:15:17", + "nodeType": "YulFunctionCall", + "src": "4468:15:17" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4458:6:17", + "nodeType": "YulIdentifier", + "src": "4458:6:17" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_address", + "name": "mask_bytes_dynamic", + "nativeSrc": "4320:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "4348:4:17", "nodeType": "YulTypedName", - "src": "610:9:17", + "src": "4348:4:17", "type": "" }, { - "name": "dataEnd", + "name": "bytes", + "nativeSrc": "4354:5:17", "nodeType": "YulTypedName", - "src": "621:7:17", + "src": "4354:5:17", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "633:6:17", - "type": "" - }, - { - "name": "value1", + "name": "result", + "nativeSrc": "4364:6:17", "nodeType": "YulTypedName", - "src": "641:6:17", + "src": "4364:6:17", "type": "" } ], - "src": "565:407:17" + "src": "4320:169:17" }, { "body": { + "nativeSrc": "4575:214:17", "nodeType": "YulBlock", - "src": "1078:452:17", + "src": "4575:214:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "1124:16:17", - "statements": [ + "nativeSrc": "4708:37:17", + "nodeType": "YulAssignment", + "src": "4708:37:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1133:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1136:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1126:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1126:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1126:12:17" + "name": "data", + "nativeSrc": "4735:4:17", + "nodeType": "YulIdentifier", + "src": "4735:4:17" + }, + { + "name": "len", + "nativeSrc": "4741:3:17", + "nodeType": "YulIdentifier", + "src": "4741:3:17" } - ] + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "4716:18:17", + "nodeType": "YulIdentifier", + "src": "4716:18:17" + }, + "nativeSrc": "4716:29:17", + "nodeType": "YulFunctionCall", + "src": "4716:29:17" }, - "condition": { + "variableNames": [ + { + "name": "data", + "nativeSrc": "4708:4:17", + "nodeType": "YulIdentifier", + "src": "4708:4:17" + } + ] + }, + { + "nativeSrc": "4754:29:17", + "nodeType": "YulAssignment", + "src": "4754:29:17", + "value": { "arguments": [ + { + "name": "data", + "nativeSrc": "4765:4:17", + "nodeType": "YulIdentifier", + "src": "4765:4:17" + }, { "arguments": [ { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1099:7:17" + "kind": "number", + "nativeSrc": "4775:1:17", + "nodeType": "YulLiteral", + "src": "4775:1:17", + "type": "", + "value": "2" }, { - "name": "headStart", + "name": "len", + "nativeSrc": "4778:3:17", "nodeType": "YulIdentifier", - "src": "1108:9:17" + "src": "4778:3:17" } ], "functionName": { - "name": "sub", + "name": "mul", + "nativeSrc": "4771:3:17", "nodeType": "YulIdentifier", - "src": "1095:3:17" + "src": "4771:3:17" }, + "nativeSrc": "4771:11:17", "nodeType": "YulFunctionCall", - "src": "1095:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1120:2:17", - "type": "", - "value": "96" + "src": "4771:11:17" } ], "functionName": { - "name": "slt", + "name": "or", + "nativeSrc": "4762:2:17", "nodeType": "YulIdentifier", - "src": "1091:3:17" + "src": "4762:2:17" }, + "nativeSrc": "4762:21:17", "nodeType": "YulFunctionCall", - "src": "1091:32:17" + "src": "4762:21:17" }, - "nodeType": "YulIf", - "src": "1088:2:17" - }, - { - "nodeType": "YulBlock", - "src": "1150:117:17", - "statements": [ + "variableNames": [ { - "nodeType": "YulVariableDeclaration", - "src": "1165:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1179:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1169:6:17", - "type": "" - } - ] + "name": "used", + "nativeSrc": "4754:4:17", + "nodeType": "YulIdentifier", + "src": "4754:4:17" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "4494:295:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "4556:4:17", + "nodeType": "YulTypedName", + "src": "4556:4:17", + "type": "" + }, + { + "name": "len", + "nativeSrc": "4562:3:17", + "nodeType": "YulTypedName", + "src": "4562:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "4570:4:17", + "nodeType": "YulTypedName", + "src": "4570:4:17", + "type": "" + } + ], + "src": "4494:295:17" + }, + { + "body": { + "nativeSrc": "4886:1303:17", + "nodeType": "YulBlock", + "src": "4886:1303:17", + "statements": [ + { + "nativeSrc": "4897:51:17", + "nodeType": "YulVariableDeclaration", + "src": "4897:51:17", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "4944:3:17", + "nodeType": "YulIdentifier", + "src": "4944:3:17" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4911:32:17", + "nodeType": "YulIdentifier", + "src": "4911:32:17" }, + "nativeSrc": "4911:37:17", + "nodeType": "YulFunctionCall", + "src": "4911:37:17" + }, + "variables": [ { - "nodeType": "YulAssignment", - "src": "1194:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1229:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1240:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1225:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1225:22:17" + "name": "newLen", + "nativeSrc": "4901:6:17", + "nodeType": "YulTypedName", + "src": "4901:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5033:22:17", + "nodeType": "YulBlock", + "src": "5033:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "5035:16:17", + "nodeType": "YulIdentifier", + "src": "5035:16:17" }, + "nativeSrc": "5035:18:17", + "nodeType": "YulFunctionCall", + "src": "5035:18:17" + }, + "nativeSrc": "5035:18:17", + "nodeType": "YulExpressionStatement", + "src": "5035:18:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "5005:6:17", + "nodeType": "YulIdentifier", + "src": "5005:6:17" + }, + { + "kind": "number", + "nativeSrc": "5013:18:17", + "nodeType": "YulLiteral", + "src": "5013:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5002:2:17", + "nodeType": "YulIdentifier", + "src": "5002:2:17" + }, + "nativeSrc": "5002:30:17", + "nodeType": "YulFunctionCall", + "src": "5002:30:17" + }, + "nativeSrc": "4999:56:17", + "nodeType": "YulIf", + "src": "4999:56:17" + }, + { + "nativeSrc": "5065:52:17", + "nodeType": "YulVariableDeclaration", + "src": "5065:52:17", + "value": { + "arguments": [ + { + "arguments": [ { - "name": "dataEnd", + "name": "slot", + "nativeSrc": "5111:4:17", "nodeType": "YulIdentifier", - "src": "1249:7:17" + "src": "5111:4:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "sload", + "nativeSrc": "5105:5:17", "nodeType": "YulIdentifier", - "src": "1204:20:17" + "src": "5105:5:17" }, + "nativeSrc": "5105:11:17", "nodeType": "YulFunctionCall", - "src": "1204:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1194:6:17" - } - ] + "src": "5105:11:17" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "5079:25:17", + "nodeType": "YulIdentifier", + "src": "5079:25:17" + }, + "nativeSrc": "5079:38:17", + "nodeType": "YulFunctionCall", + "src": "5079:38:17" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "5069:6:17", + "nodeType": "YulTypedName", + "src": "5069:6:17", + "type": "" } ] }, { - "nodeType": "YulBlock", - "src": "1277:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1292:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1306:2:17", - "type": "", - "value": "32" + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5210:4:17", + "nodeType": "YulIdentifier", + "src": "5210:4:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1296:6:17", - "type": "" - } - ] + { + "name": "oldLen", + "nativeSrc": "5216:6:17", + "nodeType": "YulIdentifier", + "src": "5216:6:17" + }, + { + "name": "newLen", + "nativeSrc": "5224:6:17", + "nodeType": "YulIdentifier", + "src": "5224:6:17" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5164:45:17", + "nodeType": "YulIdentifier", + "src": "5164:45:17" }, + "nativeSrc": "5164:67:17", + "nodeType": "YulFunctionCall", + "src": "5164:67:17" + }, + "nativeSrc": "5164:67:17", + "nodeType": "YulExpressionStatement", + "src": "5164:67:17" + }, + { + "nativeSrc": "5241:18:17", + "nodeType": "YulVariableDeclaration", + "src": "5241:18:17", + "value": { + "kind": "number", + "nativeSrc": "5258:1:17", + "nodeType": "YulLiteral", + "src": "5258:1:17", + "type": "", + "value": "0" + }, + "variables": [ { - "nodeType": "YulAssignment", - "src": "1322:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", + "name": "srcOffset", + "nativeSrc": "5245:9:17", + "nodeType": "YulTypedName", + "src": "5245:9:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5269:17:17", + "nodeType": "YulAssignment", + "src": "5269:17:17", + "value": { + "kind": "number", + "nativeSrc": "5282:4:17", + "nodeType": "YulLiteral", + "src": "5282:4:17", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "5269:9:17", + "nodeType": "YulIdentifier", + "src": "5269:9:17" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "5333:611:17", + "nodeType": "YulBlock", + "src": "5333:611:17", + "statements": [ + { + "nativeSrc": "5347:37:17", + "nodeType": "YulVariableDeclaration", + "src": "5347:37:17", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "5366:6:17", + "nodeType": "YulIdentifier", + "src": "5366:6:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5378:4:17", + "nodeType": "YulLiteral", + "src": "5378:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "5374:3:17", + "nodeType": "YulIdentifier", + "src": "5374:3:17" + }, + "nativeSrc": "5374:9:17", + "nodeType": "YulFunctionCall", + "src": "5374:9:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5362:3:17", "nodeType": "YulIdentifier", - "src": "1357:9:17" + "src": "5362:3:17" }, + "nativeSrc": "5362:22:17", + "nodeType": "YulFunctionCall", + "src": "5362:22:17" + }, + "variables": [ { - "name": "offset", + "name": "loopEnd", + "nativeSrc": "5351:7:17", + "nodeType": "YulTypedName", + "src": "5351:7:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5398:51:17", + "nodeType": "YulVariableDeclaration", + "src": "5398:51:17", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5444:4:17", + "nodeType": "YulIdentifier", + "src": "5444:4:17" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5412:31:17", "nodeType": "YulIdentifier", - "src": "1368:6:17" + "src": "5412:31:17" + }, + "nativeSrc": "5412:37:17", + "nodeType": "YulFunctionCall", + "src": "5412:37:17" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "5402:6:17", + "nodeType": "YulTypedName", + "src": "5402:6:17", + "type": "" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1353:3:17" + ] + }, + { + "nativeSrc": "5462:10:17", + "nodeType": "YulVariableDeclaration", + "src": "5462:10:17", + "value": { + "kind": "number", + "nativeSrc": "5471:1:17", + "nodeType": "YulLiteral", + "src": "5471:1:17", + "type": "", + "value": "0" }, - "nodeType": "YulFunctionCall", - "src": "1353:22:17" + "variables": [ + { + "name": "i", + "nativeSrc": "5466:1:17", + "nodeType": "YulTypedName", + "src": "5466:1:17", + "type": "" + } + ] }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1377:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1332:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1332:53:17" - }, - "variableNames": [ - { - "name": "value1", + "body": { + "nativeSrc": "5530:163:17", + "nodeType": "YulBlock", + "src": "5530:163:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "5555:6:17", + "nodeType": "YulIdentifier", + "src": "5555:6:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5573:3:17", + "nodeType": "YulIdentifier", + "src": "5573:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "5578:9:17", + "nodeType": "YulIdentifier", + "src": "5578:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5569:3:17", + "nodeType": "YulIdentifier", + "src": "5569:3:17" + }, + "nativeSrc": "5569:19:17", + "nodeType": "YulFunctionCall", + "src": "5569:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5563:5:17", + "nodeType": "YulIdentifier", + "src": "5563:5:17" + }, + "nativeSrc": "5563:26:17", + "nodeType": "YulFunctionCall", + "src": "5563:26:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5548:6:17", + "nodeType": "YulIdentifier", + "src": "5548:6:17" + }, + "nativeSrc": "5548:42:17", + "nodeType": "YulFunctionCall", + "src": "5548:42:17" + }, + "nativeSrc": "5548:42:17", + "nodeType": "YulExpressionStatement", + "src": "5548:42:17" + }, + { + "nativeSrc": "5607:24:17", + "nodeType": "YulAssignment", + "src": "5607:24:17", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "5621:6:17", + "nodeType": "YulIdentifier", + "src": "5621:6:17" + }, + { + "kind": "number", + "nativeSrc": "5629:1:17", + "nodeType": "YulLiteral", + "src": "5629:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5617:3:17", + "nodeType": "YulIdentifier", + "src": "5617:3:17" + }, + "nativeSrc": "5617:14:17", + "nodeType": "YulFunctionCall", + "src": "5617:14:17" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "5607:6:17", + "nodeType": "YulIdentifier", + "src": "5607:6:17" + } + ] + }, + { + "nativeSrc": "5648:31:17", + "nodeType": "YulAssignment", + "src": "5648:31:17", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "5665:9:17", + "nodeType": "YulIdentifier", + "src": "5665:9:17" + }, + { + "kind": "number", + "nativeSrc": "5676:2:17", + "nodeType": "YulLiteral", + "src": "5676:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5661:3:17", + "nodeType": "YulIdentifier", + "src": "5661:3:17" + }, + "nativeSrc": "5661:18:17", + "nodeType": "YulFunctionCall", + "src": "5661:18:17" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "5648:9:17", + "nodeType": "YulIdentifier", + "src": "5648:9:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5496:1:17", + "nodeType": "YulIdentifier", + "src": "5496:1:17" + }, + { + "name": "loopEnd", + "nativeSrc": "5499:7:17", + "nodeType": "YulIdentifier", + "src": "5499:7:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5493:2:17", + "nodeType": "YulIdentifier", + "src": "5493:2:17" + }, + "nativeSrc": "5493:14:17", + "nodeType": "YulFunctionCall", + "src": "5493:14:17" + }, + "nativeSrc": "5485:208:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5508:21:17", + "nodeType": "YulBlock", + "src": "5508:21:17", + "statements": [ + { + "nativeSrc": "5510:17:17", + "nodeType": "YulAssignment", + "src": "5510:17:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5519:1:17", + "nodeType": "YulIdentifier", + "src": "5519:1:17" + }, + { + "kind": "number", + "nativeSrc": "5522:4:17", + "nodeType": "YulLiteral", + "src": "5522:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5515:3:17", + "nodeType": "YulIdentifier", + "src": "5515:3:17" + }, + "nativeSrc": "5515:12:17", + "nodeType": "YulFunctionCall", + "src": "5515:12:17" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "5510:1:17", + "nodeType": "YulIdentifier", + "src": "5510:1:17" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5489:3:17", + "nodeType": "YulBlock", + "src": "5489:3:17", + "statements": [] + }, + "src": "5485:208:17" + }, + { + "body": { + "nativeSrc": "5729:156:17", + "nodeType": "YulBlock", + "src": "5729:156:17", + "statements": [ + { + "nativeSrc": "5747:43:17", + "nodeType": "YulVariableDeclaration", + "src": "5747:43:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5774:3:17", + "nodeType": "YulIdentifier", + "src": "5774:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "5779:9:17", + "nodeType": "YulIdentifier", + "src": "5779:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5770:3:17", + "nodeType": "YulIdentifier", + "src": "5770:3:17" + }, + "nativeSrc": "5770:19:17", + "nodeType": "YulFunctionCall", + "src": "5770:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5764:5:17", + "nodeType": "YulIdentifier", + "src": "5764:5:17" + }, + "nativeSrc": "5764:26:17", + "nodeType": "YulFunctionCall", + "src": "5764:26:17" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "5751:9:17", + "nodeType": "YulTypedName", + "src": "5751:9:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "5814:6:17", + "nodeType": "YulIdentifier", + "src": "5814:6:17" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "5841:9:17", + "nodeType": "YulIdentifier", + "src": "5841:9:17" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "5856:6:17", + "nodeType": "YulIdentifier", + "src": "5856:6:17" + }, + { + "kind": "number", + "nativeSrc": "5864:4:17", + "nodeType": "YulLiteral", + "src": "5864:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5852:3:17", + "nodeType": "YulIdentifier", + "src": "5852:3:17" + }, + "nativeSrc": "5852:17:17", + "nodeType": "YulFunctionCall", + "src": "5852:17:17" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "5822:18:17", + "nodeType": "YulIdentifier", + "src": "5822:18:17" + }, + "nativeSrc": "5822:48:17", + "nodeType": "YulFunctionCall", + "src": "5822:48:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5807:6:17", + "nodeType": "YulIdentifier", + "src": "5807:6:17" + }, + "nativeSrc": "5807:64:17", + "nodeType": "YulFunctionCall", + "src": "5807:64:17" + }, + "nativeSrc": "5807:64:17", + "nodeType": "YulExpressionStatement", + "src": "5807:64:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "5712:7:17", + "nodeType": "YulIdentifier", + "src": "5712:7:17" + }, + { + "name": "newLen", + "nativeSrc": "5721:6:17", + "nodeType": "YulIdentifier", + "src": "5721:6:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5709:2:17", + "nodeType": "YulIdentifier", + "src": "5709:2:17" + }, + "nativeSrc": "5709:19:17", + "nodeType": "YulFunctionCall", + "src": "5709:19:17" + }, + "nativeSrc": "5706:179:17", + "nodeType": "YulIf", + "src": "5706:179:17" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5905:4:17", + "nodeType": "YulIdentifier", + "src": "5905:4:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "5919:6:17", + "nodeType": "YulIdentifier", + "src": "5919:6:17" + }, + { + "kind": "number", + "nativeSrc": "5927:1:17", + "nodeType": "YulLiteral", + "src": "5927:1:17", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "5915:3:17", + "nodeType": "YulIdentifier", + "src": "5915:3:17" + }, + "nativeSrc": "5915:14:17", + "nodeType": "YulFunctionCall", + "src": "5915:14:17" + }, + { + "kind": "number", + "nativeSrc": "5931:1:17", + "nodeType": "YulLiteral", + "src": "5931:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5911:3:17", + "nodeType": "YulIdentifier", + "src": "5911:3:17" + }, + "nativeSrc": "5911:22:17", + "nodeType": "YulFunctionCall", + "src": "5911:22:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5898:6:17", + "nodeType": "YulIdentifier", + "src": "5898:6:17" + }, + "nativeSrc": "5898:36:17", + "nodeType": "YulFunctionCall", + "src": "5898:36:17" + }, + "nativeSrc": "5898:36:17", + "nodeType": "YulExpressionStatement", + "src": "5898:36:17" + } + ] + }, + "nativeSrc": "5326:618:17", + "nodeType": "YulCase", + "src": "5326:618:17", + "value": { + "kind": "number", + "nativeSrc": "5331:1:17", + "nodeType": "YulLiteral", + "src": "5331:1:17", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "5961:222:17", + "nodeType": "YulBlock", + "src": "5961:222:17", + "statements": [ + { + "nativeSrc": "5975:14:17", + "nodeType": "YulVariableDeclaration", + "src": "5975:14:17", + "value": { + "kind": "number", + "nativeSrc": "5988:1:17", + "nodeType": "YulLiteral", + "src": "5988:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5979:5:17", + "nodeType": "YulTypedName", + "src": "5979:5:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6012:67:17", + "nodeType": "YulBlock", + "src": "6012:67:17", + "statements": [ + { + "nativeSrc": "6030:35:17", + "nodeType": "YulAssignment", + "src": "6030:35:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "6049:3:17", + "nodeType": "YulIdentifier", + "src": "6049:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "6054:9:17", + "nodeType": "YulIdentifier", + "src": "6054:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6045:3:17", + "nodeType": "YulIdentifier", + "src": "6045:3:17" + }, + "nativeSrc": "6045:19:17", + "nodeType": "YulFunctionCall", + "src": "6045:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6039:5:17", + "nodeType": "YulIdentifier", + "src": "6039:5:17" + }, + "nativeSrc": "6039:26:17", + "nodeType": "YulFunctionCall", + "src": "6039:26:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6030:5:17", + "nodeType": "YulIdentifier", + "src": "6030:5:17" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "6005:6:17", + "nodeType": "YulIdentifier", + "src": "6005:6:17" + }, + "nativeSrc": "6002:77:17", + "nodeType": "YulIf", + "src": "6002:77:17" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "6099:4:17", + "nodeType": "YulIdentifier", + "src": "6099:4:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6158:5:17", + "nodeType": "YulIdentifier", + "src": "6158:5:17" + }, + { + "name": "newLen", + "nativeSrc": "6165:6:17", + "nodeType": "YulIdentifier", + "src": "6165:6:17" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6105:52:17", + "nodeType": "YulIdentifier", + "src": "6105:52:17" + }, + "nativeSrc": "6105:67:17", + "nodeType": "YulFunctionCall", + "src": "6105:67:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "6092:6:17", + "nodeType": "YulIdentifier", + "src": "6092:6:17" + }, + "nativeSrc": "6092:81:17", + "nodeType": "YulFunctionCall", + "src": "6092:81:17" + }, + "nativeSrc": "6092:81:17", + "nodeType": "YulExpressionStatement", + "src": "6092:81:17" + } + ] + }, + "nativeSrc": "5953:230:17", + "nodeType": "YulCase", + "src": "5953:230:17", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "5306:6:17", + "nodeType": "YulIdentifier", + "src": "5306:6:17" + }, + { + "kind": "number", + "nativeSrc": "5314:2:17", + "nodeType": "YulLiteral", + "src": "5314:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5303:2:17", + "nodeType": "YulIdentifier", + "src": "5303:2:17" + }, + "nativeSrc": "5303:14:17", + "nodeType": "YulFunctionCall", + "src": "5303:14:17" + }, + "nativeSrc": "5296:887:17", + "nodeType": "YulSwitch", + "src": "5296:887:17" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "4794:1395:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "4875:4:17", + "nodeType": "YulTypedName", + "src": "4875:4:17", + "type": "" + }, + { + "name": "src", + "nativeSrc": "4881:3:17", + "nodeType": "YulTypedName", + "src": "4881:3:17", + "type": "" + } + ], + "src": "4794:1395:17" + }, + { + "body": { + "nativeSrc": "6291:73:17", + "nodeType": "YulBlock", + "src": "6291:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6308:3:17", + "nodeType": "YulIdentifier", + "src": "6308:3:17" + }, + { + "name": "length", + "nativeSrc": "6313:6:17", + "nodeType": "YulIdentifier", + "src": "6313:6:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6301:6:17", + "nodeType": "YulIdentifier", + "src": "6301:6:17" + }, + "nativeSrc": "6301:19:17", + "nodeType": "YulFunctionCall", + "src": "6301:19:17" + }, + "nativeSrc": "6301:19:17", + "nodeType": "YulExpressionStatement", + "src": "6301:19:17" + }, + { + "nativeSrc": "6329:29:17", + "nodeType": "YulAssignment", + "src": "6329:29:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6348:3:17", + "nodeType": "YulIdentifier", + "src": "6348:3:17" + }, + { + "kind": "number", + "nativeSrc": "6353:4:17", + "nodeType": "YulLiteral", + "src": "6353:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6344:3:17", + "nodeType": "YulIdentifier", + "src": "6344:3:17" + }, + "nativeSrc": "6344:14:17", + "nodeType": "YulFunctionCall", + "src": "6344:14:17" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "6329:11:17", + "nodeType": "YulIdentifier", + "src": "6329:11:17" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6195:169:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6263:3:17", + "nodeType": "YulTypedName", + "src": "6263:3:17", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6268:6:17", + "nodeType": "YulTypedName", + "src": "6268:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "6279:11:17", + "nodeType": "YulTypedName", + "src": "6279:11:17", + "type": "" + } + ], + "src": "6195:169:17" + }, + { + "body": { + "nativeSrc": "6476:75:17", + "nodeType": "YulBlock", + "src": "6476:75:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6498:6:17", + "nodeType": "YulIdentifier", + "src": "6498:6:17" + }, + { + "kind": "number", + "nativeSrc": "6506:1:17", + "nodeType": "YulLiteral", + "src": "6506:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6494:3:17", + "nodeType": "YulIdentifier", + "src": "6494:3:17" + }, + "nativeSrc": "6494:14:17", + "nodeType": "YulFunctionCall", + "src": "6494:14:17" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nativeSrc": "6510:33:17", + "nodeType": "YulLiteral", + "src": "6510:33:17", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6487:6:17", + "nodeType": "YulIdentifier", + "src": "6487:6:17" + }, + "nativeSrc": "6487:57:17", + "nodeType": "YulFunctionCall", + "src": "6487:57:17" + }, + "nativeSrc": "6487:57:17", + "nodeType": "YulExpressionStatement", + "src": "6487:57:17" + } + ] + }, + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nativeSrc": "6370:181:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6468:6:17", + "nodeType": "YulTypedName", + "src": "6468:6:17", + "type": "" + } + ], + "src": "6370:181:17" + }, + { + "body": { + "nativeSrc": "6703:220:17", + "nodeType": "YulBlock", + "src": "6703:220:17", + "statements": [ + { + "nativeSrc": "6713:74:17", + "nodeType": "YulAssignment", + "src": "6713:74:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6779:3:17", + "nodeType": "YulIdentifier", + "src": "6779:3:17" + }, + { + "kind": "number", + "nativeSrc": "6784:2:17", + "nodeType": "YulLiteral", + "src": "6784:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6720:58:17", + "nodeType": "YulIdentifier", + "src": "6720:58:17" + }, + "nativeSrc": "6720:67:17", + "nodeType": "YulFunctionCall", + "src": "6720:67:17" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "6713:3:17", + "nodeType": "YulIdentifier", + "src": "6713:3:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6885:3:17", + "nodeType": "YulIdentifier", + "src": "6885:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nativeSrc": "6796:88:17", + "nodeType": "YulIdentifier", + "src": "6796:88:17" + }, + "nativeSrc": "6796:93:17", + "nodeType": "YulFunctionCall", + "src": "6796:93:17" + }, + "nativeSrc": "6796:93:17", + "nodeType": "YulExpressionStatement", + "src": "6796:93:17" + }, + { + "nativeSrc": "6898:19:17", + "nodeType": "YulAssignment", + "src": "6898:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6909:3:17", + "nodeType": "YulIdentifier", + "src": "6909:3:17" + }, + { + "kind": "number", + "nativeSrc": "6914:2:17", + "nodeType": "YulLiteral", + "src": "6914:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6905:3:17", + "nodeType": "YulIdentifier", + "src": "6905:3:17" + }, + "nativeSrc": "6905:12:17", + "nodeType": "YulFunctionCall", + "src": "6905:12:17" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "6898:3:17", + "nodeType": "YulIdentifier", + "src": "6898:3:17" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6557:366:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6691:3:17", + "nodeType": "YulTypedName", + "src": "6691:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6699:3:17", + "nodeType": "YulTypedName", + "src": "6699:3:17", + "type": "" + } + ], + "src": "6557:366:17" + }, + { + "body": { + "nativeSrc": "7100:248:17", + "nodeType": "YulBlock", + "src": "7100:248:17", + "statements": [ + { + "nativeSrc": "7110:26:17", + "nodeType": "YulAssignment", + "src": "7110:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7122:9:17", + "nodeType": "YulIdentifier", + "src": "7122:9:17" + }, + { + "kind": "number", + "nativeSrc": "7133:2:17", + "nodeType": "YulLiteral", + "src": "7133:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7118:3:17", + "nodeType": "YulIdentifier", + "src": "7118:3:17" + }, + "nativeSrc": "7118:18:17", + "nodeType": "YulFunctionCall", + "src": "7118:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7110:4:17", + "nodeType": "YulIdentifier", + "src": "7110:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7157:9:17", + "nodeType": "YulIdentifier", + "src": "7157:9:17" + }, + { + "kind": "number", + "nativeSrc": "7168:1:17", + "nodeType": "YulLiteral", + "src": "7168:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7153:3:17", "nodeType": "YulIdentifier", - "src": "1322:6:17" - } - ] + "src": "7153:3:17" + }, + "nativeSrc": "7153:17:17", + "nodeType": "YulFunctionCall", + "src": "7153:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7176:4:17", + "nodeType": "YulIdentifier", + "src": "7176:4:17" + }, + { + "name": "headStart", + "nativeSrc": "7182:9:17", + "nodeType": "YulIdentifier", + "src": "7182:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7172:3:17", + "nodeType": "YulIdentifier", + "src": "7172:3:17" + }, + "nativeSrc": "7172:20:17", + "nodeType": "YulFunctionCall", + "src": "7172:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7146:6:17", + "nodeType": "YulIdentifier", + "src": "7146:6:17" + }, + "nativeSrc": "7146:47:17", + "nodeType": "YulFunctionCall", + "src": "7146:47:17" + }, + "nativeSrc": "7146:47:17", + "nodeType": "YulExpressionStatement", + "src": "7146:47:17" + }, + { + "nativeSrc": "7202:139:17", + "nodeType": "YulAssignment", + "src": "7202:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7336:4:17", + "nodeType": "YulIdentifier", + "src": "7336:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7210:124:17", + "nodeType": "YulIdentifier", + "src": "7210:124:17" + }, + "nativeSrc": "7210:131:17", + "nodeType": "YulFunctionCall", + "src": "7210:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7202:4:17", + "nodeType": "YulIdentifier", + "src": "7202:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "6929:419:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7080:9:17", + "nodeType": "YulTypedName", + "src": "7080:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7095:4:17", + "nodeType": "YulTypedName", + "src": "7095:4:17", + "type": "" + } + ], + "src": "6929:419:17" + }, + { + "body": { + "nativeSrc": "7382:152:17", + "nodeType": "YulBlock", + "src": "7382:152:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7399:1:17", + "nodeType": "YulLiteral", + "src": "7399:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7402:77:17", + "nodeType": "YulLiteral", + "src": "7402:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7392:6:17", + "nodeType": "YulIdentifier", + "src": "7392:6:17" + }, + "nativeSrc": "7392:88:17", + "nodeType": "YulFunctionCall", + "src": "7392:88:17" + }, + "nativeSrc": "7392:88:17", + "nodeType": "YulExpressionStatement", + "src": "7392:88:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7496:1:17", + "nodeType": "YulLiteral", + "src": "7496:1:17", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7499:4:17", + "nodeType": "YulLiteral", + "src": "7499:4:17", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7489:6:17", + "nodeType": "YulIdentifier", + "src": "7489:6:17" + }, + "nativeSrc": "7489:15:17", + "nodeType": "YulFunctionCall", + "src": "7489:15:17" + }, + "nativeSrc": "7489:15:17", + "nodeType": "YulExpressionStatement", + "src": "7489:15:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7520:1:17", + "nodeType": "YulLiteral", + "src": "7520:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7523:4:17", + "nodeType": "YulLiteral", + "src": "7523:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7513:6:17", + "nodeType": "YulIdentifier", + "src": "7513:6:17" + }, + "nativeSrc": "7513:15:17", + "nodeType": "YulFunctionCall", + "src": "7513:15:17" + }, + "nativeSrc": "7513:15:17", + "nodeType": "YulExpressionStatement", + "src": "7513:15:17" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "7354:180:17", + "nodeType": "YulFunctionDefinition", + "src": "7354:180:17" + }, + { + "body": { + "nativeSrc": "7584:147:17", + "nodeType": "YulBlock", + "src": "7584:147:17", + "statements": [ + { + "nativeSrc": "7594:25:17", + "nodeType": "YulAssignment", + "src": "7594:25:17", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "7617:1:17", + "nodeType": "YulIdentifier", + "src": "7617:1:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "7599:17:17", + "nodeType": "YulIdentifier", + "src": "7599:17:17" + }, + "nativeSrc": "7599:20:17", + "nodeType": "YulFunctionCall", + "src": "7599:20:17" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "7594:1:17", + "nodeType": "YulIdentifier", + "src": "7594:1:17" } ] }, { - "nodeType": "YulBlock", - "src": "1405:118:17", - "statements": [ + "nativeSrc": "7628:25:17", + "nodeType": "YulAssignment", + "src": "7628:25:17", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "7651:1:17", + "nodeType": "YulIdentifier", + "src": "7651:1:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "7633:17:17", + "nodeType": "YulIdentifier", + "src": "7633:17:17" + }, + "nativeSrc": "7633:20:17", + "nodeType": "YulFunctionCall", + "src": "7633:20:17" + }, + "variableNames": [ { - "nodeType": "YulVariableDeclaration", - "src": "1420:16:17", - "value": { + "name": "y", + "nativeSrc": "7628:1:17", + "nodeType": "YulIdentifier", + "src": "7628:1:17" + } + ] + }, + { + "nativeSrc": "7662:16:17", + "nodeType": "YulAssignment", + "src": "7662:16:17", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "7673:1:17", + "nodeType": "YulIdentifier", + "src": "7673:1:17" + }, + { + "name": "y", + "nativeSrc": "7676:1:17", + "nodeType": "YulIdentifier", + "src": "7676:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7669:3:17", + "nodeType": "YulIdentifier", + "src": "7669:3:17" + }, + "nativeSrc": "7669:9:17", + "nodeType": "YulFunctionCall", + "src": "7669:9:17" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "7662:3:17", + "nodeType": "YulIdentifier", + "src": "7662:3:17" + } + ] + }, + { + "body": { + "nativeSrc": "7702:22:17", + "nodeType": "YulBlock", + "src": "7702:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "7704:16:17", + "nodeType": "YulIdentifier", + "src": "7704:16:17" + }, + "nativeSrc": "7704:18:17", + "nodeType": "YulFunctionCall", + "src": "7704:18:17" + }, + "nativeSrc": "7704:18:17", + "nodeType": "YulExpressionStatement", + "src": "7704:18:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "7694:1:17", + "nodeType": "YulIdentifier", + "src": "7694:1:17" + }, + { + "name": "sum", + "nativeSrc": "7697:3:17", + "nodeType": "YulIdentifier", + "src": "7697:3:17" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7691:2:17", + "nodeType": "YulIdentifier", + "src": "7691:2:17" + }, + "nativeSrc": "7691:10:17", + "nodeType": "YulFunctionCall", + "src": "7691:10:17" + }, + "nativeSrc": "7688:36:17", + "nodeType": "YulIf", + "src": "7688:36:17" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "7540:191:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "7571:1:17", + "nodeType": "YulTypedName", + "src": "7571:1:17", + "type": "" + }, + { + "name": "y", + "nativeSrc": "7574:1:17", + "nodeType": "YulTypedName", + "src": "7574:1:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "7580:3:17", + "nodeType": "YulTypedName", + "src": "7580:3:17", + "type": "" + } + ], + "src": "7540:191:17" + }, + { + "body": { + "nativeSrc": "7802:53:17", + "nodeType": "YulBlock", + "src": "7802:53:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7819:3:17", + "nodeType": "YulIdentifier", + "src": "7819:3:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7842:5:17", + "nodeType": "YulIdentifier", + "src": "7842:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "7824:17:17", + "nodeType": "YulIdentifier", + "src": "7824:17:17" + }, + "nativeSrc": "7824:24:17", + "nodeType": "YulFunctionCall", + "src": "7824:24:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7812:6:17", + "nodeType": "YulIdentifier", + "src": "7812:6:17" + }, + "nativeSrc": "7812:37:17", + "nodeType": "YulFunctionCall", + "src": "7812:37:17" + }, + "nativeSrc": "7812:37:17", + "nodeType": "YulExpressionStatement", + "src": "7812:37:17" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "7737:118:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "7790:5:17", + "nodeType": "YulTypedName", + "src": "7790:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "7797:3:17", + "nodeType": "YulTypedName", + "src": "7797:3:17", + "type": "" + } + ], + "src": "7737:118:17" + }, + { + "body": { + "nativeSrc": "7959:124:17", + "nodeType": "YulBlock", + "src": "7959:124:17", + "statements": [ + { + "nativeSrc": "7969:26:17", + "nodeType": "YulAssignment", + "src": "7969:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7981:9:17", + "nodeType": "YulIdentifier", + "src": "7981:9:17" + }, + { "kind": "number", + "nativeSrc": "7992:2:17", "nodeType": "YulLiteral", - "src": "1434:2:17", + "src": "7992:2:17", "type": "", - "value": "64" + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7977:3:17", + "nodeType": "YulIdentifier", + "src": "7977:3:17" + }, + "nativeSrc": "7977:18:17", + "nodeType": "YulFunctionCall", + "src": "7977:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7969:4:17", + "nodeType": "YulIdentifier", + "src": "7969:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8049:6:17", + "nodeType": "YulIdentifier", + "src": "8049:6:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1424:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1450:63:17", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1485:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1496:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1481:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1481:22:17" + "name": "headStart", + "nativeSrc": "8062:9:17", + "nodeType": "YulIdentifier", + "src": "8062:9:17" }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1505:7:17" + "kind": "number", + "nativeSrc": "8073:1:17", + "nodeType": "YulLiteral", + "src": "8073:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "add", + "nativeSrc": "8058:3:17", "nodeType": "YulIdentifier", - "src": "1460:20:17" + "src": "8058:3:17" }, + "nativeSrc": "8058:17:17", "nodeType": "YulFunctionCall", - "src": "1460:53:17" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1450:6:17" - } - ] - } - ] + "src": "8058:17:17" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "8005:43:17", + "nodeType": "YulIdentifier", + "src": "8005:43:17" + }, + "nativeSrc": "8005:71:17", + "nodeType": "YulFunctionCall", + "src": "8005:71:17" + }, + "nativeSrc": "8005:71:17", + "nodeType": "YulExpressionStatement", + "src": "8005:71:17" } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "7861:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "7931:9:17", "nodeType": "YulTypedName", - "src": "1032:9:17", + "src": "7931:9:17", "type": "" }, { - "name": "dataEnd", + "name": "value0", + "nativeSrc": "7943:6:17", "nodeType": "YulTypedName", - "src": "1043:7:17", + "src": "7943:6:17", "type": "" } ], "returnVariables": [ { - "name": "value0", + "name": "tail", + "nativeSrc": "7954:4:17", + "nodeType": "YulTypedName", + "src": "7954:4:17", + "type": "" + } + ], + "src": "7861:222:17" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 17, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801562000010575f80fd5b506040516200191938038062001919833981810160405281019062000036919062000270565b604051806080016040528060588152602001620018c1605891396040518060400160405280600981526020017f54657374546f6b656e00000000000000000000000000000000000000000000008152508160039081620000979190620004fb565b508060049081620000a99190620004fb565b505050620000be3382620000c560201b60201c565b50620006f0565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000136576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012d906200063d565b60405180910390fd5b620001495f83836200022a60201b60201c565b8060025f8282546200015c91906200068a565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020b9190620006d5565b60405180910390a3620002265f83836200022f60201b60201c565b5050565b505050565b505050565b5f80fd5b5f819050919050565b6200024c8162000238565b811462000257575f80fd5b50565b5f815190506200026a8162000241565b92915050565b5f6020828403121562000288576200028762000234565b5b5f62000297848285016200025a565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031c57607f821691505b602082108103620003325762000331620002d7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000359565b620003a2868362000359565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620003e3620003dd620003d78462000238565b620003ba565b62000238565b9050919050565b5f819050919050565b620003fe83620003c3565b620004166200040d82620003ea565b84845462000365565b825550505050565b5f90565b6200042c6200041e565b62000439818484620003f3565b505050565b5b818110156200046057620004545f8262000422565b6001810190506200043f565b5050565b601f821115620004af57620004798162000338565b62000484846200034a565b8101602085101562000494578190505b620004ac620004a3856200034a565b8301826200043e565b50505b505050565b5f82821c905092915050565b5f620004d15f1984600802620004b4565b1980831691505092915050565b5f620004eb8383620004c0565b9150826002028217905092915050565b6200050682620002a0565b67ffffffffffffffff811115620005225762000521620002aa565b5b6200052e825462000304565b6200053b82828562000464565b5f60209050601f83116001811462000571575f84156200055c578287015190505b620005688582620004de565b865550620005d7565b601f198416620005818662000338565b5f5b82811015620005aa5784890151825560018201915060208501945060208101905062000583565b86831015620005ca5784890151620005c6601f891682620004c0565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000625601f83620005df565b91506200063282620005ef565b602082019050919050565b5f6020820190508181035f830152620006568162000617565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620006968262000238565b9150620006a38362000238565b9250828201905080821115620006be57620006bd6200065d565b5b92915050565b620006cf8162000238565b82525050565b5f602082019050620006ea5f830184620006c4565b92915050565b6111c380620006fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6011905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea2646970667358221220853ce2fdbd9a8d2907a90289051c73b6a66e37388148a4fa5bf17449dc7ad60364736f6c634300081800336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1919 CODESIZE SUB DUP1 PUSH3 0x1919 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x36 SWAP2 SWAP1 PUSH3 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x58 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x18C1 PUSH1 0x58 SWAP2 CODECOPY PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x54657374546F6B656E0000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x97 SWAP2 SWAP1 PUSH3 0x4FB JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA9 SWAP2 SWAP1 PUSH3 0x4FB JUMP JUMPDEST POP POP POP PUSH3 0xBE CALLER DUP3 PUSH3 0xC5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x6F0 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x136 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x12D SWAP1 PUSH3 0x63D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x149 PUSH0 DUP4 DUP4 PUSH3 0x22A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH3 0x15C SWAP2 SWAP1 PUSH3 0x68A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x20B SWAP2 SWAP1 PUSH3 0x6D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x226 PUSH0 DUP4 DUP4 PUSH3 0x22F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x24C DUP2 PUSH3 0x238 JUMP JUMPDEST DUP2 EQ PUSH3 0x257 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH3 0x26A DUP2 PUSH3 0x241 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x288 JUMPI PUSH3 0x287 PUSH3 0x234 JUMP JUMPDEST JUMPDEST PUSH0 PUSH3 0x297 DUP5 DUP3 DUP6 ADD PUSH3 0x25A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x31C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x332 JUMPI PUSH3 0x331 PUSH3 0x2D7 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH3 0x396 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x359 JUMP JUMPDEST PUSH3 0x3A2 DUP7 DUP4 PUSH3 0x359 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x3E3 PUSH3 0x3DD PUSH3 0x3D7 DUP5 PUSH3 0x238 JUMP JUMPDEST PUSH3 0x3BA JUMP JUMPDEST PUSH3 0x238 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3FE DUP4 PUSH3 0x3C3 JUMP JUMPDEST PUSH3 0x416 PUSH3 0x40D DUP3 PUSH3 0x3EA JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x365 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0x42C PUSH3 0x41E JUMP JUMPDEST PUSH3 0x439 DUP2 DUP5 DUP5 PUSH3 0x3F3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x460 JUMPI PUSH3 0x454 PUSH0 DUP3 PUSH3 0x422 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x43F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x4AF JUMPI PUSH3 0x479 DUP2 PUSH3 0x338 JUMP JUMPDEST PUSH3 0x484 DUP5 PUSH3 0x34A JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x494 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x4AC PUSH3 0x4A3 DUP6 PUSH3 0x34A JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x43E JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x4D1 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x4B4 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x4EB DUP4 DUP4 PUSH3 0x4C0 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x506 DUP3 PUSH3 0x2A0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x522 JUMPI PUSH3 0x521 PUSH3 0x2AA JUMP JUMPDEST JUMPDEST PUSH3 0x52E DUP3 SLOAD PUSH3 0x304 JUMP JUMPDEST PUSH3 0x53B DUP3 DUP3 DUP6 PUSH3 0x464 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x571 JUMPI PUSH0 DUP5 ISZERO PUSH3 0x55C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x568 DUP6 DUP3 PUSH3 0x4DE JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5D7 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x581 DUP7 PUSH3 0x338 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x5AA JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x583 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x5CA JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x5C6 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x4C0 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH3 0x625 PUSH1 0x1F DUP4 PUSH3 0x5DF JUMP JUMPDEST SWAP2 POP PUSH3 0x632 DUP3 PUSH3 0x5EF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH3 0x656 DUP2 PUSH3 0x617 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH3 0x696 DUP3 PUSH3 0x238 JUMP JUMPDEST SWAP2 POP PUSH3 0x6A3 DUP4 PUSH3 0x238 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0x6BE JUMPI PUSH3 0x6BD PUSH3 0x65D JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x6CF DUP2 PUSH3 0x238 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x6EA PUSH0 DUP4 ADD DUP5 PUSH3 0x6C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C3 DUP1 PUSH3 0x6FE PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x243 JUMPI PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB3 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xCAB JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x30D PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x31A DUP2 DUP6 DUP6 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x338 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x345 DUP6 DUP3 DUP6 PUSH2 0x752 JUMP JUMPDEST PUSH2 0x350 DUP6 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x36E PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x38F DUP2 DUP6 DUP6 PUSH2 0x380 DUP6 DUP10 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x38A SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3EE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41A SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x465 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x43C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x465 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x448 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x479 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x486 DUP3 DUP7 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP1 PUSH2 0xE41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4EE PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x4FB DUP2 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F4 SWAP1 PUSH2 0xECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x66B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x662 SWAP1 PUSH2 0xF5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x75D DUP5 DUP5 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7D7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP1 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x842 SWAP1 PUSH2 0x1053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8B0 SWAP1 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8C4 DUP4 DUP4 DUP4 PUSH2 0xA49 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93E SWAP1 PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA30 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA43 DUP5 DUP5 DUP5 PUSH2 0xA4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA8A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA6F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAAF DUP3 PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xAB9 DUP2 DUP6 PUSH2 0xA5D JUMP JUMPDEST SWAP4 POP PUSH2 0xAC9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA6D JUMP JUMPDEST PUSH2 0xAD2 DUP2 PUSH2 0xA95 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xAF5 DUP2 DUP5 PUSH2 0xAA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB2A DUP3 PUSH2 0xB01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3A DUP2 PUSH2 0xB20 JUMP JUMPDEST DUP2 EQ PUSH2 0xB44 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB55 DUP2 PUSH2 0xB31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6D DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP2 EQ PUSH2 0xB77 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB88 DUP2 PUSH2 0xB64 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBB1 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBC2 DUP6 DUP3 DUP7 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0xBCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBF9 PUSH0 DUP4 ADD DUP5 PUSH2 0xBD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC08 DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC21 PUSH0 DUP4 ADD DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC3D PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC4B DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC5C DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC6D DUP7 DUP3 DUP8 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC8C DUP2 PUSH2 0xC77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA5 PUSH0 DUP4 ADD DUP5 PUSH2 0xC83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC0 JUMPI PUSH2 0xCBF PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCCD DUP5 DUP3 DUP6 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEB PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCF9 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0A DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD6B JUMPI PUSH2 0xD6A PUSH2 0xD14 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xDA8 DUP3 PUSH2 0xB5B JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 DUP4 PUSH2 0xB5B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0xD71 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE2B PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xE36 DUP3 PUSH2 0xDD1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE58 DUP2 PUSH2 0xE1F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xEB9 PUSH1 0x24 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xEC4 DUP3 PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF47 PUSH1 0x22 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xF52 DUP3 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xF74 DUP2 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xFAF PUSH1 0x1D DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xFBA DUP3 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFDC DUP2 PUSH2 0xFA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x103D PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1048 DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x106A DUP2 PUSH2 0x1031 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x10CB PUSH1 0x23 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x10D6 DUP3 PUSH2 0x1071 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10F8 DUP2 PUSH2 0x10BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1159 PUSH1 0x26 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1164 DUP3 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1186 DUP2 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 EXTCODECOPY 0xE2 REVERT 0xBD SWAP11 DUP14 0x29 SMOD 0xA9 MUL DUP10 SDIV SHR PUSH20 0xB6A66E37388148A4FA5BF17449DC7AD60364736F PUSH13 0x634300081800336C6F6E672073 PUSH21 0x72696E67206E616D652C206C6F6E6720737472696E PUSH8 0x206E616D652C206C PUSH16 0x6E6720737472696E67206E616D652C20 PUSH13 0x6F6E6720737472696E67206E61 PUSH14 0x652C206C6F6E6720737472696E67 KECCAK256 PUSH15 0x616D65000000000000000000000000 ", + "sourceMap": "128:377:8:-:0;;;170:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1980:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2054:5;2046;:13;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;:::i;:::-;;1980:113;;367:32:8::1;373:10;385:13;367:5;;;:32;;:::i;:::-;170:236:::0;128:377;;8520:535:0;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;;;:49;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;;;:48;;:::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;88:117:17:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:99::-;1103:6;1137:5;1131:12;1121:22;;1051:99;;;:::o;1156:180::-;1204:77;1201:1;1194:88;1301:4;1298:1;1291:15;1325:4;1322:1;1315:15;1342:180;1390:77;1387:1;1380:88;1487:4;1484:1;1477:15;1511:4;1508:1;1501:15;1528:320;1572:6;1609:1;1603:4;1599:12;1589:22;;1656:1;1650:4;1646:12;1677:18;1667:81;;1733:4;1725:6;1721:17;1711:27;;1667:81;1795:2;1787:6;1784:14;1764:18;1761:38;1758:84;;1814:18;;:::i;:::-;1758:84;1579:269;1528:320;;;:::o;1854:141::-;1903:4;1926:3;1918:11;;1949:3;1946:1;1939:14;1983:4;1980:1;1970:18;1962:26;;1854:141;;;:::o;2001:93::-;2038:6;2085:2;2080;2073:5;2069:14;2065:23;2055:33;;2001:93;;;:::o;2100:107::-;2144:8;2194:5;2188:4;2184:16;2163:37;;2100:107;;;;:::o;2213:393::-;2282:6;2332:1;2320:10;2316:18;2355:97;2385:66;2374:9;2355:97;:::i;:::-;2473:39;2503:8;2492:9;2473:39;:::i;:::-;2461:51;;2545:4;2541:9;2534:5;2530:21;2521:30;;2594:4;2584:8;2580:19;2573:5;2570:30;2560:40;;2289:317;;2213:393;;;;;:::o;2612:60::-;2640:3;2661:5;2654:12;;2612:60;;;:::o;2678:142::-;2728:9;2761:53;2779:34;2788:24;2806:5;2788:24;:::i;:::-;2779:34;:::i;:::-;2761:53;:::i;:::-;2748:66;;2678:142;;;:::o;2826:75::-;2869:3;2890:5;2883:12;;2826:75;;;:::o;2907:269::-;3017:39;3048:7;3017:39;:::i;:::-;3078:91;3127:41;3151:16;3127:41;:::i;:::-;3119:6;3112:4;3106:11;3078:91;:::i;:::-;3072:4;3065:105;2983:193;2907:269;;;:::o;3182:73::-;3227:3;3182:73;:::o;3261:189::-;3338:32;;:::i;:::-;3379:65;3437:6;3429;3423:4;3379:65;:::i;:::-;3314:136;3261:189;;:::o;3456:186::-;3516:120;3533:3;3526:5;3523:14;3516:120;;;3587:39;3624:1;3617:5;3587:39;:::i;:::-;3560:1;3553:5;3549:13;3540:22;;3516:120;;;3456:186;;:::o;3648:543::-;3749:2;3744:3;3741:11;3738:446;;;3783:38;3815:5;3783:38;:::i;:::-;3867:29;3885:10;3867:29;:::i;:::-;3857:8;3853:44;4050:2;4038:10;4035:18;4032:49;;;4071:8;4056:23;;4032:49;4094:80;4150:22;4168:3;4150:22;:::i;:::-;4140:8;4136:37;4123:11;4094:80;:::i;:::-;3753:431;;3738:446;3648:543;;;:::o;4197:117::-;4251:8;4301:5;4295:4;4291:16;4270:37;;4197:117;;;;:::o;4320:169::-;4364:6;4397:51;4445:1;4441:6;4433:5;4430:1;4426:13;4397:51;:::i;:::-;4393:56;4478:4;4472;4468:15;4458:25;;4371:118;4320:169;;;;:::o;4494:295::-;4570:4;4716:29;4741:3;4735:4;4716:29;:::i;:::-;4708:37;;4778:3;4775:1;4771:11;4765:4;4762:21;4754:29;;4494:295;;;;:::o;4794:1395::-;4911:37;4944:3;4911:37;:::i;:::-;5013:18;5005:6;5002:30;4999:56;;;5035:18;;:::i;:::-;4999:56;5079:38;5111:4;5105:11;5079:38;:::i;:::-;5164:67;5224:6;5216;5210:4;5164:67;:::i;:::-;5258:1;5282:4;5269:17;;5314:2;5306:6;5303:14;5331:1;5326:618;;;;5988:1;6005:6;6002:77;;;6054:9;6049:3;6045:19;6039:26;6030:35;;6002:77;6105:67;6165:6;6158:5;6105:67;:::i;:::-;6099:4;6092:81;5961:222;5296:887;;5326:618;5378:4;5374:9;5366:6;5362:22;5412:37;5444:4;5412:37;:::i;:::-;5471:1;5485:208;5499:7;5496:1;5493:14;5485:208;;;5578:9;5573:3;5569:19;5563:26;5555:6;5548:42;5629:1;5621:6;5617:14;5607:24;;5676:2;5665:9;5661:18;5648:31;;5522:4;5519:1;5515:12;5510:17;;5485:208;;;5721:6;5712:7;5709:19;5706:179;;;5779:9;5774:3;5770:19;5764:26;5822:48;5864:4;5856:6;5852:17;5841:9;5822:48;:::i;:::-;5814:6;5807:64;5729:156;5706:179;5931:1;5927;5919:6;5915:14;5911:22;5905:4;5898:36;5333:611;;;5296:887;;4886:1303;;;4794:1395;;:::o;6195:169::-;6279:11;6313:6;6308:3;6301:19;6353:4;6348:3;6344:14;6329:29;;6195:169;;;;:::o;6370:181::-;6510:33;6506:1;6498:6;6494:14;6487:57;6370:181;:::o;6557:366::-;6699:3;6720:67;6784:2;6779:3;6720:67;:::i;:::-;6713:74;;6796:93;6885:3;6796:93;:::i;:::-;6914:2;6909:3;6905:12;6898:19;;6557:366;;;:::o;6929:419::-;7095:4;7133:2;7122:9;7118:18;7110:26;;7182:9;7176:4;7172:20;7168:1;7157:9;7153:17;7146:47;7210:131;7336:4;7210:131;:::i;:::-;7202:139;;6929:419;;;:::o;7354:180::-;7402:77;7399:1;7392:88;7499:4;7496:1;7489:15;7523:4;7520:1;7513:15;7540:191;7580:3;7599:20;7617:1;7599:20;:::i;:::-;7594:25;;7633:20;7651:1;7633:20;:::i;:::-;7628:25;;7676:1;7673;7669:9;7662:16;;7697:3;7694:1;7691:10;7688:36;;;7704:18;;:::i;:::-;7688:36;7540:191;;;;:::o;7737:118::-;7824:24;7842:5;7824:24;:::i;:::-;7819:3;7812:37;7737:118;;:::o;7861:222::-;7954:4;7992:2;7981:9;7977:18;7969:26;;8005:71;8073:1;8062:9;8058:17;8049:6;8005:71;:::i;:::-;7861:222;;;;:::o;128:377:8:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_585": { + "entryPoint": 2638, + "id": 585, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_520": { + "entryPoint": 1423, + "id": 520, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_574": { + "entryPoint": 2633, + "id": 574, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_701": { + "entryPoint": 1416, + "id": 701, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_563": { + "entryPoint": 1874, + "id": 563, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_346": { + "entryPoint": 2013, + "id": 346, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_141": { + "entryPoint": 1286, + "id": 141, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_166": { + "entryPoint": 771, + "id": 166, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_98": { + "entryPoint": 922, + "id": 98, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_999": { + "entryPoint": 860, + "id": 999, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_269": { + "entryPoint": 1135, + "id": 269, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_228": { + "entryPoint": 868, + "id": 228, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_54": { + "entryPoint": 627, + "id": 54, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_64": { + "entryPoint": 991, + "id": 64, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_84": { + "entryPoint": 805, + "id": 84, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_199": { + "entryPoint": 814, + "id": 199, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_123": { + "entryPoint": 1252, + "id": 123, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 2887, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2938, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3243, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3286, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3111, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 2958, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3031, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2725, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4287, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3899, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4003, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4429, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3757, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3615, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3071, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3203, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3046, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4321, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3933, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4037, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4179, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3791, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3086, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3218, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2653, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2848, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3020, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2907, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3191, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2669, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3393, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3441, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3348, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2813, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2709, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4209, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 3821, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 3963, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4351, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4067, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 3679, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 3537, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2865, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2916, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:13699:17", + "nodeType": "YulBlock", + "src": "0:13699:17", + "statements": [ + { + "body": { + "nativeSrc": "66:40:17", + "nodeType": "YulBlock", + "src": "66:40:17", + "statements": [ + { + "nativeSrc": "77:22:17", + "nodeType": "YulAssignment", + "src": "77:22:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:17", + "nodeType": "YulIdentifier", + "src": "93:5:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "87:5:17", + "nodeType": "YulIdentifier", + "src": "87:5:17" + }, + "nativeSrc": "87:12:17", + "nodeType": "YulFunctionCall", + "src": "87:12:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "77:6:17", + "nodeType": "YulIdentifier", + "src": "77:6:17" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:17", + "nodeType": "YulTypedName", + "src": "49:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:17", + "nodeType": "YulTypedName", + "src": "59:6:17", + "type": "" + } + ], + "src": "7:99:17" + }, + { + "body": { + "nativeSrc": "208:73:17", + "nodeType": "YulBlock", + "src": "208:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "225:3:17", + "nodeType": "YulIdentifier", + "src": "225:3:17" + }, + { + "name": "length", + "nativeSrc": "230:6:17", + "nodeType": "YulIdentifier", + "src": "230:6:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "218:6:17", + "nodeType": "YulIdentifier", + "src": "218:6:17" + }, + "nativeSrc": "218:19:17", + "nodeType": "YulFunctionCall", + "src": "218:19:17" + }, + "nativeSrc": "218:19:17", + "nodeType": "YulExpressionStatement", + "src": "218:19:17" + }, + { + "nativeSrc": "246:29:17", + "nodeType": "YulAssignment", + "src": "246:29:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "265:3:17", + "nodeType": "YulIdentifier", + "src": "265:3:17" + }, + { + "kind": "number", + "nativeSrc": "270:4:17", + "nodeType": "YulLiteral", + "src": "270:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "261:3:17", + "nodeType": "YulIdentifier", + "src": "261:3:17" + }, + "nativeSrc": "261:14:17", + "nodeType": "YulFunctionCall", + "src": "261:14:17" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "246:11:17", + "nodeType": "YulIdentifier", + "src": "246:11:17" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "112:169:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "180:3:17", "nodeType": "YulTypedName", - "src": "1055:6:17", + "src": "180:3:17", "type": "" }, { - "name": "value1", + "name": "length", + "nativeSrc": "185:6:17", "nodeType": "YulTypedName", - "src": "1063:6:17", + "src": "185:6:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "value2", + "name": "updated_pos", + "nativeSrc": "196:11:17", "nodeType": "YulTypedName", - "src": "1071:6:17", + "src": "196:11:17", "type": "" } ], - "src": "978:552:17" + "src": "112:169:17" }, { "body": { + "nativeSrc": "349:184:17", "nodeType": "YulBlock", - "src": "1619:324:17", + "src": "349:184:17", "statements": [ + { + "nativeSrc": "359:10:17", + "nodeType": "YulVariableDeclaration", + "src": "359:10:17", + "value": { + "kind": "number", + "nativeSrc": "368:1:17", + "nodeType": "YulLiteral", + "src": "368:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "363:1:17", + "nodeType": "YulTypedName", + "src": "363:1:17", + "type": "" + } + ] + }, { "body": { + "nativeSrc": "428:63:17", "nodeType": "YulBlock", - "src": "1665:16:17", + "src": "428:63:17", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1674:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "dst", + "nativeSrc": "453:3:17", + "nodeType": "YulIdentifier", + "src": "453:3:17" + }, + { + "name": "i", + "nativeSrc": "458:1:17", + "nodeType": "YulIdentifier", + "src": "458:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "449:3:17", + "nodeType": "YulIdentifier", + "src": "449:3:17" + }, + "nativeSrc": "449:11:17", + "nodeType": "YulFunctionCall", + "src": "449:11:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1677:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "472:3:17", + "nodeType": "YulIdentifier", + "src": "472:3:17" + }, + { + "name": "i", + "nativeSrc": "477:1:17", + "nodeType": "YulIdentifier", + "src": "477:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "468:3:17", + "nodeType": "YulIdentifier", + "src": "468:3:17" + }, + "nativeSrc": "468:11:17", + "nodeType": "YulFunctionCall", + "src": "468:11:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "462:5:17", + "nodeType": "YulIdentifier", + "src": "462:5:17" + }, + "nativeSrc": "462:18:17", + "nodeType": "YulFunctionCall", + "src": "462:18:17" } ], "functionName": { - "name": "revert", + "name": "mstore", + "nativeSrc": "442:6:17", "nodeType": "YulIdentifier", - "src": "1667:6:17" + "src": "442:6:17" }, + "nativeSrc": "442:39:17", "nodeType": "YulFunctionCall", - "src": "1667:12:17" + "src": "442:39:17" }, + "nativeSrc": "442:39:17", "nodeType": "YulExpressionStatement", - "src": "1667:12:17" + "src": "442:39:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1640:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1649:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1636:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1636:23:17" + "name": "i", + "nativeSrc": "389:1:17", + "nodeType": "YulIdentifier", + "src": "389:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1661:2:17", - "type": "", - "value": "64" + "name": "length", + "nativeSrc": "392:6:17", + "nodeType": "YulIdentifier", + "src": "392:6:17" } ], "functionName": { - "name": "slt", + "name": "lt", + "nativeSrc": "386:2:17", "nodeType": "YulIdentifier", - "src": "1632:3:17" + "src": "386:2:17" }, + "nativeSrc": "386:13:17", "nodeType": "YulFunctionCall", - "src": "1632:32:17" + "src": "386:13:17" }, - "nodeType": "YulIf", - "src": "1629:2:17" - }, - { - "nodeType": "YulBlock", - "src": "1691:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1706:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1720:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1710:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1735:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1770:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1781:6:17" - } - ], - "functionName": { - "name": "add", + "nativeSrc": "378:113:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "400:19:17", + "nodeType": "YulBlock", + "src": "400:19:17", + "statements": [ + { + "nativeSrc": "402:15:17", + "nodeType": "YulAssignment", + "src": "402:15:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "411:1:17", "nodeType": "YulIdentifier", - "src": "1766:3:17" + "src": "411:1:17" }, - "nodeType": "YulFunctionCall", - "src": "1766:22:17" + { + "kind": "number", + "nativeSrc": "414:2:17", + "nodeType": "YulLiteral", + "src": "414:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "407:3:17", + "nodeType": "YulIdentifier", + "src": "407:3:17" }, + "nativeSrc": "407:10:17", + "nodeType": "YulFunctionCall", + "src": "407:10:17" + }, + "variableNames": [ { - "name": "dataEnd", + "name": "i", + "nativeSrc": "402:1:17", "nodeType": "YulIdentifier", - "src": "1790:7:17" + "src": "402:1:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1745:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1745:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1735:6:17" - } - ] - } - ] + ] + } + ] + }, + "pre": { + "nativeSrc": "382:3:17", + "nodeType": "YulBlock", + "src": "382:3:17", + "statements": [] + }, + "src": "378:113:17" }, { - "nodeType": "YulBlock", - "src": "1818:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1833:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1847:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1837:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1863:63:17", - "value": { + "expression": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1898:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1909:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1894:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1894:22:17" + "name": "dst", + "nativeSrc": "511:3:17", + "nodeType": "YulIdentifier", + "src": "511:3:17" }, { - "name": "dataEnd", + "name": "length", + "nativeSrc": "516:6:17", "nodeType": "YulIdentifier", - "src": "1918:7:17" + "src": "516:6:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "add", + "nativeSrc": "507:3:17", "nodeType": "YulIdentifier", - "src": "1873:20:17" + "src": "507:3:17" }, + "nativeSrc": "507:16:17", "nodeType": "YulFunctionCall", - "src": "1873:53:17" + "src": "507:16:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1863:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "525:1:17", + "nodeType": "YulLiteral", + "src": "525:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "500:6:17", + "nodeType": "YulIdentifier", + "src": "500:6:17" + }, + "nativeSrc": "500:27:17", + "nodeType": "YulFunctionCall", + "src": "500:27:17" + }, + "nativeSrc": "500:27:17", + "nodeType": "YulExpressionStatement", + "src": "500:27:17" } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "287:246:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1581:9:17", - "type": "" - }, - { - "name": "dataEnd", + "name": "src", + "nativeSrc": "331:3:17", "nodeType": "YulTypedName", - "src": "1592:7:17", + "src": "331:3:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "value0", + "name": "dst", + "nativeSrc": "336:3:17", "nodeType": "YulTypedName", - "src": "1604:6:17", + "src": "336:3:17", "type": "" }, { - "name": "value1", + "name": "length", + "nativeSrc": "341:6:17", "nodeType": "YulTypedName", - "src": "1612:6:17", + "src": "341:6:17", "type": "" } ], - "src": "1536:407:17" + "src": "287:246:17" }, { "body": { + "nativeSrc": "587:54:17", "nodeType": "YulBlock", - "src": "2008:50:17", + "src": "587:54:17", "statements": [ { - "expression": { + "nativeSrc": "597:38:17", + "nodeType": "YulAssignment", + "src": "597:38:17", + "value": { "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2025:3:17" - }, { "arguments": [ { "name": "value", + "nativeSrc": "615:5:17", "nodeType": "YulIdentifier", - "src": "2045:5:17" + "src": "615:5:17" + }, + { + "kind": "number", + "nativeSrc": "622:2:17", + "nodeType": "YulLiteral", + "src": "622:2:17", + "type": "", + "value": "31" } ], "functionName": { - "name": "cleanup_t_bool", + "name": "add", + "nativeSrc": "611:3:17", + "nodeType": "YulIdentifier", + "src": "611:3:17" + }, + "nativeSrc": "611:14:17", + "nodeType": "YulFunctionCall", + "src": "611:14:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "631:2:17", + "nodeType": "YulLiteral", + "src": "631:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "627:3:17", "nodeType": "YulIdentifier", - "src": "2030:14:17" + "src": "627:3:17" }, + "nativeSrc": "627:7:17", "nodeType": "YulFunctionCall", - "src": "2030:21:17" + "src": "627:7:17" } ], "functionName": { - "name": "mstore", + "name": "and", + "nativeSrc": "607:3:17", "nodeType": "YulIdentifier", - "src": "2018:6:17" + "src": "607:3:17" }, + "nativeSrc": "607:28:17", "nodeType": "YulFunctionCall", - "src": "2018:34:17" + "src": "607:28:17" }, - "nodeType": "YulExpressionStatement", - "src": "2018:34:17" + "variableNames": [ + { + "name": "result", + "nativeSrc": "597:6:17", + "nodeType": "YulIdentifier", + "src": "597:6:17" + } + ] } ] }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", + "name": "round_up_to_mul_of_32", + "nativeSrc": "539:102:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "570:5:17", "nodeType": "YulTypedName", - "src": "1996:5:17", + "src": "570:5:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "result", + "nativeSrc": "580:6:17", "nodeType": "YulTypedName", - "src": "2003:3:17", + "src": "580:6:17", "type": "" } ], - "src": "1949:109:17" + "src": "539:102:17" }, { "body": { + "nativeSrc": "739:285:17", "nodeType": "YulBlock", - "src": "2156:272:17", + "src": "739:285:17", "statements": [ { + "nativeSrc": "749:53:17", "nodeType": "YulVariableDeclaration", - "src": "2166:53:17", + "src": "749:53:17", "value": { "arguments": [ { "name": "value", + "nativeSrc": "796:5:17", "nodeType": "YulIdentifier", - "src": "2213:5:17" + "src": "796:5:17" } ], "functionName": { "name": "array_length_t_string_memory_ptr", + "nativeSrc": "763:32:17", "nodeType": "YulIdentifier", - "src": "2180:32:17" + "src": "763:32:17" }, + "nativeSrc": "763:39:17", "nodeType": "YulFunctionCall", - "src": "2180:39:17" + "src": "763:39:17" }, "variables": [ { "name": "length", + "nativeSrc": "753:6:17", "nodeType": "YulTypedName", - "src": "2170:6:17", + "src": "753:6:17", "type": "" } ] }, { + "nativeSrc": "811:78:17", "nodeType": "YulAssignment", - "src": "2228:78:17", + "src": "811:78:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "877:3:17", "nodeType": "YulIdentifier", - "src": "2294:3:17" + "src": "877:3:17" }, { "name": "length", + "nativeSrc": "882:6:17", "nodeType": "YulIdentifier", - "src": "2299:6:17" + "src": "882:6:17" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "818:58:17", "nodeType": "YulIdentifier", - "src": "2235:58:17" + "src": "818:58:17" }, + "nativeSrc": "818:71:17", "nodeType": "YulFunctionCall", - "src": "2235:71:17" + "src": "818:71:17" }, "variableNames": [ { "name": "pos", + "nativeSrc": "811:3:17", "nodeType": "YulIdentifier", - "src": "2228:3:17" + "src": "811:3:17" } ] }, @@ -3249,154 +6647,182 @@ "arguments": [ { "name": "value", + "nativeSrc": "937:5:17", "nodeType": "YulIdentifier", - "src": "2341:5:17" + "src": "937:5:17" }, { "kind": "number", + "nativeSrc": "944:4:17", "nodeType": "YulLiteral", - "src": "2348:4:17", + "src": "944:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "933:3:17", "nodeType": "YulIdentifier", - "src": "2337:3:17" + "src": "933:3:17" }, + "nativeSrc": "933:16:17", "nodeType": "YulFunctionCall", - "src": "2337:16:17" + "src": "933:16:17" }, { "name": "pos", + "nativeSrc": "951:3:17", "nodeType": "YulIdentifier", - "src": "2355:3:17" + "src": "951:3:17" }, { "name": "length", + "nativeSrc": "956:6:17", "nodeType": "YulIdentifier", - "src": "2360:6:17" + "src": "956:6:17" } ], "functionName": { - "name": "copy_memory_to_memory", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "898:34:17", "nodeType": "YulIdentifier", - "src": "2315:21:17" + "src": "898:34:17" }, + "nativeSrc": "898:65:17", "nodeType": "YulFunctionCall", - "src": "2315:52:17" + "src": "898:65:17" }, + "nativeSrc": "898:65:17", "nodeType": "YulExpressionStatement", - "src": "2315:52:17" + "src": "898:65:17" }, { + "nativeSrc": "972:46:17", "nodeType": "YulAssignment", - "src": "2376:46:17", + "src": "972:46:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "983:3:17", "nodeType": "YulIdentifier", - "src": "2387:3:17" + "src": "983:3:17" }, { "arguments": [ { "name": "length", + "nativeSrc": "1010:6:17", "nodeType": "YulIdentifier", - "src": "2414:6:17" + "src": "1010:6:17" } ], "functionName": { "name": "round_up_to_mul_of_32", + "nativeSrc": "988:21:17", "nodeType": "YulIdentifier", - "src": "2392:21:17" + "src": "988:21:17" }, + "nativeSrc": "988:29:17", "nodeType": "YulFunctionCall", - "src": "2392:29:17" + "src": "988:29:17" } ], "functionName": { "name": "add", + "nativeSrc": "979:3:17", "nodeType": "YulIdentifier", - "src": "2383:3:17" + "src": "979:3:17" }, + "nativeSrc": "979:39:17", "nodeType": "YulFunctionCall", - "src": "2383:39:17" + "src": "979:39:17" }, "variableNames": [ { "name": "end", + "nativeSrc": "972:3:17", "nodeType": "YulIdentifier", - "src": "2376:3:17" + "src": "972:3:17" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "647:377:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "720:5:17", "nodeType": "YulTypedName", - "src": "2137:5:17", + "src": "720:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "727:3:17", "nodeType": "YulTypedName", - "src": "2144:3:17", + "src": "727:3:17", "type": "" } ], "returnVariables": [ { "name": "end", + "nativeSrc": "735:3:17", "nodeType": "YulTypedName", - "src": "2152:3:17", + "src": "735:3:17", "type": "" } ], - "src": "2064:364:17" + "src": "647:377:17" }, { "body": { + "nativeSrc": "1148:195:17", "nodeType": "YulBlock", - "src": "2580:220:17", + "src": "1148:195:17", "statements": [ { + "nativeSrc": "1158:26:17", "nodeType": "YulAssignment", - "src": "2590:74:17", + "src": "1158:26:17", "value": { "arguments": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "1170:9:17", "nodeType": "YulIdentifier", - "src": "2656:3:17" + "src": "1170:9:17" }, { "kind": "number", + "nativeSrc": "1181:2:17", "nodeType": "YulLiteral", - "src": "2661:2:17", + "src": "1181:2:17", "type": "", - "value": "35" + "value": "32" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "add", + "nativeSrc": "1166:3:17", "nodeType": "YulIdentifier", - "src": "2597:58:17" + "src": "1166:3:17" }, + "nativeSrc": "1166:18:17", "nodeType": "YulFunctionCall", - "src": "2597:67:17" + "src": "1166:18:17" }, "variableNames": [ { - "name": "pos", + "name": "tail", + "nativeSrc": "1158:4:17", "nodeType": "YulIdentifier", - "src": "2590:3:17" + "src": "1158:4:17" } ] }, @@ -3404,229 +6830,580 @@ "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2762:3:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1205:9:17", + "nodeType": "YulIdentifier", + "src": "1205:9:17" + }, + { + "kind": "number", + "nativeSrc": "1216:1:17", + "nodeType": "YulLiteral", + "src": "1216:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1201:3:17", + "nodeType": "YulIdentifier", + "src": "1201:3:17" + }, + "nativeSrc": "1201:17:17", + "nodeType": "YulFunctionCall", + "src": "1201:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "1224:4:17", + "nodeType": "YulIdentifier", + "src": "1224:4:17" + }, + { + "name": "headStart", + "nativeSrc": "1230:9:17", + "nodeType": "YulIdentifier", + "src": "1230:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1220:3:17", + "nodeType": "YulIdentifier", + "src": "1220:3:17" + }, + "nativeSrc": "1220:20:17", + "nodeType": "YulFunctionCall", + "src": "1220:20:17" } ], "functionName": { - "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "name": "mstore", + "nativeSrc": "1194:6:17", "nodeType": "YulIdentifier", - "src": "2673:88:17" + "src": "1194:6:17" }, + "nativeSrc": "1194:47:17", "nodeType": "YulFunctionCall", - "src": "2673:93:17" + "src": "1194:47:17" }, + "nativeSrc": "1194:47:17", "nodeType": "YulExpressionStatement", - "src": "2673:93:17" + "src": "1194:47:17" }, { + "nativeSrc": "1250:86:17", + "nodeType": "YulAssignment", + "src": "1250:86:17", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1322:6:17", + "nodeType": "YulIdentifier", + "src": "1322:6:17" + }, + { + "name": "tail", + "nativeSrc": "1331:4:17", + "nodeType": "YulIdentifier", + "src": "1331:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "1258:63:17", + "nodeType": "YulIdentifier", + "src": "1258:63:17" + }, + "nativeSrc": "1258:78:17", + "nodeType": "YulFunctionCall", + "src": "1258:78:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1250:4:17", + "nodeType": "YulIdentifier", + "src": "1250:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "1030:313:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1120:9:17", + "nodeType": "YulTypedName", + "src": "1120:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1132:6:17", + "nodeType": "YulTypedName", + "src": "1132:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1143:4:17", + "nodeType": "YulTypedName", + "src": "1143:4:17", + "type": "" + } + ], + "src": "1030:313:17" + }, + { + "body": { + "nativeSrc": "1389:35:17", + "nodeType": "YulBlock", + "src": "1389:35:17", + "statements": [ + { + "nativeSrc": "1399:19:17", + "nodeType": "YulAssignment", + "src": "1399:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1415:2:17", + "nodeType": "YulLiteral", + "src": "1415:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1409:5:17", + "nodeType": "YulIdentifier", + "src": "1409:5:17" + }, + "nativeSrc": "1409:9:17", + "nodeType": "YulFunctionCall", + "src": "1409:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1399:6:17", + "nodeType": "YulIdentifier", + "src": "1399:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "1349:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1382:6:17", + "nodeType": "YulTypedName", + "src": "1382:6:17", + "type": "" + } + ], + "src": "1349:75:17" + }, + { + "body": { + "nativeSrc": "1519:28:17", + "nodeType": "YulBlock", + "src": "1519:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1536:1:17", + "nodeType": "YulLiteral", + "src": "1536:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1539:1:17", + "nodeType": "YulLiteral", + "src": "1539:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1529:6:17", + "nodeType": "YulIdentifier", + "src": "1529:6:17" + }, + "nativeSrc": "1529:12:17", + "nodeType": "YulFunctionCall", + "src": "1529:12:17" + }, + "nativeSrc": "1529:12:17", + "nodeType": "YulExpressionStatement", + "src": "1529:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1430:117:17", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:17" + }, + { + "body": { + "nativeSrc": "1642:28:17", + "nodeType": "YulBlock", + "src": "1642:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1659:1:17", + "nodeType": "YulLiteral", + "src": "1659:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1662:1:17", + "nodeType": "YulLiteral", + "src": "1662:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1652:6:17", + "nodeType": "YulIdentifier", + "src": "1652:6:17" + }, + "nativeSrc": "1652:12:17", + "nodeType": "YulFunctionCall", + "src": "1652:12:17" + }, + "nativeSrc": "1652:12:17", + "nodeType": "YulExpressionStatement", + "src": "1652:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "1553:117:17", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:17" + }, + { + "body": { + "nativeSrc": "1721:81:17", + "nodeType": "YulBlock", + "src": "1721:81:17", + "statements": [ + { + "nativeSrc": "1731:65:17", "nodeType": "YulAssignment", - "src": "2775:19:17", + "src": "1731:65:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1746:5:17", "nodeType": "YulIdentifier", - "src": "2786:3:17" + "src": "1746:5:17" }, { "kind": "number", + "nativeSrc": "1753:42:17", "nodeType": "YulLiteral", - "src": "2791:2:17", + "src": "1753:42:17", "type": "", - "value": "64" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "add", + "name": "and", + "nativeSrc": "1742:3:17", "nodeType": "YulIdentifier", - "src": "2782:3:17" + "src": "1742:3:17" }, + "nativeSrc": "1742:54:17", "nodeType": "YulFunctionCall", - "src": "2782:12:17" + "src": "1742:54:17" }, "variableNames": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "1731:7:17", "nodeType": "YulIdentifier", - "src": "2775:3:17" + "src": "1731:7:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1676:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1703:5:17", "nodeType": "YulTypedName", - "src": "2568:3:17", + "src": "1703:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "1713:7:17", "nodeType": "YulTypedName", - "src": "2576:3:17", + "src": "1713:7:17", "type": "" } ], - "src": "2434:366:17" + "src": "1676:126:17" }, { "body": { + "nativeSrc": "1853:51:17", "nodeType": "YulBlock", - "src": "2952:220:17", + "src": "1853:51:17", "statements": [ { + "nativeSrc": "1863:35:17", "nodeType": "YulAssignment", - "src": "2962:74:17", + "src": "1863:35:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1892:5:17", "nodeType": "YulIdentifier", - "src": "3028:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3033:2:17", - "type": "", - "value": "34" + "src": "1892:5:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1874:17:17", "nodeType": "YulIdentifier", - "src": "2969:58:17" + "src": "1874:17:17" }, + "nativeSrc": "1874:24:17", "nodeType": "YulFunctionCall", - "src": "2969:67:17" + "src": "1874:24:17" }, "variableNames": [ { - "name": "pos", + "name": "cleaned", + "nativeSrc": "1863:7:17", "nodeType": "YulIdentifier", - "src": "2962:3:17" + "src": "1863:7:17" } ] - }, + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1808:96:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1835:5:17", + "nodeType": "YulTypedName", + "src": "1835:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1845:7:17", + "nodeType": "YulTypedName", + "src": "1845:7:17", + "type": "" + } + ], + "src": "1808:96:17" + }, + { + "body": { + "nativeSrc": "1953:79:17", + "nodeType": "YulBlock", + "src": "1953:79:17", + "statements": [ { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "2010:16:17", + "nodeType": "YulBlock", + "src": "2010:16:17", + "statements": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3134:3:17" + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2019:1:17", + "nodeType": "YulLiteral", + "src": "2019:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2022:1:17", + "nodeType": "YulLiteral", + "src": "2022:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2012:6:17", + "nodeType": "YulIdentifier", + "src": "2012:6:17" + }, + "nativeSrc": "2012:12:17", + "nodeType": "YulFunctionCall", + "src": "2012:12:17" + }, + "nativeSrc": "2012:12:17", + "nodeType": "YulExpressionStatement", + "src": "2012:12:17" } - ], - "functionName": { - "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", - "nodeType": "YulIdentifier", - "src": "3045:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "3045:93:17" + ] }, - "nodeType": "YulExpressionStatement", - "src": "3045:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "3147:19:17", - "value": { + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3158:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3163:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "1976:5:17", + "nodeType": "YulIdentifier", + "src": "1976:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2001:5:17", + "nodeType": "YulIdentifier", + "src": "2001:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1983:17:17", + "nodeType": "YulIdentifier", + "src": "1983:17:17" + }, + "nativeSrc": "1983:24:17", + "nodeType": "YulFunctionCall", + "src": "1983:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1973:2:17", + "nodeType": "YulIdentifier", + "src": "1973:2:17" + }, + "nativeSrc": "1973:35:17", + "nodeType": "YulFunctionCall", + "src": "1973:35:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "1966:6:17", "nodeType": "YulIdentifier", - "src": "3154:3:17" + "src": "1966:6:17" }, + "nativeSrc": "1966:43:17", "nodeType": "YulFunctionCall", - "src": "3154:12:17" + "src": "1966:43:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3147:3:17" - } - ] + "nativeSrc": "1963:63:17", + "nodeType": "YulIf", + "src": "1963:63:17" } ] }, - "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "name": "validator_revert_t_address", + "nativeSrc": "1910:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2940:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", + "name": "value", + "nativeSrc": "1946:5:17", "nodeType": "YulTypedName", - "src": "2948:3:17", + "src": "1946:5:17", "type": "" } ], - "src": "2806:366:17" + "src": "1910:122:17" }, { "body": { + "nativeSrc": "2090:87:17", "nodeType": "YulBlock", - "src": "3324:220:17", + "src": "2090:87:17", "statements": [ { + "nativeSrc": "2100:29:17", "nodeType": "YulAssignment", - "src": "3334:74:17", + "src": "2100:29:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2122:6:17", "nodeType": "YulIdentifier", - "src": "3400:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3405:2:17", - "type": "", - "value": "29" + "src": "2122:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2109:12:17", "nodeType": "YulIdentifier", - "src": "3341:58:17" + "src": "2109:12:17" }, + "nativeSrc": "2109:20:17", "nodeType": "YulFunctionCall", - "src": "3341:67:17" + "src": "2109:20:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2100:5:17", "nodeType": "YulIdentifier", - "src": "3334:3:17" + "src": "2100:5:17" } ] }, @@ -3634,114 +7411,262 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2165:5:17", "nodeType": "YulIdentifier", - "src": "3506:3:17" + "src": "2165:5:17" } ], "functionName": { - "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "name": "validator_revert_t_address", + "nativeSrc": "2138:26:17", "nodeType": "YulIdentifier", - "src": "3417:88:17" + "src": "2138:26:17" }, + "nativeSrc": "2138:33:17", "nodeType": "YulFunctionCall", - "src": "3417:93:17" + "src": "2138:33:17" }, + "nativeSrc": "2138:33:17", "nodeType": "YulExpressionStatement", - "src": "3417:93:17" - }, + "src": "2138:33:17" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "2038:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2068:6:17", + "nodeType": "YulTypedName", + "src": "2068:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2076:3:17", + "nodeType": "YulTypedName", + "src": "2076:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2084:5:17", + "nodeType": "YulTypedName", + "src": "2084:5:17", + "type": "" + } + ], + "src": "2038:139:17" + }, + { + "body": { + "nativeSrc": "2228:32:17", + "nodeType": "YulBlock", + "src": "2228:32:17", + "statements": [ { + "nativeSrc": "2238:16:17", "nodeType": "YulAssignment", - "src": "3519:19:17", + "src": "2238:16:17", "value": { + "name": "value", + "nativeSrc": "2249:5:17", + "nodeType": "YulIdentifier", + "src": "2249:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2238:7:17", + "nodeType": "YulIdentifier", + "src": "2238:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2183:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2210:5:17", + "nodeType": "YulTypedName", + "src": "2210:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2220:7:17", + "nodeType": "YulTypedName", + "src": "2220:7:17", + "type": "" + } + ], + "src": "2183:77:17" + }, + { + "body": { + "nativeSrc": "2309:79:17", + "nodeType": "YulBlock", + "src": "2309:79:17", + "statements": [ + { + "body": { + "nativeSrc": "2366:16:17", + "nodeType": "YulBlock", + "src": "2366:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2375:1:17", + "nodeType": "YulLiteral", + "src": "2375:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2378:1:17", + "nodeType": "YulLiteral", + "src": "2378:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2368:6:17", + "nodeType": "YulIdentifier", + "src": "2368:6:17" + }, + "nativeSrc": "2368:12:17", + "nodeType": "YulFunctionCall", + "src": "2368:12:17" + }, + "nativeSrc": "2368:12:17", + "nodeType": "YulExpressionStatement", + "src": "2368:12:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3530:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3535:2:17", - "type": "", - "value": "32" + "arguments": [ + { + "name": "value", + "nativeSrc": "2332:5:17", + "nodeType": "YulIdentifier", + "src": "2332:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2357:5:17", + "nodeType": "YulIdentifier", + "src": "2357:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2339:17:17", + "nodeType": "YulIdentifier", + "src": "2339:17:17" + }, + "nativeSrc": "2339:24:17", + "nodeType": "YulFunctionCall", + "src": "2339:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2329:2:17", + "nodeType": "YulIdentifier", + "src": "2329:2:17" + }, + "nativeSrc": "2329:35:17", + "nodeType": "YulFunctionCall", + "src": "2329:35:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "2322:6:17", "nodeType": "YulIdentifier", - "src": "3526:3:17" + "src": "2322:6:17" }, + "nativeSrc": "2322:43:17", "nodeType": "YulFunctionCall", - "src": "3526:12:17" + "src": "2322:43:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3519:3:17" - } - ] + "nativeSrc": "2319:63:17", + "nodeType": "YulIf", + "src": "2319:63:17" } ] }, - "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "name": "validator_revert_t_uint256", + "nativeSrc": "2266:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3312:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", + "name": "value", + "nativeSrc": "2302:5:17", "nodeType": "YulTypedName", - "src": "3320:3:17", + "src": "2302:5:17", "type": "" } ], - "src": "3178:366:17" + "src": "2266:122:17" }, { "body": { + "nativeSrc": "2446:87:17", "nodeType": "YulBlock", - "src": "3696:220:17", + "src": "2446:87:17", "statements": [ { + "nativeSrc": "2456:29:17", "nodeType": "YulAssignment", - "src": "3706:74:17", + "src": "2456:29:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2478:6:17", "nodeType": "YulIdentifier", - "src": "3772:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3777:2:17", - "type": "", - "value": "38" + "src": "2478:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2465:12:17", "nodeType": "YulIdentifier", - "src": "3713:58:17" + "src": "2465:12:17" }, + "nativeSrc": "2465:20:17", "nodeType": "YulFunctionCall", - "src": "3713:67:17" + "src": "2465:20:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2456:5:17", "nodeType": "YulIdentifier", - "src": "3706:3:17" + "src": "2456:5:17" } ] }, @@ -3749,581 +7674,742 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2521:5:17", "nodeType": "YulIdentifier", - "src": "3878:3:17" + "src": "2521:5:17" } ], "functionName": { - "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "name": "validator_revert_t_uint256", + "nativeSrc": "2494:26:17", "nodeType": "YulIdentifier", - "src": "3789:88:17" + "src": "2494:26:17" }, + "nativeSrc": "2494:33:17", "nodeType": "YulFunctionCall", - "src": "3789:93:17" + "src": "2494:33:17" }, + "nativeSrc": "2494:33:17", "nodeType": "YulExpressionStatement", - "src": "3789:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "3891:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3902:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3907:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3898:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3898:12:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3891:3:17" - } - ] + "src": "2494:33:17" } ] }, - "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_t_uint256", + "nativeSrc": "2394:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2424:6:17", + "nodeType": "YulTypedName", + "src": "2424:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2432:3:17", "nodeType": "YulTypedName", - "src": "3684:3:17", + "src": "2432:3:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value", + "nativeSrc": "2440:5:17", "nodeType": "YulTypedName", - "src": "3692:3:17", + "src": "2440:5:17", "type": "" } ], - "src": "3550:366:17" + "src": "2394:139:17" }, { "body": { + "nativeSrc": "2622:391:17", "nodeType": "YulBlock", - "src": "4068:220:17", + "src": "2622:391:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4078:74:17", - "value": { + "body": { + "nativeSrc": "2668:83:17", + "nodeType": "YulBlock", + "src": "2668:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2670:77:17", + "nodeType": "YulIdentifier", + "src": "2670:77:17" + }, + "nativeSrc": "2670:79:17", + "nodeType": "YulFunctionCall", + "src": "2670:79:17" + }, + "nativeSrc": "2670:79:17", + "nodeType": "YulExpressionStatement", + "src": "2670:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4144:3:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2643:7:17", + "nodeType": "YulIdentifier", + "src": "2643:7:17" + }, + { + "name": "headStart", + "nativeSrc": "2652:9:17", + "nodeType": "YulIdentifier", + "src": "2652:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2639:3:17", + "nodeType": "YulIdentifier", + "src": "2639:3:17" + }, + "nativeSrc": "2639:23:17", + "nodeType": "YulFunctionCall", + "src": "2639:23:17" }, { "kind": "number", + "nativeSrc": "2664:2:17", "nodeType": "YulLiteral", - "src": "4149:2:17", + "src": "2664:2:17", "type": "", - "value": "37" + "value": "64" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "slt", + "nativeSrc": "2635:3:17", "nodeType": "YulIdentifier", - "src": "4085:58:17" + "src": "2635:3:17" }, + "nativeSrc": "2635:32:17", "nodeType": "YulFunctionCall", - "src": "4085:67:17" + "src": "2635:32:17" }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4078:3:17" - } - ] + "nativeSrc": "2632:119:17", + "nodeType": "YulIf", + "src": "2632:119:17" }, { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4250:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", - "nodeType": "YulIdentifier", - "src": "4161:88:17" + "nativeSrc": "2761:117:17", + "nodeType": "YulBlock", + "src": "2761:117:17", + "statements": [ + { + "nativeSrc": "2776:15:17", + "nodeType": "YulVariableDeclaration", + "src": "2776:15:17", + "value": { + "kind": "number", + "nativeSrc": "2790:1:17", + "nodeType": "YulLiteral", + "src": "2790:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2780:6:17", + "nodeType": "YulTypedName", + "src": "2780:6:17", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "4161:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4161:93:17" + { + "nativeSrc": "2805:63:17", + "nodeType": "YulAssignment", + "src": "2805:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2840:9:17", + "nodeType": "YulIdentifier", + "src": "2840:9:17" + }, + { + "name": "offset", + "nativeSrc": "2851:6:17", + "nodeType": "YulIdentifier", + "src": "2851:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2836:3:17", + "nodeType": "YulIdentifier", + "src": "2836:3:17" + }, + "nativeSrc": "2836:22:17", + "nodeType": "YulFunctionCall", + "src": "2836:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2860:7:17", + "nodeType": "YulIdentifier", + "src": "2860:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2815:20:17", + "nodeType": "YulIdentifier", + "src": "2815:20:17" + }, + "nativeSrc": "2815:53:17", + "nodeType": "YulFunctionCall", + "src": "2815:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2805:6:17", + "nodeType": "YulIdentifier", + "src": "2805:6:17" + } + ] + } + ] }, { - "nodeType": "YulAssignment", - "src": "4263:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4274:3:17" - }, - { + "nativeSrc": "2888:118:17", + "nodeType": "YulBlock", + "src": "2888:118:17", + "statements": [ + { + "nativeSrc": "2903:16:17", + "nodeType": "YulVariableDeclaration", + "src": "2903:16:17", + "value": { "kind": "number", + "nativeSrc": "2917:2:17", "nodeType": "YulLiteral", - "src": "4279:2:17", + "src": "2917:2:17", "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4270:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4270:12:17" - }, - "variableNames": [ + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2907:6:17", + "nodeType": "YulTypedName", + "src": "2907:6:17", + "type": "" + } + ] + }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4263:3:17" + "nativeSrc": "2933:63:17", + "nodeType": "YulAssignment", + "src": "2933:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2968:9:17", + "nodeType": "YulIdentifier", + "src": "2968:9:17" + }, + { + "name": "offset", + "nativeSrc": "2979:6:17", + "nodeType": "YulIdentifier", + "src": "2979:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2964:3:17", + "nodeType": "YulIdentifier", + "src": "2964:3:17" + }, + "nativeSrc": "2964:22:17", + "nodeType": "YulFunctionCall", + "src": "2964:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2988:7:17", + "nodeType": "YulIdentifier", + "src": "2988:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "2943:20:17", + "nodeType": "YulIdentifier", + "src": "2943:20:17" + }, + "nativeSrc": "2943:53:17", + "nodeType": "YulFunctionCall", + "src": "2943:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2933:6:17", + "nodeType": "YulIdentifier", + "src": "2933:6:17" + } + ] } ] } ] }, - "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "2539:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "2584:9:17", + "nodeType": "YulTypedName", + "src": "2584:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2595:7:17", "nodeType": "YulTypedName", - "src": "4056:3:17", + "src": "2595:7:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value0", + "nativeSrc": "2607:6:17", + "nodeType": "YulTypedName", + "src": "2607:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2615:6:17", "nodeType": "YulTypedName", - "src": "4064:3:17", + "src": "2615:6:17", "type": "" } ], - "src": "3922:366:17" + "src": "2539:474:17" }, { "body": { + "nativeSrc": "3061:48:17", "nodeType": "YulBlock", - "src": "4440:220:17", + "src": "3061:48:17", "statements": [ { + "nativeSrc": "3071:32:17", "nodeType": "YulAssignment", - "src": "4450:74:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4516:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4521:2:17", - "type": "", - "value": "36" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4457:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "4457:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4450:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4622:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", - "nodeType": "YulIdentifier", - "src": "4533:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "4533:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4533:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "4635:19:17", + "src": "3071:32:17", "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4646:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4651:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "3096:5:17", + "nodeType": "YulIdentifier", + "src": "3096:5:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3089:6:17", + "nodeType": "YulIdentifier", + "src": "3089:6:17" + }, + "nativeSrc": "3089:13:17", + "nodeType": "YulFunctionCall", + "src": "3089:13:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "3082:6:17", "nodeType": "YulIdentifier", - "src": "4642:3:17" + "src": "3082:6:17" }, + "nativeSrc": "3082:21:17", "nodeType": "YulFunctionCall", - "src": "4642:12:17" + "src": "3082:21:17" }, "variableNames": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "3071:7:17", "nodeType": "YulIdentifier", - "src": "4635:3:17" + "src": "3071:7:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_bool", + "nativeSrc": "3019:90:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "3043:5:17", "nodeType": "YulTypedName", - "src": "4428:3:17", + "src": "3043:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "3053:7:17", "nodeType": "YulTypedName", - "src": "4436:3:17", + "src": "3053:7:17", "type": "" } ], - "src": "4294:366:17" + "src": "3019:90:17" }, { "body": { + "nativeSrc": "3174:50:17", "nodeType": "YulBlock", - "src": "4812:220:17", + "src": "3174:50:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4822:74:17", - "value": { + "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3191:3:17", "nodeType": "YulIdentifier", - "src": "4888:3:17" + "src": "3191:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4893:2:17", - "type": "", - "value": "37" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4829:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "4829:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4822:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4994:3:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "3211:5:17", + "nodeType": "YulIdentifier", + "src": "3211:5:17" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "3196:14:17", + "nodeType": "YulIdentifier", + "src": "3196:14:17" + }, + "nativeSrc": "3196:21:17", + "nodeType": "YulFunctionCall", + "src": "3196:21:17" } ], "functionName": { - "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "name": "mstore", + "nativeSrc": "3184:6:17", "nodeType": "YulIdentifier", - "src": "4905:88:17" + "src": "3184:6:17" }, + "nativeSrc": "3184:34:17", "nodeType": "YulFunctionCall", - "src": "4905:93:17" + "src": "3184:34:17" }, + "nativeSrc": "3184:34:17", "nodeType": "YulExpressionStatement", - "src": "4905:93:17" - }, + "src": "3184:34:17" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3115:109:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3162:5:17", + "nodeType": "YulTypedName", + "src": "3162:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3169:3:17", + "nodeType": "YulTypedName", + "src": "3169:3:17", + "type": "" + } + ], + "src": "3115:109:17" + }, + { + "body": { + "nativeSrc": "3322:118:17", + "nodeType": "YulBlock", + "src": "3322:118:17", + "statements": [ { + "nativeSrc": "3332:26:17", "nodeType": "YulAssignment", - "src": "5007:19:17", + "src": "3332:26:17", "value": { "arguments": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "3344:9:17", "nodeType": "YulIdentifier", - "src": "5018:3:17" + "src": "3344:9:17" }, { "kind": "number", + "nativeSrc": "3355:2:17", "nodeType": "YulLiteral", - "src": "5023:2:17", + "src": "3355:2:17", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3340:3:17", "nodeType": "YulIdentifier", - "src": "5014:3:17" + "src": "3340:3:17" }, + "nativeSrc": "3340:18:17", "nodeType": "YulFunctionCall", - "src": "5014:12:17" + "src": "3340:18:17" }, "variableNames": [ { - "name": "end", + "name": "tail", + "nativeSrc": "3332:4:17", "nodeType": "YulIdentifier", - "src": "5007:3:17" + "src": "3332:4:17" } ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4800:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "4808:3:17", - "type": "" - } - ], - "src": "4666:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5103:53:17", - "statements": [ + }, { "expression": { "arguments": [ { - "name": "pos", + "name": "value0", + "nativeSrc": "3406:6:17", "nodeType": "YulIdentifier", - "src": "5120:3:17" + "src": "3406:6:17" }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3419:9:17", "nodeType": "YulIdentifier", - "src": "5143:5:17" + "src": "3419:9:17" + }, + { + "kind": "number", + "nativeSrc": "3430:1:17", + "nodeType": "YulLiteral", + "src": "3430:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "add", + "nativeSrc": "3415:3:17", "nodeType": "YulIdentifier", - "src": "5125:17:17" + "src": "3415:3:17" }, + "nativeSrc": "3415:17:17", "nodeType": "YulFunctionCall", - "src": "5125:24:17" + "src": "3415:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3368:37:17", "nodeType": "YulIdentifier", - "src": "5113:6:17" + "src": "3368:37:17" }, + "nativeSrc": "3368:65:17", "nodeType": "YulFunctionCall", - "src": "5113:37:17" + "src": "3368:65:17" }, + "nativeSrc": "3368:65:17", "nodeType": "YulExpressionStatement", - "src": "5113:37:17" + "src": "3368:65:17" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "3230:210:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3294:9:17", "nodeType": "YulTypedName", - "src": "5091:5:17", + "src": "3294:9:17", "type": "" }, { - "name": "pos", + "name": "value0", + "nativeSrc": "3306:6:17", + "nodeType": "YulTypedName", + "src": "3306:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3317:4:17", "nodeType": "YulTypedName", - "src": "5098:3:17", + "src": "3317:4:17", "type": "" } ], - "src": "5038:118:17" + "src": "3230:210:17" }, { "body": { + "nativeSrc": "3511:53:17", "nodeType": "YulBlock", - "src": "5223:51:17", + "src": "3511:53:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3528:3:17", "nodeType": "YulIdentifier", - "src": "5240:3:17" + "src": "3528:3:17" }, { "arguments": [ { "name": "value", + "nativeSrc": "3551:5:17", "nodeType": "YulIdentifier", - "src": "5261:5:17" + "src": "3551:5:17" } ], "functionName": { - "name": "cleanup_t_uint8", + "name": "cleanup_t_uint256", + "nativeSrc": "3533:17:17", "nodeType": "YulIdentifier", - "src": "5245:15:17" + "src": "3533:17:17" }, + "nativeSrc": "3533:24:17", "nodeType": "YulFunctionCall", - "src": "5245:22:17" + "src": "3533:24:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "3521:6:17", "nodeType": "YulIdentifier", - "src": "5233:6:17" + "src": "3521:6:17" }, + "nativeSrc": "3521:37:17", "nodeType": "YulFunctionCall", - "src": "5233:35:17" + "src": "3521:37:17" }, + "nativeSrc": "3521:37:17", "nodeType": "YulExpressionStatement", - "src": "5233:35:17" + "src": "3521:37:17" } ] }, - "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3446:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "3499:5:17", "nodeType": "YulTypedName", - "src": "5211:5:17", + "src": "3499:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "3506:3:17", "nodeType": "YulTypedName", - "src": "5218:3:17", + "src": "3506:3:17", "type": "" } ], - "src": "5162:112:17" + "src": "3446:118:17" }, { "body": { + "nativeSrc": "3668:124:17", "nodeType": "YulBlock", - "src": "5372:118:17", + "src": "3668:124:17", "statements": [ { + "nativeSrc": "3678:26:17", "nodeType": "YulAssignment", - "src": "5382:26:17", + "src": "3678:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "3690:9:17", "nodeType": "YulIdentifier", - "src": "5394:9:17" + "src": "3690:9:17" }, { "kind": "number", + "nativeSrc": "3701:2:17", "nodeType": "YulLiteral", - "src": "5405:2:17", + "src": "3701:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3686:3:17", "nodeType": "YulIdentifier", - "src": "5390:3:17" + "src": "3686:3:17" }, + "nativeSrc": "3686:18:17", "nodeType": "YulFunctionCall", - "src": "5390:18:17" + "src": "3686:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "3678:4:17", "nodeType": "YulIdentifier", - "src": "5382:4:17" + "src": "3678:4:17" } ] }, @@ -4332,2868 +8418,3617 @@ "arguments": [ { "name": "value0", + "nativeSrc": "3758:6:17", "nodeType": "YulIdentifier", - "src": "5456:6:17" + "src": "3758:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "3771:9:17", "nodeType": "YulIdentifier", - "src": "5469:9:17" + "src": "3771:9:17" }, { "kind": "number", + "nativeSrc": "3782:1:17", "nodeType": "YulLiteral", - "src": "5480:1:17", + "src": "3782:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "3767:3:17", "nodeType": "YulIdentifier", - "src": "5465:3:17" + "src": "3767:3:17" }, + "nativeSrc": "3767:17:17", "nodeType": "YulFunctionCall", - "src": "5465:17:17" + "src": "3767:17:17" } ], "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3714:43:17", "nodeType": "YulIdentifier", - "src": "5418:37:17" + "src": "3714:43:17" }, + "nativeSrc": "3714:71:17", "nodeType": "YulFunctionCall", - "src": "5418:65:17" + "src": "3714:71:17" }, + "nativeSrc": "3714:71:17", "nodeType": "YulExpressionStatement", - "src": "5418:65:17" + "src": "3714:71:17" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "3570:222:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3640:9:17", + "nodeType": "YulTypedName", + "src": "3640:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3652:6:17", + "nodeType": "YulTypedName", + "src": "3652:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3663:4:17", + "nodeType": "YulTypedName", + "src": "3663:4:17", + "type": "" + } + ], + "src": "3570:222:17" + }, + { + "body": { + "nativeSrc": "3898:519:17", + "nodeType": "YulBlock", + "src": "3898:519:17", + "statements": [ + { + "body": { + "nativeSrc": "3944:83:17", + "nodeType": "YulBlock", + "src": "3944:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3946:77:17", + "nodeType": "YulIdentifier", + "src": "3946:77:17" + }, + "nativeSrc": "3946:79:17", + "nodeType": "YulFunctionCall", + "src": "3946:79:17" + }, + "nativeSrc": "3946:79:17", + "nodeType": "YulExpressionStatement", + "src": "3946:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3919:7:17", + "nodeType": "YulIdentifier", + "src": "3919:7:17" + }, + { + "name": "headStart", + "nativeSrc": "3928:9:17", + "nodeType": "YulIdentifier", + "src": "3928:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3915:3:17", + "nodeType": "YulIdentifier", + "src": "3915:3:17" + }, + "nativeSrc": "3915:23:17", + "nodeType": "YulFunctionCall", + "src": "3915:23:17" + }, + { + "kind": "number", + "nativeSrc": "3940:2:17", + "nodeType": "YulLiteral", + "src": "3940:2:17", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3911:3:17", + "nodeType": "YulIdentifier", + "src": "3911:3:17" + }, + "nativeSrc": "3911:32:17", + "nodeType": "YulFunctionCall", + "src": "3911:32:17" + }, + "nativeSrc": "3908:119:17", + "nodeType": "YulIf", + "src": "3908:119:17" + }, + { + "nativeSrc": "4037:117:17", + "nodeType": "YulBlock", + "src": "4037:117:17", + "statements": [ + { + "nativeSrc": "4052:15:17", + "nodeType": "YulVariableDeclaration", + "src": "4052:15:17", + "value": { + "kind": "number", + "nativeSrc": "4066:1:17", + "nodeType": "YulLiteral", + "src": "4066:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4056:6:17", + "nodeType": "YulTypedName", + "src": "4056:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4081:63:17", + "nodeType": "YulAssignment", + "src": "4081:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4116:9:17", + "nodeType": "YulIdentifier", + "src": "4116:9:17" + }, + { + "name": "offset", + "nativeSrc": "4127:6:17", + "nodeType": "YulIdentifier", + "src": "4127:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4112:3:17", + "nodeType": "YulIdentifier", + "src": "4112:3:17" + }, + "nativeSrc": "4112:22:17", + "nodeType": "YulFunctionCall", + "src": "4112:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4136:7:17", + "nodeType": "YulIdentifier", + "src": "4136:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4091:20:17", + "nodeType": "YulIdentifier", + "src": "4091:20:17" + }, + "nativeSrc": "4091:53:17", + "nodeType": "YulFunctionCall", + "src": "4091:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4081:6:17", + "nodeType": "YulIdentifier", + "src": "4081:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4164:118:17", + "nodeType": "YulBlock", + "src": "4164:118:17", + "statements": [ + { + "nativeSrc": "4179:16:17", + "nodeType": "YulVariableDeclaration", + "src": "4179:16:17", + "value": { + "kind": "number", + "nativeSrc": "4193:2:17", + "nodeType": "YulLiteral", + "src": "4193:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4183:6:17", + "nodeType": "YulTypedName", + "src": "4183:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4209:63:17", + "nodeType": "YulAssignment", + "src": "4209:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4244:9:17", + "nodeType": "YulIdentifier", + "src": "4244:9:17" + }, + { + "name": "offset", + "nativeSrc": "4255:6:17", + "nodeType": "YulIdentifier", + "src": "4255:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4240:3:17", + "nodeType": "YulIdentifier", + "src": "4240:3:17" + }, + "nativeSrc": "4240:22:17", + "nodeType": "YulFunctionCall", + "src": "4240:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4264:7:17", + "nodeType": "YulIdentifier", + "src": "4264:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4219:20:17", + "nodeType": "YulIdentifier", + "src": "4219:20:17" + }, + "nativeSrc": "4219:53:17", + "nodeType": "YulFunctionCall", + "src": "4219:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4209:6:17", + "nodeType": "YulIdentifier", + "src": "4209:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4292:118:17", + "nodeType": "YulBlock", + "src": "4292:118:17", + "statements": [ + { + "nativeSrc": "4307:16:17", + "nodeType": "YulVariableDeclaration", + "src": "4307:16:17", + "value": { + "kind": "number", + "nativeSrc": "4321:2:17", + "nodeType": "YulLiteral", + "src": "4321:2:17", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4311:6:17", + "nodeType": "YulTypedName", + "src": "4311:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4337:63:17", + "nodeType": "YulAssignment", + "src": "4337:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4372:9:17", + "nodeType": "YulIdentifier", + "src": "4372:9:17" + }, + { + "name": "offset", + "nativeSrc": "4383:6:17", + "nodeType": "YulIdentifier", + "src": "4383:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4368:3:17", + "nodeType": "YulIdentifier", + "src": "4368:3:17" + }, + "nativeSrc": "4368:22:17", + "nodeType": "YulFunctionCall", + "src": "4368:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4392:7:17", + "nodeType": "YulIdentifier", + "src": "4392:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4347:20:17", + "nodeType": "YulIdentifier", + "src": "4347:20:17" + }, + "nativeSrc": "4347:53:17", + "nodeType": "YulFunctionCall", + "src": "4347:53:17" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4337:6:17", + "nodeType": "YulIdentifier", + "src": "4337:6:17" + } + ] + } + ] } ] }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "3798:619:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "3852:9:17", "nodeType": "YulTypedName", - "src": "5344:9:17", + "src": "3852:9:17", "type": "" }, { - "name": "value0", + "name": "dataEnd", + "nativeSrc": "3863:7:17", "nodeType": "YulTypedName", - "src": "5356:6:17", + "src": "3863:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "3875:6:17", + "nodeType": "YulTypedName", + "src": "3875:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3883:6:17", + "nodeType": "YulTypedName", + "src": "3883:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3891:6:17", "nodeType": "YulTypedName", - "src": "5367:4:17", + "src": "3891:6:17", "type": "" } ], - "src": "5280:210:17" + "src": "3798:619:17" }, { "body": { + "nativeSrc": "4466:43:17", "nodeType": "YulBlock", - "src": "5614:195:17", + "src": "4466:43:17", "statements": [ { + "nativeSrc": "4476:27:17", "nodeType": "YulAssignment", - "src": "5624:26:17", + "src": "4476:27:17", "value": { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "4491:5:17", "nodeType": "YulIdentifier", - "src": "5636:9:17" + "src": "4491:5:17" }, { "kind": "number", + "nativeSrc": "4498:4:17", "nodeType": "YulLiteral", - "src": "5647:2:17", + "src": "4498:4:17", "type": "", - "value": "32" + "value": "0xff" } ], "functionName": { - "name": "add", + "name": "and", + "nativeSrc": "4487:3:17", "nodeType": "YulIdentifier", - "src": "5632:3:17" + "src": "4487:3:17" }, + "nativeSrc": "4487:16:17", "nodeType": "YulFunctionCall", - "src": "5632:18:17" + "src": "4487:16:17" }, "variableNames": [ { - "name": "tail", + "name": "cleaned", + "nativeSrc": "4476:7:17", "nodeType": "YulIdentifier", - "src": "5624:4:17" + "src": "4476:7:17" } ] - }, + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "4423:86:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4448:5:17", + "nodeType": "YulTypedName", + "src": "4448:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4458:7:17", + "nodeType": "YulTypedName", + "src": "4458:7:17", + "type": "" + } + ], + "src": "4423:86:17" + }, + { + "body": { + "nativeSrc": "4576:51:17", + "nodeType": "YulBlock", + "src": "4576:51:17", + "statements": [ { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5671:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5682:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5667:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5667:17:17" + "name": "pos", + "nativeSrc": "4593:3:17", + "nodeType": "YulIdentifier", + "src": "4593:3:17" }, { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5690:4:17" - }, - { - "name": "headStart", + "name": "value", + "nativeSrc": "4614:5:17", "nodeType": "YulIdentifier", - "src": "5696:9:17" + "src": "4614:5:17" } ], "functionName": { - "name": "sub", + "name": "cleanup_t_uint8", + "nativeSrc": "4598:15:17", "nodeType": "YulIdentifier", - "src": "5686:3:17" + "src": "4598:15:17" }, + "nativeSrc": "4598:22:17", "nodeType": "YulFunctionCall", - "src": "5686:20:17" + "src": "4598:22:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "4586:6:17", "nodeType": "YulIdentifier", - "src": "5660:6:17" + "src": "4586:6:17" }, + "nativeSrc": "4586:35:17", "nodeType": "YulFunctionCall", - "src": "5660:47:17" + "src": "4586:35:17" }, + "nativeSrc": "4586:35:17", "nodeType": "YulExpressionStatement", - "src": "5660:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "5716:86:17", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5788:6:17" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5797:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "5724:63:17" - }, - "nodeType": "YulFunctionCall", - "src": "5724:78:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5716:4:17" - } - ] + "src": "4586:35:17" } ] }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "4515:112:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "4564:5:17", "nodeType": "YulTypedName", - "src": "5586:9:17", + "src": "4564:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5598:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "4571:3:17", "nodeType": "YulTypedName", - "src": "5609:4:17", + "src": "4571:3:17", "type": "" } ], - "src": "5496:313:17" + "src": "4515:112:17" }, { "body": { + "nativeSrc": "4727:120:17", "nodeType": "YulBlock", - "src": "5986:248:17", + "src": "4727:120:17", "statements": [ { + "nativeSrc": "4737:26:17", "nodeType": "YulAssignment", - "src": "5996:26:17", + "src": "4737:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "4749:9:17", "nodeType": "YulIdentifier", - "src": "6008:9:17" + "src": "4749:9:17" }, { "kind": "number", + "nativeSrc": "4760:2:17", "nodeType": "YulLiteral", - "src": "6019:2:17", + "src": "4760:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "4745:3:17", "nodeType": "YulIdentifier", - "src": "6004:3:17" + "src": "4745:3:17" }, + "nativeSrc": "4745:18:17", "nodeType": "YulFunctionCall", - "src": "6004:18:17" + "src": "4745:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "4737:4:17", "nodeType": "YulIdentifier", - "src": "5996:4:17" + "src": "4737:4:17" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "4813:6:17", + "nodeType": "YulIdentifier", + "src": "4813:6:17" + }, { "arguments": [ { "name": "headStart", + "nativeSrc": "4826:9:17", "nodeType": "YulIdentifier", - "src": "6043:9:17" + "src": "4826:9:17" }, { "kind": "number", + "nativeSrc": "4837:1:17", "nodeType": "YulLiteral", - "src": "6054:1:17", + "src": "4837:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "4822:3:17", "nodeType": "YulIdentifier", - "src": "6039:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6039:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6062:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6068:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6058:3:17" + "src": "4822:3:17" }, + "nativeSrc": "4822:17:17", "nodeType": "YulFunctionCall", - "src": "6058:20:17" + "src": "4822:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "4773:39:17", "nodeType": "YulIdentifier", - "src": "6032:6:17" + "src": "4773:39:17" }, + "nativeSrc": "4773:67:17", "nodeType": "YulFunctionCall", - "src": "6032:47:17" + "src": "4773:67:17" }, + "nativeSrc": "4773:67:17", "nodeType": "YulExpressionStatement", - "src": "6032:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6088:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6222:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6096:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6096:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6088:4:17" - } - ] + "src": "4773:67:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nativeSrc": "4633:214:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "4699:9:17", + "nodeType": "YulTypedName", + "src": "4699:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4711:6:17", "nodeType": "YulTypedName", - "src": "5966:9:17", + "src": "4711:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "4722:4:17", "nodeType": "YulTypedName", - "src": "5981:4:17", + "src": "4722:4:17", "type": "" } ], - "src": "5815:419:17" + "src": "4633:214:17" }, { "body": { + "nativeSrc": "4919:263:17", "nodeType": "YulBlock", - "src": "6411:248:17", + "src": "4919:263:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "6421:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6433:9:17" - }, + "body": { + "nativeSrc": "4965:83:17", + "nodeType": "YulBlock", + "src": "4965:83:17", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6444:2:17", - "type": "", - "value": "32" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4967:77:17", + "nodeType": "YulIdentifier", + "src": "4967:77:17" + }, + "nativeSrc": "4967:79:17", + "nodeType": "YulFunctionCall", + "src": "4967:79:17" + }, + "nativeSrc": "4967:79:17", + "nodeType": "YulExpressionStatement", + "src": "4967:79:17" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6429:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6429:18:17" + ] }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6421:4:17" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "4940:7:17", "nodeType": "YulIdentifier", - "src": "6468:9:17" + "src": "4940:7:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6479:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "4949:9:17", + "nodeType": "YulIdentifier", + "src": "4949:9:17" } ], "functionName": { - "name": "add", + "name": "sub", + "nativeSrc": "4936:3:17", "nodeType": "YulIdentifier", - "src": "6464:3:17" + "src": "4936:3:17" }, + "nativeSrc": "4936:23:17", "nodeType": "YulFunctionCall", - "src": "6464:17:17" + "src": "4936:23:17" }, { + "kind": "number", + "nativeSrc": "4961:2:17", + "nodeType": "YulLiteral", + "src": "4961:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4932:3:17", + "nodeType": "YulIdentifier", + "src": "4932:3:17" + }, + "nativeSrc": "4932:32:17", + "nodeType": "YulFunctionCall", + "src": "4932:32:17" + }, + "nativeSrc": "4929:119:17", + "nodeType": "YulIf", + "src": "4929:119:17" + }, + { + "nativeSrc": "5058:117:17", + "nodeType": "YulBlock", + "src": "5058:117:17", + "statements": [ + { + "nativeSrc": "5073:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5073:15:17", + "value": { + "kind": "number", + "nativeSrc": "5087:1:17", + "nodeType": "YulLiteral", + "src": "5087:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5077:6:17", + "nodeType": "YulTypedName", + "src": "5077:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5102:63:17", + "nodeType": "YulAssignment", + "src": "5102:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6487:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5137:9:17", + "nodeType": "YulIdentifier", + "src": "5137:9:17" + }, + { + "name": "offset", + "nativeSrc": "5148:6:17", + "nodeType": "YulIdentifier", + "src": "5148:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5133:3:17", + "nodeType": "YulIdentifier", + "src": "5133:3:17" + }, + "nativeSrc": "5133:22:17", + "nodeType": "YulFunctionCall", + "src": "5133:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "5157:7:17", "nodeType": "YulIdentifier", - "src": "6493:9:17" + "src": "5157:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_address", + "nativeSrc": "5112:20:17", "nodeType": "YulIdentifier", - "src": "6483:3:17" + "src": "5112:20:17" }, + "nativeSrc": "5112:53:17", "nodeType": "YulFunctionCall", - "src": "6483:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6457:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6457:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6457:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6513:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6647:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6521:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6521:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6513:4:17" + "src": "5112:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5102:6:17", + "nodeType": "YulIdentifier", + "src": "5102:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_address", + "nativeSrc": "4853:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "4889:9:17", + "nodeType": "YulTypedName", + "src": "4889:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4900:7:17", "nodeType": "YulTypedName", - "src": "6391:9:17", + "src": "4900:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "4912:6:17", "nodeType": "YulTypedName", - "src": "6406:4:17", + "src": "4912:6:17", "type": "" } ], - "src": "6240:419:17" + "src": "4853:329:17" }, { "body": { + "nativeSrc": "5271:391:17", "nodeType": "YulBlock", - "src": "6836:248:17", + "src": "5271:391:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "6846:26:17", - "value": { + "body": { + "nativeSrc": "5317:83:17", + "nodeType": "YulBlock", + "src": "5317:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5319:77:17", + "nodeType": "YulIdentifier", + "src": "5319:77:17" + }, + "nativeSrc": "5319:79:17", + "nodeType": "YulFunctionCall", + "src": "5319:79:17" + }, + "nativeSrc": "5319:79:17", + "nodeType": "YulExpressionStatement", + "src": "5319:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6858:9:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5292:7:17", + "nodeType": "YulIdentifier", + "src": "5292:7:17" + }, + { + "name": "headStart", + "nativeSrc": "5301:9:17", + "nodeType": "YulIdentifier", + "src": "5301:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5288:3:17", + "nodeType": "YulIdentifier", + "src": "5288:3:17" + }, + "nativeSrc": "5288:23:17", + "nodeType": "YulFunctionCall", + "src": "5288:23:17" }, { "kind": "number", + "nativeSrc": "5313:2:17", "nodeType": "YulLiteral", - "src": "6869:2:17", + "src": "5313:2:17", "type": "", - "value": "32" + "value": "64" } ], "functionName": { - "name": "add", + "name": "slt", + "nativeSrc": "5284:3:17", "nodeType": "YulIdentifier", - "src": "6854:3:17" + "src": "5284:3:17" }, + "nativeSrc": "5284:32:17", "nodeType": "YulFunctionCall", - "src": "6854:18:17" + "src": "5284:32:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6846:4:17" - } - ] + "nativeSrc": "5281:119:17", + "nodeType": "YulIf", + "src": "5281:119:17" }, { - "expression": { - "arguments": [ - { + "nativeSrc": "5410:117:17", + "nodeType": "YulBlock", + "src": "5410:117:17", + "statements": [ + { + "nativeSrc": "5425:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5425:15:17", + "value": { + "kind": "number", + "nativeSrc": "5439:1:17", + "nodeType": "YulLiteral", + "src": "5439:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5429:6:17", + "nodeType": "YulTypedName", + "src": "5429:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5454:63:17", + "nodeType": "YulAssignment", + "src": "5454:63:17", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6893:9:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5489:9:17", + "nodeType": "YulIdentifier", + "src": "5489:9:17" + }, + { + "name": "offset", + "nativeSrc": "5500:6:17", + "nodeType": "YulIdentifier", + "src": "5500:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5485:3:17", + "nodeType": "YulIdentifier", + "src": "5485:3:17" + }, + "nativeSrc": "5485:22:17", + "nodeType": "YulFunctionCall", + "src": "5485:22:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6904:1:17", - "type": "", - "value": "0" + "name": "dataEnd", + "nativeSrc": "5509:7:17", + "nodeType": "YulIdentifier", + "src": "5509:7:17" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_address", + "nativeSrc": "5464:20:17", "nodeType": "YulIdentifier", - "src": "6889:3:17" + "src": "5464:20:17" }, + "nativeSrc": "5464:53:17", "nodeType": "YulFunctionCall", - "src": "6889:17:17" + "src": "5464:53:17" }, - { + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5454:6:17", + "nodeType": "YulIdentifier", + "src": "5454:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "5537:118:17", + "nodeType": "YulBlock", + "src": "5537:118:17", + "statements": [ + { + "nativeSrc": "5552:16:17", + "nodeType": "YulVariableDeclaration", + "src": "5552:16:17", + "value": { + "kind": "number", + "nativeSrc": "5566:2:17", + "nodeType": "YulLiteral", + "src": "5566:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5556:6:17", + "nodeType": "YulTypedName", + "src": "5556:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5582:63:17", + "nodeType": "YulAssignment", + "src": "5582:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6912:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5617:9:17", + "nodeType": "YulIdentifier", + "src": "5617:9:17" + }, + { + "name": "offset", + "nativeSrc": "5628:6:17", + "nodeType": "YulIdentifier", + "src": "5628:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5613:3:17", + "nodeType": "YulIdentifier", + "src": "5613:3:17" + }, + "nativeSrc": "5613:22:17", + "nodeType": "YulFunctionCall", + "src": "5613:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "5637:7:17", "nodeType": "YulIdentifier", - "src": "6918:9:17" + "src": "5637:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_address", + "nativeSrc": "5592:20:17", "nodeType": "YulIdentifier", - "src": "6908:3:17" + "src": "5592:20:17" }, + "nativeSrc": "5592:53:17", "nodeType": "YulFunctionCall", - "src": "6908:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6882:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6882:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6882:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6938:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7072:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6946:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6946:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6938:4:17" + "src": "5592:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5582:6:17", + "nodeType": "YulIdentifier", + "src": "5582:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "5188:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "5233:9:17", + "nodeType": "YulTypedName", + "src": "5233:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5244:7:17", "nodeType": "YulTypedName", - "src": "6816:9:17", + "src": "5244:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "5256:6:17", + "nodeType": "YulTypedName", + "src": "5256:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5264:6:17", "nodeType": "YulTypedName", - "src": "6831:4:17", + "src": "5264:6:17", "type": "" } ], - "src": "6665:419:17" + "src": "5188:474:17" }, { "body": { + "nativeSrc": "5696:152:17", "nodeType": "YulBlock", - "src": "7261:248:17", + "src": "5696:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "7271:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7283:9:17" + "kind": "number", + "nativeSrc": "5713:1:17", + "nodeType": "YulLiteral", + "src": "5713:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "5716:77:17", "nodeType": "YulLiteral", - "src": "7294:2:17", + "src": "5716:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "5706:6:17", "nodeType": "YulIdentifier", - "src": "7279:3:17" + "src": "5706:6:17" }, + "nativeSrc": "5706:88:17", "nodeType": "YulFunctionCall", - "src": "7279:18:17" + "src": "5706:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7271:4:17" - } - ] + "nativeSrc": "5706:88:17", + "nodeType": "YulExpressionStatement", + "src": "5706:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7318:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7329:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7314:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7314:17:17" + "kind": "number", + "nativeSrc": "5810:1:17", + "nodeType": "YulLiteral", + "src": "5810:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7337:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7343:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7333:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7333:20:17" + "kind": "number", + "nativeSrc": "5813:4:17", + "nodeType": "YulLiteral", + "src": "5813:4:17", + "type": "", + "value": "0x22" } ], "functionName": { "name": "mstore", + "nativeSrc": "5803:6:17", "nodeType": "YulIdentifier", - "src": "7307:6:17" + "src": "5803:6:17" }, + "nativeSrc": "5803:15:17", "nodeType": "YulFunctionCall", - "src": "7307:47:17" + "src": "5803:15:17" }, + "nativeSrc": "5803:15:17", "nodeType": "YulExpressionStatement", - "src": "7307:47:17" + "src": "5803:15:17" }, { - "nodeType": "YulAssignment", - "src": "7363:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7497:4:17" + "kind": "number", + "nativeSrc": "5834:1:17", + "nodeType": "YulLiteral", + "src": "5834:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5837:4:17", + "nodeType": "YulLiteral", + "src": "5837:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "5827:6:17", "nodeType": "YulIdentifier", - "src": "7371:124:17" + "src": "5827:6:17" }, + "nativeSrc": "5827:15:17", "nodeType": "YulFunctionCall", - "src": "7371:131:17" + "src": "5827:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7363:4:17" - } - ] + "nativeSrc": "5827:15:17", + "nodeType": "YulExpressionStatement", + "src": "5827:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x22", + "nativeSrc": "5668:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7241:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7256:4:17", - "type": "" - } - ], - "src": "7090:419:17" + "src": "5668:180:17" }, { "body": { + "nativeSrc": "5905:269:17", "nodeType": "YulBlock", - "src": "7686:248:17", + "src": "5905:269:17", "statements": [ { + "nativeSrc": "5915:22:17", "nodeType": "YulAssignment", - "src": "7696:26:17", + "src": "5915:22:17", "value": { "arguments": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "5929:4:17", "nodeType": "YulIdentifier", - "src": "7708:9:17" + "src": "5929:4:17" }, { "kind": "number", + "nativeSrc": "5935:1:17", "nodeType": "YulLiteral", - "src": "7719:2:17", + "src": "5935:1:17", "type": "", - "value": "32" + "value": "2" } ], "functionName": { - "name": "add", + "name": "div", + "nativeSrc": "5925:3:17", "nodeType": "YulIdentifier", - "src": "7704:3:17" + "src": "5925:3:17" }, + "nativeSrc": "5925:12:17", "nodeType": "YulFunctionCall", - "src": "7704:18:17" + "src": "5925:12:17" }, "variableNames": [ { - "name": "tail", + "name": "length", + "nativeSrc": "5915:6:17", "nodeType": "YulIdentifier", - "src": "7696:4:17" + "src": "5915:6:17" } ] }, { - "expression": { + "nativeSrc": "5946:38:17", + "nodeType": "YulVariableDeclaration", + "src": "5946:38:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7743:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7754:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7739:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7739:17:17" + "name": "data", + "nativeSrc": "5976:4:17", + "nodeType": "YulIdentifier", + "src": "5976:4:17" }, { - "arguments": [ - { - "name": "tail", + "kind": "number", + "nativeSrc": "5982:1:17", + "nodeType": "YulLiteral", + "src": "5982:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5972:3:17", + "nodeType": "YulIdentifier", + "src": "5972:3:17" + }, + "nativeSrc": "5972:12:17", + "nodeType": "YulFunctionCall", + "src": "5972:12:17" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5950:18:17", + "nodeType": "YulTypedName", + "src": "5950:18:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6023:51:17", + "nodeType": "YulBlock", + "src": "6023:51:17", + "statements": [ + { + "nativeSrc": "6037:27:17", + "nodeType": "YulAssignment", + "src": "6037:27:17", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6051:6:17", + "nodeType": "YulIdentifier", + "src": "6051:6:17" + }, + { + "kind": "number", + "nativeSrc": "6059:4:17", + "nodeType": "YulLiteral", + "src": "6059:4:17", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6047:3:17", "nodeType": "YulIdentifier", - "src": "7762:4:17" + "src": "6047:3:17" }, + "nativeSrc": "6047:17:17", + "nodeType": "YulFunctionCall", + "src": "6047:17:17" + }, + "variableNames": [ { - "name": "headStart", + "name": "length", + "nativeSrc": "6037:6:17", "nodeType": "YulIdentifier", - "src": "7768:9:17" + "src": "6037:6:17" } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7758:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7758:20:17" + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "6003:18:17", + "nodeType": "YulIdentifier", + "src": "6003:18:17" } ], "functionName": { - "name": "mstore", + "name": "iszero", + "nativeSrc": "5996:6:17", "nodeType": "YulIdentifier", - "src": "7732:6:17" + "src": "5996:6:17" }, + "nativeSrc": "5996:26:17", "nodeType": "YulFunctionCall", - "src": "7732:47:17" + "src": "5996:26:17" }, - "nodeType": "YulExpressionStatement", - "src": "7732:47:17" + "nativeSrc": "5993:81:17", + "nodeType": "YulIf", + "src": "5993:81:17" }, { - "nodeType": "YulAssignment", - "src": "7788:139:17", - "value": { + "body": { + "nativeSrc": "6126:42:17", + "nodeType": "YulBlock", + "src": "6126:42:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "6140:16:17", + "nodeType": "YulIdentifier", + "src": "6140:16:17" + }, + "nativeSrc": "6140:18:17", + "nodeType": "YulFunctionCall", + "src": "6140:18:17" + }, + "nativeSrc": "6140:18:17", + "nodeType": "YulExpressionStatement", + "src": "6140:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "tail", + "name": "outOfPlaceEncoding", + "nativeSrc": "6090:18:17", "nodeType": "YulIdentifier", - "src": "7922:4:17" + "src": "6090:18:17" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "6113:6:17", + "nodeType": "YulIdentifier", + "src": "6113:6:17" + }, + { + "kind": "number", + "nativeSrc": "6121:2:17", + "nodeType": "YulLiteral", + "src": "6121:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6110:2:17", + "nodeType": "YulIdentifier", + "src": "6110:2:17" + }, + "nativeSrc": "6110:14:17", + "nodeType": "YulFunctionCall", + "src": "6110:14:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "name": "eq", + "nativeSrc": "6087:2:17", "nodeType": "YulIdentifier", - "src": "7796:124:17" + "src": "6087:2:17" }, + "nativeSrc": "6087:38:17", "nodeType": "YulFunctionCall", - "src": "7796:131:17" + "src": "6087:38:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7788:4:17" - } - ] + "nativeSrc": "6084:84:17", + "nodeType": "YulIf", + "src": "6084:84:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "name": "extract_byte_array_length", + "nativeSrc": "5854:320:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "5889:4:17", "nodeType": "YulTypedName", - "src": "7666:9:17", + "src": "5889:4:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "length", + "nativeSrc": "5898:6:17", "nodeType": "YulTypedName", - "src": "7681:4:17", + "src": "5898:6:17", "type": "" } ], - "src": "7515:419:17" + "src": "5854:320:17" }, { "body": { + "nativeSrc": "6208:152:17", "nodeType": "YulBlock", - "src": "8111:248:17", + "src": "6208:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "8121:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8133:9:17" + "kind": "number", + "nativeSrc": "6225:1:17", + "nodeType": "YulLiteral", + "src": "6225:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "6228:77:17", "nodeType": "YulLiteral", - "src": "8144:2:17", + "src": "6228:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "6218:6:17", "nodeType": "YulIdentifier", - "src": "8129:3:17" + "src": "6218:6:17" }, + "nativeSrc": "6218:88:17", "nodeType": "YulFunctionCall", - "src": "8129:18:17" + "src": "6218:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8121:4:17" - } - ] + "nativeSrc": "6218:88:17", + "nodeType": "YulExpressionStatement", + "src": "6218:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8168:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8179:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8164:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8164:17:17" + "kind": "number", + "nativeSrc": "6322:1:17", + "nodeType": "YulLiteral", + "src": "6322:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8187:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8193:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8183:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8183:20:17" + "kind": "number", + "nativeSrc": "6325:4:17", + "nodeType": "YulLiteral", + "src": "6325:4:17", + "type": "", + "value": "0x11" } ], "functionName": { "name": "mstore", + "nativeSrc": "6315:6:17", "nodeType": "YulIdentifier", - "src": "8157:6:17" + "src": "6315:6:17" }, + "nativeSrc": "6315:15:17", "nodeType": "YulFunctionCall", - "src": "8157:47:17" + "src": "6315:15:17" }, + "nativeSrc": "6315:15:17", "nodeType": "YulExpressionStatement", - "src": "8157:47:17" + "src": "6315:15:17" }, { - "nodeType": "YulAssignment", - "src": "8213:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8347:4:17" + "kind": "number", + "nativeSrc": "6346:1:17", + "nodeType": "YulLiteral", + "src": "6346:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6349:4:17", + "nodeType": "YulLiteral", + "src": "6349:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "6339:6:17", "nodeType": "YulIdentifier", - "src": "8221:124:17" + "src": "6339:6:17" }, + "nativeSrc": "6339:15:17", "nodeType": "YulFunctionCall", - "src": "8221:131:17" + "src": "6339:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8213:4:17" - } - ] + "nativeSrc": "6339:15:17", + "nodeType": "YulExpressionStatement", + "src": "6339:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x11", + "nativeSrc": "6180:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8091:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8106:4:17", - "type": "" - } - ], - "src": "7940:419:17" + "src": "6180:180:17" }, { "body": { + "nativeSrc": "6410:147:17", "nodeType": "YulBlock", - "src": "8536:248:17", + "src": "6410:147:17", "statements": [ { + "nativeSrc": "6420:25:17", "nodeType": "YulAssignment", - "src": "8546:26:17", + "src": "6420:25:17", "value": { "arguments": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6443:1:17", "nodeType": "YulIdentifier", - "src": "8558:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8569:2:17", - "type": "", - "value": "32" + "src": "6443:1:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "6425:17:17", "nodeType": "YulIdentifier", - "src": "8554:3:17" + "src": "6425:17:17" }, + "nativeSrc": "6425:20:17", "nodeType": "YulFunctionCall", - "src": "8554:18:17" + "src": "6425:20:17" }, "variableNames": [ { - "name": "tail", + "name": "x", + "nativeSrc": "6420:1:17", "nodeType": "YulIdentifier", - "src": "8546:4:17" + "src": "6420:1:17" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8593:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8604:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8589:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8589:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8612:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8618:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8608:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8608:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8582:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "8582:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "8582:47:17" - }, - { + "nativeSrc": "6454:25:17", "nodeType": "YulAssignment", - "src": "8638:139:17", + "src": "6454:25:17", "value": { "arguments": [ { - "name": "tail", + "name": "y", + "nativeSrc": "6477:1:17", "nodeType": "YulIdentifier", - "src": "8772:4:17" + "src": "6477:1:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint256", + "nativeSrc": "6459:17:17", "nodeType": "YulIdentifier", - "src": "8646:124:17" + "src": "6459:17:17" }, + "nativeSrc": "6459:20:17", "nodeType": "YulFunctionCall", - "src": "8646:131:17" + "src": "6459:20:17" }, "variableNames": [ { - "name": "tail", + "name": "y", + "nativeSrc": "6454:1:17", "nodeType": "YulIdentifier", - "src": "8638:4:17" + "src": "6454:1:17" } ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8516:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8531:4:17", - "type": "" - } - ], - "src": "8365:419:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8888:124:17", - "statements": [ + }, { + "nativeSrc": "6488:16:17", "nodeType": "YulAssignment", - "src": "8898:26:17", + "src": "6488:16:17", "value": { "arguments": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6499:1:17", "nodeType": "YulIdentifier", - "src": "8910:9:17" + "src": "6499:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8921:2:17", - "type": "", - "value": "32" + "name": "y", + "nativeSrc": "6502:1:17", + "nodeType": "YulIdentifier", + "src": "6502:1:17" } ], "functionName": { "name": "add", + "nativeSrc": "6495:3:17", "nodeType": "YulIdentifier", - "src": "8906:3:17" + "src": "6495:3:17" }, + "nativeSrc": "6495:9:17", "nodeType": "YulFunctionCall", - "src": "8906:18:17" + "src": "6495:9:17" }, "variableNames": [ { - "name": "tail", + "name": "sum", + "nativeSrc": "6488:3:17", "nodeType": "YulIdentifier", - "src": "8898:4:17" + "src": "6488:3:17" } ] }, { - "expression": { + "body": { + "nativeSrc": "6528:22:17", + "nodeType": "YulBlock", + "src": "6528:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "6530:16:17", + "nodeType": "YulIdentifier", + "src": "6530:16:17" + }, + "nativeSrc": "6530:18:17", + "nodeType": "YulFunctionCall", + "src": "6530:18:17" + }, + "nativeSrc": "6530:18:17", + "nodeType": "YulExpressionStatement", + "src": "6530:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value0", + "name": "x", + "nativeSrc": "6520:1:17", "nodeType": "YulIdentifier", - "src": "8978:6:17" + "src": "6520:1:17" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8991:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9002:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8987:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8987:17:17" + "name": "sum", + "nativeSrc": "6523:3:17", + "nodeType": "YulIdentifier", + "src": "6523:3:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "gt", + "nativeSrc": "6517:2:17", "nodeType": "YulIdentifier", - "src": "8934:43:17" + "src": "6517:2:17" }, + "nativeSrc": "6517:10:17", "nodeType": "YulFunctionCall", - "src": "8934:71:17" + "src": "6517:10:17" }, - "nodeType": "YulExpressionStatement", - "src": "8934:71:17" + "nativeSrc": "6514:36:17", + "nodeType": "YulIf", + "src": "6514:36:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "checked_add_t_uint256", + "nativeSrc": "6366:191:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6397:1:17", "nodeType": "YulTypedName", - "src": "8860:9:17", + "src": "6397:1:17", "type": "" }, { - "name": "value0", + "name": "y", + "nativeSrc": "6400:1:17", "nodeType": "YulTypedName", - "src": "8872:6:17", + "src": "6400:1:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "sum", + "nativeSrc": "6406:3:17", "nodeType": "YulTypedName", - "src": "8883:4:17", + "src": "6406:3:17", "type": "" } ], - "src": "8790:222:17" + "src": "6366:191:17" }, { "body": { + "nativeSrc": "6669:118:17", "nodeType": "YulBlock", - "src": "9112:120:17", + "src": "6669:118:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "9122:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9134:9:17" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6691:6:17", + "nodeType": "YulIdentifier", + "src": "6691:6:17" + }, + { + "kind": "number", + "nativeSrc": "6699:1:17", + "nodeType": "YulLiteral", + "src": "6699:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6687:3:17", + "nodeType": "YulIdentifier", + "src": "6687:3:17" + }, + "nativeSrc": "6687:14:17", + "nodeType": "YulFunctionCall", + "src": "6687:14:17" }, { - "kind": "number", + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nativeSrc": "6703:34:17", "nodeType": "YulLiteral", - "src": "9145:2:17", + "src": "6703:34:17", "type": "", - "value": "32" + "value": "ERC20: decreased allowance below" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "6680:6:17", "nodeType": "YulIdentifier", - "src": "9130:3:17" + "src": "6680:6:17" }, + "nativeSrc": "6680:58:17", "nodeType": "YulFunctionCall", - "src": "9130:18:17" + "src": "6680:58:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "9122:4:17" - } - ] + "nativeSrc": "6680:58:17", + "nodeType": "YulExpressionStatement", + "src": "6680:58:17" }, { "expression": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "9198:6:17" - }, { "arguments": [ { - "name": "headStart", + "name": "memPtr", + "nativeSrc": "6759:6:17", "nodeType": "YulIdentifier", - "src": "9211:9:17" + "src": "6759:6:17" }, { "kind": "number", + "nativeSrc": "6767:2:17", "nodeType": "YulLiteral", - "src": "9222:1:17", + "src": "6767:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "6755:3:17", "nodeType": "YulIdentifier", - "src": "9207:3:17" + "src": "6755:3:17" }, + "nativeSrc": "6755:15:17", "nodeType": "YulFunctionCall", - "src": "9207:17:17" + "src": "6755:15:17" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nativeSrc": "6772:7:17", + "nodeType": "YulLiteral", + "src": "6772:7:17", + "type": "", + "value": " zero" } ], "functionName": { - "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "name": "mstore", + "nativeSrc": "6748:6:17", "nodeType": "YulIdentifier", - "src": "9158:39:17" + "src": "6748:6:17" }, + "nativeSrc": "6748:32:17", "nodeType": "YulFunctionCall", - "src": "9158:67:17" + "src": "6748:32:17" }, + "nativeSrc": "6748:32:17", "nodeType": "YulExpressionStatement", - "src": "9158:67:17" + "src": "6748:32:17" } ] }, - "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nativeSrc": "6563:224:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "9084:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "9096:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "memPtr", + "nativeSrc": "6661:6:17", "nodeType": "YulTypedName", - "src": "9107:4:17", + "src": "6661:6:17", "type": "" } ], - "src": "9018:214:17" + "src": "6563:224:17" }, { "body": { + "nativeSrc": "6939:220:17", "nodeType": "YulBlock", - "src": "9297:40:17", + "src": "6939:220:17", "statements": [ { + "nativeSrc": "6949:74:17", "nodeType": "YulAssignment", - "src": "9308:22:17", + "src": "6949:74:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "7015:3:17", "nodeType": "YulIdentifier", - "src": "9324:5:17" + "src": "7015:3:17" + }, + { + "kind": "number", + "nativeSrc": "7020:2:17", + "nodeType": "YulLiteral", + "src": "7020:2:17", + "type": "", + "value": "37" } ], "functionName": { - "name": "mload", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6956:58:17", "nodeType": "YulIdentifier", - "src": "9318:5:17" + "src": "6956:58:17" }, + "nativeSrc": "6956:67:17", "nodeType": "YulFunctionCall", - "src": "9318:12:17" + "src": "6956:67:17" }, "variableNames": [ { - "name": "length", + "name": "pos", + "nativeSrc": "6949:3:17", "nodeType": "YulIdentifier", - "src": "9308:6:17" + "src": "6949:3:17" } ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9280:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9290:6:17", - "type": "" - } - ], - "src": "9238:99:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9439:73:17", - "statements": [ + }, { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "7121:3:17", "nodeType": "YulIdentifier", - "src": "9456:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "9461:6:17" + "src": "7121:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nativeSrc": "7032:88:17", "nodeType": "YulIdentifier", - "src": "9449:6:17" + "src": "7032:88:17" }, + "nativeSrc": "7032:93:17", "nodeType": "YulFunctionCall", - "src": "9449:19:17" + "src": "7032:93:17" }, + "nativeSrc": "7032:93:17", "nodeType": "YulExpressionStatement", - "src": "9449:19:17" + "src": "7032:93:17" }, { + "nativeSrc": "7134:19:17", "nodeType": "YulAssignment", - "src": "9477:29:17", + "src": "7134:19:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "7145:3:17", "nodeType": "YulIdentifier", - "src": "9496:3:17" + "src": "7145:3:17" }, { "kind": "number", + "nativeSrc": "7150:2:17", "nodeType": "YulLiteral", - "src": "9501:4:17", + "src": "7150:2:17", "type": "", - "value": "0x20" + "value": "64" } ], "functionName": { "name": "add", + "nativeSrc": "7141:3:17", "nodeType": "YulIdentifier", - "src": "9492:3:17" + "src": "7141:3:17" }, + "nativeSrc": "7141:12:17", "nodeType": "YulFunctionCall", - "src": "9492:14:17" + "src": "7141:12:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "7134:3:17", "nodeType": "YulIdentifier", - "src": "9477:11:17" + "src": "7134:3:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6793:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", + "nativeSrc": "6927:3:17", "nodeType": "YulTypedName", - "src": "9411:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9416:6:17", + "src": "6927:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "6935:3:17", "nodeType": "YulTypedName", - "src": "9427:11:17", + "src": "6935:3:17", "type": "" } ], - "src": "9343:169:17" + "src": "6793:366:17" }, { "body": { + "nativeSrc": "7336:248:17", "nodeType": "YulBlock", - "src": "9562:261:17", + "src": "7336:248:17", "statements": [ { + "nativeSrc": "7346:26:17", "nodeType": "YulAssignment", - "src": "9572:25:17", + "src": "7346:26:17", "value": { "arguments": [ { - "name": "x", + "name": "headStart", + "nativeSrc": "7358:9:17", "nodeType": "YulIdentifier", - "src": "9595:1:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "9577:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "9577:20:17" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9572:1:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9606:25:17", - "value": { - "arguments": [ + "src": "7358:9:17" + }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9629:1:17" + "kind": "number", + "nativeSrc": "7369:2:17", + "nodeType": "YulLiteral", + "src": "7369:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "add", + "nativeSrc": "7354:3:17", "nodeType": "YulIdentifier", - "src": "9611:17:17" + "src": "7354:3:17" }, + "nativeSrc": "7354:18:17", "nodeType": "YulFunctionCall", - "src": "9611:20:17" + "src": "7354:18:17" }, "variableNames": [ { - "name": "y", + "name": "tail", + "nativeSrc": "7346:4:17", "nodeType": "YulIdentifier", - "src": "9606:1:17" + "src": "7346:4:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "9769:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "9771:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "9771:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "9771:18:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9690:1:17" - }, { "arguments": [ + { + "name": "headStart", + "nativeSrc": "7393:9:17", + "nodeType": "YulIdentifier", + "src": "7393:9:17" + }, { "kind": "number", + "nativeSrc": "7404:1:17", "nodeType": "YulLiteral", - "src": "9697:66:17", + "src": "7404:1:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9765:1:17" + "value": "0" } ], "functionName": { - "name": "sub", + "name": "add", + "nativeSrc": "7389:3:17", "nodeType": "YulIdentifier", - "src": "9693:3:17" + "src": "7389:3:17" }, + "nativeSrc": "7389:17:17", "nodeType": "YulFunctionCall", - "src": "9693:74:17" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9687:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "9687:81:17" - }, - "nodeType": "YulIf", - "src": "9684:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "9801:16:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9812:1:17" + "src": "7389:17:17" }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9815:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9808:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "9808:9:17" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "9801:3:17" - } - ] - } - ] - }, - "name": "checked_add_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "9549:1:17", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "9552:1:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "9558:3:17", - "type": "" - } - ], - "src": "9518:305:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9874:51:17", - "statements": [ + "arguments": [ + { + "name": "tail", + "nativeSrc": "7412:4:17", + "nodeType": "YulIdentifier", + "src": "7412:4:17" + }, + { + "name": "headStart", + "nativeSrc": "7418:9:17", + "nodeType": "YulIdentifier", + "src": "7418:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7408:3:17", + "nodeType": "YulIdentifier", + "src": "7408:3:17" + }, + "nativeSrc": "7408:20:17", + "nodeType": "YulFunctionCall", + "src": "7408:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7382:6:17", + "nodeType": "YulIdentifier", + "src": "7382:6:17" + }, + "nativeSrc": "7382:47:17", + "nodeType": "YulFunctionCall", + "src": "7382:47:17" + }, + "nativeSrc": "7382:47:17", + "nodeType": "YulExpressionStatement", + "src": "7382:47:17" + }, { + "nativeSrc": "7438:139:17", "nodeType": "YulAssignment", - "src": "9884:35:17", + "src": "7438:139:17", "value": { "arguments": [ { - "name": "value", + "name": "tail", + "nativeSrc": "7572:4:17", "nodeType": "YulIdentifier", - "src": "9913:5:17" + "src": "7572:4:17" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7446:124:17", "nodeType": "YulIdentifier", - "src": "9895:17:17" + "src": "7446:124:17" }, + "nativeSrc": "7446:131:17", "nodeType": "YulFunctionCall", - "src": "9895:24:17" + "src": "7446:131:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "7438:4:17", "nodeType": "YulIdentifier", - "src": "9884:7:17" + "src": "7438:4:17" } ] } ] }, - "name": "cleanup_t_address", + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7165:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "7316:9:17", "nodeType": "YulTypedName", - "src": "9856:5:17", + "src": "7316:9:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "7331:4:17", "nodeType": "YulTypedName", - "src": "9866:7:17", + "src": "7331:4:17", "type": "" } ], - "src": "9829:96:17" + "src": "7165:419:17" }, { "body": { + "nativeSrc": "7696:117:17", "nodeType": "YulBlock", - "src": "9973:48:17", + "src": "7696:117:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "9983:32:17", - "value": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "7718:6:17", "nodeType": "YulIdentifier", - "src": "10008:5:17" + "src": "7718:6:17" + }, + { + "kind": "number", + "nativeSrc": "7726:1:17", + "nodeType": "YulLiteral", + "src": "7726:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "iszero", + "name": "add", + "nativeSrc": "7714:3:17", "nodeType": "YulIdentifier", - "src": "10001:6:17" + "src": "7714:3:17" }, + "nativeSrc": "7714:14:17", "nodeType": "YulFunctionCall", - "src": "10001:13:17" + "src": "7714:14:17" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nativeSrc": "7730:34:17", + "nodeType": "YulLiteral", + "src": "7730:34:17", + "type": "", + "value": "ERC20: approve from the zero add" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "7707:6:17", "nodeType": "YulIdentifier", - "src": "9994:6:17" + "src": "7707:6:17" }, + "nativeSrc": "7707:58:17", "nodeType": "YulFunctionCall", - "src": "9994:21:17" + "src": "7707:58:17" }, - "variableNames": [ - { - "name": "cleaned", + "nativeSrc": "7707:58:17", + "nodeType": "YulExpressionStatement", + "src": "7707:58:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7786:6:17", + "nodeType": "YulIdentifier", + "src": "7786:6:17" + }, + { + "kind": "number", + "nativeSrc": "7794:2:17", + "nodeType": "YulLiteral", + "src": "7794:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7782:3:17", + "nodeType": "YulIdentifier", + "src": "7782:3:17" + }, + "nativeSrc": "7782:15:17", + "nodeType": "YulFunctionCall", + "src": "7782:15:17" + }, + { + "hexValue": "72657373", + "kind": "string", + "nativeSrc": "7799:6:17", + "nodeType": "YulLiteral", + "src": "7799:6:17", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7775:6:17", "nodeType": "YulIdentifier", - "src": "9983:7:17" - } - ] + "src": "7775:6:17" + }, + "nativeSrc": "7775:31:17", + "nodeType": "YulFunctionCall", + "src": "7775:31:17" + }, + "nativeSrc": "7775:31:17", + "nodeType": "YulExpressionStatement", + "src": "7775:31:17" } ] }, - "name": "cleanup_t_bool", + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nativeSrc": "7590:223:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "9955:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", + "name": "memPtr", + "nativeSrc": "7688:6:17", "nodeType": "YulTypedName", - "src": "9965:7:17", + "src": "7688:6:17", "type": "" } ], - "src": "9931:90:17" + "src": "7590:223:17" }, { "body": { + "nativeSrc": "7965:220:17", "nodeType": "YulBlock", - "src": "10072:81:17", + "src": "7965:220:17", "statements": [ { + "nativeSrc": "7975:74:17", "nodeType": "YulAssignment", - "src": "10082:65:17", + "src": "7975:74:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "8041:3:17", "nodeType": "YulIdentifier", - "src": "10097:5:17" + "src": "8041:3:17" }, { "kind": "number", + "nativeSrc": "8046:2:17", "nodeType": "YulLiteral", - "src": "10104:42:17", + "src": "8046:2:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "value": "36" } ], "functionName": { - "name": "and", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "7982:58:17", "nodeType": "YulIdentifier", - "src": "10093:3:17" + "src": "7982:58:17" }, + "nativeSrc": "7982:67:17", "nodeType": "YulFunctionCall", - "src": "10093:54:17" + "src": "7982:67:17" }, "variableNames": [ { - "name": "cleaned", + "name": "pos", + "nativeSrc": "7975:3:17", "nodeType": "YulIdentifier", - "src": "10082:7:17" + "src": "7975:3:17" } ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "10054:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "10064:7:17", - "type": "" - } - ], - "src": "10027:126:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10204:32:17", - "statements": [ + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8147:3:17", + "nodeType": "YulIdentifier", + "src": "8147:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nativeSrc": "8058:88:17", + "nodeType": "YulIdentifier", + "src": "8058:88:17" + }, + "nativeSrc": "8058:93:17", + "nodeType": "YulFunctionCall", + "src": "8058:93:17" + }, + "nativeSrc": "8058:93:17", + "nodeType": "YulExpressionStatement", + "src": "8058:93:17" + }, { + "nativeSrc": "8160:19:17", "nodeType": "YulAssignment", - "src": "10214:16:17", + "src": "8160:19:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10225:5:17" + "arguments": [ + { + "name": "pos", + "nativeSrc": "8171:3:17", + "nodeType": "YulIdentifier", + "src": "8171:3:17" + }, + { + "kind": "number", + "nativeSrc": "8176:2:17", + "nodeType": "YulLiteral", + "src": "8176:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8167:3:17", + "nodeType": "YulIdentifier", + "src": "8167:3:17" + }, + "nativeSrc": "8167:12:17", + "nodeType": "YulFunctionCall", + "src": "8167:12:17" }, "variableNames": [ { - "name": "cleaned", + "name": "end", + "nativeSrc": "8160:3:17", "nodeType": "YulIdentifier", - "src": "10214:7:17" + "src": "8160:3:17" } ] } ] }, - "name": "cleanup_t_uint256", + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7819:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "7953:3:17", "nodeType": "YulTypedName", - "src": "10186:5:17", + "src": "7953:3:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "end", + "nativeSrc": "7961:3:17", "nodeType": "YulTypedName", - "src": "10196:7:17", + "src": "7961:3:17", "type": "" } ], - "src": "10159:77:17" + "src": "7819:366:17" }, { "body": { + "nativeSrc": "8362:248:17", "nodeType": "YulBlock", - "src": "10285:43:17", + "src": "8362:248:17", "statements": [ { + "nativeSrc": "8372:26:17", "nodeType": "YulAssignment", - "src": "10295:27:17", + "src": "8372:26:17", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "8384:9:17", "nodeType": "YulIdentifier", - "src": "10310:5:17" + "src": "8384:9:17" }, { "kind": "number", + "nativeSrc": "8395:2:17", "nodeType": "YulLiteral", - "src": "10317:4:17", + "src": "8395:2:17", "type": "", - "value": "0xff" + "value": "32" } ], "functionName": { - "name": "and", + "name": "add", + "nativeSrc": "8380:3:17", + "nodeType": "YulIdentifier", + "src": "8380:3:17" + }, + "nativeSrc": "8380:18:17", + "nodeType": "YulFunctionCall", + "src": "8380:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8372:4:17", + "nodeType": "YulIdentifier", + "src": "8372:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8419:9:17", + "nodeType": "YulIdentifier", + "src": "8419:9:17" + }, + { + "kind": "number", + "nativeSrc": "8430:1:17", + "nodeType": "YulLiteral", + "src": "8430:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8415:3:17", + "nodeType": "YulIdentifier", + "src": "8415:3:17" + }, + "nativeSrc": "8415:17:17", + "nodeType": "YulFunctionCall", + "src": "8415:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8438:4:17", + "nodeType": "YulIdentifier", + "src": "8438:4:17" + }, + { + "name": "headStart", + "nativeSrc": "8444:9:17", + "nodeType": "YulIdentifier", + "src": "8444:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8434:3:17", + "nodeType": "YulIdentifier", + "src": "8434:3:17" + }, + "nativeSrc": "8434:20:17", + "nodeType": "YulFunctionCall", + "src": "8434:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8408:6:17", + "nodeType": "YulIdentifier", + "src": "8408:6:17" + }, + "nativeSrc": "8408:47:17", + "nodeType": "YulFunctionCall", + "src": "8408:47:17" + }, + "nativeSrc": "8408:47:17", + "nodeType": "YulExpressionStatement", + "src": "8408:47:17" + }, + { + "nativeSrc": "8464:139:17", + "nodeType": "YulAssignment", + "src": "8464:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8598:4:17", + "nodeType": "YulIdentifier", + "src": "8598:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8472:124:17", "nodeType": "YulIdentifier", - "src": "10306:3:17" + "src": "8472:124:17" }, + "nativeSrc": "8472:131:17", "nodeType": "YulFunctionCall", - "src": "10306:16:17" + "src": "8472:131:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "8464:4:17", "nodeType": "YulIdentifier", - "src": "10295:7:17" + "src": "8464:4:17" } ] } ] }, - "name": "cleanup_t_uint8", + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8191:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "8342:9:17", "nodeType": "YulTypedName", - "src": "10267:5:17", + "src": "8342:9:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "8357:4:17", "nodeType": "YulTypedName", - "src": "10277:7:17", + "src": "8357:4:17", "type": "" } ], - "src": "10242:86:17" + "src": "8191:419:17" }, { "body": { + "nativeSrc": "8722:115:17", "nodeType": "YulBlock", - "src": "10383:258:17", + "src": "8722:115:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "10393:10:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10402:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "10397:1:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10462:63:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10487:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10492:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10483:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10483:11:17" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10506:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10511:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10502:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10502:11:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10496:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "10496:18:17" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8744:6:17", "nodeType": "YulIdentifier", - "src": "10476:6:17" + "src": "8744:6:17" }, - "nodeType": "YulFunctionCall", - "src": "10476:39:17" + { + "kind": "number", + "nativeSrc": "8752:1:17", + "nodeType": "YulLiteral", + "src": "8752:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8740:3:17", + "nodeType": "YulIdentifier", + "src": "8740:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "10476:39:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10423:1:17" + "nativeSrc": "8740:14:17", + "nodeType": "YulFunctionCall", + "src": "8740:14:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10426:6:17" + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nativeSrc": "8756:34:17", + "nodeType": "YulLiteral", + "src": "8756:34:17", + "type": "", + "value": "ERC20: approve to the zero addre" } ], "functionName": { - "name": "lt", + "name": "mstore", + "nativeSrc": "8733:6:17", "nodeType": "YulIdentifier", - "src": "10420:2:17" + "src": "8733:6:17" }, + "nativeSrc": "8733:58:17", "nodeType": "YulFunctionCall", - "src": "10420:13:17" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "10434:19:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10436:15:17", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10445:1:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10448:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10441:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10441:10:17" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10436:1:17" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "10416:3:17", - "statements": [] + "src": "8733:58:17" }, - "src": "10412:113:17" + "nativeSrc": "8733:58:17", + "nodeType": "YulExpressionStatement", + "src": "8733:58:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "10559:76:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10609:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10614:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10605:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10605:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10623:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8812:6:17", "nodeType": "YulIdentifier", - "src": "10598:6:17" + "src": "8812:6:17" }, - "nodeType": "YulFunctionCall", - "src": "10598:27:17" + { + "kind": "number", + "nativeSrc": "8820:2:17", + "nodeType": "YulLiteral", + "src": "8820:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8808:3:17", + "nodeType": "YulIdentifier", + "src": "8808:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "10598:27:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10540:1:17" + "nativeSrc": "8808:15:17", + "nodeType": "YulFunctionCall", + "src": "8808:15:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10543:6:17" + "hexValue": "7373", + "kind": "string", + "nativeSrc": "8825:4:17", + "nodeType": "YulLiteral", + "src": "8825:4:17", + "type": "", + "value": "ss" } ], "functionName": { - "name": "gt", + "name": "mstore", + "nativeSrc": "8801:6:17", "nodeType": "YulIdentifier", - "src": "10537:2:17" + "src": "8801:6:17" }, + "nativeSrc": "8801:29:17", "nodeType": "YulFunctionCall", - "src": "10537:13:17" + "src": "8801:29:17" }, - "nodeType": "YulIf", - "src": "10534:2:17" + "nativeSrc": "8801:29:17", + "nodeType": "YulExpressionStatement", + "src": "8801:29:17" } ] }, - "name": "copy_memory_to_memory", + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nativeSrc": "8616:221:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nodeType": "YulTypedName", - "src": "10365:3:17", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "10370:3:17", - "type": "" - }, - { - "name": "length", + "name": "memPtr", + "nativeSrc": "8714:6:17", "nodeType": "YulTypedName", - "src": "10375:6:17", + "src": "8714:6:17", "type": "" } ], - "src": "10334:307:17" + "src": "8616:221:17" }, { "body": { + "nativeSrc": "8989:220:17", "nodeType": "YulBlock", - "src": "10698:269:17", + "src": "8989:220:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "10708:22:17", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "10722:4:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10728:1:17", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "10718:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10718:12:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10708:6:17" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10739:38:17", + "nativeSrc": "8999:74:17", + "nodeType": "YulAssignment", + "src": "8999:74:17", "value": { "arguments": [ { - "name": "data", + "name": "pos", + "nativeSrc": "9065:3:17", "nodeType": "YulIdentifier", - "src": "10769:4:17" + "src": "9065:3:17" }, { "kind": "number", + "nativeSrc": "9070:2:17", "nodeType": "YulLiteral", - "src": "10775:1:17", + "src": "9070:2:17", "type": "", - "value": "1" + "value": "34" } ], "functionName": { - "name": "and", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9006:58:17", "nodeType": "YulIdentifier", - "src": "10765:3:17" + "src": "9006:58:17" }, + "nativeSrc": "9006:67:17", "nodeType": "YulFunctionCall", - "src": "10765:12:17" + "src": "9006:67:17" }, - "variables": [ + "variableNames": [ { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "10743:18:17", - "type": "" + "name": "pos", + "nativeSrc": "8999:3:17", + "nodeType": "YulIdentifier", + "src": "8999:3:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "10816:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10830:27:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10844:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10852:4:17", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10840:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10840:17:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10830:6:17" - } - ] - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "pos", + "nativeSrc": "9171:3:17", "nodeType": "YulIdentifier", - "src": "10796:18:17" + "src": "9171:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nativeSrc": "9082:88:17", "nodeType": "YulIdentifier", - "src": "10789:6:17" + "src": "9082:88:17" }, + "nativeSrc": "9082:93:17", "nodeType": "YulFunctionCall", - "src": "10789:26:17" + "src": "9082:93:17" }, - "nodeType": "YulIf", - "src": "10786:2:17" + "nativeSrc": "9082:93:17", + "nodeType": "YulExpressionStatement", + "src": "9082:93:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "10919:42:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "10933:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "10933:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "10933:18:17" - } - ] - }, - "condition": { + "nativeSrc": "9184:19:17", + "nodeType": "YulAssignment", + "src": "9184:19:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "pos", + "nativeSrc": "9195:3:17", "nodeType": "YulIdentifier", - "src": "10883:18:17" + "src": "9195:3:17" }, { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10906:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10914:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10903:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "10903:14:17" + "kind": "number", + "nativeSrc": "9200:2:17", + "nodeType": "YulLiteral", + "src": "9200:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "9191:3:17", "nodeType": "YulIdentifier", - "src": "10880:2:17" + "src": "9191:3:17" }, + "nativeSrc": "9191:12:17", "nodeType": "YulFunctionCall", - "src": "10880:38:17" + "src": "9191:12:17" }, - "nodeType": "YulIf", - "src": "10877:2:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "9184:3:17", + "nodeType": "YulIdentifier", + "src": "9184:3:17" + } + ] } ] }, - "name": "extract_byte_array_length", + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8843:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "pos", + "nativeSrc": "8977:3:17", "nodeType": "YulTypedName", - "src": "10682:4:17", + "src": "8977:3:17", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "end", + "nativeSrc": "8985:3:17", "nodeType": "YulTypedName", - "src": "10691:6:17", + "src": "8985:3:17", "type": "" } ], - "src": "10647:320:17" + "src": "8843:366:17" }, { "body": { + "nativeSrc": "9386:248:17", "nodeType": "YulBlock", - "src": "11001:152:17", + "src": "9386:248:17", "statements": [ { - "expression": { + "nativeSrc": "9396:26:17", + "nodeType": "YulAssignment", + "src": "9396:26:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11018:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "9408:9:17", + "nodeType": "YulIdentifier", + "src": "9408:9:17" }, { "kind": "number", + "nativeSrc": "9419:2:17", "nodeType": "YulLiteral", - "src": "11021:77:17", + "src": "9419:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "9404:3:17", "nodeType": "YulIdentifier", - "src": "11011:6:17" + "src": "9404:3:17" }, + "nativeSrc": "9404:18:17", "nodeType": "YulFunctionCall", - "src": "11011:88:17" + "src": "9404:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "11011:88:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9396:4:17", + "nodeType": "YulIdentifier", + "src": "9396:4:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11115:1:17", - "type": "", - "value": "4" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9443:9:17", + "nodeType": "YulIdentifier", + "src": "9443:9:17" + }, + { + "kind": "number", + "nativeSrc": "9454:1:17", + "nodeType": "YulLiteral", + "src": "9454:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9439:3:17", + "nodeType": "YulIdentifier", + "src": "9439:3:17" + }, + "nativeSrc": "9439:17:17", + "nodeType": "YulFunctionCall", + "src": "9439:17:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11118:4:17", - "type": "", - "value": "0x11" + "arguments": [ + { + "name": "tail", + "nativeSrc": "9462:4:17", + "nodeType": "YulIdentifier", + "src": "9462:4:17" + }, + { + "name": "headStart", + "nativeSrc": "9468:9:17", + "nodeType": "YulIdentifier", + "src": "9468:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9458:3:17", + "nodeType": "YulIdentifier", + "src": "9458:3:17" + }, + "nativeSrc": "9458:20:17", + "nodeType": "YulFunctionCall", + "src": "9458:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "9432:6:17", "nodeType": "YulIdentifier", - "src": "11108:6:17" + "src": "9432:6:17" }, + "nativeSrc": "9432:47:17", "nodeType": "YulFunctionCall", - "src": "11108:15:17" + "src": "9432:47:17" }, + "nativeSrc": "9432:47:17", "nodeType": "YulExpressionStatement", - "src": "11108:15:17" + "src": "9432:47:17" }, + { + "nativeSrc": "9488:139:17", + "nodeType": "YulAssignment", + "src": "9488:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9622:4:17", + "nodeType": "YulIdentifier", + "src": "9622:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9496:124:17", + "nodeType": "YulIdentifier", + "src": "9496:124:17" + }, + "nativeSrc": "9496:131:17", + "nodeType": "YulFunctionCall", + "src": "9496:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9488:4:17", + "nodeType": "YulIdentifier", + "src": "9488:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9215:419:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9366:9:17", + "nodeType": "YulTypedName", + "src": "9366:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9381:4:17", + "nodeType": "YulTypedName", + "src": "9381:4:17", + "type": "" + } + ], + "src": "9215:419:17" + }, + { + "body": { + "nativeSrc": "9746:73:17", + "nodeType": "YulBlock", + "src": "9746:73:17", + "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11139:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9768:6:17", + "nodeType": "YulIdentifier", + "src": "9768:6:17" + }, + { + "kind": "number", + "nativeSrc": "9776:1:17", + "nodeType": "YulLiteral", + "src": "9776:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9764:3:17", + "nodeType": "YulIdentifier", + "src": "9764:3:17" + }, + "nativeSrc": "9764:14:17", + "nodeType": "YulFunctionCall", + "src": "9764:14:17" }, { - "kind": "number", + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nativeSrc": "9780:31:17", "nodeType": "YulLiteral", - "src": "11142:4:17", + "src": "9780:31:17", "type": "", - "value": "0x24" + "value": "ERC20: insufficient allowance" } ], "functionName": { - "name": "revert", + "name": "mstore", + "nativeSrc": "9757:6:17", "nodeType": "YulIdentifier", - "src": "11132:6:17" + "src": "9757:6:17" }, + "nativeSrc": "9757:55:17", "nodeType": "YulFunctionCall", - "src": "11132:15:17" + "src": "9757:55:17" }, + "nativeSrc": "9757:55:17", "nodeType": "YulExpressionStatement", - "src": "11132:15:17" + "src": "9757:55:17" } ] }, - "name": "panic_error_0x11", + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nativeSrc": "9640:179:17", "nodeType": "YulFunctionDefinition", - "src": "10973:180:17" + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "9738:6:17", + "nodeType": "YulTypedName", + "src": "9738:6:17", + "type": "" + } + ], + "src": "9640:179:17" }, { "body": { + "nativeSrc": "9971:220:17", "nodeType": "YulBlock", - "src": "11187:152:17", + "src": "9971:220:17", "statements": [ { - "expression": { + "nativeSrc": "9981:74:17", + "nodeType": "YulAssignment", + "src": "9981:74:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11204:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "10047:3:17", + "nodeType": "YulIdentifier", + "src": "10047:3:17" }, { "kind": "number", + "nativeSrc": "10052:2:17", "nodeType": "YulLiteral", - "src": "11207:77:17", + "src": "10052:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "29" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9988:58:17", "nodeType": "YulIdentifier", - "src": "11197:6:17" + "src": "9988:58:17" }, + "nativeSrc": "9988:67:17", "nodeType": "YulFunctionCall", - "src": "11197:88:17" + "src": "9988:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "11197:88:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9981:3:17", + "nodeType": "YulIdentifier", + "src": "9981:3:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11301:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11304:4:17", - "type": "", - "value": "0x22" + "name": "pos", + "nativeSrc": "10153:3:17", + "nodeType": "YulIdentifier", + "src": "10153:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nativeSrc": "10064:88:17", "nodeType": "YulIdentifier", - "src": "11294:6:17" + "src": "10064:88:17" }, + "nativeSrc": "10064:93:17", "nodeType": "YulFunctionCall", - "src": "11294:15:17" + "src": "10064:93:17" }, + "nativeSrc": "10064:93:17", "nodeType": "YulExpressionStatement", - "src": "11294:15:17" + "src": "10064:93:17" }, { - "expression": { + "nativeSrc": "10166:19:17", + "nodeType": "YulAssignment", + "src": "10166:19:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11325:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "10177:3:17", + "nodeType": "YulIdentifier", + "src": "10177:3:17" }, { "kind": "number", + "nativeSrc": "10182:2:17", "nodeType": "YulLiteral", - "src": "11328:4:17", + "src": "10182:2:17", "type": "", - "value": "0x24" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "add", + "nativeSrc": "10173:3:17", "nodeType": "YulIdentifier", - "src": "11318:6:17" + "src": "10173:3:17" }, + "nativeSrc": "10173:12:17", "nodeType": "YulFunctionCall", - "src": "11318:15:17" + "src": "10173:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "11318:15:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "10166:3:17", + "nodeType": "YulIdentifier", + "src": "10166:3:17" + } + ] } ] }, - "name": "panic_error_0x22", + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9825:366:17", "nodeType": "YulFunctionDefinition", - "src": "11159:180:17" + "parameters": [ + { + "name": "pos", + "nativeSrc": "9959:3:17", + "nodeType": "YulTypedName", + "src": "9959:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "9967:3:17", + "nodeType": "YulTypedName", + "src": "9967:3:17", + "type": "" + } + ], + "src": "9825:366:17" }, { "body": { + "nativeSrc": "10368:248:17", "nodeType": "YulBlock", - "src": "11393:54:17", + "src": "10368:248:17", "statements": [ { + "nativeSrc": "10378:26:17", "nodeType": "YulAssignment", - "src": "11403:38:17", + "src": "10378:26:17", "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10390:9:17", + "nodeType": "YulIdentifier", + "src": "10390:9:17" + }, + { + "kind": "number", + "nativeSrc": "10401:2:17", + "nodeType": "YulLiteral", + "src": "10401:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10386:3:17", + "nodeType": "YulIdentifier", + "src": "10386:3:17" + }, + "nativeSrc": "10386:18:17", + "nodeType": "YulFunctionCall", + "src": "10386:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10378:4:17", + "nodeType": "YulIdentifier", + "src": "10378:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "10425:9:17", "nodeType": "YulIdentifier", - "src": "11421:5:17" + "src": "10425:9:17" }, { "kind": "number", + "nativeSrc": "10436:1:17", "nodeType": "YulLiteral", - "src": "11428:2:17", + "src": "10436:1:17", "type": "", - "value": "31" + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "10421:3:17", "nodeType": "YulIdentifier", - "src": "11417:3:17" + "src": "10421:3:17" }, + "nativeSrc": "10421:17:17", "nodeType": "YulFunctionCall", - "src": "11417:14:17" + "src": "10421:17:17" }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11437:2:17", - "type": "", - "value": "31" + "name": "tail", + "nativeSrc": "10444:4:17", + "nodeType": "YulIdentifier", + "src": "10444:4:17" + }, + { + "name": "headStart", + "nativeSrc": "10450:9:17", + "nodeType": "YulIdentifier", + "src": "10450:9:17" } ], "functionName": { - "name": "not", + "name": "sub", + "nativeSrc": "10440:3:17", "nodeType": "YulIdentifier", - "src": "11433:3:17" + "src": "10440:3:17" }, + "nativeSrc": "10440:20:17", "nodeType": "YulFunctionCall", - "src": "11433:7:17" + "src": "10440:20:17" } ], "functionName": { - "name": "and", + "name": "mstore", + "nativeSrc": "10414:6:17", "nodeType": "YulIdentifier", - "src": "11413:3:17" + "src": "10414:6:17" + }, + "nativeSrc": "10414:47:17", + "nodeType": "YulFunctionCall", + "src": "10414:47:17" + }, + "nativeSrc": "10414:47:17", + "nodeType": "YulExpressionStatement", + "src": "10414:47:17" + }, + { + "nativeSrc": "10470:139:17", + "nodeType": "YulAssignment", + "src": "10470:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10604:4:17", + "nodeType": "YulIdentifier", + "src": "10604:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10478:124:17", + "nodeType": "YulIdentifier", + "src": "10478:124:17" }, + "nativeSrc": "10478:131:17", "nodeType": "YulFunctionCall", - "src": "11413:28:17" + "src": "10478:131:17" }, "variableNames": [ { - "name": "result", + "name": "tail", + "nativeSrc": "10470:4:17", "nodeType": "YulIdentifier", - "src": "11403:6:17" + "src": "10470:4:17" } ] } ] }, - "name": "round_up_to_mul_of_32", + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10197:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "10348:9:17", "nodeType": "YulTypedName", - "src": "11376:5:17", + "src": "10348:9:17", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "tail", + "nativeSrc": "10363:4:17", "nodeType": "YulTypedName", - "src": "11386:6:17", + "src": "10363:4:17", "type": "" } ], - "src": "11345:102:17" + "src": "10197:419:17" }, { "body": { + "nativeSrc": "10728:118:17", "nodeType": "YulBlock", - "src": "11559:116:17", + "src": "10728:118:17", "statements": [ { "expression": { @@ -7202,43 +12037,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "10750:6:17", "nodeType": "YulIdentifier", - "src": "11581:6:17" + "src": "10750:6:17" }, { "kind": "number", + "nativeSrc": "10758:1:17", "nodeType": "YulLiteral", - "src": "11589:1:17", + "src": "10758:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "10746:3:17", "nodeType": "YulIdentifier", - "src": "11577:3:17" + "src": "10746:3:17" }, + "nativeSrc": "10746:14:17", "nodeType": "YulFunctionCall", - "src": "11577:14:17" + "src": "10746:14:17" }, { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", "kind": "string", + "nativeSrc": "10762:34:17", "nodeType": "YulLiteral", - "src": "11593:34:17", + "src": "10762:34:17", "type": "", - "value": "ERC20: transfer to the zero addr" + "value": "ERC20: transfer from the zero ad" } ], "functionName": { "name": "mstore", + "nativeSrc": "10739:6:17", "nodeType": "YulIdentifier", - "src": "11570:6:17" + "src": "10739:6:17" }, + "nativeSrc": "10739:58:17", "nodeType": "YulFunctionCall", - "src": "11570:58:17" + "src": "10739:58:17" }, + "nativeSrc": "10739:58:17", "nodeType": "YulExpressionStatement", - "src": "11570:58:17" + "src": "10739:58:17" }, { "expression": { @@ -7247,235 +12091,382 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "10818:6:17", "nodeType": "YulIdentifier", - "src": "11649:6:17" + "src": "10818:6:17" }, { "kind": "number", + "nativeSrc": "10826:2:17", "nodeType": "YulLiteral", - "src": "11657:2:17", + "src": "10826:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "10814:3:17", "nodeType": "YulIdentifier", - "src": "11645:3:17" + "src": "10814:3:17" }, + "nativeSrc": "10814:15:17", "nodeType": "YulFunctionCall", - "src": "11645:15:17" + "src": "10814:15:17" }, { + "hexValue": "6472657373", "kind": "string", + "nativeSrc": "10831:7:17", "nodeType": "YulLiteral", - "src": "11662:5:17", + "src": "10831:7:17", "type": "", - "value": "ess" + "value": "dress" } ], "functionName": { "name": "mstore", + "nativeSrc": "10807:6:17", "nodeType": "YulIdentifier", - "src": "11638:6:17" + "src": "10807:6:17" }, + "nativeSrc": "10807:32:17", "nodeType": "YulFunctionCall", - "src": "11638:30:17" + "src": "10807:32:17" }, + "nativeSrc": "10807:32:17", "nodeType": "YulExpressionStatement", - "src": "11638:30:17" + "src": "10807:32:17" } ] }, - "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nativeSrc": "10622:224:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "10720:6:17", "nodeType": "YulTypedName", - "src": "11551:6:17", + "src": "10720:6:17", "type": "" } ], - "src": "11453:222:17" + "src": "10622:224:17" }, { "body": { + "nativeSrc": "10998:220:17", "nodeType": "YulBlock", - "src": "11787:115:17", + "src": "10998:220:17", "statements": [ { - "expression": { + "nativeSrc": "11008:74:17", + "nodeType": "YulAssignment", + "src": "11008:74:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "11809:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11817:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11805:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "11805:14:17" + "name": "pos", + "nativeSrc": "11074:3:17", + "nodeType": "YulIdentifier", + "src": "11074:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "11079:2:17", "nodeType": "YulLiteral", - "src": "11821:34:17", + "src": "11079:2:17", "type": "", - "value": "ERC20: approve to the zero addre" + "value": "37" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "11015:58:17", "nodeType": "YulIdentifier", - "src": "11798:6:17" + "src": "11015:58:17" }, + "nativeSrc": "11015:67:17", "nodeType": "YulFunctionCall", - "src": "11798:58:17" + "src": "11015:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "11798:58:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11008:3:17", + "nodeType": "YulIdentifier", + "src": "11008:3:17" + } + ] }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "11877:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11885:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11873:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "11873:15:17" + "name": "pos", + "nativeSrc": "11180:3:17", + "nodeType": "YulIdentifier", + "src": "11180:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nativeSrc": "11091:88:17", + "nodeType": "YulIdentifier", + "src": "11091:88:17" + }, + "nativeSrc": "11091:93:17", + "nodeType": "YulFunctionCall", + "src": "11091:93:17" + }, + "nativeSrc": "11091:93:17", + "nodeType": "YulExpressionStatement", + "src": "11091:93:17" + }, + { + "nativeSrc": "11193:19:17", + "nodeType": "YulAssignment", + "src": "11193:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11204:3:17", + "nodeType": "YulIdentifier", + "src": "11204:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "11209:2:17", "nodeType": "YulLiteral", - "src": "11890:4:17", + "src": "11209:2:17", "type": "", - "value": "ss" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "11200:3:17", "nodeType": "YulIdentifier", - "src": "11866:6:17" + "src": "11200:3:17" }, + "nativeSrc": "11200:12:17", "nodeType": "YulFunctionCall", - "src": "11866:29:17" + "src": "11200:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "11866:29:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "11193:3:17", + "nodeType": "YulIdentifier", + "src": "11193:3:17" + } + ] } ] }, - "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10852:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "10986:3:17", "nodeType": "YulTypedName", - "src": "11779:6:17", + "src": "10986:3:17", "type": "" } ], - "src": "11681:221:17" + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10994:3:17", + "nodeType": "YulTypedName", + "src": "10994:3:17", + "type": "" + } + ], + "src": "10852:366:17" }, { "body": { + "nativeSrc": "11395:248:17", "nodeType": "YulBlock", - "src": "12014:73:17", + "src": "11395:248:17", "statements": [ + { + "nativeSrc": "11405:26:17", + "nodeType": "YulAssignment", + "src": "11405:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11417:9:17", + "nodeType": "YulIdentifier", + "src": "11417:9:17" + }, + { + "kind": "number", + "nativeSrc": "11428:2:17", + "nodeType": "YulLiteral", + "src": "11428:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11413:3:17", + "nodeType": "YulIdentifier", + "src": "11413:3:17" + }, + "nativeSrc": "11413:18:17", + "nodeType": "YulFunctionCall", + "src": "11413:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11405:4:17", + "nodeType": "YulIdentifier", + "src": "11405:4:17" + } + ] + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "11452:9:17", "nodeType": "YulIdentifier", - "src": "12036:6:17" + "src": "11452:9:17" }, { "kind": "number", + "nativeSrc": "11463:1:17", "nodeType": "YulLiteral", - "src": "12044:1:17", + "src": "11463:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "11448:3:17", "nodeType": "YulIdentifier", - "src": "12032:3:17" + "src": "11448:3:17" }, + "nativeSrc": "11448:17:17", "nodeType": "YulFunctionCall", - "src": "12032:14:17" + "src": "11448:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "12048:31:17", - "type": "", - "value": "ERC20: insufficient allowance" + "arguments": [ + { + "name": "tail", + "nativeSrc": "11471:4:17", + "nodeType": "YulIdentifier", + "src": "11471:4:17" + }, + { + "name": "headStart", + "nativeSrc": "11477:9:17", + "nodeType": "YulIdentifier", + "src": "11477:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11467:3:17", + "nodeType": "YulIdentifier", + "src": "11467:3:17" + }, + "nativeSrc": "11467:20:17", + "nodeType": "YulFunctionCall", + "src": "11467:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "11441:6:17", "nodeType": "YulIdentifier", - "src": "12025:6:17" + "src": "11441:6:17" }, + "nativeSrc": "11441:47:17", "nodeType": "YulFunctionCall", - "src": "12025:55:17" + "src": "11441:47:17" }, + "nativeSrc": "11441:47:17", "nodeType": "YulExpressionStatement", - "src": "12025:55:17" + "src": "11441:47:17" + }, + { + "nativeSrc": "11497:139:17", + "nodeType": "YulAssignment", + "src": "11497:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11631:4:17", + "nodeType": "YulIdentifier", + "src": "11631:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11505:124:17", + "nodeType": "YulIdentifier", + "src": "11505:124:17" + }, + "nativeSrc": "11505:131:17", + "nodeType": "YulFunctionCall", + "src": "11505:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11497:4:17", + "nodeType": "YulIdentifier", + "src": "11497:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11224:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "11375:9:17", + "nodeType": "YulTypedName", + "src": "11375:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11390:4:17", "nodeType": "YulTypedName", - "src": "12006:6:17", + "src": "11390:4:17", "type": "" } ], - "src": "11908:179:17" + "src": "11224:419:17" }, { "body": { + "nativeSrc": "11755:116:17", "nodeType": "YulBlock", - "src": "12199:119:17", + "src": "11755:116:17", "statements": [ { "expression": { @@ -7484,43 +12475,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "11777:6:17", "nodeType": "YulIdentifier", - "src": "12221:6:17" + "src": "11777:6:17" }, { "kind": "number", + "nativeSrc": "11785:1:17", "nodeType": "YulLiteral", - "src": "12229:1:17", + "src": "11785:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "11773:3:17", "nodeType": "YulIdentifier", - "src": "12217:3:17" + "src": "11773:3:17" }, + "nativeSrc": "11773:14:17", "nodeType": "YulFunctionCall", - "src": "12217:14:17" + "src": "11773:14:17" }, { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", "kind": "string", + "nativeSrc": "11789:34:17", "nodeType": "YulLiteral", - "src": "12233:34:17", + "src": "11789:34:17", "type": "", - "value": "ERC20: transfer amount exceeds b" + "value": "ERC20: transfer to the zero addr" } ], "functionName": { "name": "mstore", + "nativeSrc": "11766:6:17", "nodeType": "YulIdentifier", - "src": "12210:6:17" + "src": "11766:6:17" }, + "nativeSrc": "11766:58:17", "nodeType": "YulFunctionCall", - "src": "12210:58:17" + "src": "11766:58:17" }, + "nativeSrc": "11766:58:17", "nodeType": "YulExpressionStatement", - "src": "12210:58:17" + "src": "11766:58:17" }, { "expression": { @@ -7529,216 +12529,249 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "11845:6:17", "nodeType": "YulIdentifier", - "src": "12289:6:17" + "src": "11845:6:17" }, { "kind": "number", + "nativeSrc": "11853:2:17", "nodeType": "YulLiteral", - "src": "12297:2:17", + "src": "11853:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "11841:3:17", "nodeType": "YulIdentifier", - "src": "12285:3:17" + "src": "11841:3:17" }, + "nativeSrc": "11841:15:17", "nodeType": "YulFunctionCall", - "src": "12285:15:17" + "src": "11841:15:17" }, { + "hexValue": "657373", "kind": "string", + "nativeSrc": "11858:5:17", "nodeType": "YulLiteral", - "src": "12302:8:17", + "src": "11858:5:17", "type": "", - "value": "alance" + "value": "ess" } ], "functionName": { "name": "mstore", + "nativeSrc": "11834:6:17", "nodeType": "YulIdentifier", - "src": "12278:6:17" + "src": "11834:6:17" }, + "nativeSrc": "11834:30:17", "nodeType": "YulFunctionCall", - "src": "12278:33:17" + "src": "11834:30:17" }, + "nativeSrc": "11834:30:17", "nodeType": "YulExpressionStatement", - "src": "12278:33:17" + "src": "11834:30:17" } ] }, - "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nativeSrc": "11649:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "11747:6:17", "nodeType": "YulTypedName", - "src": "12191:6:17", + "src": "11747:6:17", "type": "" } ], - "src": "12093:225:17" + "src": "11649:222:17" }, { "body": { + "nativeSrc": "12023:220:17", "nodeType": "YulBlock", - "src": "12430:118:17", + "src": "12023:220:17", "statements": [ { - "expression": { + "nativeSrc": "12033:74:17", + "nodeType": "YulAssignment", + "src": "12033:74:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12452:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12460:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12448:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12448:14:17" + "name": "pos", + "nativeSrc": "12099:3:17", + "nodeType": "YulIdentifier", + "src": "12099:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12104:2:17", "nodeType": "YulLiteral", - "src": "12464:34:17", + "src": "12104:2:17", "type": "", - "value": "ERC20: transfer from the zero ad" + "value": "35" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12040:58:17", "nodeType": "YulIdentifier", - "src": "12441:6:17" + "src": "12040:58:17" }, + "nativeSrc": "12040:67:17", "nodeType": "YulFunctionCall", - "src": "12441:58:17" + "src": "12040:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "12441:58:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12033:3:17", + "nodeType": "YulIdentifier", + "src": "12033:3:17" + } + ] }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12520:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12528:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12516:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12516:15:17" + "name": "pos", + "nativeSrc": "12205:3:17", + "nodeType": "YulIdentifier", + "src": "12205:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nativeSrc": "12116:88:17", + "nodeType": "YulIdentifier", + "src": "12116:88:17" + }, + "nativeSrc": "12116:93:17", + "nodeType": "YulFunctionCall", + "src": "12116:93:17" + }, + "nativeSrc": "12116:93:17", + "nodeType": "YulExpressionStatement", + "src": "12116:93:17" + }, + { + "nativeSrc": "12218:19:17", + "nodeType": "YulAssignment", + "src": "12218:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12229:3:17", + "nodeType": "YulIdentifier", + "src": "12229:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12234:2:17", "nodeType": "YulLiteral", - "src": "12533:7:17", + "src": "12234:2:17", "type": "", - "value": "dress" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "12225:3:17", "nodeType": "YulIdentifier", - "src": "12509:6:17" + "src": "12225:3:17" }, + "nativeSrc": "12225:12:17", "nodeType": "YulFunctionCall", - "src": "12509:32:17" + "src": "12225:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "12509:32:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "12218:3:17", + "nodeType": "YulIdentifier", + "src": "12218:3:17" + } + ] } ] }, - "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11877:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "12011:3:17", "nodeType": "YulTypedName", - "src": "12422:6:17", + "src": "12011:3:17", "type": "" } ], - "src": "12324:224:17" + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12019:3:17", + "nodeType": "YulTypedName", + "src": "12019:3:17", + "type": "" + } + ], + "src": "11877:366:17" }, { "body": { + "nativeSrc": "12420:248:17", "nodeType": "YulBlock", - "src": "12660:117:17", + "src": "12420:248:17", "statements": [ { - "expression": { + "nativeSrc": "12430:26:17", + "nodeType": "YulAssignment", + "src": "12430:26:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12682:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12690:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12678:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12678:14:17" + "name": "headStart", + "nativeSrc": "12442:9:17", + "nodeType": "YulIdentifier", + "src": "12442:9:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12453:2:17", "nodeType": "YulLiteral", - "src": "12694:34:17", + "src": "12453:2:17", "type": "", - "value": "ERC20: approve from the zero add" + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "12438:3:17", "nodeType": "YulIdentifier", - "src": "12671:6:17" + "src": "12438:3:17" }, + "nativeSrc": "12438:18:17", "nodeType": "YulFunctionCall", - "src": "12671:58:17" + "src": "12438:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "12671:58:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12430:4:17", + "nodeType": "YulIdentifier", + "src": "12430:4:17" + } + ] }, { "expression": { @@ -7746,63 +12779,132 @@ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "12477:9:17", "nodeType": "YulIdentifier", - "src": "12750:6:17" + "src": "12477:9:17" }, { "kind": "number", + "nativeSrc": "12488:1:17", "nodeType": "YulLiteral", - "src": "12758:2:17", + "src": "12488:1:17", "type": "", - "value": "32" + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "12473:3:17", "nodeType": "YulIdentifier", - "src": "12746:3:17" + "src": "12473:3:17" }, + "nativeSrc": "12473:17:17", "nodeType": "YulFunctionCall", - "src": "12746:15:17" + "src": "12473:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "12763:6:17", - "type": "", - "value": "ress" + "arguments": [ + { + "name": "tail", + "nativeSrc": "12496:4:17", + "nodeType": "YulIdentifier", + "src": "12496:4:17" + }, + { + "name": "headStart", + "nativeSrc": "12502:9:17", + "nodeType": "YulIdentifier", + "src": "12502:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12492:3:17", + "nodeType": "YulIdentifier", + "src": "12492:3:17" + }, + "nativeSrc": "12492:20:17", + "nodeType": "YulFunctionCall", + "src": "12492:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "12466:6:17", "nodeType": "YulIdentifier", - "src": "12739:6:17" + "src": "12466:6:17" }, + "nativeSrc": "12466:47:17", "nodeType": "YulFunctionCall", - "src": "12739:31:17" + "src": "12466:47:17" }, + "nativeSrc": "12466:47:17", "nodeType": "YulExpressionStatement", - "src": "12739:31:17" + "src": "12466:47:17" + }, + { + "nativeSrc": "12522:139:17", + "nodeType": "YulAssignment", + "src": "12522:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12656:4:17", + "nodeType": "YulIdentifier", + "src": "12656:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12530:124:17", + "nodeType": "YulIdentifier", + "src": "12530:124:17" + }, + "nativeSrc": "12530:131:17", + "nodeType": "YulFunctionCall", + "src": "12530:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12522:4:17", + "nodeType": "YulIdentifier", + "src": "12522:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12249:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "12400:9:17", + "nodeType": "YulTypedName", + "src": "12400:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12415:4:17", "nodeType": "YulTypedName", - "src": "12652:6:17", + "src": "12415:4:17", "type": "" } ], - "src": "12554:223:17" + "src": "12249:419:17" }, { "body": { + "nativeSrc": "12780:119:17", "nodeType": "YulBlock", - "src": "12889:118:17", + "src": "12780:119:17", "statements": [ { "expression": { @@ -7811,43 +12913,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "12802:6:17", "nodeType": "YulIdentifier", - "src": "12911:6:17" + "src": "12802:6:17" }, { "kind": "number", + "nativeSrc": "12810:1:17", "nodeType": "YulLiteral", - "src": "12919:1:17", + "src": "12810:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "12798:3:17", "nodeType": "YulIdentifier", - "src": "12907:3:17" + "src": "12798:3:17" }, + "nativeSrc": "12798:14:17", "nodeType": "YulFunctionCall", - "src": "12907:14:17" + "src": "12798:14:17" }, { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", "kind": "string", + "nativeSrc": "12814:34:17", "nodeType": "YulLiteral", - "src": "12923:34:17", + "src": "12814:34:17", "type": "", - "value": "ERC20: decreased allowance below" + "value": "ERC20: transfer amount exceeds b" } ], "functionName": { "name": "mstore", + "nativeSrc": "12791:6:17", "nodeType": "YulIdentifier", - "src": "12900:6:17" + "src": "12791:6:17" }, + "nativeSrc": "12791:58:17", "nodeType": "YulFunctionCall", - "src": "12900:58:17" + "src": "12791:58:17" }, + "nativeSrc": "12791:58:17", "nodeType": "YulExpressionStatement", - "src": "12900:58:17" + "src": "12791:58:17" }, { "expression": { @@ -7856,263 +12967,380 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "12870:6:17", "nodeType": "YulIdentifier", - "src": "12979:6:17" + "src": "12870:6:17" }, { "kind": "number", + "nativeSrc": "12878:2:17", "nodeType": "YulLiteral", - "src": "12987:2:17", + "src": "12878:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "12866:3:17", "nodeType": "YulIdentifier", - "src": "12975:3:17" + "src": "12866:3:17" }, + "nativeSrc": "12866:15:17", "nodeType": "YulFunctionCall", - "src": "12975:15:17" + "src": "12866:15:17" }, { + "hexValue": "616c616e6365", "kind": "string", + "nativeSrc": "12883:8:17", "nodeType": "YulLiteral", - "src": "12992:7:17", + "src": "12883:8:17", "type": "", - "value": " zero" + "value": "alance" } ], "functionName": { "name": "mstore", + "nativeSrc": "12859:6:17", "nodeType": "YulIdentifier", - "src": "12968:6:17" + "src": "12859:6:17" }, + "nativeSrc": "12859:33:17", "nodeType": "YulFunctionCall", - "src": "12968:32:17" + "src": "12859:33:17" }, + "nativeSrc": "12859:33:17", "nodeType": "YulExpressionStatement", - "src": "12968:32:17" + "src": "12859:33:17" } ] }, - "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nativeSrc": "12674:225:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "12772:6:17", "nodeType": "YulTypedName", - "src": "12881:6:17", + "src": "12772:6:17", "type": "" } ], - "src": "12783:224:17" + "src": "12674:225:17" }, { "body": { + "nativeSrc": "13051:220:17", "nodeType": "YulBlock", - "src": "13056:79:17", + "src": "13051:220:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "13113:16:17", - "statements": [ + "nativeSrc": "13061:74:17", + "nodeType": "YulAssignment", + "src": "13061:74:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13122:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13125:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "13115:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "13115:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "13115:12:17" + "name": "pos", + "nativeSrc": "13127:3:17", + "nodeType": "YulIdentifier", + "src": "13127:3:17" + }, + { + "kind": "number", + "nativeSrc": "13132:2:17", + "nodeType": "YulLiteral", + "src": "13132:2:17", + "type": "", + "value": "38" } - ] + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13068:58:17", + "nodeType": "YulIdentifier", + "src": "13068:58:17" + }, + "nativeSrc": "13068:67:17", + "nodeType": "YulFunctionCall", + "src": "13068:67:17" }, - "condition": { + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13061:3:17", + "nodeType": "YulIdentifier", + "src": "13061:3:17" + } + ] + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13079:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13104:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "13086:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "13086:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "13076:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "13076:35:17" + "name": "pos", + "nativeSrc": "13233:3:17", + "nodeType": "YulIdentifier", + "src": "13233:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nativeSrc": "13144:88:17", "nodeType": "YulIdentifier", - "src": "13069:6:17" + "src": "13144:88:17" }, + "nativeSrc": "13144:93:17", "nodeType": "YulFunctionCall", - "src": "13069:43:17" + "src": "13144:93:17" }, - "nodeType": "YulIf", - "src": "13066:2:17" + "nativeSrc": "13144:93:17", + "nodeType": "YulExpressionStatement", + "src": "13144:93:17" + }, + { + "nativeSrc": "13246:19:17", + "nodeType": "YulAssignment", + "src": "13246:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13257:3:17", + "nodeType": "YulIdentifier", + "src": "13257:3:17" + }, + { + "kind": "number", + "nativeSrc": "13262:2:17", + "nodeType": "YulLiteral", + "src": "13262:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13253:3:17", + "nodeType": "YulIdentifier", + "src": "13253:3:17" + }, + "nativeSrc": "13253:12:17", + "nodeType": "YulFunctionCall", + "src": "13253:12:17" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13246:3:17", + "nodeType": "YulIdentifier", + "src": "13246:3:17" + } + ] } ] }, - "name": "validator_revert_t_address", + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12905:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "13039:3:17", + "nodeType": "YulTypedName", + "src": "13039:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13047:3:17", "nodeType": "YulTypedName", - "src": "13049:5:17", + "src": "13047:3:17", "type": "" } ], - "src": "13013:122:17" + "src": "12905:366:17" }, { "body": { + "nativeSrc": "13448:248:17", "nodeType": "YulBlock", - "src": "13184:79:17", + "src": "13448:248:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "13241:16:17", - "statements": [ + "nativeSrc": "13458:26:17", + "nodeType": "YulAssignment", + "src": "13458:26:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13250:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13253:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "13243:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "13243:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "13243:12:17" + "name": "headStart", + "nativeSrc": "13470:9:17", + "nodeType": "YulIdentifier", + "src": "13470:9:17" + }, + { + "kind": "number", + "nativeSrc": "13481:2:17", + "nodeType": "YulLiteral", + "src": "13481:2:17", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "13466:3:17", + "nodeType": "YulIdentifier", + "src": "13466:3:17" + }, + "nativeSrc": "13466:18:17", + "nodeType": "YulFunctionCall", + "src": "13466:18:17" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13458:4:17", + "nodeType": "YulIdentifier", + "src": "13458:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "13505:9:17", "nodeType": "YulIdentifier", - "src": "13207:5:17" + "src": "13505:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13232:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "13214:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "13214:24:17" + "kind": "number", + "nativeSrc": "13516:1:17", + "nodeType": "YulLiteral", + "src": "13516:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "13501:3:17", + "nodeType": "YulIdentifier", + "src": "13501:3:17" + }, + "nativeSrc": "13501:17:17", + "nodeType": "YulFunctionCall", + "src": "13501:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13524:4:17", + "nodeType": "YulIdentifier", + "src": "13524:4:17" + }, + { + "name": "headStart", + "nativeSrc": "13530:9:17", + "nodeType": "YulIdentifier", + "src": "13530:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13520:3:17", "nodeType": "YulIdentifier", - "src": "13204:2:17" + "src": "13520:3:17" }, + "nativeSrc": "13520:20:17", "nodeType": "YulFunctionCall", - "src": "13204:35:17" + "src": "13520:20:17" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "13494:6:17", "nodeType": "YulIdentifier", - "src": "13197:6:17" + "src": "13494:6:17" }, + "nativeSrc": "13494:47:17", "nodeType": "YulFunctionCall", - "src": "13197:43:17" + "src": "13494:47:17" }, - "nodeType": "YulIf", - "src": "13194:2:17" + "nativeSrc": "13494:47:17", + "nodeType": "YulExpressionStatement", + "src": "13494:47:17" + }, + { + "nativeSrc": "13550:139:17", + "nodeType": "YulAssignment", + "src": "13550:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13684:4:17", + "nodeType": "YulIdentifier", + "src": "13684:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13558:124:17", + "nodeType": "YulIdentifier", + "src": "13558:124:17" + }, + "nativeSrc": "13558:131:17", + "nodeType": "YulFunctionCall", + "src": "13558:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13550:4:17", + "nodeType": "YulIdentifier", + "src": "13550:4:17" + } + ] } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13277:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "13428:9:17", + "nodeType": "YulTypedName", + "src": "13428:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13443:4:17", "nodeType": "YulTypedName", - "src": "13177:5:17", + "src": "13443:4:17", "type": "" } ], - "src": "13141:122:17" + "src": "13277:419:17" } ] }, - "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -8120,10 +13348,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006011905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea26469706673582212208fb6e257320276cbed5b9e1f6e99df5763e4b0490a89404815bcef8fab15c40964736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xB0F JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xE2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xAAA JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B1 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x427 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60E SWAP1 PUSH2 0xDD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67E SWAP1 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x765 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77E DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F8 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x86E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x865 SWAP1 PUSH2 0xDB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP1 PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E9 DUP4 DUP4 DUP4 PUSH2 0xA76 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA70 DUP5 DUP5 DUP5 PUSH2 0xA7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8F DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAA4 DUP2 PUSH2 0x11FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP5 DUP3 DUP6 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB05 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB43 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB54 DUP7 DUP3 DUP8 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB7F DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB90 DUP6 DUP3 DUP7 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA3 DUP2 PUSH2 0xECC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB4 DUP3 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0xBBE DUP2 DUP6 PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF0F JUMP JUMPDEST PUSH2 0xBD7 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBEF PUSH1 0x23 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFA DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 PUSH1 0x22 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC1D DUP3 PUSH2 0x1032 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC35 PUSH1 0x1D DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC40 DUP3 PUSH2 0x1081 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x26 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC63 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC86 DUP3 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH1 0x24 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCA9 DUP3 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCCC DUP3 PUSH2 0x1197 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE0 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xCEF DUP2 PUSH2 0xF02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD2A DUP2 DUP5 PUSH2 0xBA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD4B DUP2 PUSH2 0xBE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD6B DUP2 PUSH2 0xC05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xC28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDAB DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDCB DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDEB DUP2 PUSH2 0xC91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0B DUP2 PUSH2 0xCB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6F DUP3 PUSH2 0xEF8 JUMP JUMPDEST SWAP2 POP PUSH2 0xE7A DUP4 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH2 0xEAE PUSH2 0xF74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEC5 DUP3 PUSH2 0xED8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF2D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF12 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xF5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xF6E JUMPI PUSH2 0xF6D PUSH2 0xFA3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x11EF DUP2 PUSH2 0xEBA JUMP JUMPDEST DUP2 EQ PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1206 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 0xB6 0xE2 JUMPI ORIGIN MUL PUSH23 0xCBED5B9E1F6E99DF5763E4B0490A89404815BCEF8FAB15 0xC4 MULMOD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "128:377:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;412:91:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;412:91:8:-;470:5;494:2;487:9;;412:91;:::o;5854:234:0:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;640:96:3:-;693:7;719:10;712:17;;640:96;:::o;10457:340:0:-;10575:1;10558:19;;:5;:19;;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11078:411;;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7456:788;;;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:366::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2673:93;2762:3;2673:93;:::i;:::-;2791:2;2786:3;2782:12;2775:19;;2580:220;;;:::o;2806:366::-;;2969:67;3033:2;3028:3;2969:67;:::i;:::-;2962:74;;3045:93;3134:3;3045:93;:::i;:::-;3163:2;3158:3;3154:12;3147:19;;2952:220;;;:::o;3178:366::-;;3341:67;3405:2;3400:3;3341:67;:::i;:::-;3334:74;;3417:93;3506:3;3417:93;:::i;:::-;3535:2;3530:3;3526:12;3519:19;;3324:220;;;:::o;3550:366::-;;3713:67;3777:2;3772:3;3713:67;:::i;:::-;3706:74;;3789:93;3878:3;3789:93;:::i;:::-;3907:2;3902:3;3898:12;3891:19;;3696:220;;;:::o;3922:366::-;;4085:67;4149:2;4144:3;4085:67;:::i;:::-;4078:74;;4161:93;4250:3;4161:93;:::i;:::-;4279:2;4274:3;4270:12;4263:19;;4068:220;;;:::o;4294:366::-;;4457:67;4521:2;4516:3;4457:67;:::i;:::-;4450:74;;4533:93;4622:3;4533:93;:::i;:::-;4651:2;4646:3;4642:12;4635:19;;4440:220;;;:::o;4666:366::-;;4829:67;4893:2;4888:3;4829:67;:::i;:::-;4822:74;;4905:93;4994:3;4905:93;:::i;:::-;5023:2;5018:3;5014:12;5007:19;;4812:220;;;:::o;5038:118::-;5125:24;5143:5;5125:24;:::i;:::-;5120:3;5113:37;5103:53;;:::o;5162:112::-;5245:22;5261:5;5245:22;:::i;:::-;5240:3;5233:35;5223:51;;:::o;5280:210::-;;5405:2;5394:9;5390:18;5382:26;;5418:65;5480:1;5469:9;5465:17;5456:6;5418:65;:::i;:::-;5372:118;;;;:::o;5496:313::-;;5647:2;5636:9;5632:18;5624:26;;5696:9;5690:4;5686:20;5682:1;5671:9;5667:17;5660:47;5724:78;5797:4;5788:6;5724:78;:::i;:::-;5716:86;;5614:195;;;;:::o;5815:419::-;;6019:2;6008:9;6004:18;5996:26;;6068:9;6062:4;6058:20;6054:1;6043:9;6039:17;6032:47;6096:131;6222:4;6096:131;:::i;:::-;6088:139;;5986:248;;;:::o;6240:419::-;;6444:2;6433:9;6429:18;6421:26;;6493:9;6487:4;6483:20;6479:1;6468:9;6464:17;6457:47;6521:131;6647:4;6521:131;:::i;:::-;6513:139;;6411:248;;;:::o;6665:419::-;;6869:2;6858:9;6854:18;6846:26;;6918:9;6912:4;6908:20;6904:1;6893:9;6889:17;6882:47;6946:131;7072:4;6946:131;:::i;:::-;6938:139;;6836:248;;;:::o;7090:419::-;;7294:2;7283:9;7279:18;7271:26;;7343:9;7337:4;7333:20;7329:1;7318:9;7314:17;7307:47;7371:131;7497:4;7371:131;:::i;:::-;7363:139;;7261:248;;;:::o;7515:419::-;;7719:2;7708:9;7704:18;7696:26;;7768:9;7762:4;7758:20;7754:1;7743:9;7739:17;7732:47;7796:131;7922:4;7796:131;:::i;:::-;7788:139;;7686:248;;;:::o;7940:419::-;;8144:2;8133:9;8129:18;8121:26;;8193:9;8187:4;8183:20;8179:1;8168:9;8164:17;8157:47;8221:131;8347:4;8221:131;:::i;:::-;8213:139;;8111:248;;;:::o;8365:419::-;;8569:2;8558:9;8554:18;8546:26;;8618:9;8612:4;8608:20;8604:1;8593:9;8589:17;8582:47;8646:131;8772:4;8646:131;:::i;:::-;8638:139;;8536:248;;;:::o;8790:222::-;;8921:2;8910:9;8906:18;8898:26;;8934:71;9002:1;8991:9;8987:17;8978:6;8934:71;:::i;:::-;8888:124;;;;:::o;9018:214::-;;9145:2;9134:9;9130:18;9122:26;;9158:67;9222:1;9211:9;9207:17;9198:6;9158:67;:::i;:::-;9112:120;;;;:::o;9238:99::-;;9324:5;9318:12;9308:22;;9297:40;;;:::o;9343:169::-;;9461:6;9456:3;9449:19;9501:4;9496:3;9492:14;9477:29;;9439:73;;;;:::o;9518:305::-;;9577:20;9595:1;9577:20;:::i;:::-;9572:25;;9611:20;9629:1;9611:20;:::i;:::-;9606:25;;9765:1;9697:66;9693:74;9690:1;9687:81;9684:2;;;9771:18;;:::i;:::-;9684:2;9815:1;9812;9808:9;9801:16;;9562:261;;;;:::o;9829:96::-;;9895:24;9913:5;9895:24;:::i;:::-;9884:35;;9874:51;;;:::o;9931:90::-;;10008:5;10001:13;9994:21;9983:32;;9973:48;;;:::o;10027:126::-;;10104:42;10097:5;10093:54;10082:65;;10072:81;;;:::o;10159:77::-;;10225:5;10214:16;;10204:32;;;:::o;10242:86::-;;10317:4;10310:5;10306:16;10295:27;;10285:43;;;:::o;10334:307::-;10402:1;10412:113;10426:6;10423:1;10420:13;10412:113;;;10511:1;10506:3;10502:11;10496:18;10492:1;10487:3;10483:11;10476:39;10448:2;10445:1;10441:10;10436:15;;10412:113;;;10543:6;10540:1;10537:13;10534:2;;;10623:1;10614:6;10609:3;10605:16;10598:27;10534:2;10383:258;;;;:::o;10647:320::-;;10728:1;10722:4;10718:12;10708:22;;10775:1;10769:4;10765:12;10796:18;10786:2;;10852:4;10844:6;10840:17;10830:27;;10786:2;10914;10906:6;10903:14;10883:18;10880:38;10877:2;;;10933:18;;:::i;:::-;10877:2;10698:269;;;;:::o;10973:180::-;11021:77;11018:1;11011:88;11118:4;11115:1;11108:15;11142:4;11139:1;11132:15;11159:180;11207:77;11204:1;11197:88;11304:4;11301:1;11294:15;11328:4;11325:1;11318:15;11345:102;;11437:2;11433:7;11428:2;11421:5;11417:14;11413:28;11403:38;;11393:54;;;:::o;11453:222::-;11593:34;11589:1;11581:6;11577:14;11570:58;11662:5;11657:2;11649:6;11645:15;11638:30;11559:116;:::o;11681:221::-;11821:34;11817:1;11809:6;11805:14;11798:58;11890:4;11885:2;11877:6;11873:15;11866:29;11787:115;:::o;11908:179::-;12048:31;12044:1;12036:6;12032:14;12025:55;12014:73;:::o;12093:225::-;12233:34;12229:1;12221:6;12217:14;12210:58;12302:8;12297:2;12289:6;12285:15;12278:33;12199:119;:::o;12324:224::-;12464:34;12460:1;12452:6;12448:14;12441:58;12533:7;12528:2;12520:6;12516:15;12509:32;12430:118;:::o;12554:223::-;12694:34;12690:1;12682:6;12678:14;12671:58;12763:6;12758:2;12750:6;12746:15;12739:31;12660:117;:::o;12783:224::-;12923:34;12919:1;12911:6;12907:14;12900:58;12992:7;12987:2;12979:6;12975:15;12968:32;12889:118;:::o;13013:122::-;13086:24;13104:5;13086:24;:::i;:::-;13079:5;13076:35;13066:2;;13125:1;13122;13115:12;13066:2;13056:79;:::o;13141:122::-;13214:24;13232:5;13214:24;:::i;:::-;13207:5;13204:35;13194:2;;13253:1;13250;13243:12;13194:2;13184:79;:::o" + "object": "608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6011905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea2646970667358221220853ce2fdbd9a8d2907a90289051c73b6a66e37388148a4fa5bf17449dc7ad60364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x243 JUMPI PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB3 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xCAB JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x30D PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x31A DUP2 DUP6 DUP6 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x338 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x345 DUP6 DUP3 DUP6 PUSH2 0x752 JUMP JUMPDEST PUSH2 0x350 DUP6 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x36E PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x38F DUP2 DUP6 DUP6 PUSH2 0x380 DUP6 DUP10 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x38A SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3EE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41A SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x465 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x43C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x465 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x448 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x479 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x486 DUP3 DUP7 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP1 PUSH2 0xE41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4EE PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x4FB DUP2 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F4 SWAP1 PUSH2 0xECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x66B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x662 SWAP1 PUSH2 0xF5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x75D DUP5 DUP5 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7D7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP1 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x842 SWAP1 PUSH2 0x1053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8B0 SWAP1 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8C4 DUP4 DUP4 DUP4 PUSH2 0xA49 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93E SWAP1 PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA30 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA43 DUP5 DUP5 DUP5 PUSH2 0xA4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA8A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA6F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAAF DUP3 PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xAB9 DUP2 DUP6 PUSH2 0xA5D JUMP JUMPDEST SWAP4 POP PUSH2 0xAC9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA6D JUMP JUMPDEST PUSH2 0xAD2 DUP2 PUSH2 0xA95 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xAF5 DUP2 DUP5 PUSH2 0xAA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB2A DUP3 PUSH2 0xB01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3A DUP2 PUSH2 0xB20 JUMP JUMPDEST DUP2 EQ PUSH2 0xB44 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB55 DUP2 PUSH2 0xB31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6D DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP2 EQ PUSH2 0xB77 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB88 DUP2 PUSH2 0xB64 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBB1 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBC2 DUP6 DUP3 DUP7 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0xBCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBF9 PUSH0 DUP4 ADD DUP5 PUSH2 0xBD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC08 DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC21 PUSH0 DUP4 ADD DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC3D PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC4B DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC5C DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC6D DUP7 DUP3 DUP8 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC8C DUP2 PUSH2 0xC77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA5 PUSH0 DUP4 ADD DUP5 PUSH2 0xC83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC0 JUMPI PUSH2 0xCBF PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCCD DUP5 DUP3 DUP6 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEB PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCF9 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0A DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD6B JUMPI PUSH2 0xD6A PUSH2 0xD14 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xDA8 DUP3 PUSH2 0xB5B JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 DUP4 PUSH2 0xB5B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0xD71 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE2B PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xE36 DUP3 PUSH2 0xDD1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE58 DUP2 PUSH2 0xE1F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xEB9 PUSH1 0x24 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xEC4 DUP3 PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF47 PUSH1 0x22 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xF52 DUP3 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xF74 DUP2 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xFAF PUSH1 0x1D DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xFBA DUP3 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFDC DUP2 PUSH2 0xFA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x103D PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1048 DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x106A DUP2 PUSH2 0x1031 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x10CB PUSH1 0x23 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x10D6 DUP3 PUSH2 0x1071 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10F8 DUP2 PUSH2 0x10BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1159 PUSH1 0x26 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1164 DUP3 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1186 DUP2 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP6 EXTCODECOPY 0xE2 REVERT 0xBD SWAP11 DUP14 0x29 SMOD 0xA9 MUL DUP10 SDIV SHR PUSH20 0xB6A66E37388148A4FA5BF17449DC7AD60364736F PUSH13 0x63430008180033000000000000 ", + "sourceMap": "128:377:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;412:91:8;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;412:91:8:-;470:5;494:2;487:9;;412:91;:::o;5854:234:0:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;655:96:3:-;708:7;734:10;727:17;;655:96;:::o;10457:340:0:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:17:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:191;6406:3;6425:20;6443:1;6425:20;:::i;:::-;6420:25;;6459:20;6477:1;6459:20;:::i;:::-;6454:25;;6502:1;6499;6495:9;6488:16;;6523:3;6520:1;6517:10;6514:36;;;6530:18;;:::i;:::-;6514:36;6366:191;;;;:::o;6563:224::-;6703:34;6699:1;6691:6;6687:14;6680:58;6772:7;6767:2;6759:6;6755:15;6748:32;6563:224;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6793:366;;;:::o;7165:419::-;7331:4;7369:2;7358:9;7354:18;7346:26;;7418:9;7412:4;7408:20;7404:1;7393:9;7389:17;7382:47;7446:131;7572:4;7446:131;:::i;:::-;7438:139;;7165:419;;;:::o;7590:223::-;7730:34;7726:1;7718:6;7714:14;7707:58;7799:6;7794:2;7786:6;7782:15;7775:31;7590:223;:::o;7819:366::-;7961:3;7982:67;8046:2;8041:3;7982:67;:::i;:::-;7975:74;;8058:93;8147:3;8058:93;:::i;:::-;8176:2;8171:3;8167:12;8160:19;;7819:366;;;:::o;8191:419::-;8357:4;8395:2;8384:9;8380:18;8372:26;;8444:9;8438:4;8434:20;8430:1;8419:9;8415:17;8408:47;8472:131;8598:4;8472:131;:::i;:::-;8464:139;;8191:419;;;:::o;8616:221::-;8756:34;8752:1;8744:6;8740:14;8733:58;8825:4;8820:2;8812:6;8808:15;8801:29;8616:221;:::o;8843:366::-;8985:3;9006:67;9070:2;9065:3;9006:67;:::i;:::-;8999:74;;9082:93;9171:3;9082:93;:::i;:::-;9200:2;9195:3;9191:12;9184:19;;8843:366;;;:::o;9215:419::-;9381:4;9419:2;9408:9;9404:18;9396:26;;9468:9;9462:4;9458:20;9454:1;9443:9;9439:17;9432:47;9496:131;9622:4;9496:131;:::i;:::-;9488:139;;9215:419;;;:::o;9640:179::-;9780:31;9776:1;9768:6;9764:14;9757:55;9640:179;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9825:366;;;:::o;10197:419::-;10363:4;10401:2;10390:9;10386:18;10378:26;;10450:9;10444:4;10440:20;10436:1;10425:9;10421:17;10414:47;10478:131;10604:4;10478:131;:::i;:::-;10470:139;;10197:419;;;:::o;10622:224::-;10762:34;10758:1;10750:6;10746:14;10739:58;10831:7;10826:2;10818:6;10814:15;10807:32;10622:224;:::o;10852:366::-;10994:3;11015:67;11079:2;11074:3;11015:67;:::i;:::-;11008:74;;11091:93;11180:3;11091:93;:::i;:::-;11209:2;11204:3;11200:12;11193:19;;10852:366;;;:::o;11224:419::-;11390:4;11428:2;11417:9;11413:18;11405:26;;11477:9;11471:4;11467:20;11463:1;11452:9;11448:17;11441:47;11505:131;11631:4;11505:131;:::i;:::-;11497:139;;11224:419;;;:::o;11649:222::-;11789:34;11785:1;11777:6;11773:14;11766:58;11858:5;11853:2;11845:6;11841:15;11834:30;11649:222;:::o;11877:366::-;12019:3;12040:67;12104:2;12099:3;12040:67;:::i;:::-;12033:74;;12116:93;12205:3;12116:93;:::i;:::-;12234:2;12229:3;12225:12;12218:19;;11877:366;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12249:419;;;:::o;12674:225::-;12814:34;12810:1;12802:6;12798:14;12791:58;12883:8;12878:2;12870:6;12866:15;12859:33;12674:225;:::o;12905:366::-;13047:3;13068:67;13132:2;13127:3;13068:67;:::i;:::-;13061:74;;13144:93;13233:3;13144:93;:::i;:::-;13262:2;13257:3;13253:12;13246:19;;12905:366;;;:::o;13277:419::-;13443:4;13481:2;13470:9;13466:18;13458:26;;13530:9;13524:4;13520:20;13516:1;13505:9;13501:17;13494:47;13558:131;13684:4;13558:131;:::i;:::-;13550:139;;13277:419;;;:::o" } }, - "bytecode": "60806040523480156200001157600080fd5b50604051620017b7380380620017b7833981810160405281019062000037919062000313565b6040518060800160405280605881526020016200175f605891396040518060400160405280600981526020017f54657374546f6b656e000000000000000000000000000000000000000000000081525081600390805190602001906200009f9291906200024c565b508060049080519060200190620000b89291906200024c565b505050620000cd3382620000d460201b60201c565b5062000505565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000147576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013e9062000377565b60405180910390fd5b6200015b600083836200024260201b60201c565b80600260008282546200016f9190620003c7565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000222919062000399565b60405180910390a36200023e600083836200024760201b60201c565b5050565b505050565b505050565b8280546200025a906200042e565b90600052602060002090601f0160209004810192826200027e5760008555620002ca565b82601f106200029957805160ff1916838001178555620002ca565b82800160010185558215620002ca579182015b82811115620002c9578251825591602001919060010190620002ac565b5b509050620002d99190620002dd565b5090565b5b80821115620002f8576000816000905550600101620002de565b5090565b6000815190506200030d81620004eb565b92915050565b6000602082840312156200032657600080fd5b60006200033684828501620002fc565b91505092915050565b60006200034e601f83620003b6565b91506200035b82620004c2565b602082019050919050565b620003718162000424565b82525050565b6000602082019050818103600083015262000392816200033f565b9050919050565b6000602082019050620003b0600083018462000366565b92915050565b600082825260208201905092915050565b6000620003d48262000424565b9150620003e18362000424565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000419576200041862000464565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200044757607f821691505b602082108114156200045e576200045d62000493565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620004f68162000424565b81146200050257600080fd5b50565b61124a80620005156000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006011905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea26469706673582212208fb6e257320276cbed5b9e1f6e99df5763e4b0490a89404815bcef8fab15c40964736f6c634300080200336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65" + "bytecode": "608060405234801562000010575f80fd5b506040516200191938038062001919833981810160405281019062000036919062000270565b604051806080016040528060588152602001620018c1605891396040518060400160405280600981526020017f54657374546f6b656e00000000000000000000000000000000000000000000008152508160039081620000979190620004fb565b508060049081620000a99190620004fb565b505050620000be3382620000c560201b60201c565b50620006f0565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000136576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012d906200063d565b60405180910390fd5b620001495f83836200022a60201b60201c565b8060025f8282546200015c91906200068a565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020b9190620006d5565b60405180910390a3620002265f83836200022f60201b60201c565b5050565b505050565b505050565b5f80fd5b5f819050919050565b6200024c8162000238565b811462000257575f80fd5b50565b5f815190506200026a8162000241565b92915050565b5f6020828403121562000288576200028762000234565b5b5f62000297848285016200025a565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200031c57607f821691505b602082108103620003325762000331620002d7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000359565b620003a2868362000359565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620003e3620003dd620003d78462000238565b620003ba565b62000238565b9050919050565b5f819050919050565b620003fe83620003c3565b620004166200040d82620003ea565b84845462000365565b825550505050565b5f90565b6200042c6200041e565b62000439818484620003f3565b505050565b5b818110156200046057620004545f8262000422565b6001810190506200043f565b5050565b601f821115620004af57620004798162000338565b62000484846200034a565b8101602085101562000494578190505b620004ac620004a3856200034a565b8301826200043e565b50505b505050565b5f82821c905092915050565b5f620004d15f1984600802620004b4565b1980831691505092915050565b5f620004eb8383620004c0565b9150826002028217905092915050565b6200050682620002a0565b67ffffffffffffffff811115620005225762000521620002aa565b5b6200052e825462000304565b6200053b82828562000464565b5f60209050601f83116001811462000571575f84156200055c578287015190505b620005688582620004de565b865550620005d7565b601f198416620005818662000338565b5f5b82811015620005aa5784890151825560018201915060208501945060208101905062000583565b86831015620005ca5784890151620005c6601f891682620004c0565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000625601f83620005df565b91506200063282620005ef565b602082019050919050565b5f6020820190508181035f830152620006568162000617565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620006968262000238565b9150620006a38362000238565b9250828201905080821115620006be57620006bd6200065d565b5b92915050565b620006cf8162000238565b82525050565b5f602082019050620006ea5f830184620006c4565b92915050565b6111c380620006fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6011905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea2646970667358221220853ce2fdbd9a8d2907a90289051c73b6a66e37388148a4fa5bf17449dc7ad60364736f6c634300081800336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65" } \ No newline at end of file diff --git a/ts-tests/build/Erc20DemoContract2.json b/ts-tests/build/Erc20DemoContract2.json index 848941c676..a2e07e18c6 100644 --- a/ts-tests/build/Erc20DemoContract2.json +++ b/ts-tests/build/Erc20DemoContract2.json @@ -278,1370 +278,1610 @@ ], "evm": { "bytecode": { + "functionDebugData": { + "@_1018": { + "entryPoint": null, + "id": 1018, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_44": { + "entryPoint": null, + "id": 44, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_afterTokenTransfer_585": { + "entryPoint": 551, + "id": 585, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_574": { + "entryPoint": 546, + "id": 574, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_mint_403": { + "entryPoint": 189, + "id": 403, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1452, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 1625, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1490, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 1642, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 708, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 556, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 1567, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1017, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 838, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 979, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 856, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1168, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 726, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 656, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1139, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 847, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1109, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 1522, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 611, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 566, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 895, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 741, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1097, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 951, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e": { + "entryPoint": 1412, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 753, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 904, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 947, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:7125:17", "nodeType": "YulBlock", - "src": "0:2607:17", + "src": "0:7125:17", "statements": [ { "body": { + "nativeSrc": "66:40:17", "nodeType": "YulBlock", - "src": "153:220:17", + "src": "66:40:17", "statements": [ { + "nativeSrc": "77:22:17", "nodeType": "YulAssignment", - "src": "163:74:17", + "src": "77:22:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "93:5:17", "nodeType": "YulIdentifier", - "src": "229:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "234:2:17", - "type": "", - "value": "31" + "src": "93:5:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "mload", + "nativeSrc": "87:5:17", "nodeType": "YulIdentifier", - "src": "170:58:17" + "src": "87:5:17" }, + "nativeSrc": "87:12:17", "nodeType": "YulFunctionCall", - "src": "170:67:17" + "src": "87:12:17" }, "variableNames": [ { - "name": "pos", + "name": "length", + "nativeSrc": "77:6:17", "nodeType": "YulIdentifier", - "src": "163:3:17" + "src": "77:6:17" } ] - }, + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:17", + "nodeType": "YulTypedName", + "src": "49:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:17", + "nodeType": "YulTypedName", + "src": "59:6:17", + "type": "" + } + ], + "src": "7:99:17" + }, + { + "body": { + "nativeSrc": "140:152:17", + "nodeType": "YulBlock", + "src": "140:152:17", + "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "335:3:17" + "kind": "number", + "nativeSrc": "157:1:17", + "nodeType": "YulLiteral", + "src": "157:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "160:77:17", + "nodeType": "YulLiteral", + "src": "160:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "name": "mstore", + "nativeSrc": "150:6:17", "nodeType": "YulIdentifier", - "src": "246:88:17" + "src": "150:6:17" }, + "nativeSrc": "150:88:17", "nodeType": "YulFunctionCall", - "src": "246:93:17" + "src": "150:88:17" }, + "nativeSrc": "150:88:17", "nodeType": "YulExpressionStatement", - "src": "246:93:17" + "src": "150:88:17" }, { - "nodeType": "YulAssignment", - "src": "348:19:17", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "359:3:17" + "kind": "number", + "nativeSrc": "254:1:17", + "nodeType": "YulLiteral", + "src": "254:1:17", + "type": "", + "value": "4" }, { "kind": "number", + "nativeSrc": "257:4:17", "nodeType": "YulLiteral", - "src": "364:2:17", + "src": "257:4:17", "type": "", - "value": "32" + "value": "0x41" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "247:6:17", "nodeType": "YulIdentifier", - "src": "355:3:17" + "src": "247:6:17" }, + "nativeSrc": "247:15:17", "nodeType": "YulFunctionCall", - "src": "355:12:17" + "src": "247:15:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "348:3:17" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "141:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "149:3:17", - "type": "" - } - ], - "src": "7:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "444:53:17", - "statements": [ + "nativeSrc": "247:15:17", + "nodeType": "YulExpressionStatement", + "src": "247:15:17" + }, { "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "461:3:17" + "kind": "number", + "nativeSrc": "278:1:17", + "nodeType": "YulLiteral", + "src": "278:1:17", + "type": "", + "value": "0" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "484:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "466:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "466:24:17" + "kind": "number", + "nativeSrc": "281:4:17", + "nodeType": "YulLiteral", + "src": "281:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "mstore", + "name": "revert", + "nativeSrc": "271:6:17", "nodeType": "YulIdentifier", - "src": "454:6:17" + "src": "271:6:17" }, + "nativeSrc": "271:15:17", "nodeType": "YulFunctionCall", - "src": "454:37:17" + "src": "271:15:17" }, + "nativeSrc": "271:15:17", "nodeType": "YulExpressionStatement", - "src": "454:37:17" + "src": "271:15:17" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "panic_error_0x41", + "nativeSrc": "112:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "432:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "439:3:17", - "type": "" - } - ], - "src": "379:118:17" + "src": "112:180:17" }, { "body": { + "nativeSrc": "326:152:17", "nodeType": "YulBlock", - "src": "674:248:17", + "src": "326:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "684:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "696:9:17" + "kind": "number", + "nativeSrc": "343:1:17", + "nodeType": "YulLiteral", + "src": "343:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "346:77:17", "nodeType": "YulLiteral", - "src": "707:2:17", + "src": "346:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "336:6:17", "nodeType": "YulIdentifier", - "src": "692:3:17" + "src": "336:6:17" }, + "nativeSrc": "336:88:17", "nodeType": "YulFunctionCall", - "src": "692:18:17" + "src": "336:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "684:4:17" - } - ] + "nativeSrc": "336:88:17", + "nodeType": "YulExpressionStatement", + "src": "336:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "731:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "742:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "727:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "727:17:17" + "kind": "number", + "nativeSrc": "440:1:17", + "nodeType": "YulLiteral", + "src": "440:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "750:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "756:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "746:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "746:20:17" + "kind": "number", + "nativeSrc": "443:4:17", + "nodeType": "YulLiteral", + "src": "443:4:17", + "type": "", + "value": "0x22" } ], "functionName": { "name": "mstore", + "nativeSrc": "433:6:17", "nodeType": "YulIdentifier", - "src": "720:6:17" + "src": "433:6:17" }, + "nativeSrc": "433:15:17", "nodeType": "YulFunctionCall", - "src": "720:47:17" + "src": "433:15:17" }, + "nativeSrc": "433:15:17", "nodeType": "YulExpressionStatement", - "src": "720:47:17" + "src": "433:15:17" }, { - "nodeType": "YulAssignment", - "src": "776:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "910:4:17" + "kind": "number", + "nativeSrc": "464:1:17", + "nodeType": "YulLiteral", + "src": "464:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "467:4:17", + "nodeType": "YulLiteral", + "src": "467:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "457:6:17", "nodeType": "YulIdentifier", - "src": "784:124:17" + "src": "457:6:17" }, + "nativeSrc": "457:15:17", "nodeType": "YulFunctionCall", - "src": "784:131:17" + "src": "457:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "776:4:17" - } - ] + "nativeSrc": "457:15:17", + "nodeType": "YulExpressionStatement", + "src": "457:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x22", + "nativeSrc": "298:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "654:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "669:4:17", - "type": "" - } - ], - "src": "503:419:17" + "src": "298:180:17" }, { "body": { + "nativeSrc": "535:269:17", "nodeType": "YulBlock", - "src": "1026:124:17", + "src": "535:269:17", "statements": [ { + "nativeSrc": "545:22:17", "nodeType": "YulAssignment", - "src": "1036:26:17", + "src": "545:22:17", "value": { "arguments": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "559:4:17", "nodeType": "YulIdentifier", - "src": "1048:9:17" + "src": "559:4:17" }, { "kind": "number", + "nativeSrc": "565:1:17", "nodeType": "YulLiteral", - "src": "1059:2:17", + "src": "565:1:17", "type": "", - "value": "32" + "value": "2" } ], "functionName": { - "name": "add", + "name": "div", + "nativeSrc": "555:3:17", "nodeType": "YulIdentifier", - "src": "1044:3:17" + "src": "555:3:17" }, + "nativeSrc": "555:12:17", "nodeType": "YulFunctionCall", - "src": "1044:18:17" + "src": "555:12:17" }, "variableNames": [ { - "name": "tail", + "name": "length", + "nativeSrc": "545:6:17", "nodeType": "YulIdentifier", - "src": "1036:4:17" + "src": "545:6:17" } ] }, { - "expression": { + "nativeSrc": "576:38:17", + "nodeType": "YulVariableDeclaration", + "src": "576:38:17", + "value": { "arguments": [ { - "name": "value0", + "name": "data", + "nativeSrc": "606:4:17", + "nodeType": "YulIdentifier", + "src": "606:4:17" + }, + { + "kind": "number", + "nativeSrc": "612:1:17", + "nodeType": "YulLiteral", + "src": "612:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "602:3:17", + "nodeType": "YulIdentifier", + "src": "602:3:17" + }, + "nativeSrc": "602:12:17", + "nodeType": "YulFunctionCall", + "src": "602:12:17" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "580:18:17", + "nodeType": "YulTypedName", + "src": "580:18:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "653:51:17", + "nodeType": "YulBlock", + "src": "653:51:17", + "statements": [ + { + "nativeSrc": "667:27:17", + "nodeType": "YulAssignment", + "src": "667:27:17", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "681:6:17", + "nodeType": "YulIdentifier", + "src": "681:6:17" + }, + { + "kind": "number", + "nativeSrc": "689:4:17", + "nodeType": "YulLiteral", + "src": "689:4:17", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "677:3:17", + "nodeType": "YulIdentifier", + "src": "677:3:17" + }, + "nativeSrc": "677:17:17", + "nodeType": "YulFunctionCall", + "src": "677:17:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "667:6:17", + "nodeType": "YulIdentifier", + "src": "667:6:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "633:18:17", + "nodeType": "YulIdentifier", + "src": "633:18:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "626:6:17", + "nodeType": "YulIdentifier", + "src": "626:6:17" + }, + "nativeSrc": "626:26:17", + "nodeType": "YulFunctionCall", + "src": "626:26:17" + }, + "nativeSrc": "623:81:17", + "nodeType": "YulIf", + "src": "623:81:17" + }, + { + "body": { + "nativeSrc": "756:42:17", + "nodeType": "YulBlock", + "src": "756:42:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "770:16:17", + "nodeType": "YulIdentifier", + "src": "770:16:17" + }, + "nativeSrc": "770:18:17", + "nodeType": "YulFunctionCall", + "src": "770:18:17" + }, + "nativeSrc": "770:18:17", + "nodeType": "YulExpressionStatement", + "src": "770:18:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "720:18:17", "nodeType": "YulIdentifier", - "src": "1116:6:17" + "src": "720:18:17" }, { "arguments": [ { - "name": "headStart", + "name": "length", + "nativeSrc": "743:6:17", "nodeType": "YulIdentifier", - "src": "1129:9:17" + "src": "743:6:17" }, { "kind": "number", + "nativeSrc": "751:2:17", "nodeType": "YulLiteral", - "src": "1140:1:17", + "src": "751:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { - "name": "add", + "name": "lt", + "nativeSrc": "740:2:17", "nodeType": "YulIdentifier", - "src": "1125:3:17" + "src": "740:2:17" }, + "nativeSrc": "740:14:17", "nodeType": "YulFunctionCall", - "src": "1125:17:17" + "src": "740:14:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "eq", + "nativeSrc": "717:2:17", "nodeType": "YulIdentifier", - "src": "1072:43:17" + "src": "717:2:17" }, + "nativeSrc": "717:38:17", "nodeType": "YulFunctionCall", - "src": "1072:71:17" + "src": "717:38:17" }, - "nodeType": "YulExpressionStatement", - "src": "1072:71:17" + "nativeSrc": "714:84:17", + "nodeType": "YulIf", + "src": "714:84:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "extract_byte_array_length", + "nativeSrc": "484:320:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "998:9:17", - "type": "" - }, - { - "name": "value0", + "name": "data", + "nativeSrc": "519:4:17", "nodeType": "YulTypedName", - "src": "1010:6:17", + "src": "519:4:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "length", + "nativeSrc": "528:6:17", "nodeType": "YulTypedName", - "src": "1021:4:17", + "src": "528:6:17", "type": "" } ], - "src": "928:222:17" + "src": "484:320:17" }, { "body": { + "nativeSrc": "864:87:17", "nodeType": "YulBlock", - "src": "1252:73:17", + "src": "864:87:17", "statements": [ + { + "nativeSrc": "874:11:17", + "nodeType": "YulAssignment", + "src": "874:11:17", + "value": { + "name": "ptr", + "nativeSrc": "882:3:17", + "nodeType": "YulIdentifier", + "src": "882:3:17" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "874:4:17", + "nodeType": "YulIdentifier", + "src": "874:4:17" + } + ] + }, { "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1269:3:17" + "kind": "number", + "nativeSrc": "902:1:17", + "nodeType": "YulLiteral", + "src": "902:1:17", + "type": "", + "value": "0" }, { - "name": "length", + "name": "ptr", + "nativeSrc": "905:3:17", "nodeType": "YulIdentifier", - "src": "1274:6:17" + "src": "905:3:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "895:6:17", "nodeType": "YulIdentifier", - "src": "1262:6:17" + "src": "895:6:17" }, + "nativeSrc": "895:14:17", "nodeType": "YulFunctionCall", - "src": "1262:19:17" + "src": "895:14:17" }, + "nativeSrc": "895:14:17", "nodeType": "YulExpressionStatement", - "src": "1262:19:17" + "src": "895:14:17" }, { + "nativeSrc": "918:26:17", "nodeType": "YulAssignment", - "src": "1290:29:17", + "src": "918:26:17", "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1309:3:17" + "kind": "number", + "nativeSrc": "936:1:17", + "nodeType": "YulLiteral", + "src": "936:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "939:4:17", "nodeType": "YulLiteral", - "src": "1314:4:17", + "src": "939:4:17", "type": "", "value": "0x20" } ], "functionName": { - "name": "add", + "name": "keccak256", + "nativeSrc": "926:9:17", "nodeType": "YulIdentifier", - "src": "1305:3:17" + "src": "926:9:17" }, + "nativeSrc": "926:18:17", "nodeType": "YulFunctionCall", - "src": "1305:14:17" + "src": "926:18:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "data", + "nativeSrc": "918:4:17", "nodeType": "YulIdentifier", - "src": "1290:11:17" + "src": "918:4:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "array_dataslot_t_string_storage", + "nativeSrc": "810:141:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1224:3:17", - "type": "" - }, - { - "name": "length", + "name": "ptr", + "nativeSrc": "851:3:17", "nodeType": "YulTypedName", - "src": "1229:6:17", + "src": "851:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "data", + "nativeSrc": "859:4:17", "nodeType": "YulTypedName", - "src": "1240:11:17", + "src": "859:4:17", "type": "" } ], - "src": "1156:169:17" + "src": "810:141:17" }, { "body": { + "nativeSrc": "1001:49:17", "nodeType": "YulBlock", - "src": "1375:261:17", + "src": "1001:49:17", "statements": [ { + "nativeSrc": "1011:33:17", "nodeType": "YulAssignment", - "src": "1385:25:17", + "src": "1011:33:17", "value": { "arguments": [ { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1408:1:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "1029:5:17", + "nodeType": "YulIdentifier", + "src": "1029:5:17" + }, + { + "kind": "number", + "nativeSrc": "1036:2:17", + "nodeType": "YulLiteral", + "src": "1036:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1025:3:17", + "nodeType": "YulIdentifier", + "src": "1025:3:17" + }, + "nativeSrc": "1025:14:17", + "nodeType": "YulFunctionCall", + "src": "1025:14:17" + }, + { + "kind": "number", + "nativeSrc": "1041:2:17", + "nodeType": "YulLiteral", + "src": "1041:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "div", + "nativeSrc": "1021:3:17", "nodeType": "YulIdentifier", - "src": "1390:17:17" + "src": "1021:3:17" }, + "nativeSrc": "1021:23:17", "nodeType": "YulFunctionCall", - "src": "1390:20:17" + "src": "1021:23:17" }, "variableNames": [ { - "name": "x", + "name": "result", + "nativeSrc": "1011:6:17", "nodeType": "YulIdentifier", - "src": "1385:1:17" + "src": "1011:6:17" } ] - }, + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "957:93:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "984:5:17", + "nodeType": "YulTypedName", + "src": "984:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "994:6:17", + "nodeType": "YulTypedName", + "src": "994:6:17", + "type": "" + } + ], + "src": "957:93:17" + }, + { + "body": { + "nativeSrc": "1109:54:17", + "nodeType": "YulBlock", + "src": "1109:54:17", + "statements": [ { + "nativeSrc": "1119:37:17", "nodeType": "YulAssignment", - "src": "1419:25:17", + "src": "1119:37:17", "value": { "arguments": [ { - "name": "y", + "name": "bits", + "nativeSrc": "1144:4:17", + "nodeType": "YulIdentifier", + "src": "1144:4:17" + }, + { + "name": "value", + "nativeSrc": "1150:5:17", "nodeType": "YulIdentifier", - "src": "1442:1:17" + "src": "1150:5:17" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "shl", + "nativeSrc": "1140:3:17", "nodeType": "YulIdentifier", - "src": "1424:17:17" + "src": "1140:3:17" }, + "nativeSrc": "1140:16:17", "nodeType": "YulFunctionCall", - "src": "1424:20:17" + "src": "1140:16:17" }, "variableNames": [ { - "name": "y", + "name": "newValue", + "nativeSrc": "1119:8:17", "nodeType": "YulIdentifier", - "src": "1419:1:17" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1582:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "1584:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "1584:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1584:18:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1503:1:17" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1510:66:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "1578:1:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1506:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1506:74:17" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1500:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "1500:81:17" - }, - "nodeType": "YulIf", - "src": "1497:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "1614:16:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "1625:1:17" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "1628:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1621:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1621:9:17" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "1614:3:17" + "src": "1119:8:17" } ] } ] }, - "name": "checked_add_t_uint256", + "name": "shift_left_dynamic", + "nativeSrc": "1056:107:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "x", + "name": "bits", + "nativeSrc": "1084:4:17", "nodeType": "YulTypedName", - "src": "1362:1:17", + "src": "1084:4:17", "type": "" }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "1365:1:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "1371:3:17", - "type": "" - } - ], - "src": "1331:305:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1687:32:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1697:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1708:5:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1697:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ { "name": "value", + "nativeSrc": "1090:5:17", "nodeType": "YulTypedName", - "src": "1669:5:17", + "src": "1090:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "newValue", + "nativeSrc": "1100:8:17", "nodeType": "YulTypedName", - "src": "1679:7:17", + "src": "1100:8:17", "type": "" } ], - "src": "1642:77:17" + "src": "1056:107:17" }, { "body": { + "nativeSrc": "1245:317:17", "nodeType": "YulBlock", - "src": "1776:269:17", + "src": "1245:317:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "1786:22:17", + "nativeSrc": "1255:35:17", + "nodeType": "YulVariableDeclaration", + "src": "1255:35:17", "value": { "arguments": [ { - "name": "data", + "name": "shiftBytes", + "nativeSrc": "1276:10:17", "nodeType": "YulIdentifier", - "src": "1800:4:17" + "src": "1276:10:17" }, { "kind": "number", + "nativeSrc": "1288:1:17", "nodeType": "YulLiteral", - "src": "1806:1:17", + "src": "1288:1:17", "type": "", - "value": "2" + "value": "8" } ], "functionName": { - "name": "div", + "name": "mul", + "nativeSrc": "1272:3:17", "nodeType": "YulIdentifier", - "src": "1796:3:17" + "src": "1272:3:17" }, + "nativeSrc": "1272:18:17", "nodeType": "YulFunctionCall", - "src": "1796:12:17" + "src": "1272:18:17" }, - "variableNames": [ + "variables": [ { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1786:6:17" + "name": "shiftBits", + "nativeSrc": "1259:9:17", + "nodeType": "YulTypedName", + "src": "1259:9:17", + "type": "" } ] }, { + "nativeSrc": "1299:109:17", "nodeType": "YulVariableDeclaration", - "src": "1817:38:17", + "src": "1299:109:17", "value": { "arguments": [ { - "name": "data", + "name": "shiftBits", + "nativeSrc": "1330:9:17", "nodeType": "YulIdentifier", - "src": "1847:4:17" + "src": "1330:9:17" }, { "kind": "number", + "nativeSrc": "1341:66:17", "nodeType": "YulLiteral", - "src": "1853:1:17", + "src": "1341:66:17", "type": "", - "value": "1" + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "and", + "name": "shift_left_dynamic", + "nativeSrc": "1311:18:17", "nodeType": "YulIdentifier", - "src": "1843:3:17" + "src": "1311:18:17" }, + "nativeSrc": "1311:97:17", "nodeType": "YulFunctionCall", - "src": "1843:12:17" + "src": "1311:97:17" }, "variables": [ { - "name": "outOfPlaceEncoding", + "name": "mask", + "nativeSrc": "1303:4:17", "nodeType": "YulTypedName", - "src": "1821:18:17", + "src": "1303:4:17", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "1894:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1908:27:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1922:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1930:4:17", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1918:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1918:17:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1908:6:17" - } - ] - } - ] - }, - "condition": { + "nativeSrc": "1417:51:17", + "nodeType": "YulAssignment", + "src": "1417:51:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "shiftBits", + "nativeSrc": "1448:9:17", + "nodeType": "YulIdentifier", + "src": "1448:9:17" + }, + { + "name": "toInsert", + "nativeSrc": "1459:8:17", "nodeType": "YulIdentifier", - "src": "1874:18:17" + "src": "1459:8:17" } ], "functionName": { - "name": "iszero", + "name": "shift_left_dynamic", + "nativeSrc": "1429:18:17", "nodeType": "YulIdentifier", - "src": "1867:6:17" + "src": "1429:18:17" }, + "nativeSrc": "1429:39:17", "nodeType": "YulFunctionCall", - "src": "1867:26:17" + "src": "1429:39:17" }, - "nodeType": "YulIf", - "src": "1864:2:17" + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "1417:8:17", + "nodeType": "YulIdentifier", + "src": "1417:8:17" + } + ] }, { - "body": { - "nodeType": "YulBlock", - "src": "1997:42:17", - "statements": [ + "nativeSrc": "1477:30:17", + "nodeType": "YulAssignment", + "src": "1477:30:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", + "name": "value", + "nativeSrc": "1490:5:17", + "nodeType": "YulIdentifier", + "src": "1490:5:17" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "1501:4:17", "nodeType": "YulIdentifier", - "src": "2011:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "2011:18:17" + "src": "1501:4:17" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1497:3:17", + "nodeType": "YulIdentifier", + "src": "1497:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "2011:18:17" + "nativeSrc": "1497:9:17", + "nodeType": "YulFunctionCall", + "src": "1497:9:17" } - ] + ], + "functionName": { + "name": "and", + "nativeSrc": "1486:3:17", + "nodeType": "YulIdentifier", + "src": "1486:3:17" + }, + "nativeSrc": "1486:21:17", + "nodeType": "YulFunctionCall", + "src": "1486:21:17" }, - "condition": { + "variableNames": [ + { + "name": "value", + "nativeSrc": "1477:5:17", + "nodeType": "YulIdentifier", + "src": "1477:5:17" + } + ] + }, + { + "nativeSrc": "1516:40:17", + "nodeType": "YulAssignment", + "src": "1516:40:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "value", + "nativeSrc": "1529:5:17", "nodeType": "YulIdentifier", - "src": "1961:18:17" + "src": "1529:5:17" }, { "arguments": [ { - "name": "length", + "name": "toInsert", + "nativeSrc": "1540:8:17", "nodeType": "YulIdentifier", - "src": "1984:6:17" + "src": "1540:8:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1992:2:17", - "type": "", - "value": "32" + "name": "mask", + "nativeSrc": "1550:4:17", + "nodeType": "YulIdentifier", + "src": "1550:4:17" } ], "functionName": { - "name": "lt", + "name": "and", + "nativeSrc": "1536:3:17", "nodeType": "YulIdentifier", - "src": "1981:2:17" + "src": "1536:3:17" }, + "nativeSrc": "1536:19:17", "nodeType": "YulFunctionCall", - "src": "1981:14:17" + "src": "1536:19:17" } ], "functionName": { - "name": "eq", + "name": "or", + "nativeSrc": "1526:2:17", "nodeType": "YulIdentifier", - "src": "1958:2:17" + "src": "1526:2:17" }, + "nativeSrc": "1526:30:17", "nodeType": "YulFunctionCall", - "src": "1958:38:17" + "src": "1526:30:17" }, - "nodeType": "YulIf", - "src": "1955:2:17" + "variableNames": [ + { + "name": "result", + "nativeSrc": "1516:6:17", + "nodeType": "YulIdentifier", + "src": "1516:6:17" + } + ] } ] }, - "name": "extract_byte_array_length", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "1169:393:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "value", + "nativeSrc": "1206:5:17", + "nodeType": "YulTypedName", + "src": "1206:5:17", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "1213:10:17", + "nodeType": "YulTypedName", + "src": "1213:10:17", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "1225:8:17", "nodeType": "YulTypedName", - "src": "1760:4:17", + "src": "1225:8:17", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "result", + "nativeSrc": "1238:6:17", "nodeType": "YulTypedName", - "src": "1769:6:17", + "src": "1238:6:17", "type": "" } ], - "src": "1725:320:17" + "src": "1169:393:17" }, { "body": { + "nativeSrc": "1613:32:17", "nodeType": "YulBlock", - "src": "2079:152:17", + "src": "1613:32:17", "statements": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2096:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2099:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2089:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2089:88:17" + "nativeSrc": "1623:16:17", + "nodeType": "YulAssignment", + "src": "1623:16:17", + "value": { + "name": "value", + "nativeSrc": "1634:5:17", + "nodeType": "YulIdentifier", + "src": "1634:5:17" }, - "nodeType": "YulExpressionStatement", - "src": "2089:88:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2193:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2196:4:17", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2186:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2186:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2186:15:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2217:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2220:4:17", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1623:7:17", "nodeType": "YulIdentifier", - "src": "2210:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2210:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2210:15:17" + "src": "1623:7:17" + } + ] } ] }, - "name": "panic_error_0x11", + "name": "cleanup_t_uint256", + "nativeSrc": "1568:77:17", "nodeType": "YulFunctionDefinition", - "src": "2051:180:17" + "parameters": [ + { + "name": "value", + "nativeSrc": "1595:5:17", + "nodeType": "YulTypedName", + "src": "1595:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1605:7:17", + "nodeType": "YulTypedName", + "src": "1605:7:17", + "type": "" + } + ], + "src": "1568:77:17" }, { "body": { + "nativeSrc": "1683:28:17", "nodeType": "YulBlock", - "src": "2265:152:17", + "src": "1683:28:17", "statements": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2282:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2285:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2275:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2275:88:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2275:88:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2379:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2382:4:17", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2372:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2372:15:17" + "nativeSrc": "1693:12:17", + "nodeType": "YulAssignment", + "src": "1693:12:17", + "value": { + "name": "value", + "nativeSrc": "1700:5:17", + "nodeType": "YulIdentifier", + "src": "1700:5:17" }, - "nodeType": "YulExpressionStatement", - "src": "2372:15:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2403:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2406:4:17", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", + "variableNames": [ + { + "name": "ret", + "nativeSrc": "1693:3:17", "nodeType": "YulIdentifier", - "src": "2396:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2396:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2396:15:17" + "src": "1693:3:17" + } + ] } ] }, - "name": "panic_error_0x22", + "name": "identity", + "nativeSrc": "1651:60:17", "nodeType": "YulFunctionDefinition", - "src": "2237:180:17" + "parameters": [ + { + "name": "value", + "nativeSrc": "1669:5:17", + "nodeType": "YulTypedName", + "src": "1669:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1679:3:17", + "nodeType": "YulTypedName", + "src": "1679:3:17", + "type": "" + } + ], + "src": "1651:60:17" }, { "body": { + "nativeSrc": "1777:82:17", "nodeType": "YulBlock", - "src": "2529:75:17", + "src": "1777:82:17", "statements": [ { - "expression": { + "nativeSrc": "1787:66:17", + "nodeType": "YulAssignment", + "src": "1787:66:17", + "value": { "arguments": [ { "arguments": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "2551:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2559:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "value", + "nativeSrc": "1845:5:17", + "nodeType": "YulIdentifier", + "src": "1845:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1827:17:17", + "nodeType": "YulIdentifier", + "src": "1827:17:17" + }, + "nativeSrc": "1827:24:17", + "nodeType": "YulFunctionCall", + "src": "1827:24:17" } ], "functionName": { - "name": "add", + "name": "identity", + "nativeSrc": "1818:8:17", "nodeType": "YulIdentifier", - "src": "2547:3:17" + "src": "1818:8:17" }, + "nativeSrc": "1818:34:17", "nodeType": "YulFunctionCall", - "src": "2547:14:17" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "2563:33:17", - "type": "", - "value": "ERC20: mint to the zero address" + "src": "1818:34:17" } ], "functionName": { - "name": "mstore", + "name": "cleanup_t_uint256", + "nativeSrc": "1800:17:17", "nodeType": "YulIdentifier", - "src": "2540:6:17" + "src": "1800:17:17" }, + "nativeSrc": "1800:53:17", "nodeType": "YulFunctionCall", - "src": "2540:57:17" + "src": "1800:53:17" }, - "nodeType": "YulExpressionStatement", - "src": "2540:57:17" + "variableNames": [ + { + "name": "converted", + "nativeSrc": "1787:9:17", + "nodeType": "YulIdentifier", + "src": "1787:9:17" + } + ] } ] }, - "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "1717:142:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "value", + "nativeSrc": "1757:5:17", "nodeType": "YulTypedName", - "src": "2521:6:17", + "src": "1757:5:17", "type": "" } ], - "src": "2423:181:17" - } - ] - }, - "contents": "{\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n}\n", - "id": 17, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051806080016040528060588152602001620016fa605891396040518060400160405280600981526020017f54657374546f6b656e000000000000000000000000000000000000000000000081525081600390805190602001906200007a92919062000244565b5080600490805190602001906200009392919062000244565b505050620000c673100000000000000000000000000000000000000169152d02c7e14af6800000620000cc60201b60201c565b620004a0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200013f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000136906200032c565b60405180910390fd5b62000153600083836200023a60201b60201c565b80600260008282546200016791906200037c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200021a91906200034e565b60405180910390a362000236600083836200023f60201b60201c565b5050565b505050565b505050565b8280546200025290620003e3565b90600052602060002090601f016020900481019282620002765760008555620002c2565b82601f106200029157805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c1578251825591602001919060010190620002a4565b5b509050620002d19190620002d5565b5090565b5b80821115620002f0576000816000905550600101620002d6565b5090565b600062000303601f836200036b565b9150620003108262000477565b602082019050919050565b6200032681620003d9565b82525050565b600060208201905081810360008301526200034781620002f4565b9050919050565b60006020820190506200036560008301846200031b565b92915050565b600082825260208201905092915050565b60006200038982620003d9565b91506200039683620003d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003ce57620003cd62000419565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620003fc57607f821691505b6020821081141562000413576200041262000448565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61124a80620004b06000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006011905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea26469706673582212200f9924fbbe1897538c5df6d028eca311519c561d8ba5a282778a48d4817e613b64736f6c634300080200336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x58 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x16FA PUSH1 0x58 SWAP2 CODECOPY PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x54657374546F6B656E0000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x7A SWAP3 SWAP2 SWAP1 PUSH3 0x244 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x93 SWAP3 SWAP2 SWAP1 PUSH3 0x244 JUMP JUMPDEST POP POP POP PUSH3 0xC6 PUSH20 0x1000000000000000000000000000000000000001 PUSH10 0x152D02C7E14AF6800000 PUSH3 0xCC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x4A0 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH3 0x13F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x136 SWAP1 PUSH3 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x153 PUSH1 0x0 DUP4 DUP4 PUSH3 0x23A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x167 SWAP2 SWAP1 PUSH3 0x37C JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x21A SWAP2 SWAP1 PUSH3 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x236 PUSH1 0x0 DUP4 DUP4 PUSH3 0x23F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x252 SWAP1 PUSH3 0x3E3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x276 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x2C2 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x291 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x2C2 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x2C2 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x2C1 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x2A4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x2D1 SWAP2 SWAP1 PUSH3 0x2D5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x2F0 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x2D6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x303 PUSH1 0x1F DUP4 PUSH3 0x36B JUMP JUMPDEST SWAP2 POP PUSH3 0x310 DUP3 PUSH3 0x477 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x326 DUP2 PUSH3 0x3D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x347 DUP2 PUSH3 0x2F4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x365 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x31B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x389 DUP3 PUSH3 0x3D9 JUMP JUMPDEST SWAP2 POP PUSH3 0x396 DUP4 PUSH3 0x3D9 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH3 0x3CE JUMPI PUSH3 0x3CD PUSH3 0x419 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x3FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x413 JUMPI PUSH3 0x412 PUSH3 0x448 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x124A DUP1 PUSH3 0x4B0 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xB0F JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xE2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xAAA JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B1 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x427 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60E SWAP1 PUSH2 0xDD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67E SWAP1 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x765 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77E DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F8 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x86E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x865 SWAP1 PUSH2 0xDB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP1 PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E9 DUP4 DUP4 DUP4 PUSH2 0xA76 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA70 DUP5 DUP5 DUP5 PUSH2 0xA7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8F DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAA4 DUP2 PUSH2 0x11FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP5 DUP3 DUP6 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB05 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB43 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB54 DUP7 DUP3 DUP8 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB7F DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB90 DUP6 DUP3 DUP7 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA3 DUP2 PUSH2 0xECC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB4 DUP3 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0xBBE DUP2 DUP6 PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF0F JUMP JUMPDEST PUSH2 0xBD7 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBEF PUSH1 0x23 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFA DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 PUSH1 0x22 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC1D DUP3 PUSH2 0x1032 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC35 PUSH1 0x1D DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC40 DUP3 PUSH2 0x1081 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x26 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC63 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC86 DUP3 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH1 0x24 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCA9 DUP3 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCCC DUP3 PUSH2 0x1197 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE0 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xCEF DUP2 PUSH2 0xF02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD2A DUP2 DUP5 PUSH2 0xBA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD4B DUP2 PUSH2 0xBE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD6B DUP2 PUSH2 0xC05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xC28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDAB DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDCB DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDEB DUP2 PUSH2 0xC91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0B DUP2 PUSH2 0xCB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6F DUP3 PUSH2 0xEF8 JUMP JUMPDEST SWAP2 POP PUSH2 0xE7A DUP4 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH2 0xEAE PUSH2 0xF74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEC5 DUP3 PUSH2 0xED8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF2D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF12 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xF5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xF6E JUMPI PUSH2 0xF6D PUSH2 0xFA3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x11EF DUP2 PUSH2 0xEBA JUMP JUMPDEST DUP2 EQ PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1206 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF SWAP10 0x24 0xFB 0xBE XOR SWAP8 MSTORE8 DUP13 0x5D 0xF6 0xD0 0x28 0xEC LOG3 GT MLOAD SWAP13 JUMP SAR DUP12 0xA5 LOG2 DUP3 PUSH24 0x8A48D4817E613B64736F6C634300080200336C6F6E672073 PUSH21 0x72696E67206E616D652C206C6F6E6720737472696E PUSH8 0x206E616D652C206C PUSH16 0x6E6720737472696E67206E616D652C20 PUSH13 0x6F6E6720737472696E67206E61 PUSH14 0x652C206C6F6E6720737472696E67 KECCAK256 PUSH15 0x616D65000000000000000000000000 ", - "sourceMap": "128:420:9:-:0;;;171:278;;;;;;;;;;1980:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2054:5;2046;:13;;;;;;;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;;;;;;;:::i;:::-;;1980:113;;360:82:9::1;366:42;410:31;360:5;;;:82;;:::i;:::-;128:420:::0;;8520:535:0;8622:1;8603:21;;:7;:21;;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;;;:49;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;;;:48;;:::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;128:420:9:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:366:17:-;;170:67;234:2;229:3;170:67;:::i;:::-;163:74;;246:93;335:3;246:93;:::i;:::-;364:2;359:3;355:12;348:19;;153:220;;;:::o;379:118::-;466:24;484:5;466:24;:::i;:::-;461:3;454:37;444:53;;:::o;503:419::-;;707:2;696:9;692:18;684:26;;756:9;750:4;746:20;742:1;731:9;727:17;720:47;784:131;910:4;784:131;:::i;:::-;776:139;;674:248;;;:::o;928:222::-;;1059:2;1048:9;1044:18;1036:26;;1072:71;1140:1;1129:9;1125:17;1116:6;1072:71;:::i;:::-;1026:124;;;;:::o;1156:169::-;;1274:6;1269:3;1262:19;1314:4;1309:3;1305:14;1290:29;;1252:73;;;;:::o;1331:305::-;;1390:20;1408:1;1390:20;:::i;:::-;1385:25;;1424:20;1442:1;1424:20;:::i;:::-;1419:25;;1578:1;1510:66;1506:74;1503:1;1500:81;1497:2;;;1584:18;;:::i;:::-;1497:2;1628:1;1625;1621:9;1614:16;;1375:261;;;;:::o;1642:77::-;;1708:5;1697:16;;1687:32;;;:::o;1725:320::-;;1806:1;1800:4;1796:12;1786:22;;1853:1;1847:4;1843:12;1874:18;1864:2;;1930:4;1922:6;1918:17;1908:27;;1864:2;1992;1984:6;1981:14;1961:18;1958:38;1955:2;;;2011:18;;:::i;:::-;1955:2;1776:269;;;;:::o;2051:180::-;2099:77;2096:1;2089:88;2196:4;2193:1;2186:15;2220:4;2217:1;2210:15;2237:180;2285:77;2282:1;2275:88;2382:4;2379:1;2372:15;2406:4;2403:1;2396:15;2423:181;2563:33;2559:1;2551:6;2547:14;2540:57;2529:75;:::o;128:420:9:-;;;;;;;" - }, - "deployedBytecode": { - "generatedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:13266:17", - "statements": [ + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "1767:9:17", + "nodeType": "YulTypedName", + "src": "1767:9:17", + "type": "" + } + ], + "src": "1717:142:17" + }, { "body": { + "nativeSrc": "1912:28:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "1912:28:17", "statements": [ { + "nativeSrc": "1922:12:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "1922:12:17", "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "78:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "78:20:17" + "name": "value", + "nativeSrc": "1929:5:17", + "nodeType": "YulIdentifier", + "src": "1929:5:17" }, "variableNames": [ { - "name": "value", + "name": "ret", + "nativeSrc": "1922:3:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "1922:3:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "134:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "107:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "107:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" } ] }, - "name": "abi_decode_t_address", + "name": "prepare_store_t_uint256", + "nativeSrc": "1865:75:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "1898:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "1898:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "ret", + "nativeSrc": "1908:3:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "1908:3:17", "type": "" } ], - "src": "7:139:17" + "src": "1865:75:17" }, { "body": { + "nativeSrc": "2022:193:17", "nodeType": "YulBlock", - "src": "204:87:17", + "src": "2022:193:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "214:29:17", + "nativeSrc": "2032:63:17", + "nodeType": "YulVariableDeclaration", + "src": "2032:63:17", "value": { "arguments": [ { - "name": "offset", + "name": "value_0", + "nativeSrc": "2087:7:17", "nodeType": "YulIdentifier", - "src": "236:6:17" + "src": "2087:7:17" } ], "functionName": { - "name": "calldataload", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "2056:30:17", "nodeType": "YulIdentifier", - "src": "223:12:17" + "src": "2056:30:17" }, + "nativeSrc": "2056:39:17", "nodeType": "YulFunctionCall", - "src": "223:20:17" + "src": "2056:39:17" }, - "variableNames": [ + "variables": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "214:5:17" + "name": "convertedValue_0", + "nativeSrc": "2036:16:17", + "nodeType": "YulTypedName", + "src": "2036:16:17", + "type": "" } ] }, @@ -1649,1225 +1889,4150 @@ "expression": { "arguments": [ { - "name": "value", + "name": "slot", + "nativeSrc": "2111:4:17", "nodeType": "YulIdentifier", - "src": "279:5:17" + "src": "2111:4:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2151:4:17", + "nodeType": "YulIdentifier", + "src": "2151:4:17" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "2145:5:17", + "nodeType": "YulIdentifier", + "src": "2145:5:17" + }, + "nativeSrc": "2145:11:17", + "nodeType": "YulFunctionCall", + "src": "2145:11:17" + }, + { + "name": "offset", + "nativeSrc": "2158:6:17", + "nodeType": "YulIdentifier", + "src": "2158:6:17" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "2190:16:17", + "nodeType": "YulIdentifier", + "src": "2190:16:17" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "2166:23:17", + "nodeType": "YulIdentifier", + "src": "2166:23:17" + }, + "nativeSrc": "2166:41:17", + "nodeType": "YulFunctionCall", + "src": "2166:41:17" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "2117:27:17", + "nodeType": "YulIdentifier", + "src": "2117:27:17" + }, + "nativeSrc": "2117:91:17", + "nodeType": "YulFunctionCall", + "src": "2117:91:17" } ], "functionName": { - "name": "validator_revert_t_uint256", + "name": "sstore", + "nativeSrc": "2104:6:17", "nodeType": "YulIdentifier", - "src": "252:26:17" + "src": "2104:6:17" }, + "nativeSrc": "2104:105:17", "nodeType": "YulFunctionCall", - "src": "252:33:17" + "src": "2104:105:17" }, + "nativeSrc": "2104:105:17", "nodeType": "YulExpressionStatement", - "src": "252:33:17" + "src": "2104:105:17" } ] }, - "name": "abi_decode_t_uint256", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "1946:269:17", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "slot", + "nativeSrc": "1999:4:17", + "nodeType": "YulTypedName", + "src": "1999:4:17", + "type": "" + }, { "name": "offset", + "nativeSrc": "2005:6:17", "nodeType": "YulTypedName", - "src": "182:6:17", + "src": "2005:6:17", "type": "" }, { - "name": "end", + "name": "value_0", + "nativeSrc": "2013:7:17", "nodeType": "YulTypedName", - "src": "190:3:17", + "src": "2013:7:17", "type": "" } ], + "src": "1946:269:17" + }, + { + "body": { + "nativeSrc": "2270:24:17", + "nodeType": "YulBlock", + "src": "2270:24:17", + "statements": [ + { + "nativeSrc": "2280:8:17", + "nodeType": "YulAssignment", + "src": "2280:8:17", + "value": { + "kind": "number", + "nativeSrc": "2287:1:17", + "nodeType": "YulLiteral", + "src": "2287:1:17", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "2280:3:17", + "nodeType": "YulIdentifier", + "src": "2280:3:17" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "2221:73:17", + "nodeType": "YulFunctionDefinition", "returnVariables": [ { - "name": "value", + "name": "ret", + "nativeSrc": "2266:3:17", "nodeType": "YulTypedName", - "src": "198:5:17", + "src": "2266:3:17", "type": "" } ], - "src": "152:139:17" + "src": "2221:73:17" }, { "body": { + "nativeSrc": "2353:136:17", "nodeType": "YulBlock", - "src": "363:196:17", + "src": "2353:136:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "409:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "418:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "421:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "411:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "411:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "411:12:17" - } - ] + "nativeSrc": "2363:46:17", + "nodeType": "YulVariableDeclaration", + "src": "2363:46:17", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "2377:30:17", + "nodeType": "YulIdentifier", + "src": "2377:30:17" + }, + "nativeSrc": "2377:32:17", + "nodeType": "YulFunctionCall", + "src": "2377:32:17" }, - "condition": { + "variables": [ + { + "name": "zero_0", + "nativeSrc": "2367:6:17", + "nodeType": "YulTypedName", + "src": "2367:6:17", + "type": "" + } + ] + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "384:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "393:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "380:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "380:23:17" + "name": "slot", + "nativeSrc": "2462:4:17", + "nodeType": "YulIdentifier", + "src": "2462:4:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "405:2:17", - "type": "", - "value": "32" + "name": "offset", + "nativeSrc": "2468:6:17", + "nodeType": "YulIdentifier", + "src": "2468:6:17" + }, + { + "name": "zero_0", + "nativeSrc": "2476:6:17", + "nodeType": "YulIdentifier", + "src": "2476:6:17" } ], "functionName": { - "name": "slt", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "2418:43:17", "nodeType": "YulIdentifier", - "src": "376:3:17" + "src": "2418:43:17" }, + "nativeSrc": "2418:65:17", "nodeType": "YulFunctionCall", - "src": "376:32:17" + "src": "2418:65:17" }, - "nodeType": "YulIf", - "src": "373:2:17" - }, - { - "nodeType": "YulBlock", - "src": "435:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "450:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "464:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "454:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "479:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "514:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "525:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "510:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "510:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "534:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "489:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "489:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "479:6:17" - } - ] - } - ] + "nativeSrc": "2418:65:17", + "nodeType": "YulExpressionStatement", + "src": "2418:65:17" } ] }, - "name": "abi_decode_tuple_t_address", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "2300:189:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "slot", + "nativeSrc": "2339:4:17", "nodeType": "YulTypedName", - "src": "333:9:17", + "src": "2339:4:17", "type": "" }, { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "344:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "offset", + "nativeSrc": "2345:6:17", "nodeType": "YulTypedName", - "src": "356:6:17", + "src": "2345:6:17", "type": "" } ], - "src": "297:262:17" + "src": "2300:189:17" }, { "body": { + "nativeSrc": "2545:136:17", "nodeType": "YulBlock", - "src": "648:324:17", + "src": "2545:136:17", "statements": [ { "body": { + "nativeSrc": "2612:63:17", "nodeType": "YulBlock", - "src": "694:16:17", + "src": "2612:63:17", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "703:1:17", - "type": "", - "value": "0" + "name": "start", + "nativeSrc": "2656:5:17", + "nodeType": "YulIdentifier", + "src": "2656:5:17" }, { "kind": "number", + "nativeSrc": "2663:1:17", "nodeType": "YulLiteral", - "src": "706:1:17", + "src": "2663:1:17", "type": "", "value": "0" } ], "functionName": { - "name": "revert", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "2626:29:17", "nodeType": "YulIdentifier", - "src": "696:6:17" + "src": "2626:29:17" }, + "nativeSrc": "2626:39:17", "nodeType": "YulFunctionCall", - "src": "696:12:17" + "src": "2626:39:17" }, + "nativeSrc": "2626:39:17", "nodeType": "YulExpressionStatement", - "src": "696:12:17" + "src": "2626:39:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "669:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "678:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "665:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "665:23:17" + "name": "start", + "nativeSrc": "2565:5:17", + "nodeType": "YulIdentifier", + "src": "2565:5:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "690:2:17", - "type": "", - "value": "64" + "name": "end", + "nativeSrc": "2572:3:17", + "nodeType": "YulIdentifier", + "src": "2572:3:17" } ], "functionName": { - "name": "slt", + "name": "lt", + "nativeSrc": "2562:2:17", "nodeType": "YulIdentifier", - "src": "661:3:17" + "src": "2562:2:17" }, + "nativeSrc": "2562:14:17", "nodeType": "YulFunctionCall", - "src": "661:32:17" + "src": "2562:14:17" }, - "nodeType": "YulIf", - "src": "658:2:17" - }, - { - "nodeType": "YulBlock", - "src": "720:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "735:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "749:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "739:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "764:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "799:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "810:6:17" - } - ], - "functionName": { - "name": "add", + "nativeSrc": "2555:120:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2577:26:17", + "nodeType": "YulBlock", + "src": "2577:26:17", + "statements": [ + { + "nativeSrc": "2579:22:17", + "nodeType": "YulAssignment", + "src": "2579:22:17", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2592:5:17", "nodeType": "YulIdentifier", - "src": "795:3:17" + "src": "2592:5:17" }, - "nodeType": "YulFunctionCall", - "src": "795:22:17" - }, - { - "name": "dataEnd", + { + "kind": "number", + "nativeSrc": "2599:1:17", + "nodeType": "YulLiteral", + "src": "2599:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2588:3:17", "nodeType": "YulIdentifier", - "src": "819:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "774:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "774:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "764:6:17" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "847:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "862:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "876:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "866:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "892:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "927:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "938:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "923:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "923:22:17" + "src": "2588:3:17" }, + "nativeSrc": "2588:13:17", + "nodeType": "YulFunctionCall", + "src": "2588:13:17" + }, + "variableNames": [ { - "name": "dataEnd", + "name": "start", + "nativeSrc": "2579:5:17", "nodeType": "YulIdentifier", - "src": "947:7:17" + "src": "2579:5:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "902:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "902:53:17" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "892:6:17" - } - ] - } - ] + ] + } + ] + }, + "pre": { + "nativeSrc": "2559:2:17", + "nodeType": "YulBlock", + "src": "2559:2:17", + "statements": [] + }, + "src": "2555:120:17" } ] }, - "name": "abi_decode_tuple_t_addresst_address", + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "2495:186:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "610:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "621:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", + "name": "start", + "nativeSrc": "2533:5:17", "nodeType": "YulTypedName", - "src": "633:6:17", + "src": "2533:5:17", "type": "" }, { - "name": "value1", + "name": "end", + "nativeSrc": "2540:3:17", "nodeType": "YulTypedName", - "src": "641:6:17", + "src": "2540:3:17", "type": "" } ], - "src": "565:407:17" + "src": "2495:186:17" }, { "body": { + "nativeSrc": "2766:464:17", "nodeType": "YulBlock", - "src": "1078:452:17", + "src": "2766:464:17", "statements": [ { "body": { + "nativeSrc": "2792:431:17", "nodeType": "YulBlock", - "src": "1124:16:17", + "src": "2792:431:17", "statements": [ { - "expression": { + "nativeSrc": "2806:54:17", + "nodeType": "YulVariableDeclaration", + "src": "2806:54:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1133:1:17", - "type": "", - "value": "0" + "name": "array", + "nativeSrc": "2854:5:17", + "nodeType": "YulIdentifier", + "src": "2854:5:17" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "2822:31:17", + "nodeType": "YulIdentifier", + "src": "2822:31:17" + }, + "nativeSrc": "2822:38:17", + "nodeType": "YulFunctionCall", + "src": "2822:38:17" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "2810:8:17", + "nodeType": "YulTypedName", + "src": "2810:8:17", + "type": "" + } + ] + }, + { + "nativeSrc": "2873:63:17", + "nodeType": "YulVariableDeclaration", + "src": "2873:63:17", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "2896:8:17", + "nodeType": "YulIdentifier", + "src": "2896:8:17" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "2924:10:17", + "nodeType": "YulIdentifier", + "src": "2924:10:17" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "2906:17:17", + "nodeType": "YulIdentifier", + "src": "2906:17:17" + }, + "nativeSrc": "2906:29:17", + "nodeType": "YulFunctionCall", + "src": "2906:29:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2892:3:17", + "nodeType": "YulIdentifier", + "src": "2892:3:17" + }, + "nativeSrc": "2892:44:17", + "nodeType": "YulFunctionCall", + "src": "2892:44:17" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "2877:11:17", + "nodeType": "YulTypedName", + "src": "2877:11:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3093:27:17", + "nodeType": "YulBlock", + "src": "3093:27:17", + "statements": [ + { + "nativeSrc": "3095:23:17", + "nodeType": "YulAssignment", + "src": "3095:23:17", + "value": { + "name": "dataArea", + "nativeSrc": "3110:8:17", + "nodeType": "YulIdentifier", + "src": "3110:8:17" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "3095:11:17", + "nodeType": "YulIdentifier", + "src": "3095:11:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "3077:10:17", + "nodeType": "YulIdentifier", + "src": "3077:10:17" }, { "kind": "number", + "nativeSrc": "3089:2:17", "nodeType": "YulLiteral", - "src": "1136:1:17", + "src": "3089:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "lt", + "nativeSrc": "3074:2:17", + "nodeType": "YulIdentifier", + "src": "3074:2:17" + }, + "nativeSrc": "3074:18:17", + "nodeType": "YulFunctionCall", + "src": "3074:18:17" + }, + "nativeSrc": "3071:49:17", + "nodeType": "YulIf", + "src": "3071:49:17" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "3162:11:17", + "nodeType": "YulIdentifier", + "src": "3162:11:17" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "3179:8:17", + "nodeType": "YulIdentifier", + "src": "3179:8:17" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "3207:3:17", + "nodeType": "YulIdentifier", + "src": "3207:3:17" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "3189:17:17", + "nodeType": "YulIdentifier", + "src": "3189:17:17" + }, + "nativeSrc": "3189:22:17", + "nodeType": "YulFunctionCall", + "src": "3189:22:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3175:3:17", + "nodeType": "YulIdentifier", + "src": "3175:3:17" + }, + "nativeSrc": "3175:37:17", + "nodeType": "YulFunctionCall", + "src": "3175:37:17" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "3133:28:17", "nodeType": "YulIdentifier", - "src": "1126:6:17" + "src": "3133:28:17" }, + "nativeSrc": "3133:80:17", "nodeType": "YulFunctionCall", - "src": "1126:12:17" + "src": "3133:80:17" }, + "nativeSrc": "3133:80:17", "nodeType": "YulExpressionStatement", - "src": "1126:12:17" + "src": "3133:80:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1099:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1108:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1095:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1095:23:17" + "name": "len", + "nativeSrc": "2783:3:17", + "nodeType": "YulIdentifier", + "src": "2783:3:17" }, { "kind": "number", + "nativeSrc": "2788:2:17", "nodeType": "YulLiteral", - "src": "1120:2:17", + "src": "2788:2:17", "type": "", - "value": "96" + "value": "31" } ], "functionName": { - "name": "slt", + "name": "gt", + "nativeSrc": "2780:2:17", "nodeType": "YulIdentifier", - "src": "1091:3:17" + "src": "2780:2:17" }, + "nativeSrc": "2780:11:17", "nodeType": "YulFunctionCall", - "src": "1091:32:17" + "src": "2780:11:17" }, + "nativeSrc": "2777:446:17", "nodeType": "YulIf", - "src": "1088:2:17" - }, + "src": "2777:446:17" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "2687:543:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "2742:5:17", + "nodeType": "YulTypedName", + "src": "2742:5:17", + "type": "" + }, + { + "name": "len", + "nativeSrc": "2749:3:17", + "nodeType": "YulTypedName", + "src": "2749:3:17", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "2754:10:17", + "nodeType": "YulTypedName", + "src": "2754:10:17", + "type": "" + } + ], + "src": "2687:543:17" + }, + { + "body": { + "nativeSrc": "3299:54:17", + "nodeType": "YulBlock", + "src": "3299:54:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "1150:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1165:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1179:1:17", - "type": "", - "value": "0" + "nativeSrc": "3309:37:17", + "nodeType": "YulAssignment", + "src": "3309:37:17", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "3334:4:17", + "nodeType": "YulIdentifier", + "src": "3334:4:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1169:6:17", - "type": "" - } - ] + { + "name": "value", + "nativeSrc": "3340:5:17", + "nodeType": "YulIdentifier", + "src": "3340:5:17" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3330:3:17", + "nodeType": "YulIdentifier", + "src": "3330:3:17" }, + "nativeSrc": "3330:16:17", + "nodeType": "YulFunctionCall", + "src": "3330:16:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "1194:63:17", - "value": { + "name": "newValue", + "nativeSrc": "3309:8:17", + "nodeType": "YulIdentifier", + "src": "3309:8:17" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "3236:117:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "3274:4:17", + "nodeType": "YulTypedName", + "src": "3274:4:17", + "type": "" + }, + { + "name": "value", + "nativeSrc": "3280:5:17", + "nodeType": "YulTypedName", + "src": "3280:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "3290:8:17", + "nodeType": "YulTypedName", + "src": "3290:8:17", + "type": "" + } + ], + "src": "3236:117:17" + }, + { + "body": { + "nativeSrc": "3410:118:17", + "nodeType": "YulBlock", + "src": "3410:118:17", + "statements": [ + { + "nativeSrc": "3420:68:17", + "nodeType": "YulVariableDeclaration", + "src": "3420:68:17", + "value": { + "arguments": [ + { "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1229:9:17" + "kind": "number", + "nativeSrc": "3469:1:17", + "nodeType": "YulLiteral", + "src": "3469:1:17", + "type": "", + "value": "8" }, { - "name": "offset", + "name": "bytes", + "nativeSrc": "3472:5:17", "nodeType": "YulIdentifier", - "src": "1240:6:17" + "src": "3472:5:17" } ], "functionName": { - "name": "add", + "name": "mul", + "nativeSrc": "3465:3:17", "nodeType": "YulIdentifier", - "src": "1225:3:17" + "src": "3465:3:17" }, + "nativeSrc": "3465:13:17", "nodeType": "YulFunctionCall", - "src": "1225:22:17" + "src": "3465:13:17" }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1249:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1204:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1204:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1194:6:17" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1277:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1292:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1306:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1296:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1322:63:17", - "value": { - "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1357:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1368:6:17" + "kind": "number", + "nativeSrc": "3484:1:17", + "nodeType": "YulLiteral", + "src": "3484:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "add", + "name": "not", + "nativeSrc": "3480:3:17", "nodeType": "YulIdentifier", - "src": "1353:3:17" + "src": "3480:3:17" }, + "nativeSrc": "3480:6:17", "nodeType": "YulFunctionCall", - "src": "1353:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1377:7:17" + "src": "3480:6:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "3436:28:17", "nodeType": "YulIdentifier", - "src": "1332:20:17" + "src": "3436:28:17" }, + "nativeSrc": "3436:51:17", "nodeType": "YulFunctionCall", - "src": "1332:53:17" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1322:6:17" - } - ] + "src": "3436:51:17" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3432:3:17", + "nodeType": "YulIdentifier", + "src": "3432:3:17" + }, + "nativeSrc": "3432:56:17", + "nodeType": "YulFunctionCall", + "src": "3432:56:17" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "3424:4:17", + "nodeType": "YulTypedName", + "src": "3424:4:17", + "type": "" } ] }, { - "nodeType": "YulBlock", - "src": "1405:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1420:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1434:2:17", - "type": "", - "value": "64" + "nativeSrc": "3497:25:17", + "nodeType": "YulAssignment", + "src": "3497:25:17", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3511:4:17", + "nodeType": "YulIdentifier", + "src": "3511:4:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1424:6:17", - "type": "" - } - ] + { + "name": "mask", + "nativeSrc": "3517:4:17", + "nodeType": "YulIdentifier", + "src": "3517:4:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3507:3:17", + "nodeType": "YulIdentifier", + "src": "3507:3:17" }, + "nativeSrc": "3507:15:17", + "nodeType": "YulFunctionCall", + "src": "3507:15:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "1450:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1485:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1496:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1481:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1481:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1505:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "1460:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1460:53:17" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1450:6:17" - } - ] + "name": "result", + "nativeSrc": "3497:6:17", + "nodeType": "YulIdentifier", + "src": "3497:6:17" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "name": "mask_bytes_dynamic", + "nativeSrc": "3359:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "3387:4:17", "nodeType": "YulTypedName", - "src": "1032:9:17", + "src": "3387:4:17", "type": "" }, { - "name": "dataEnd", + "name": "bytes", + "nativeSrc": "3393:5:17", "nodeType": "YulTypedName", - "src": "1043:7:17", + "src": "3393:5:17", "type": "" } ], "returnVariables": [ { - "name": "value0", + "name": "result", + "nativeSrc": "3403:6:17", "nodeType": "YulTypedName", - "src": "1055:6:17", + "src": "3403:6:17", "type": "" - }, + } + ], + "src": "3359:169:17" + }, + { + "body": { + "nativeSrc": "3614:214:17", + "nodeType": "YulBlock", + "src": "3614:214:17", + "statements": [ + { + "nativeSrc": "3747:37:17", + "nodeType": "YulAssignment", + "src": "3747:37:17", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3774:4:17", + "nodeType": "YulIdentifier", + "src": "3774:4:17" + }, + { + "name": "len", + "nativeSrc": "3780:3:17", + "nodeType": "YulIdentifier", + "src": "3780:3:17" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "3755:18:17", + "nodeType": "YulIdentifier", + "src": "3755:18:17" + }, + "nativeSrc": "3755:29:17", + "nodeType": "YulFunctionCall", + "src": "3755:29:17" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3747:4:17", + "nodeType": "YulIdentifier", + "src": "3747:4:17" + } + ] + }, + { + "nativeSrc": "3793:29:17", + "nodeType": "YulAssignment", + "src": "3793:29:17", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3804:4:17", + "nodeType": "YulIdentifier", + "src": "3804:4:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3814:1:17", + "nodeType": "YulLiteral", + "src": "3814:1:17", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "3817:3:17", + "nodeType": "YulIdentifier", + "src": "3817:3:17" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3810:3:17", + "nodeType": "YulIdentifier", + "src": "3810:3:17" + }, + "nativeSrc": "3810:11:17", + "nodeType": "YulFunctionCall", + "src": "3810:11:17" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3801:2:17", + "nodeType": "YulIdentifier", + "src": "3801:2:17" + }, + "nativeSrc": "3801:21:17", + "nodeType": "YulFunctionCall", + "src": "3801:21:17" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "3793:4:17", + "nodeType": "YulIdentifier", + "src": "3793:4:17" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "3533:295:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3595:4:17", + "nodeType": "YulTypedName", + "src": "3595:4:17", + "type": "" + }, + { + "name": "len", + "nativeSrc": "3601:3:17", + "nodeType": "YulTypedName", + "src": "3601:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "3609:4:17", + "nodeType": "YulTypedName", + "src": "3609:4:17", + "type": "" + } + ], + "src": "3533:295:17" + }, + { + "body": { + "nativeSrc": "3925:1303:17", + "nodeType": "YulBlock", + "src": "3925:1303:17", + "statements": [ + { + "nativeSrc": "3936:51:17", + "nodeType": "YulVariableDeclaration", + "src": "3936:51:17", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "3983:3:17", + "nodeType": "YulIdentifier", + "src": "3983:3:17" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3950:32:17", + "nodeType": "YulIdentifier", + "src": "3950:32:17" + }, + "nativeSrc": "3950:37:17", + "nodeType": "YulFunctionCall", + "src": "3950:37:17" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "3940:6:17", + "nodeType": "YulTypedName", + "src": "3940:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4072:22:17", + "nodeType": "YulBlock", + "src": "4072:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "4074:16:17", + "nodeType": "YulIdentifier", + "src": "4074:16:17" + }, + "nativeSrc": "4074:18:17", + "nodeType": "YulFunctionCall", + "src": "4074:18:17" + }, + "nativeSrc": "4074:18:17", + "nodeType": "YulExpressionStatement", + "src": "4074:18:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4044:6:17", + "nodeType": "YulIdentifier", + "src": "4044:6:17" + }, + { + "kind": "number", + "nativeSrc": "4052:18:17", + "nodeType": "YulLiteral", + "src": "4052:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4041:2:17", + "nodeType": "YulIdentifier", + "src": "4041:2:17" + }, + "nativeSrc": "4041:30:17", + "nodeType": "YulFunctionCall", + "src": "4041:30:17" + }, + "nativeSrc": "4038:56:17", + "nodeType": "YulIf", + "src": "4038:56:17" + }, + { + "nativeSrc": "4104:52:17", + "nodeType": "YulVariableDeclaration", + "src": "4104:52:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4150:4:17", + "nodeType": "YulIdentifier", + "src": "4150:4:17" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "4144:5:17", + "nodeType": "YulIdentifier", + "src": "4144:5:17" + }, + "nativeSrc": "4144:11:17", + "nodeType": "YulFunctionCall", + "src": "4144:11:17" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "4118:25:17", + "nodeType": "YulIdentifier", + "src": "4118:25:17" + }, + "nativeSrc": "4118:38:17", + "nodeType": "YulFunctionCall", + "src": "4118:38:17" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "4108:6:17", + "nodeType": "YulTypedName", + "src": "4108:6:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4249:4:17", + "nodeType": "YulIdentifier", + "src": "4249:4:17" + }, + { + "name": "oldLen", + "nativeSrc": "4255:6:17", + "nodeType": "YulIdentifier", + "src": "4255:6:17" + }, + { + "name": "newLen", + "nativeSrc": "4263:6:17", + "nodeType": "YulIdentifier", + "src": "4263:6:17" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "4203:45:17", + "nodeType": "YulIdentifier", + "src": "4203:45:17" + }, + "nativeSrc": "4203:67:17", + "nodeType": "YulFunctionCall", + "src": "4203:67:17" + }, + "nativeSrc": "4203:67:17", + "nodeType": "YulExpressionStatement", + "src": "4203:67:17" + }, + { + "nativeSrc": "4280:18:17", + "nodeType": "YulVariableDeclaration", + "src": "4280:18:17", + "value": { + "kind": "number", + "nativeSrc": "4297:1:17", + "nodeType": "YulLiteral", + "src": "4297:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "4284:9:17", + "nodeType": "YulTypedName", + "src": "4284:9:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4308:17:17", + "nodeType": "YulAssignment", + "src": "4308:17:17", + "value": { + "kind": "number", + "nativeSrc": "4321:4:17", + "nodeType": "YulLiteral", + "src": "4321:4:17", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "4308:9:17", + "nodeType": "YulIdentifier", + "src": "4308:9:17" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "4372:611:17", + "nodeType": "YulBlock", + "src": "4372:611:17", + "statements": [ + { + "nativeSrc": "4386:37:17", + "nodeType": "YulVariableDeclaration", + "src": "4386:37:17", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4405:6:17", + "nodeType": "YulIdentifier", + "src": "4405:6:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4417:4:17", + "nodeType": "YulLiteral", + "src": "4417:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4413:3:17", + "nodeType": "YulIdentifier", + "src": "4413:3:17" + }, + "nativeSrc": "4413:9:17", + "nodeType": "YulFunctionCall", + "src": "4413:9:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4401:3:17", + "nodeType": "YulIdentifier", + "src": "4401:3:17" + }, + "nativeSrc": "4401:22:17", + "nodeType": "YulFunctionCall", + "src": "4401:22:17" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "4390:7:17", + "nodeType": "YulTypedName", + "src": "4390:7:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4437:51:17", + "nodeType": "YulVariableDeclaration", + "src": "4437:51:17", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4483:4:17", + "nodeType": "YulIdentifier", + "src": "4483:4:17" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "4451:31:17", + "nodeType": "YulIdentifier", + "src": "4451:31:17" + }, + "nativeSrc": "4451:37:17", + "nodeType": "YulFunctionCall", + "src": "4451:37:17" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "4441:6:17", + "nodeType": "YulTypedName", + "src": "4441:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4501:10:17", + "nodeType": "YulVariableDeclaration", + "src": "4501:10:17", + "value": { + "kind": "number", + "nativeSrc": "4510:1:17", + "nodeType": "YulLiteral", + "src": "4510:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "4505:1:17", + "nodeType": "YulTypedName", + "src": "4505:1:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4569:163:17", + "nodeType": "YulBlock", + "src": "4569:163:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4594:6:17", + "nodeType": "YulIdentifier", + "src": "4594:6:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4612:3:17", + "nodeType": "YulIdentifier", + "src": "4612:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "4617:9:17", + "nodeType": "YulIdentifier", + "src": "4617:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4608:3:17", + "nodeType": "YulIdentifier", + "src": "4608:3:17" + }, + "nativeSrc": "4608:19:17", + "nodeType": "YulFunctionCall", + "src": "4608:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4602:5:17", + "nodeType": "YulIdentifier", + "src": "4602:5:17" + }, + "nativeSrc": "4602:26:17", + "nodeType": "YulFunctionCall", + "src": "4602:26:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4587:6:17", + "nodeType": "YulIdentifier", + "src": "4587:6:17" + }, + "nativeSrc": "4587:42:17", + "nodeType": "YulFunctionCall", + "src": "4587:42:17" + }, + "nativeSrc": "4587:42:17", + "nodeType": "YulExpressionStatement", + "src": "4587:42:17" + }, + { + "nativeSrc": "4646:24:17", + "nodeType": "YulAssignment", + "src": "4646:24:17", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4660:6:17", + "nodeType": "YulIdentifier", + "src": "4660:6:17" + }, + { + "kind": "number", + "nativeSrc": "4668:1:17", + "nodeType": "YulLiteral", + "src": "4668:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4656:3:17", + "nodeType": "YulIdentifier", + "src": "4656:3:17" + }, + "nativeSrc": "4656:14:17", + "nodeType": "YulFunctionCall", + "src": "4656:14:17" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "4646:6:17", + "nodeType": "YulIdentifier", + "src": "4646:6:17" + } + ] + }, + { + "nativeSrc": "4687:31:17", + "nodeType": "YulAssignment", + "src": "4687:31:17", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "4704:9:17", + "nodeType": "YulIdentifier", + "src": "4704:9:17" + }, + { + "kind": "number", + "nativeSrc": "4715:2:17", + "nodeType": "YulLiteral", + "src": "4715:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4700:3:17", + "nodeType": "YulIdentifier", + "src": "4700:3:17" + }, + "nativeSrc": "4700:18:17", + "nodeType": "YulFunctionCall", + "src": "4700:18:17" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "4687:9:17", + "nodeType": "YulIdentifier", + "src": "4687:9:17" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4535:1:17", + "nodeType": "YulIdentifier", + "src": "4535:1:17" + }, + { + "name": "loopEnd", + "nativeSrc": "4538:7:17", + "nodeType": "YulIdentifier", + "src": "4538:7:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4532:2:17", + "nodeType": "YulIdentifier", + "src": "4532:2:17" + }, + "nativeSrc": "4532:14:17", + "nodeType": "YulFunctionCall", + "src": "4532:14:17" + }, + "nativeSrc": "4524:208:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "4547:21:17", + "nodeType": "YulBlock", + "src": "4547:21:17", + "statements": [ + { + "nativeSrc": "4549:17:17", + "nodeType": "YulAssignment", + "src": "4549:17:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4558:1:17", + "nodeType": "YulIdentifier", + "src": "4558:1:17" + }, + { + "kind": "number", + "nativeSrc": "4561:4:17", + "nodeType": "YulLiteral", + "src": "4561:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4554:3:17", + "nodeType": "YulIdentifier", + "src": "4554:3:17" + }, + "nativeSrc": "4554:12:17", + "nodeType": "YulFunctionCall", + "src": "4554:12:17" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "4549:1:17", + "nodeType": "YulIdentifier", + "src": "4549:1:17" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "4528:3:17", + "nodeType": "YulBlock", + "src": "4528:3:17", + "statements": [] + }, + "src": "4524:208:17" + }, + { + "body": { + "nativeSrc": "4768:156:17", + "nodeType": "YulBlock", + "src": "4768:156:17", + "statements": [ + { + "nativeSrc": "4786:43:17", + "nodeType": "YulVariableDeclaration", + "src": "4786:43:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4813:3:17", + "nodeType": "YulIdentifier", + "src": "4813:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "4818:9:17", + "nodeType": "YulIdentifier", + "src": "4818:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4809:3:17", + "nodeType": "YulIdentifier", + "src": "4809:3:17" + }, + "nativeSrc": "4809:19:17", + "nodeType": "YulFunctionCall", + "src": "4809:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4803:5:17", + "nodeType": "YulIdentifier", + "src": "4803:5:17" + }, + "nativeSrc": "4803:26:17", + "nodeType": "YulFunctionCall", + "src": "4803:26:17" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "4790:9:17", + "nodeType": "YulTypedName", + "src": "4790:9:17", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4853:6:17", + "nodeType": "YulIdentifier", + "src": "4853:6:17" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "4880:9:17", + "nodeType": "YulIdentifier", + "src": "4880:9:17" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4895:6:17", + "nodeType": "YulIdentifier", + "src": "4895:6:17" + }, + { + "kind": "number", + "nativeSrc": "4903:4:17", + "nodeType": "YulLiteral", + "src": "4903:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4891:3:17", + "nodeType": "YulIdentifier", + "src": "4891:3:17" + }, + "nativeSrc": "4891:17:17", + "nodeType": "YulFunctionCall", + "src": "4891:17:17" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "4861:18:17", + "nodeType": "YulIdentifier", + "src": "4861:18:17" + }, + "nativeSrc": "4861:48:17", + "nodeType": "YulFunctionCall", + "src": "4861:48:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4846:6:17", + "nodeType": "YulIdentifier", + "src": "4846:6:17" + }, + "nativeSrc": "4846:64:17", + "nodeType": "YulFunctionCall", + "src": "4846:64:17" + }, + "nativeSrc": "4846:64:17", + "nodeType": "YulExpressionStatement", + "src": "4846:64:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "4751:7:17", + "nodeType": "YulIdentifier", + "src": "4751:7:17" + }, + { + "name": "newLen", + "nativeSrc": "4760:6:17", + "nodeType": "YulIdentifier", + "src": "4760:6:17" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4748:2:17", + "nodeType": "YulIdentifier", + "src": "4748:2:17" + }, + "nativeSrc": "4748:19:17", + "nodeType": "YulFunctionCall", + "src": "4748:19:17" + }, + "nativeSrc": "4745:179:17", + "nodeType": "YulIf", + "src": "4745:179:17" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4944:4:17", + "nodeType": "YulIdentifier", + "src": "4944:4:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4958:6:17", + "nodeType": "YulIdentifier", + "src": "4958:6:17" + }, + { + "kind": "number", + "nativeSrc": "4966:1:17", + "nodeType": "YulLiteral", + "src": "4966:1:17", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4954:3:17", + "nodeType": "YulIdentifier", + "src": "4954:3:17" + }, + "nativeSrc": "4954:14:17", + "nodeType": "YulFunctionCall", + "src": "4954:14:17" + }, + { + "kind": "number", + "nativeSrc": "4970:1:17", + "nodeType": "YulLiteral", + "src": "4970:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4950:3:17", + "nodeType": "YulIdentifier", + "src": "4950:3:17" + }, + "nativeSrc": "4950:22:17", + "nodeType": "YulFunctionCall", + "src": "4950:22:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4937:6:17", + "nodeType": "YulIdentifier", + "src": "4937:6:17" + }, + "nativeSrc": "4937:36:17", + "nodeType": "YulFunctionCall", + "src": "4937:36:17" + }, + "nativeSrc": "4937:36:17", + "nodeType": "YulExpressionStatement", + "src": "4937:36:17" + } + ] + }, + "nativeSrc": "4365:618:17", + "nodeType": "YulCase", + "src": "4365:618:17", + "value": { + "kind": "number", + "nativeSrc": "4370:1:17", + "nodeType": "YulLiteral", + "src": "4370:1:17", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "5000:222:17", + "nodeType": "YulBlock", + "src": "5000:222:17", + "statements": [ + { + "nativeSrc": "5014:14:17", + "nodeType": "YulVariableDeclaration", + "src": "5014:14:17", + "value": { + "kind": "number", + "nativeSrc": "5027:1:17", + "nodeType": "YulLiteral", + "src": "5027:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5018:5:17", + "nodeType": "YulTypedName", + "src": "5018:5:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5051:67:17", + "nodeType": "YulBlock", + "src": "5051:67:17", + "statements": [ + { + "nativeSrc": "5069:35:17", + "nodeType": "YulAssignment", + "src": "5069:35:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5088:3:17", + "nodeType": "YulIdentifier", + "src": "5088:3:17" + }, + { + "name": "srcOffset", + "nativeSrc": "5093:9:17", + "nodeType": "YulIdentifier", + "src": "5093:9:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5084:3:17", + "nodeType": "YulIdentifier", + "src": "5084:3:17" + }, + "nativeSrc": "5084:19:17", + "nodeType": "YulFunctionCall", + "src": "5084:19:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5078:5:17", + "nodeType": "YulIdentifier", + "src": "5078:5:17" + }, + "nativeSrc": "5078:26:17", + "nodeType": "YulFunctionCall", + "src": "5078:26:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5069:5:17", + "nodeType": "YulIdentifier", + "src": "5069:5:17" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "5044:6:17", + "nodeType": "YulIdentifier", + "src": "5044:6:17" + }, + "nativeSrc": "5041:77:17", + "nodeType": "YulIf", + "src": "5041:77:17" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5138:4:17", + "nodeType": "YulIdentifier", + "src": "5138:4:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5197:5:17", + "nodeType": "YulIdentifier", + "src": "5197:5:17" + }, + { + "name": "newLen", + "nativeSrc": "5204:6:17", + "nodeType": "YulIdentifier", + "src": "5204:6:17" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "5144:52:17", + "nodeType": "YulIdentifier", + "src": "5144:52:17" + }, + "nativeSrc": "5144:67:17", + "nodeType": "YulFunctionCall", + "src": "5144:67:17" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5131:6:17", + "nodeType": "YulIdentifier", + "src": "5131:6:17" + }, + "nativeSrc": "5131:81:17", + "nodeType": "YulFunctionCall", + "src": "5131:81:17" + }, + "nativeSrc": "5131:81:17", + "nodeType": "YulExpressionStatement", + "src": "5131:81:17" + } + ] + }, + "nativeSrc": "4992:230:17", + "nodeType": "YulCase", + "src": "4992:230:17", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4345:6:17", + "nodeType": "YulIdentifier", + "src": "4345:6:17" + }, + { + "kind": "number", + "nativeSrc": "4353:2:17", + "nodeType": "YulLiteral", + "src": "4353:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4342:2:17", + "nodeType": "YulIdentifier", + "src": "4342:2:17" + }, + "nativeSrc": "4342:14:17", + "nodeType": "YulFunctionCall", + "src": "4342:14:17" + }, + "nativeSrc": "4335:887:17", + "nodeType": "YulSwitch", + "src": "4335:887:17" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "3833:1395:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "3914:4:17", + "nodeType": "YulTypedName", + "src": "3914:4:17", + "type": "" + }, + { + "name": "src", + "nativeSrc": "3920:3:17", + "nodeType": "YulTypedName", + "src": "3920:3:17", + "type": "" + } + ], + "src": "3833:1395:17" + }, + { + "body": { + "nativeSrc": "5330:73:17", + "nodeType": "YulBlock", + "src": "5330:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5347:3:17", + "nodeType": "YulIdentifier", + "src": "5347:3:17" + }, + { + "name": "length", + "nativeSrc": "5352:6:17", + "nodeType": "YulIdentifier", + "src": "5352:6:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5340:6:17", + "nodeType": "YulIdentifier", + "src": "5340:6:17" + }, + "nativeSrc": "5340:19:17", + "nodeType": "YulFunctionCall", + "src": "5340:19:17" + }, + "nativeSrc": "5340:19:17", + "nodeType": "YulExpressionStatement", + "src": "5340:19:17" + }, + { + "nativeSrc": "5368:29:17", + "nodeType": "YulAssignment", + "src": "5368:29:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5387:3:17", + "nodeType": "YulIdentifier", + "src": "5387:3:17" + }, + { + "kind": "number", + "nativeSrc": "5392:4:17", + "nodeType": "YulLiteral", + "src": "5392:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5383:3:17", + "nodeType": "YulIdentifier", + "src": "5383:3:17" + }, + "nativeSrc": "5383:14:17", + "nodeType": "YulFunctionCall", + "src": "5383:14:17" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "5368:11:17", + "nodeType": "YulIdentifier", + "src": "5368:11:17" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5234:169:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5302:3:17", + "nodeType": "YulTypedName", + "src": "5302:3:17", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5307:6:17", + "nodeType": "YulTypedName", + "src": "5307:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "5318:11:17", + "nodeType": "YulTypedName", + "src": "5318:11:17", + "type": "" + } + ], + "src": "5234:169:17" + }, + { + "body": { + "nativeSrc": "5515:75:17", + "nodeType": "YulBlock", + "src": "5515:75:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "5537:6:17", + "nodeType": "YulIdentifier", + "src": "5537:6:17" + }, + { + "kind": "number", + "nativeSrc": "5545:1:17", + "nodeType": "YulLiteral", + "src": "5545:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5533:3:17", + "nodeType": "YulIdentifier", + "src": "5533:3:17" + }, + "nativeSrc": "5533:14:17", + "nodeType": "YulFunctionCall", + "src": "5533:14:17" + }, + { + "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", + "kind": "string", + "nativeSrc": "5549:33:17", + "nodeType": "YulLiteral", + "src": "5549:33:17", + "type": "", + "value": "ERC20: mint to the zero address" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5526:6:17", + "nodeType": "YulIdentifier", + "src": "5526:6:17" + }, + "nativeSrc": "5526:57:17", + "nodeType": "YulFunctionCall", + "src": "5526:57:17" + }, + "nativeSrc": "5526:57:17", + "nodeType": "YulExpressionStatement", + "src": "5526:57:17" + } + ] + }, + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nativeSrc": "5409:181:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "5507:6:17", + "nodeType": "YulTypedName", + "src": "5507:6:17", + "type": "" + } + ], + "src": "5409:181:17" + }, + { + "body": { + "nativeSrc": "5742:220:17", + "nodeType": "YulBlock", + "src": "5742:220:17", + "statements": [ + { + "nativeSrc": "5752:74:17", + "nodeType": "YulAssignment", + "src": "5752:74:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5818:3:17", + "nodeType": "YulIdentifier", + "src": "5818:3:17" + }, + { + "kind": "number", + "nativeSrc": "5823:2:17", + "nodeType": "YulLiteral", + "src": "5823:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5759:58:17", + "nodeType": "YulIdentifier", + "src": "5759:58:17" + }, + "nativeSrc": "5759:67:17", + "nodeType": "YulFunctionCall", + "src": "5759:67:17" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5752:3:17", + "nodeType": "YulIdentifier", + "src": "5752:3:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5924:3:17", + "nodeType": "YulIdentifier", + "src": "5924:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", + "nativeSrc": "5835:88:17", + "nodeType": "YulIdentifier", + "src": "5835:88:17" + }, + "nativeSrc": "5835:93:17", + "nodeType": "YulFunctionCall", + "src": "5835:93:17" + }, + "nativeSrc": "5835:93:17", + "nodeType": "YulExpressionStatement", + "src": "5835:93:17" + }, + { + "nativeSrc": "5937:19:17", + "nodeType": "YulAssignment", + "src": "5937:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5948:3:17", + "nodeType": "YulIdentifier", + "src": "5948:3:17" + }, + { + "kind": "number", + "nativeSrc": "5953:2:17", + "nodeType": "YulLiteral", + "src": "5953:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5944:3:17", + "nodeType": "YulIdentifier", + "src": "5944:3:17" + }, + "nativeSrc": "5944:12:17", + "nodeType": "YulFunctionCall", + "src": "5944:12:17" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5937:3:17", + "nodeType": "YulIdentifier", + "src": "5937:3:17" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5596:366:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5730:3:17", + "nodeType": "YulTypedName", + "src": "5730:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5738:3:17", + "nodeType": "YulTypedName", + "src": "5738:3:17", + "type": "" + } + ], + "src": "5596:366:17" + }, + { + "body": { + "nativeSrc": "6139:248:17", + "nodeType": "YulBlock", + "src": "6139:248:17", + "statements": [ + { + "nativeSrc": "6149:26:17", + "nodeType": "YulAssignment", + "src": "6149:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6161:9:17", + "nodeType": "YulIdentifier", + "src": "6161:9:17" + }, + { + "kind": "number", + "nativeSrc": "6172:2:17", + "nodeType": "YulLiteral", + "src": "6172:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6157:3:17", + "nodeType": "YulIdentifier", + "src": "6157:3:17" + }, + "nativeSrc": "6157:18:17", + "nodeType": "YulFunctionCall", + "src": "6157:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6149:4:17", + "nodeType": "YulIdentifier", + "src": "6149:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6196:9:17", + "nodeType": "YulIdentifier", + "src": "6196:9:17" + }, + { + "kind": "number", + "nativeSrc": "6207:1:17", + "nodeType": "YulLiteral", + "src": "6207:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6192:3:17", + "nodeType": "YulIdentifier", + "src": "6192:3:17" + }, + "nativeSrc": "6192:17:17", + "nodeType": "YulFunctionCall", + "src": "6192:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "6215:4:17", + "nodeType": "YulIdentifier", + "src": "6215:4:17" + }, + { + "name": "headStart", + "nativeSrc": "6221:9:17", + "nodeType": "YulIdentifier", + "src": "6221:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6211:3:17", + "nodeType": "YulIdentifier", + "src": "6211:3:17" + }, + "nativeSrc": "6211:20:17", + "nodeType": "YulFunctionCall", + "src": "6211:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6185:6:17", + "nodeType": "YulIdentifier", + "src": "6185:6:17" + }, + "nativeSrc": "6185:47:17", + "nodeType": "YulFunctionCall", + "src": "6185:47:17" + }, + "nativeSrc": "6185:47:17", + "nodeType": "YulExpressionStatement", + "src": "6185:47:17" + }, + { + "nativeSrc": "6241:139:17", + "nodeType": "YulAssignment", + "src": "6241:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "6375:4:17", + "nodeType": "YulIdentifier", + "src": "6375:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6249:124:17", + "nodeType": "YulIdentifier", + "src": "6249:124:17" + }, + "nativeSrc": "6249:131:17", + "nodeType": "YulFunctionCall", + "src": "6249:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6241:4:17", + "nodeType": "YulIdentifier", + "src": "6241:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "5968:419:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6119:9:17", + "nodeType": "YulTypedName", + "src": "6119:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6134:4:17", + "nodeType": "YulTypedName", + "src": "6134:4:17", + "type": "" + } + ], + "src": "5968:419:17" + }, + { + "body": { + "nativeSrc": "6421:152:17", + "nodeType": "YulBlock", + "src": "6421:152:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6438:1:17", + "nodeType": "YulLiteral", + "src": "6438:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6441:77:17", + "nodeType": "YulLiteral", + "src": "6441:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6431:6:17", + "nodeType": "YulIdentifier", + "src": "6431:6:17" + }, + "nativeSrc": "6431:88:17", + "nodeType": "YulFunctionCall", + "src": "6431:88:17" + }, + "nativeSrc": "6431:88:17", + "nodeType": "YulExpressionStatement", + "src": "6431:88:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6535:1:17", + "nodeType": "YulLiteral", + "src": "6535:1:17", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6538:4:17", + "nodeType": "YulLiteral", + "src": "6538:4:17", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6528:6:17", + "nodeType": "YulIdentifier", + "src": "6528:6:17" + }, + "nativeSrc": "6528:15:17", + "nodeType": "YulFunctionCall", + "src": "6528:15:17" + }, + "nativeSrc": "6528:15:17", + "nodeType": "YulExpressionStatement", + "src": "6528:15:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6559:1:17", + "nodeType": "YulLiteral", + "src": "6559:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6562:4:17", + "nodeType": "YulLiteral", + "src": "6562:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6552:6:17", + "nodeType": "YulIdentifier", + "src": "6552:6:17" + }, + "nativeSrc": "6552:15:17", + "nodeType": "YulFunctionCall", + "src": "6552:15:17" + }, + "nativeSrc": "6552:15:17", + "nodeType": "YulExpressionStatement", + "src": "6552:15:17" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "6393:180:17", + "nodeType": "YulFunctionDefinition", + "src": "6393:180:17" + }, + { + "body": { + "nativeSrc": "6623:147:17", + "nodeType": "YulBlock", + "src": "6623:147:17", + "statements": [ + { + "nativeSrc": "6633:25:17", + "nodeType": "YulAssignment", + "src": "6633:25:17", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "6656:1:17", + "nodeType": "YulIdentifier", + "src": "6656:1:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "6638:17:17", + "nodeType": "YulIdentifier", + "src": "6638:17:17" + }, + "nativeSrc": "6638:20:17", + "nodeType": "YulFunctionCall", + "src": "6638:20:17" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "6633:1:17", + "nodeType": "YulIdentifier", + "src": "6633:1:17" + } + ] + }, + { + "nativeSrc": "6667:25:17", + "nodeType": "YulAssignment", + "src": "6667:25:17", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "6690:1:17", + "nodeType": "YulIdentifier", + "src": "6690:1:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "6672:17:17", + "nodeType": "YulIdentifier", + "src": "6672:17:17" + }, + "nativeSrc": "6672:20:17", + "nodeType": "YulFunctionCall", + "src": "6672:20:17" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "6667:1:17", + "nodeType": "YulIdentifier", + "src": "6667:1:17" + } + ] + }, + { + "nativeSrc": "6701:16:17", + "nodeType": "YulAssignment", + "src": "6701:16:17", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "6712:1:17", + "nodeType": "YulIdentifier", + "src": "6712:1:17" + }, + { + "name": "y", + "nativeSrc": "6715:1:17", + "nodeType": "YulIdentifier", + "src": "6715:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6708:3:17", + "nodeType": "YulIdentifier", + "src": "6708:3:17" + }, + "nativeSrc": "6708:9:17", + "nodeType": "YulFunctionCall", + "src": "6708:9:17" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "6701:3:17", + "nodeType": "YulIdentifier", + "src": "6701:3:17" + } + ] + }, + { + "body": { + "nativeSrc": "6741:22:17", + "nodeType": "YulBlock", + "src": "6741:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "6743:16:17", + "nodeType": "YulIdentifier", + "src": "6743:16:17" + }, + "nativeSrc": "6743:18:17", + "nodeType": "YulFunctionCall", + "src": "6743:18:17" + }, + "nativeSrc": "6743:18:17", + "nodeType": "YulExpressionStatement", + "src": "6743:18:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "6733:1:17", + "nodeType": "YulIdentifier", + "src": "6733:1:17" + }, + { + "name": "sum", + "nativeSrc": "6736:3:17", + "nodeType": "YulIdentifier", + "src": "6736:3:17" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6730:2:17", + "nodeType": "YulIdentifier", + "src": "6730:2:17" + }, + "nativeSrc": "6730:10:17", + "nodeType": "YulFunctionCall", + "src": "6730:10:17" + }, + "nativeSrc": "6727:36:17", + "nodeType": "YulIf", + "src": "6727:36:17" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "6579:191:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "6610:1:17", + "nodeType": "YulTypedName", + "src": "6610:1:17", + "type": "" + }, + { + "name": "y", + "nativeSrc": "6613:1:17", + "nodeType": "YulTypedName", + "src": "6613:1:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "6619:3:17", + "nodeType": "YulTypedName", + "src": "6619:3:17", + "type": "" + } + ], + "src": "6579:191:17" + }, + { + "body": { + "nativeSrc": "6841:53:17", + "nodeType": "YulBlock", + "src": "6841:53:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6858:3:17", + "nodeType": "YulIdentifier", + "src": "6858:3:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6881:5:17", + "nodeType": "YulIdentifier", + "src": "6881:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "6863:17:17", + "nodeType": "YulIdentifier", + "src": "6863:17:17" + }, + "nativeSrc": "6863:24:17", + "nodeType": "YulFunctionCall", + "src": "6863:24:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6851:6:17", + "nodeType": "YulIdentifier", + "src": "6851:6:17" + }, + "nativeSrc": "6851:37:17", + "nodeType": "YulFunctionCall", + "src": "6851:37:17" + }, + "nativeSrc": "6851:37:17", + "nodeType": "YulExpressionStatement", + "src": "6851:37:17" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "6776:118:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6829:5:17", + "nodeType": "YulTypedName", + "src": "6829:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6836:3:17", + "nodeType": "YulTypedName", + "src": "6836:3:17", + "type": "" + } + ], + "src": "6776:118:17" + }, + { + "body": { + "nativeSrc": "6998:124:17", + "nodeType": "YulBlock", + "src": "6998:124:17", + "statements": [ + { + "nativeSrc": "7008:26:17", + "nodeType": "YulAssignment", + "src": "7008:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7020:9:17", + "nodeType": "YulIdentifier", + "src": "7020:9:17" + }, + { + "kind": "number", + "nativeSrc": "7031:2:17", + "nodeType": "YulLiteral", + "src": "7031:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7016:3:17", + "nodeType": "YulIdentifier", + "src": "7016:3:17" + }, + "nativeSrc": "7016:18:17", + "nodeType": "YulFunctionCall", + "src": "7016:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7008:4:17", + "nodeType": "YulIdentifier", + "src": "7008:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7088:6:17", + "nodeType": "YulIdentifier", + "src": "7088:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7101:9:17", + "nodeType": "YulIdentifier", + "src": "7101:9:17" + }, + { + "kind": "number", + "nativeSrc": "7112:1:17", + "nodeType": "YulLiteral", + "src": "7112:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7097:3:17", + "nodeType": "YulIdentifier", + "src": "7097:3:17" + }, + "nativeSrc": "7097:17:17", + "nodeType": "YulFunctionCall", + "src": "7097:17:17" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "7044:43:17", + "nodeType": "YulIdentifier", + "src": "7044:43:17" + }, + "nativeSrc": "7044:71:17", + "nodeType": "YulFunctionCall", + "src": "7044:71:17" + }, + "nativeSrc": "7044:71:17", + "nodeType": "YulExpressionStatement", + "src": "7044:71:17" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "6900:222:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "value1", + "name": "headStart", + "nativeSrc": "6970:9:17", + "nodeType": "YulTypedName", + "src": "6970:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6982:6:17", + "nodeType": "YulTypedName", + "src": "6982:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6993:4:17", + "nodeType": "YulTypedName", + "src": "6993:4:17", + "type": "" + } + ], + "src": "6900:222:17" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n }\n\n function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 17, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801562000010575f80fd5b5060405180608001604052806058815260200162001856605891396040518060400160405280600981526020017f54657374546f6b656e0000000000000000000000000000000000000000000000815250816003908162000072919062000490565b50806004908162000084919062000490565b505050620000b773100000000000000000000000000000000000000169152d02c7e14af6800000620000bd60201b60201c565b62000685565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200012e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012590620005d2565b60405180910390fd5b620001415f83836200022260201b60201c565b8060025f8282546200015491906200061f565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020391906200066a565b60405180910390a36200021e5f83836200022760201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002a857607f821691505b602082108103620002be57620002bd62000263565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002e5565b6200032e8683620002e5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000378620003726200036c8462000346565b6200034f565b62000346565b9050919050565b5f819050919050565b620003938362000358565b620003ab620003a2826200037f565b848454620002f1565b825550505050565b5f90565b620003c1620003b3565b620003ce81848462000388565b505050565b5b81811015620003f557620003e95f82620003b7565b600181019050620003d4565b5050565b601f82111562000444576200040e81620002c4565b6200041984620002d6565b8101602085101562000429578190505b620004416200043885620002d6565b830182620003d3565b50505b505050565b5f82821c905092915050565b5f620004665f198460080262000449565b1980831691505092915050565b5f62000480838362000455565b9150826002028217905092915050565b6200049b826200022c565b67ffffffffffffffff811115620004b757620004b662000236565b5b620004c3825462000290565b620004d0828285620003f9565b5f60209050601f83116001811462000506575f8415620004f1578287015190505b620004fd858262000473565b8655506200056c565b601f1984166200051686620002c4565b5f5b828110156200053f5784890151825560018201915060208501945060208101905062000518565b868310156200055f57848901516200055b601f89168262000455565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620005ba601f8362000574565b9150620005c78262000584565b602082019050919050565b5f6020820190508181035f830152620005eb81620005ac565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200062b8262000346565b9150620006388362000346565b9250828201905080821115620006535762000652620005f2565b5b92915050565b620006648162000346565b82525050565b5f6020820190506200067f5f83018462000659565b92915050565b6111c380620006935f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6011905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea264697066735822122062680aa81bd47e484462a2becb3aeaae50eade823ecfad3c2cf3d21b8ba9f39a64736f6c634300081800336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x58 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x1856 PUSH1 0x58 SWAP2 CODECOPY PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x54657374546F6B656E0000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x72 SWAP2 SWAP1 PUSH3 0x490 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x84 SWAP2 SWAP1 PUSH3 0x490 JUMP JUMPDEST POP POP POP PUSH3 0xB7 PUSH20 0x1000000000000000000000000000000000000001 PUSH10 0x152D02C7E14AF6800000 PUSH3 0xBD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x685 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x12E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x125 SWAP1 PUSH3 0x5D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x141 PUSH0 DUP4 DUP4 PUSH3 0x222 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH3 0x154 SWAP2 SWAP1 PUSH3 0x61F JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x203 SWAP2 SWAP1 PUSH3 0x66A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x21E PUSH0 DUP4 DUP4 PUSH3 0x227 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2A8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2BE JUMPI PUSH3 0x2BD PUSH3 0x263 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH3 0x322 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2E5 JUMP JUMPDEST PUSH3 0x32E DUP7 DUP4 PUSH3 0x2E5 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x378 PUSH3 0x372 PUSH3 0x36C DUP5 PUSH3 0x346 JUMP JUMPDEST PUSH3 0x34F JUMP JUMPDEST PUSH3 0x346 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x393 DUP4 PUSH3 0x358 JUMP JUMPDEST PUSH3 0x3AB PUSH3 0x3A2 DUP3 PUSH3 0x37F JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x2F1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0x3C1 PUSH3 0x3B3 JUMP JUMPDEST PUSH3 0x3CE DUP2 DUP5 DUP5 PUSH3 0x388 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3F5 JUMPI PUSH3 0x3E9 PUSH0 DUP3 PUSH3 0x3B7 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x3D4 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x444 JUMPI PUSH3 0x40E DUP2 PUSH3 0x2C4 JUMP JUMPDEST PUSH3 0x419 DUP5 PUSH3 0x2D6 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x429 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x441 PUSH3 0x438 DUP6 PUSH3 0x2D6 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x3D3 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x466 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x449 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x480 DUP4 DUP4 PUSH3 0x455 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x49B DUP3 PUSH3 0x22C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4B7 JUMPI PUSH3 0x4B6 PUSH3 0x236 JUMP JUMPDEST JUMPDEST PUSH3 0x4C3 DUP3 SLOAD PUSH3 0x290 JUMP JUMPDEST PUSH3 0x4D0 DUP3 DUP3 DUP6 PUSH3 0x3F9 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x506 JUMPI PUSH0 DUP5 ISZERO PUSH3 0x4F1 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x4FD DUP6 DUP3 PUSH3 0x473 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x56C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x516 DUP7 PUSH3 0x2C4 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x53F JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x518 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x55F JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x55B PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x455 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH3 0x5BA PUSH1 0x1F DUP4 PUSH3 0x574 JUMP JUMPDEST SWAP2 POP PUSH3 0x5C7 DUP3 PUSH3 0x584 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH3 0x5EB DUP2 PUSH3 0x5AC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH3 0x62B DUP3 PUSH3 0x346 JUMP JUMPDEST SWAP2 POP PUSH3 0x638 DUP4 PUSH3 0x346 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0x653 JUMPI PUSH3 0x652 PUSH3 0x5F2 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x664 DUP2 PUSH3 0x346 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x67F PUSH0 DUP4 ADD DUP5 PUSH3 0x659 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C3 DUP1 PUSH3 0x693 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x243 JUMPI PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB3 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xCAB JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x30D PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x31A DUP2 DUP6 DUP6 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x338 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x345 DUP6 DUP3 DUP6 PUSH2 0x752 JUMP JUMPDEST PUSH2 0x350 DUP6 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x36E PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x38F DUP2 DUP6 DUP6 PUSH2 0x380 DUP6 DUP10 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x38A SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3EE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41A SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x465 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x43C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x465 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x448 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x479 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x486 DUP3 DUP7 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP1 PUSH2 0xE41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4EE PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x4FB DUP2 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F4 SWAP1 PUSH2 0xECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x66B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x662 SWAP1 PUSH2 0xF5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x75D DUP5 DUP5 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7D7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP1 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x842 SWAP1 PUSH2 0x1053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8B0 SWAP1 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8C4 DUP4 DUP4 DUP4 PUSH2 0xA49 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93E SWAP1 PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA30 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA43 DUP5 DUP5 DUP5 PUSH2 0xA4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA8A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA6F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAAF DUP3 PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xAB9 DUP2 DUP6 PUSH2 0xA5D JUMP JUMPDEST SWAP4 POP PUSH2 0xAC9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA6D JUMP JUMPDEST PUSH2 0xAD2 DUP2 PUSH2 0xA95 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xAF5 DUP2 DUP5 PUSH2 0xAA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB2A DUP3 PUSH2 0xB01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3A DUP2 PUSH2 0xB20 JUMP JUMPDEST DUP2 EQ PUSH2 0xB44 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB55 DUP2 PUSH2 0xB31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6D DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP2 EQ PUSH2 0xB77 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB88 DUP2 PUSH2 0xB64 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBB1 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBC2 DUP6 DUP3 DUP7 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0xBCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBF9 PUSH0 DUP4 ADD DUP5 PUSH2 0xBD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC08 DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC21 PUSH0 DUP4 ADD DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC3D PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC4B DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC5C DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC6D DUP7 DUP3 DUP8 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC8C DUP2 PUSH2 0xC77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA5 PUSH0 DUP4 ADD DUP5 PUSH2 0xC83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC0 JUMPI PUSH2 0xCBF PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCCD DUP5 DUP3 DUP6 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEB PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCF9 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0A DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD6B JUMPI PUSH2 0xD6A PUSH2 0xD14 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xDA8 DUP3 PUSH2 0xB5B JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 DUP4 PUSH2 0xB5B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0xD71 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE2B PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xE36 DUP3 PUSH2 0xDD1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE58 DUP2 PUSH2 0xE1F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xEB9 PUSH1 0x24 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xEC4 DUP3 PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF47 PUSH1 0x22 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xF52 DUP3 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xF74 DUP2 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xFAF PUSH1 0x1D DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xFBA DUP3 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFDC DUP2 PUSH2 0xFA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x103D PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1048 DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x106A DUP2 PUSH2 0x1031 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x10CB PUSH1 0x23 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x10D6 DUP3 PUSH2 0x1071 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10F8 DUP2 PUSH2 0x10BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1159 PUSH1 0x26 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1164 DUP3 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1186 DUP2 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH3 0x680AA8 SHL 0xD4 PUSH31 0x484462A2BECB3AEAAE50EADE823ECFAD3C2CF3D21B8BA9F39A64736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH13 0x6F6E6720737472696E67206E61 PUSH14 0x652C206C6F6E6720737472696E67 KECCAK256 PUSH15 0x616D652C206C6F6E6720737472696E PUSH8 0x206E616D652C206C PUSH16 0x6E6720737472696E67206E616D652C20 PUSH13 0x6F6E6720737472696E67206E61 PUSH14 0x6500000000000000000000000000 ", + "sourceMap": "128:420:9:-:0;;;171:278;;;;;;;;;;1980:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2054:5;2046;:13;;;;;;:::i;:::-;;2079:7;2069;:17;;;;;;:::i;:::-;;1980:113;;360:82:9::1;366:42;410:31;360:5;;;:82;;:::i;:::-;128:420:::0;;8520:535:0;8622:1;8603:21;;:7;:21;;;8595:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:49;8700:1;8704:7;8713:6;8671:20;;;:49;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;;;;;8921:6;8899:9;:18;8909:7;8899:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8973:7;8952:37;;8969:1;8952:37;;;8982:6;8952:37;;;;;;:::i;:::-;;;;;;;;9000:48;9028:1;9032:7;9041:6;9000:19;;;:48;;:::i;:::-;8520:535;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:17:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:169::-;5318:11;5352:6;5347:3;5340:19;5392:4;5387:3;5383:14;5368:29;;5234:169;;;;:::o;5409:181::-;5549:33;5545:1;5537:6;5533:14;5526:57;5409:181;:::o;5596:366::-;5738:3;5759:67;5823:2;5818:3;5759:67;:::i;:::-;5752:74;;5835:93;5924:3;5835:93;:::i;:::-;5953:2;5948:3;5944:12;5937:19;;5596:366;;;:::o;5968:419::-;6134:4;6172:2;6161:9;6157:18;6149:26;;6221:9;6215:4;6211:20;6207:1;6196:9;6192:17;6185:47;6249:131;6375:4;6249:131;:::i;:::-;6241:139;;5968:419;;;:::o;6393:180::-;6441:77;6438:1;6431:88;6538:4;6535:1;6528:15;6562:4;6559:1;6552:15;6579:191;6619:3;6638:20;6656:1;6638:20;:::i;:::-;6633:25;;6672:20;6690:1;6672:20;:::i;:::-;6667:25;;6715:1;6712;6708:9;6701:16;;6736:3;6733:1;6730:10;6727:36;;;6743:18;;:::i;:::-;6727:36;6579:191;;;;:::o;6776:118::-;6863:24;6881:5;6863:24;:::i;:::-;6858:3;6851:37;6776:118;;:::o;6900:222::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:71;7112:1;7101:9;7097:17;7088:6;7044:71;:::i;:::-;6900:222;;;;:::o;128:420:9:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_afterTokenTransfer_585": { + "entryPoint": 2638, + "id": 585, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_520": { + "entryPoint": 1423, + "id": 520, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_beforeTokenTransfer_574": { + "entryPoint": 2633, + "id": 574, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_msgSender_701": { + "entryPoint": 1416, + "id": 701, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_spendAllowance_563": { + "entryPoint": 1874, + "id": 563, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transfer_346": { + "entryPoint": 2013, + "id": 346, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@allowance_141": { + "entryPoint": 1286, + "id": 141, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@approve_166": { + "entryPoint": 771, + "id": 166, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_98": { + "entryPoint": 922, + "id": 98, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@decimals_1027": { + "entryPoint": 860, + "id": 1027, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@decreaseAllowance_269": { + "entryPoint": 1135, + "id": 269, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@increaseAllowance_228": { + "entryPoint": 868, + "id": 228, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_54": { + "entryPoint": 627, + "id": 54, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@symbol_64": { + "entryPoint": 991, + "id": 64, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@totalSupply_84": { + "entryPoint": 805, + "id": 84, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@transferFrom_199": { + "entryPoint": 814, + "id": 199, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@transfer_123": { + "entryPoint": 1252, + "id": 123, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 2887, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2938, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 3243, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 3286, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 3111, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 2958, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3031, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2725, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4287, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3899, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4003, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4429, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4145, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3757, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3615, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3071, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8_fromStack": { + "entryPoint": 3203, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3046, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4321, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3933, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4037, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4463, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4179, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3791, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 3649, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 3086, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": { + "entryPoint": 3218, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 2643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2653, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 3486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 2848, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3020, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2907, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 3191, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 2669, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 3393, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 3441, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 3348, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2813, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 2709, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f": { + "entryPoint": 4209, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029": { + "entryPoint": 3821, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe": { + "entryPoint": 3963, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6": { + "entryPoint": 4351, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea": { + "entryPoint": 4067, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208": { + "entryPoint": 3679, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8": { + "entryPoint": 3537, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 2865, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2916, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:13699:17", + "nodeType": "YulBlock", + "src": "0:13699:17", + "statements": [ + { + "body": { + "nativeSrc": "66:40:17", + "nodeType": "YulBlock", + "src": "66:40:17", + "statements": [ + { + "nativeSrc": "77:22:17", + "nodeType": "YulAssignment", + "src": "77:22:17", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:17", + "nodeType": "YulIdentifier", + "src": "93:5:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "87:5:17", + "nodeType": "YulIdentifier", + "src": "87:5:17" + }, + "nativeSrc": "87:12:17", + "nodeType": "YulFunctionCall", + "src": "87:12:17" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "77:6:17", + "nodeType": "YulIdentifier", + "src": "77:6:17" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:17", + "nodeType": "YulTypedName", + "src": "49:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:17", + "nodeType": "YulTypedName", + "src": "59:6:17", + "type": "" + } + ], + "src": "7:99:17" + }, + { + "body": { + "nativeSrc": "208:73:17", + "nodeType": "YulBlock", + "src": "208:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "225:3:17", + "nodeType": "YulIdentifier", + "src": "225:3:17" + }, + { + "name": "length", + "nativeSrc": "230:6:17", + "nodeType": "YulIdentifier", + "src": "230:6:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "218:6:17", + "nodeType": "YulIdentifier", + "src": "218:6:17" + }, + "nativeSrc": "218:19:17", + "nodeType": "YulFunctionCall", + "src": "218:19:17" + }, + "nativeSrc": "218:19:17", + "nodeType": "YulExpressionStatement", + "src": "218:19:17" + }, + { + "nativeSrc": "246:29:17", + "nodeType": "YulAssignment", + "src": "246:29:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "265:3:17", + "nodeType": "YulIdentifier", + "src": "265:3:17" + }, + { + "kind": "number", + "nativeSrc": "270:4:17", + "nodeType": "YulLiteral", + "src": "270:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "261:3:17", + "nodeType": "YulIdentifier", + "src": "261:3:17" + }, + "nativeSrc": "261:14:17", + "nodeType": "YulFunctionCall", + "src": "261:14:17" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "246:11:17", + "nodeType": "YulIdentifier", + "src": "246:11:17" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "112:169:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "180:3:17", + "nodeType": "YulTypedName", + "src": "180:3:17", + "type": "" + }, + { + "name": "length", + "nativeSrc": "185:6:17", "nodeType": "YulTypedName", - "src": "1063:6:17", + "src": "185:6:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "value2", + "name": "updated_pos", + "nativeSrc": "196:11:17", "nodeType": "YulTypedName", - "src": "1071:6:17", + "src": "196:11:17", "type": "" } ], - "src": "978:552:17" + "src": "112:169:17" }, { "body": { + "nativeSrc": "349:184:17", "nodeType": "YulBlock", - "src": "1619:324:17", + "src": "349:184:17", "statements": [ + { + "nativeSrc": "359:10:17", + "nodeType": "YulVariableDeclaration", + "src": "359:10:17", + "value": { + "kind": "number", + "nativeSrc": "368:1:17", + "nodeType": "YulLiteral", + "src": "368:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "363:1:17", + "nodeType": "YulTypedName", + "src": "363:1:17", + "type": "" + } + ] + }, { "body": { + "nativeSrc": "428:63:17", "nodeType": "YulBlock", - "src": "1665:16:17", + "src": "428:63:17", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1674:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "dst", + "nativeSrc": "453:3:17", + "nodeType": "YulIdentifier", + "src": "453:3:17" + }, + { + "name": "i", + "nativeSrc": "458:1:17", + "nodeType": "YulIdentifier", + "src": "458:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "449:3:17", + "nodeType": "YulIdentifier", + "src": "449:3:17" + }, + "nativeSrc": "449:11:17", + "nodeType": "YulFunctionCall", + "src": "449:11:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1677:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "472:3:17", + "nodeType": "YulIdentifier", + "src": "472:3:17" + }, + { + "name": "i", + "nativeSrc": "477:1:17", + "nodeType": "YulIdentifier", + "src": "477:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "468:3:17", + "nodeType": "YulIdentifier", + "src": "468:3:17" + }, + "nativeSrc": "468:11:17", + "nodeType": "YulFunctionCall", + "src": "468:11:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "462:5:17", + "nodeType": "YulIdentifier", + "src": "462:5:17" + }, + "nativeSrc": "462:18:17", + "nodeType": "YulFunctionCall", + "src": "462:18:17" } ], "functionName": { - "name": "revert", + "name": "mstore", + "nativeSrc": "442:6:17", "nodeType": "YulIdentifier", - "src": "1667:6:17" + "src": "442:6:17" }, + "nativeSrc": "442:39:17", "nodeType": "YulFunctionCall", - "src": "1667:12:17" + "src": "442:39:17" }, + "nativeSrc": "442:39:17", "nodeType": "YulExpressionStatement", - "src": "1667:12:17" + "src": "442:39:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1640:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1649:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1636:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1636:23:17" + "name": "i", + "nativeSrc": "389:1:17", + "nodeType": "YulIdentifier", + "src": "389:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1661:2:17", - "type": "", - "value": "64" + "name": "length", + "nativeSrc": "392:6:17", + "nodeType": "YulIdentifier", + "src": "392:6:17" } ], "functionName": { - "name": "slt", + "name": "lt", + "nativeSrc": "386:2:17", "nodeType": "YulIdentifier", - "src": "1632:3:17" + "src": "386:2:17" }, + "nativeSrc": "386:13:17", "nodeType": "YulFunctionCall", - "src": "1632:32:17" + "src": "386:13:17" }, - "nodeType": "YulIf", - "src": "1629:2:17" - }, - { - "nodeType": "YulBlock", - "src": "1691:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1706:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1720:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1710:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1735:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1770:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1781:6:17" - } - ], - "functionName": { - "name": "add", + "nativeSrc": "378:113:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "400:19:17", + "nodeType": "YulBlock", + "src": "400:19:17", + "statements": [ + { + "nativeSrc": "402:15:17", + "nodeType": "YulAssignment", + "src": "402:15:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "411:1:17", "nodeType": "YulIdentifier", - "src": "1766:3:17" + "src": "411:1:17" }, - "nodeType": "YulFunctionCall", - "src": "1766:22:17" + { + "kind": "number", + "nativeSrc": "414:2:17", + "nodeType": "YulLiteral", + "src": "414:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "407:3:17", + "nodeType": "YulIdentifier", + "src": "407:3:17" }, + "nativeSrc": "407:10:17", + "nodeType": "YulFunctionCall", + "src": "407:10:17" + }, + "variableNames": [ { - "name": "dataEnd", + "name": "i", + "nativeSrc": "402:1:17", "nodeType": "YulIdentifier", - "src": "1790:7:17" + "src": "402:1:17" } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1745:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1745:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1735:6:17" - } - ] - } - ] + ] + } + ] + }, + "pre": { + "nativeSrc": "382:3:17", + "nodeType": "YulBlock", + "src": "382:3:17", + "statements": [] + }, + "src": "378:113:17" }, { - "nodeType": "YulBlock", - "src": "1818:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1833:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1847:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1837:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1863:63:17", - "value": { + "expression": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1898:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1909:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1894:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1894:22:17" + "name": "dst", + "nativeSrc": "511:3:17", + "nodeType": "YulIdentifier", + "src": "511:3:17" }, { - "name": "dataEnd", + "name": "length", + "nativeSrc": "516:6:17", "nodeType": "YulIdentifier", - "src": "1918:7:17" + "src": "516:6:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "add", + "nativeSrc": "507:3:17", "nodeType": "YulIdentifier", - "src": "1873:20:17" + "src": "507:3:17" }, + "nativeSrc": "507:16:17", "nodeType": "YulFunctionCall", - "src": "1873:53:17" + "src": "507:16:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1863:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "525:1:17", + "nodeType": "YulLiteral", + "src": "525:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "500:6:17", + "nodeType": "YulIdentifier", + "src": "500:6:17" + }, + "nativeSrc": "500:27:17", + "nodeType": "YulFunctionCall", + "src": "500:27:17" + }, + "nativeSrc": "500:27:17", + "nodeType": "YulExpressionStatement", + "src": "500:27:17" } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "287:246:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1581:9:17", - "type": "" - }, - { - "name": "dataEnd", + "name": "src", + "nativeSrc": "331:3:17", "nodeType": "YulTypedName", - "src": "1592:7:17", + "src": "331:3:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "value0", + "name": "dst", + "nativeSrc": "336:3:17", "nodeType": "YulTypedName", - "src": "1604:6:17", + "src": "336:3:17", "type": "" }, { - "name": "value1", + "name": "length", + "nativeSrc": "341:6:17", "nodeType": "YulTypedName", - "src": "1612:6:17", + "src": "341:6:17", "type": "" } ], - "src": "1536:407:17" + "src": "287:246:17" }, { "body": { + "nativeSrc": "587:54:17", "nodeType": "YulBlock", - "src": "2008:50:17", + "src": "587:54:17", "statements": [ { - "expression": { + "nativeSrc": "597:38:17", + "nodeType": "YulAssignment", + "src": "597:38:17", + "value": { "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2025:3:17" - }, { "arguments": [ { "name": "value", + "nativeSrc": "615:5:17", "nodeType": "YulIdentifier", - "src": "2045:5:17" + "src": "615:5:17" + }, + { + "kind": "number", + "nativeSrc": "622:2:17", + "nodeType": "YulLiteral", + "src": "622:2:17", + "type": "", + "value": "31" } ], "functionName": { - "name": "cleanup_t_bool", + "name": "add", + "nativeSrc": "611:3:17", + "nodeType": "YulIdentifier", + "src": "611:3:17" + }, + "nativeSrc": "611:14:17", + "nodeType": "YulFunctionCall", + "src": "611:14:17" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "631:2:17", + "nodeType": "YulLiteral", + "src": "631:2:17", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "627:3:17", "nodeType": "YulIdentifier", - "src": "2030:14:17" + "src": "627:3:17" }, + "nativeSrc": "627:7:17", "nodeType": "YulFunctionCall", - "src": "2030:21:17" + "src": "627:7:17" } ], "functionName": { - "name": "mstore", + "name": "and", + "nativeSrc": "607:3:17", "nodeType": "YulIdentifier", - "src": "2018:6:17" + "src": "607:3:17" }, + "nativeSrc": "607:28:17", "nodeType": "YulFunctionCall", - "src": "2018:34:17" + "src": "607:28:17" }, - "nodeType": "YulExpressionStatement", - "src": "2018:34:17" + "variableNames": [ + { + "name": "result", + "nativeSrc": "597:6:17", + "nodeType": "YulIdentifier", + "src": "597:6:17" + } + ] } ] }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", + "name": "round_up_to_mul_of_32", + "nativeSrc": "539:102:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "570:5:17", "nodeType": "YulTypedName", - "src": "1996:5:17", + "src": "570:5:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "result", + "nativeSrc": "580:6:17", "nodeType": "YulTypedName", - "src": "2003:3:17", + "src": "580:6:17", "type": "" } ], - "src": "1949:109:17" + "src": "539:102:17" }, { "body": { + "nativeSrc": "739:285:17", "nodeType": "YulBlock", - "src": "2156:272:17", + "src": "739:285:17", "statements": [ { + "nativeSrc": "749:53:17", "nodeType": "YulVariableDeclaration", - "src": "2166:53:17", + "src": "749:53:17", "value": { "arguments": [ { "name": "value", + "nativeSrc": "796:5:17", "nodeType": "YulIdentifier", - "src": "2213:5:17" + "src": "796:5:17" } ], "functionName": { "name": "array_length_t_string_memory_ptr", + "nativeSrc": "763:32:17", "nodeType": "YulIdentifier", - "src": "2180:32:17" + "src": "763:32:17" }, + "nativeSrc": "763:39:17", "nodeType": "YulFunctionCall", - "src": "2180:39:17" + "src": "763:39:17" }, "variables": [ { "name": "length", + "nativeSrc": "753:6:17", "nodeType": "YulTypedName", - "src": "2170:6:17", + "src": "753:6:17", "type": "" } ] }, { + "nativeSrc": "811:78:17", "nodeType": "YulAssignment", - "src": "2228:78:17", + "src": "811:78:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "877:3:17", "nodeType": "YulIdentifier", - "src": "2294:3:17" + "src": "877:3:17" }, { "name": "length", + "nativeSrc": "882:6:17", "nodeType": "YulIdentifier", - "src": "2299:6:17" + "src": "882:6:17" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "818:58:17", "nodeType": "YulIdentifier", - "src": "2235:58:17" + "src": "818:58:17" }, + "nativeSrc": "818:71:17", "nodeType": "YulFunctionCall", - "src": "2235:71:17" + "src": "818:71:17" }, "variableNames": [ { "name": "pos", + "nativeSrc": "811:3:17", "nodeType": "YulIdentifier", - "src": "2228:3:17" + "src": "811:3:17" } ] }, @@ -2878,154 +6043,182 @@ "arguments": [ { "name": "value", + "nativeSrc": "937:5:17", "nodeType": "YulIdentifier", - "src": "2341:5:17" + "src": "937:5:17" }, { "kind": "number", + "nativeSrc": "944:4:17", "nodeType": "YulLiteral", - "src": "2348:4:17", + "src": "944:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "933:3:17", "nodeType": "YulIdentifier", - "src": "2337:3:17" + "src": "933:3:17" }, + "nativeSrc": "933:16:17", "nodeType": "YulFunctionCall", - "src": "2337:16:17" + "src": "933:16:17" }, { "name": "pos", + "nativeSrc": "951:3:17", "nodeType": "YulIdentifier", - "src": "2355:3:17" + "src": "951:3:17" }, { "name": "length", + "nativeSrc": "956:6:17", "nodeType": "YulIdentifier", - "src": "2360:6:17" + "src": "956:6:17" } ], "functionName": { - "name": "copy_memory_to_memory", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "898:34:17", "nodeType": "YulIdentifier", - "src": "2315:21:17" + "src": "898:34:17" }, + "nativeSrc": "898:65:17", "nodeType": "YulFunctionCall", - "src": "2315:52:17" + "src": "898:65:17" }, + "nativeSrc": "898:65:17", "nodeType": "YulExpressionStatement", - "src": "2315:52:17" + "src": "898:65:17" }, { + "nativeSrc": "972:46:17", "nodeType": "YulAssignment", - "src": "2376:46:17", + "src": "972:46:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "983:3:17", "nodeType": "YulIdentifier", - "src": "2387:3:17" + "src": "983:3:17" }, { "arguments": [ { "name": "length", + "nativeSrc": "1010:6:17", "nodeType": "YulIdentifier", - "src": "2414:6:17" + "src": "1010:6:17" } ], "functionName": { "name": "round_up_to_mul_of_32", + "nativeSrc": "988:21:17", "nodeType": "YulIdentifier", - "src": "2392:21:17" + "src": "988:21:17" }, + "nativeSrc": "988:29:17", "nodeType": "YulFunctionCall", - "src": "2392:29:17" + "src": "988:29:17" } ], "functionName": { "name": "add", + "nativeSrc": "979:3:17", "nodeType": "YulIdentifier", - "src": "2383:3:17" + "src": "979:3:17" }, + "nativeSrc": "979:39:17", "nodeType": "YulFunctionCall", - "src": "2383:39:17" + "src": "979:39:17" }, "variableNames": [ { "name": "end", + "nativeSrc": "972:3:17", "nodeType": "YulIdentifier", - "src": "2376:3:17" + "src": "972:3:17" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "647:377:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "720:5:17", "nodeType": "YulTypedName", - "src": "2137:5:17", + "src": "720:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "727:3:17", "nodeType": "YulTypedName", - "src": "2144:3:17", + "src": "727:3:17", "type": "" } ], "returnVariables": [ { "name": "end", + "nativeSrc": "735:3:17", "nodeType": "YulTypedName", - "src": "2152:3:17", + "src": "735:3:17", "type": "" } ], - "src": "2064:364:17" + "src": "647:377:17" }, { "body": { + "nativeSrc": "1148:195:17", "nodeType": "YulBlock", - "src": "2580:220:17", + "src": "1148:195:17", "statements": [ { + "nativeSrc": "1158:26:17", "nodeType": "YulAssignment", - "src": "2590:74:17", + "src": "1158:26:17", "value": { "arguments": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "1170:9:17", "nodeType": "YulIdentifier", - "src": "2656:3:17" + "src": "1170:9:17" }, { "kind": "number", + "nativeSrc": "1181:2:17", "nodeType": "YulLiteral", - "src": "2661:2:17", + "src": "1181:2:17", "type": "", - "value": "35" + "value": "32" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "add", + "nativeSrc": "1166:3:17", "nodeType": "YulIdentifier", - "src": "2597:58:17" + "src": "1166:3:17" }, + "nativeSrc": "1166:18:17", "nodeType": "YulFunctionCall", - "src": "2597:67:17" + "src": "1166:18:17" }, "variableNames": [ { - "name": "pos", + "name": "tail", + "nativeSrc": "1158:4:17", "nodeType": "YulIdentifier", - "src": "2590:3:17" + "src": "1158:4:17" } ] }, @@ -3033,229 +6226,580 @@ "expression": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2762:3:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1205:9:17", + "nodeType": "YulIdentifier", + "src": "1205:9:17" + }, + { + "kind": "number", + "nativeSrc": "1216:1:17", + "nodeType": "YulLiteral", + "src": "1216:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1201:3:17", + "nodeType": "YulIdentifier", + "src": "1201:3:17" + }, + "nativeSrc": "1201:17:17", + "nodeType": "YulFunctionCall", + "src": "1201:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "1224:4:17", + "nodeType": "YulIdentifier", + "src": "1224:4:17" + }, + { + "name": "headStart", + "nativeSrc": "1230:9:17", + "nodeType": "YulIdentifier", + "src": "1230:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1220:3:17", + "nodeType": "YulIdentifier", + "src": "1220:3:17" + }, + "nativeSrc": "1220:20:17", + "nodeType": "YulFunctionCall", + "src": "1220:20:17" } ], "functionName": { - "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "name": "mstore", + "nativeSrc": "1194:6:17", "nodeType": "YulIdentifier", - "src": "2673:88:17" + "src": "1194:6:17" }, + "nativeSrc": "1194:47:17", "nodeType": "YulFunctionCall", - "src": "2673:93:17" + "src": "1194:47:17" }, + "nativeSrc": "1194:47:17", "nodeType": "YulExpressionStatement", - "src": "2673:93:17" + "src": "1194:47:17" }, { + "nativeSrc": "1250:86:17", + "nodeType": "YulAssignment", + "src": "1250:86:17", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1322:6:17", + "nodeType": "YulIdentifier", + "src": "1322:6:17" + }, + { + "name": "tail", + "nativeSrc": "1331:4:17", + "nodeType": "YulIdentifier", + "src": "1331:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "1258:63:17", + "nodeType": "YulIdentifier", + "src": "1258:63:17" + }, + "nativeSrc": "1258:78:17", + "nodeType": "YulFunctionCall", + "src": "1258:78:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1250:4:17", + "nodeType": "YulIdentifier", + "src": "1250:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "1030:313:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1120:9:17", + "nodeType": "YulTypedName", + "src": "1120:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1132:6:17", + "nodeType": "YulTypedName", + "src": "1132:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1143:4:17", + "nodeType": "YulTypedName", + "src": "1143:4:17", + "type": "" + } + ], + "src": "1030:313:17" + }, + { + "body": { + "nativeSrc": "1389:35:17", + "nodeType": "YulBlock", + "src": "1389:35:17", + "statements": [ + { + "nativeSrc": "1399:19:17", + "nodeType": "YulAssignment", + "src": "1399:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1415:2:17", + "nodeType": "YulLiteral", + "src": "1415:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1409:5:17", + "nodeType": "YulIdentifier", + "src": "1409:5:17" + }, + "nativeSrc": "1409:9:17", + "nodeType": "YulFunctionCall", + "src": "1409:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1399:6:17", + "nodeType": "YulIdentifier", + "src": "1399:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "1349:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1382:6:17", + "nodeType": "YulTypedName", + "src": "1382:6:17", + "type": "" + } + ], + "src": "1349:75:17" + }, + { + "body": { + "nativeSrc": "1519:28:17", + "nodeType": "YulBlock", + "src": "1519:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1536:1:17", + "nodeType": "YulLiteral", + "src": "1536:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1539:1:17", + "nodeType": "YulLiteral", + "src": "1539:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1529:6:17", + "nodeType": "YulIdentifier", + "src": "1529:6:17" + }, + "nativeSrc": "1529:12:17", + "nodeType": "YulFunctionCall", + "src": "1529:12:17" + }, + "nativeSrc": "1529:12:17", + "nodeType": "YulExpressionStatement", + "src": "1529:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1430:117:17", + "nodeType": "YulFunctionDefinition", + "src": "1430:117:17" + }, + { + "body": { + "nativeSrc": "1642:28:17", + "nodeType": "YulBlock", + "src": "1642:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1659:1:17", + "nodeType": "YulLiteral", + "src": "1659:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1662:1:17", + "nodeType": "YulLiteral", + "src": "1662:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1652:6:17", + "nodeType": "YulIdentifier", + "src": "1652:6:17" + }, + "nativeSrc": "1652:12:17", + "nodeType": "YulFunctionCall", + "src": "1652:12:17" + }, + "nativeSrc": "1652:12:17", + "nodeType": "YulExpressionStatement", + "src": "1652:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "1553:117:17", + "nodeType": "YulFunctionDefinition", + "src": "1553:117:17" + }, + { + "body": { + "nativeSrc": "1721:81:17", + "nodeType": "YulBlock", + "src": "1721:81:17", + "statements": [ + { + "nativeSrc": "1731:65:17", "nodeType": "YulAssignment", - "src": "2775:19:17", + "src": "1731:65:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1746:5:17", "nodeType": "YulIdentifier", - "src": "2786:3:17" + "src": "1746:5:17" }, { "kind": "number", + "nativeSrc": "1753:42:17", "nodeType": "YulLiteral", - "src": "2791:2:17", + "src": "1753:42:17", "type": "", - "value": "64" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "add", + "name": "and", + "nativeSrc": "1742:3:17", "nodeType": "YulIdentifier", - "src": "2782:3:17" + "src": "1742:3:17" }, + "nativeSrc": "1742:54:17", "nodeType": "YulFunctionCall", - "src": "2782:12:17" + "src": "1742:54:17" }, "variableNames": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "1731:7:17", "nodeType": "YulIdentifier", - "src": "2775:3:17" + "src": "1731:7:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1676:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1703:5:17", "nodeType": "YulTypedName", - "src": "2568:3:17", + "src": "1703:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "1713:7:17", "nodeType": "YulTypedName", - "src": "2576:3:17", + "src": "1713:7:17", "type": "" } ], - "src": "2434:366:17" + "src": "1676:126:17" }, { "body": { + "nativeSrc": "1853:51:17", "nodeType": "YulBlock", - "src": "2952:220:17", + "src": "1853:51:17", "statements": [ { + "nativeSrc": "1863:35:17", "nodeType": "YulAssignment", - "src": "2962:74:17", + "src": "1863:35:17", "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1892:5:17", "nodeType": "YulIdentifier", - "src": "3028:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3033:2:17", - "type": "", - "value": "34" + "src": "1892:5:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1874:17:17", "nodeType": "YulIdentifier", - "src": "2969:58:17" + "src": "1874:17:17" }, + "nativeSrc": "1874:24:17", "nodeType": "YulFunctionCall", - "src": "2969:67:17" + "src": "1874:24:17" }, "variableNames": [ { - "name": "pos", + "name": "cleaned", + "nativeSrc": "1863:7:17", "nodeType": "YulIdentifier", - "src": "2962:3:17" + "src": "1863:7:17" } ] - }, + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1808:96:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1835:5:17", + "nodeType": "YulTypedName", + "src": "1835:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1845:7:17", + "nodeType": "YulTypedName", + "src": "1845:7:17", + "type": "" + } + ], + "src": "1808:96:17" + }, + { + "body": { + "nativeSrc": "1953:79:17", + "nodeType": "YulBlock", + "src": "1953:79:17", + "statements": [ { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "2010:16:17", + "nodeType": "YulBlock", + "src": "2010:16:17", + "statements": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3134:3:17" + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2019:1:17", + "nodeType": "YulLiteral", + "src": "2019:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2022:1:17", + "nodeType": "YulLiteral", + "src": "2022:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2012:6:17", + "nodeType": "YulIdentifier", + "src": "2012:6:17" + }, + "nativeSrc": "2012:12:17", + "nodeType": "YulFunctionCall", + "src": "2012:12:17" + }, + "nativeSrc": "2012:12:17", + "nodeType": "YulExpressionStatement", + "src": "2012:12:17" } - ], - "functionName": { - "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", - "nodeType": "YulIdentifier", - "src": "3045:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "3045:93:17" + ] }, - "nodeType": "YulExpressionStatement", - "src": "3045:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "3147:19:17", - "value": { + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3158:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3163:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "1976:5:17", + "nodeType": "YulIdentifier", + "src": "1976:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2001:5:17", + "nodeType": "YulIdentifier", + "src": "2001:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1983:17:17", + "nodeType": "YulIdentifier", + "src": "1983:17:17" + }, + "nativeSrc": "1983:24:17", + "nodeType": "YulFunctionCall", + "src": "1983:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1973:2:17", + "nodeType": "YulIdentifier", + "src": "1973:2:17" + }, + "nativeSrc": "1973:35:17", + "nodeType": "YulFunctionCall", + "src": "1973:35:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "1966:6:17", "nodeType": "YulIdentifier", - "src": "3154:3:17" + "src": "1966:6:17" }, + "nativeSrc": "1966:43:17", "nodeType": "YulFunctionCall", - "src": "3154:12:17" + "src": "1966:43:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3147:3:17" - } - ] + "nativeSrc": "1963:63:17", + "nodeType": "YulIf", + "src": "1963:63:17" } ] }, - "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "name": "validator_revert_t_address", + "nativeSrc": "1910:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2940:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", + "name": "value", + "nativeSrc": "1946:5:17", "nodeType": "YulTypedName", - "src": "2948:3:17", + "src": "1946:5:17", "type": "" } ], - "src": "2806:366:17" + "src": "1910:122:17" }, { "body": { + "nativeSrc": "2090:87:17", "nodeType": "YulBlock", - "src": "3324:220:17", + "src": "2090:87:17", "statements": [ { + "nativeSrc": "2100:29:17", "nodeType": "YulAssignment", - "src": "3334:74:17", + "src": "2100:29:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2122:6:17", "nodeType": "YulIdentifier", - "src": "3400:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3405:2:17", - "type": "", - "value": "29" + "src": "2122:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2109:12:17", "nodeType": "YulIdentifier", - "src": "3341:58:17" + "src": "2109:12:17" }, + "nativeSrc": "2109:20:17", "nodeType": "YulFunctionCall", - "src": "3341:67:17" + "src": "2109:20:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2100:5:17", "nodeType": "YulIdentifier", - "src": "3334:3:17" + "src": "2100:5:17" } ] }, @@ -3263,114 +6807,262 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2165:5:17", "nodeType": "YulIdentifier", - "src": "3506:3:17" + "src": "2165:5:17" } ], "functionName": { - "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "name": "validator_revert_t_address", + "nativeSrc": "2138:26:17", "nodeType": "YulIdentifier", - "src": "3417:88:17" + "src": "2138:26:17" }, + "nativeSrc": "2138:33:17", "nodeType": "YulFunctionCall", - "src": "3417:93:17" + "src": "2138:33:17" }, + "nativeSrc": "2138:33:17", "nodeType": "YulExpressionStatement", - "src": "3417:93:17" - }, + "src": "2138:33:17" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "2038:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2068:6:17", + "nodeType": "YulTypedName", + "src": "2068:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2076:3:17", + "nodeType": "YulTypedName", + "src": "2076:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2084:5:17", + "nodeType": "YulTypedName", + "src": "2084:5:17", + "type": "" + } + ], + "src": "2038:139:17" + }, + { + "body": { + "nativeSrc": "2228:32:17", + "nodeType": "YulBlock", + "src": "2228:32:17", + "statements": [ { + "nativeSrc": "2238:16:17", "nodeType": "YulAssignment", - "src": "3519:19:17", + "src": "2238:16:17", "value": { + "name": "value", + "nativeSrc": "2249:5:17", + "nodeType": "YulIdentifier", + "src": "2249:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2238:7:17", + "nodeType": "YulIdentifier", + "src": "2238:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2183:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2210:5:17", + "nodeType": "YulTypedName", + "src": "2210:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2220:7:17", + "nodeType": "YulTypedName", + "src": "2220:7:17", + "type": "" + } + ], + "src": "2183:77:17" + }, + { + "body": { + "nativeSrc": "2309:79:17", + "nodeType": "YulBlock", + "src": "2309:79:17", + "statements": [ + { + "body": { + "nativeSrc": "2366:16:17", + "nodeType": "YulBlock", + "src": "2366:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2375:1:17", + "nodeType": "YulLiteral", + "src": "2375:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2378:1:17", + "nodeType": "YulLiteral", + "src": "2378:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2368:6:17", + "nodeType": "YulIdentifier", + "src": "2368:6:17" + }, + "nativeSrc": "2368:12:17", + "nodeType": "YulFunctionCall", + "src": "2368:12:17" + }, + "nativeSrc": "2368:12:17", + "nodeType": "YulExpressionStatement", + "src": "2368:12:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3530:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3535:2:17", - "type": "", - "value": "32" + "arguments": [ + { + "name": "value", + "nativeSrc": "2332:5:17", + "nodeType": "YulIdentifier", + "src": "2332:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2357:5:17", + "nodeType": "YulIdentifier", + "src": "2357:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2339:17:17", + "nodeType": "YulIdentifier", + "src": "2339:17:17" + }, + "nativeSrc": "2339:24:17", + "nodeType": "YulFunctionCall", + "src": "2339:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2329:2:17", + "nodeType": "YulIdentifier", + "src": "2329:2:17" + }, + "nativeSrc": "2329:35:17", + "nodeType": "YulFunctionCall", + "src": "2329:35:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "2322:6:17", "nodeType": "YulIdentifier", - "src": "3526:3:17" + "src": "2322:6:17" }, + "nativeSrc": "2322:43:17", "nodeType": "YulFunctionCall", - "src": "3526:12:17" + "src": "2322:43:17" }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3519:3:17" - } - ] + "nativeSrc": "2319:63:17", + "nodeType": "YulIf", + "src": "2319:63:17" } ] }, - "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "name": "validator_revert_t_uint256", + "nativeSrc": "2266:122:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3312:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", + "name": "value", + "nativeSrc": "2302:5:17", "nodeType": "YulTypedName", - "src": "3320:3:17", + "src": "2302:5:17", "type": "" } ], - "src": "3178:366:17" + "src": "2266:122:17" }, { "body": { + "nativeSrc": "2446:87:17", "nodeType": "YulBlock", - "src": "3696:220:17", + "src": "2446:87:17", "statements": [ { + "nativeSrc": "2456:29:17", "nodeType": "YulAssignment", - "src": "3706:74:17", + "src": "2456:29:17", "value": { "arguments": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2478:6:17", "nodeType": "YulIdentifier", - "src": "3772:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3777:2:17", - "type": "", - "value": "38" + "src": "2478:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2465:12:17", "nodeType": "YulIdentifier", - "src": "3713:58:17" + "src": "2465:12:17" }, + "nativeSrc": "2465:20:17", "nodeType": "YulFunctionCall", - "src": "3713:67:17" + "src": "2465:20:17" }, "variableNames": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2456:5:17", "nodeType": "YulIdentifier", - "src": "3706:3:17" + "src": "2456:5:17" } ] }, @@ -3378,581 +7070,742 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "2521:5:17", "nodeType": "YulIdentifier", - "src": "3878:3:17" + "src": "2521:5:17" } ], "functionName": { - "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "name": "validator_revert_t_uint256", + "nativeSrc": "2494:26:17", "nodeType": "YulIdentifier", - "src": "3789:88:17" + "src": "2494:26:17" }, + "nativeSrc": "2494:33:17", "nodeType": "YulFunctionCall", - "src": "3789:93:17" + "src": "2494:33:17" }, + "nativeSrc": "2494:33:17", "nodeType": "YulExpressionStatement", - "src": "3789:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "3891:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3902:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3907:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3898:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3898:12:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3891:3:17" - } - ] + "src": "2494:33:17" } ] }, - "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_t_uint256", + "nativeSrc": "2394:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "offset", + "nativeSrc": "2424:6:17", + "nodeType": "YulTypedName", + "src": "2424:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2432:3:17", "nodeType": "YulTypedName", - "src": "3684:3:17", + "src": "2432:3:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value", + "nativeSrc": "2440:5:17", "nodeType": "YulTypedName", - "src": "3692:3:17", + "src": "2440:5:17", "type": "" } ], - "src": "3550:366:17" + "src": "2394:139:17" }, { "body": { + "nativeSrc": "2622:391:17", "nodeType": "YulBlock", - "src": "4068:220:17", + "src": "2622:391:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4078:74:17", - "value": { + "body": { + "nativeSrc": "2668:83:17", + "nodeType": "YulBlock", + "src": "2668:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2670:77:17", + "nodeType": "YulIdentifier", + "src": "2670:77:17" + }, + "nativeSrc": "2670:79:17", + "nodeType": "YulFunctionCall", + "src": "2670:79:17" + }, + "nativeSrc": "2670:79:17", + "nodeType": "YulExpressionStatement", + "src": "2670:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4144:3:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2643:7:17", + "nodeType": "YulIdentifier", + "src": "2643:7:17" + }, + { + "name": "headStart", + "nativeSrc": "2652:9:17", + "nodeType": "YulIdentifier", + "src": "2652:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2639:3:17", + "nodeType": "YulIdentifier", + "src": "2639:3:17" + }, + "nativeSrc": "2639:23:17", + "nodeType": "YulFunctionCall", + "src": "2639:23:17" }, { "kind": "number", + "nativeSrc": "2664:2:17", "nodeType": "YulLiteral", - "src": "4149:2:17", + "src": "2664:2:17", "type": "", - "value": "37" + "value": "64" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "slt", + "nativeSrc": "2635:3:17", "nodeType": "YulIdentifier", - "src": "4085:58:17" + "src": "2635:3:17" }, + "nativeSrc": "2635:32:17", "nodeType": "YulFunctionCall", - "src": "4085:67:17" + "src": "2635:32:17" }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4078:3:17" - } - ] + "nativeSrc": "2632:119:17", + "nodeType": "YulIf", + "src": "2632:119:17" }, { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4250:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", - "nodeType": "YulIdentifier", - "src": "4161:88:17" + "nativeSrc": "2761:117:17", + "nodeType": "YulBlock", + "src": "2761:117:17", + "statements": [ + { + "nativeSrc": "2776:15:17", + "nodeType": "YulVariableDeclaration", + "src": "2776:15:17", + "value": { + "kind": "number", + "nativeSrc": "2790:1:17", + "nodeType": "YulLiteral", + "src": "2790:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2780:6:17", + "nodeType": "YulTypedName", + "src": "2780:6:17", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "4161:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4161:93:17" + { + "nativeSrc": "2805:63:17", + "nodeType": "YulAssignment", + "src": "2805:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2840:9:17", + "nodeType": "YulIdentifier", + "src": "2840:9:17" + }, + { + "name": "offset", + "nativeSrc": "2851:6:17", + "nodeType": "YulIdentifier", + "src": "2851:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2836:3:17", + "nodeType": "YulIdentifier", + "src": "2836:3:17" + }, + "nativeSrc": "2836:22:17", + "nodeType": "YulFunctionCall", + "src": "2836:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2860:7:17", + "nodeType": "YulIdentifier", + "src": "2860:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2815:20:17", + "nodeType": "YulIdentifier", + "src": "2815:20:17" + }, + "nativeSrc": "2815:53:17", + "nodeType": "YulFunctionCall", + "src": "2815:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2805:6:17", + "nodeType": "YulIdentifier", + "src": "2805:6:17" + } + ] + } + ] }, { - "nodeType": "YulAssignment", - "src": "4263:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4274:3:17" - }, - { + "nativeSrc": "2888:118:17", + "nodeType": "YulBlock", + "src": "2888:118:17", + "statements": [ + { + "nativeSrc": "2903:16:17", + "nodeType": "YulVariableDeclaration", + "src": "2903:16:17", + "value": { "kind": "number", + "nativeSrc": "2917:2:17", "nodeType": "YulLiteral", - "src": "4279:2:17", + "src": "2917:2:17", "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4270:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4270:12:17" - }, - "variableNames": [ + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2907:6:17", + "nodeType": "YulTypedName", + "src": "2907:6:17", + "type": "" + } + ] + }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4263:3:17" + "nativeSrc": "2933:63:17", + "nodeType": "YulAssignment", + "src": "2933:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2968:9:17", + "nodeType": "YulIdentifier", + "src": "2968:9:17" + }, + { + "name": "offset", + "nativeSrc": "2979:6:17", + "nodeType": "YulIdentifier", + "src": "2979:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2964:3:17", + "nodeType": "YulIdentifier", + "src": "2964:3:17" + }, + "nativeSrc": "2964:22:17", + "nodeType": "YulFunctionCall", + "src": "2964:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2988:7:17", + "nodeType": "YulIdentifier", + "src": "2988:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "2943:20:17", + "nodeType": "YulIdentifier", + "src": "2943:20:17" + }, + "nativeSrc": "2943:53:17", + "nodeType": "YulFunctionCall", + "src": "2943:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2933:6:17", + "nodeType": "YulIdentifier", + "src": "2933:6:17" + } + ] } ] } ] }, - "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "2539:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "2584:9:17", + "nodeType": "YulTypedName", + "src": "2584:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2595:7:17", "nodeType": "YulTypedName", - "src": "4056:3:17", + "src": "2595:7:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "value0", + "nativeSrc": "2607:6:17", + "nodeType": "YulTypedName", + "src": "2607:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2615:6:17", "nodeType": "YulTypedName", - "src": "4064:3:17", + "src": "2615:6:17", "type": "" } ], - "src": "3922:366:17" + "src": "2539:474:17" }, { "body": { + "nativeSrc": "3061:48:17", "nodeType": "YulBlock", - "src": "4440:220:17", + "src": "3061:48:17", "statements": [ { + "nativeSrc": "3071:32:17", "nodeType": "YulAssignment", - "src": "4450:74:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4516:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4521:2:17", - "type": "", - "value": "36" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4457:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "4457:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4450:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4622:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", - "nodeType": "YulIdentifier", - "src": "4533:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "4533:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4533:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "4635:19:17", + "src": "3071:32:17", "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4646:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4651:2:17", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "3096:5:17", + "nodeType": "YulIdentifier", + "src": "3096:5:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3089:6:17", + "nodeType": "YulIdentifier", + "src": "3089:6:17" + }, + "nativeSrc": "3089:13:17", + "nodeType": "YulFunctionCall", + "src": "3089:13:17" } ], "functionName": { - "name": "add", + "name": "iszero", + "nativeSrc": "3082:6:17", "nodeType": "YulIdentifier", - "src": "4642:3:17" + "src": "3082:6:17" }, + "nativeSrc": "3082:21:17", "nodeType": "YulFunctionCall", - "src": "4642:12:17" + "src": "3082:21:17" }, "variableNames": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "3071:7:17", "nodeType": "YulIdentifier", - "src": "4635:3:17" + "src": "3071:7:17" } ] } ] }, - "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_bool", + "nativeSrc": "3019:90:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "3043:5:17", "nodeType": "YulTypedName", - "src": "4428:3:17", + "src": "3043:5:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "cleaned", + "nativeSrc": "3053:7:17", "nodeType": "YulTypedName", - "src": "4436:3:17", + "src": "3053:7:17", "type": "" } ], - "src": "4294:366:17" + "src": "3019:90:17" }, { "body": { + "nativeSrc": "3174:50:17", "nodeType": "YulBlock", - "src": "4812:220:17", + "src": "3174:50:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4822:74:17", - "value": { + "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3191:3:17", "nodeType": "YulIdentifier", - "src": "4888:3:17" + "src": "3191:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4893:2:17", - "type": "", - "value": "37" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "4829:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "4829:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4822:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4994:3:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "3211:5:17", + "nodeType": "YulIdentifier", + "src": "3211:5:17" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "3196:14:17", + "nodeType": "YulIdentifier", + "src": "3196:14:17" + }, + "nativeSrc": "3196:21:17", + "nodeType": "YulFunctionCall", + "src": "3196:21:17" } ], "functionName": { - "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "name": "mstore", + "nativeSrc": "3184:6:17", "nodeType": "YulIdentifier", - "src": "4905:88:17" + "src": "3184:6:17" }, + "nativeSrc": "3184:34:17", "nodeType": "YulFunctionCall", - "src": "4905:93:17" + "src": "3184:34:17" }, + "nativeSrc": "3184:34:17", "nodeType": "YulExpressionStatement", - "src": "4905:93:17" - }, + "src": "3184:34:17" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3115:109:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3162:5:17", + "nodeType": "YulTypedName", + "src": "3162:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3169:3:17", + "nodeType": "YulTypedName", + "src": "3169:3:17", + "type": "" + } + ], + "src": "3115:109:17" + }, + { + "body": { + "nativeSrc": "3322:118:17", + "nodeType": "YulBlock", + "src": "3322:118:17", + "statements": [ { + "nativeSrc": "3332:26:17", "nodeType": "YulAssignment", - "src": "5007:19:17", + "src": "3332:26:17", "value": { "arguments": [ { - "name": "pos", + "name": "headStart", + "nativeSrc": "3344:9:17", "nodeType": "YulIdentifier", - "src": "5018:3:17" + "src": "3344:9:17" }, { "kind": "number", + "nativeSrc": "3355:2:17", "nodeType": "YulLiteral", - "src": "5023:2:17", + "src": "3355:2:17", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3340:3:17", "nodeType": "YulIdentifier", - "src": "5014:3:17" + "src": "3340:3:17" }, + "nativeSrc": "3340:18:17", "nodeType": "YulFunctionCall", - "src": "5014:12:17" + "src": "3340:18:17" }, "variableNames": [ { - "name": "end", + "name": "tail", + "nativeSrc": "3332:4:17", "nodeType": "YulIdentifier", - "src": "5007:3:17" + "src": "3332:4:17" } ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4800:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "4808:3:17", - "type": "" - } - ], - "src": "4666:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5103:53:17", - "statements": [ + }, { "expression": { "arguments": [ { - "name": "pos", + "name": "value0", + "nativeSrc": "3406:6:17", "nodeType": "YulIdentifier", - "src": "5120:3:17" + "src": "3406:6:17" }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3419:9:17", "nodeType": "YulIdentifier", - "src": "5143:5:17" + "src": "3419:9:17" + }, + { + "kind": "number", + "nativeSrc": "3430:1:17", + "nodeType": "YulLiteral", + "src": "3430:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "add", + "nativeSrc": "3415:3:17", "nodeType": "YulIdentifier", - "src": "5125:17:17" + "src": "3415:3:17" }, + "nativeSrc": "3415:17:17", "nodeType": "YulFunctionCall", - "src": "5125:24:17" + "src": "3415:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3368:37:17", "nodeType": "YulIdentifier", - "src": "5113:6:17" + "src": "3368:37:17" }, + "nativeSrc": "3368:65:17", "nodeType": "YulFunctionCall", - "src": "5113:37:17" + "src": "3368:65:17" }, + "nativeSrc": "3368:65:17", "nodeType": "YulExpressionStatement", - "src": "5113:37:17" + "src": "3368:65:17" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "3230:210:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3294:9:17", "nodeType": "YulTypedName", - "src": "5091:5:17", + "src": "3294:9:17", "type": "" }, { - "name": "pos", + "name": "value0", + "nativeSrc": "3306:6:17", + "nodeType": "YulTypedName", + "src": "3306:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3317:4:17", "nodeType": "YulTypedName", - "src": "5098:3:17", + "src": "3317:4:17", "type": "" } ], - "src": "5038:118:17" + "src": "3230:210:17" }, { "body": { + "nativeSrc": "3511:53:17", "nodeType": "YulBlock", - "src": "5223:51:17", + "src": "3511:53:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "3528:3:17", "nodeType": "YulIdentifier", - "src": "5240:3:17" + "src": "3528:3:17" }, { "arguments": [ { "name": "value", + "nativeSrc": "3551:5:17", "nodeType": "YulIdentifier", - "src": "5261:5:17" + "src": "3551:5:17" } ], "functionName": { - "name": "cleanup_t_uint8", + "name": "cleanup_t_uint256", + "nativeSrc": "3533:17:17", "nodeType": "YulIdentifier", - "src": "5245:15:17" + "src": "3533:17:17" }, + "nativeSrc": "3533:24:17", "nodeType": "YulFunctionCall", - "src": "5245:22:17" + "src": "3533:24:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "3521:6:17", "nodeType": "YulIdentifier", - "src": "5233:6:17" + "src": "3521:6:17" }, + "nativeSrc": "3521:37:17", "nodeType": "YulFunctionCall", - "src": "5233:35:17" + "src": "3521:37:17" }, + "nativeSrc": "3521:37:17", "nodeType": "YulExpressionStatement", - "src": "5233:35:17" + "src": "3521:37:17" } ] }, - "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3446:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "3499:5:17", "nodeType": "YulTypedName", - "src": "5211:5:17", + "src": "3499:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "3506:3:17", "nodeType": "YulTypedName", - "src": "5218:3:17", + "src": "3506:3:17", "type": "" } ], - "src": "5162:112:17" + "src": "3446:118:17" }, { "body": { + "nativeSrc": "3668:124:17", "nodeType": "YulBlock", - "src": "5372:118:17", + "src": "3668:124:17", "statements": [ { + "nativeSrc": "3678:26:17", "nodeType": "YulAssignment", - "src": "5382:26:17", + "src": "3678:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "3690:9:17", "nodeType": "YulIdentifier", - "src": "5394:9:17" + "src": "3690:9:17" }, { "kind": "number", + "nativeSrc": "3701:2:17", "nodeType": "YulLiteral", - "src": "5405:2:17", + "src": "3701:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3686:3:17", "nodeType": "YulIdentifier", - "src": "5390:3:17" + "src": "3686:3:17" }, + "nativeSrc": "3686:18:17", "nodeType": "YulFunctionCall", - "src": "5390:18:17" + "src": "3686:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "3678:4:17", "nodeType": "YulIdentifier", - "src": "5382:4:17" + "src": "3678:4:17" } ] }, @@ -3961,2868 +7814,3617 @@ "arguments": [ { "name": "value0", + "nativeSrc": "3758:6:17", "nodeType": "YulIdentifier", - "src": "5456:6:17" + "src": "3758:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "3771:9:17", "nodeType": "YulIdentifier", - "src": "5469:9:17" + "src": "3771:9:17" }, { "kind": "number", + "nativeSrc": "3782:1:17", "nodeType": "YulLiteral", - "src": "5480:1:17", + "src": "3782:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "3767:3:17", "nodeType": "YulIdentifier", - "src": "5465:3:17" + "src": "3767:3:17" }, + "nativeSrc": "3767:17:17", "nodeType": "YulFunctionCall", - "src": "5465:17:17" + "src": "3767:17:17" } ], "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3714:43:17", "nodeType": "YulIdentifier", - "src": "5418:37:17" + "src": "3714:43:17" }, + "nativeSrc": "3714:71:17", "nodeType": "YulFunctionCall", - "src": "5418:65:17" + "src": "3714:71:17" }, + "nativeSrc": "3714:71:17", "nodeType": "YulExpressionStatement", - "src": "5418:65:17" + "src": "3714:71:17" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "3570:222:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3640:9:17", + "nodeType": "YulTypedName", + "src": "3640:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3652:6:17", + "nodeType": "YulTypedName", + "src": "3652:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3663:4:17", + "nodeType": "YulTypedName", + "src": "3663:4:17", + "type": "" + } + ], + "src": "3570:222:17" + }, + { + "body": { + "nativeSrc": "3898:519:17", + "nodeType": "YulBlock", + "src": "3898:519:17", + "statements": [ + { + "body": { + "nativeSrc": "3944:83:17", + "nodeType": "YulBlock", + "src": "3944:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3946:77:17", + "nodeType": "YulIdentifier", + "src": "3946:77:17" + }, + "nativeSrc": "3946:79:17", + "nodeType": "YulFunctionCall", + "src": "3946:79:17" + }, + "nativeSrc": "3946:79:17", + "nodeType": "YulExpressionStatement", + "src": "3946:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3919:7:17", + "nodeType": "YulIdentifier", + "src": "3919:7:17" + }, + { + "name": "headStart", + "nativeSrc": "3928:9:17", + "nodeType": "YulIdentifier", + "src": "3928:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3915:3:17", + "nodeType": "YulIdentifier", + "src": "3915:3:17" + }, + "nativeSrc": "3915:23:17", + "nodeType": "YulFunctionCall", + "src": "3915:23:17" + }, + { + "kind": "number", + "nativeSrc": "3940:2:17", + "nodeType": "YulLiteral", + "src": "3940:2:17", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3911:3:17", + "nodeType": "YulIdentifier", + "src": "3911:3:17" + }, + "nativeSrc": "3911:32:17", + "nodeType": "YulFunctionCall", + "src": "3911:32:17" + }, + "nativeSrc": "3908:119:17", + "nodeType": "YulIf", + "src": "3908:119:17" + }, + { + "nativeSrc": "4037:117:17", + "nodeType": "YulBlock", + "src": "4037:117:17", + "statements": [ + { + "nativeSrc": "4052:15:17", + "nodeType": "YulVariableDeclaration", + "src": "4052:15:17", + "value": { + "kind": "number", + "nativeSrc": "4066:1:17", + "nodeType": "YulLiteral", + "src": "4066:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4056:6:17", + "nodeType": "YulTypedName", + "src": "4056:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4081:63:17", + "nodeType": "YulAssignment", + "src": "4081:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4116:9:17", + "nodeType": "YulIdentifier", + "src": "4116:9:17" + }, + { + "name": "offset", + "nativeSrc": "4127:6:17", + "nodeType": "YulIdentifier", + "src": "4127:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4112:3:17", + "nodeType": "YulIdentifier", + "src": "4112:3:17" + }, + "nativeSrc": "4112:22:17", + "nodeType": "YulFunctionCall", + "src": "4112:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4136:7:17", + "nodeType": "YulIdentifier", + "src": "4136:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4091:20:17", + "nodeType": "YulIdentifier", + "src": "4091:20:17" + }, + "nativeSrc": "4091:53:17", + "nodeType": "YulFunctionCall", + "src": "4091:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4081:6:17", + "nodeType": "YulIdentifier", + "src": "4081:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4164:118:17", + "nodeType": "YulBlock", + "src": "4164:118:17", + "statements": [ + { + "nativeSrc": "4179:16:17", + "nodeType": "YulVariableDeclaration", + "src": "4179:16:17", + "value": { + "kind": "number", + "nativeSrc": "4193:2:17", + "nodeType": "YulLiteral", + "src": "4193:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4183:6:17", + "nodeType": "YulTypedName", + "src": "4183:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4209:63:17", + "nodeType": "YulAssignment", + "src": "4209:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4244:9:17", + "nodeType": "YulIdentifier", + "src": "4244:9:17" + }, + { + "name": "offset", + "nativeSrc": "4255:6:17", + "nodeType": "YulIdentifier", + "src": "4255:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4240:3:17", + "nodeType": "YulIdentifier", + "src": "4240:3:17" + }, + "nativeSrc": "4240:22:17", + "nodeType": "YulFunctionCall", + "src": "4240:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4264:7:17", + "nodeType": "YulIdentifier", + "src": "4264:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4219:20:17", + "nodeType": "YulIdentifier", + "src": "4219:20:17" + }, + "nativeSrc": "4219:53:17", + "nodeType": "YulFunctionCall", + "src": "4219:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4209:6:17", + "nodeType": "YulIdentifier", + "src": "4209:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4292:118:17", + "nodeType": "YulBlock", + "src": "4292:118:17", + "statements": [ + { + "nativeSrc": "4307:16:17", + "nodeType": "YulVariableDeclaration", + "src": "4307:16:17", + "value": { + "kind": "number", + "nativeSrc": "4321:2:17", + "nodeType": "YulLiteral", + "src": "4321:2:17", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4311:6:17", + "nodeType": "YulTypedName", + "src": "4311:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4337:63:17", + "nodeType": "YulAssignment", + "src": "4337:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4372:9:17", + "nodeType": "YulIdentifier", + "src": "4372:9:17" + }, + { + "name": "offset", + "nativeSrc": "4383:6:17", + "nodeType": "YulIdentifier", + "src": "4383:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4368:3:17", + "nodeType": "YulIdentifier", + "src": "4368:3:17" + }, + "nativeSrc": "4368:22:17", + "nodeType": "YulFunctionCall", + "src": "4368:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4392:7:17", + "nodeType": "YulIdentifier", + "src": "4392:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4347:20:17", + "nodeType": "YulIdentifier", + "src": "4347:20:17" + }, + "nativeSrc": "4347:53:17", + "nodeType": "YulFunctionCall", + "src": "4347:53:17" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4337:6:17", + "nodeType": "YulIdentifier", + "src": "4337:6:17" + } + ] + } + ] } ] }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "3798:619:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "3852:9:17", "nodeType": "YulTypedName", - "src": "5344:9:17", + "src": "3852:9:17", "type": "" }, { - "name": "value0", + "name": "dataEnd", + "nativeSrc": "3863:7:17", "nodeType": "YulTypedName", - "src": "5356:6:17", + "src": "3863:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "3875:6:17", + "nodeType": "YulTypedName", + "src": "3875:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3883:6:17", + "nodeType": "YulTypedName", + "src": "3883:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3891:6:17", "nodeType": "YulTypedName", - "src": "5367:4:17", + "src": "3891:6:17", "type": "" } ], - "src": "5280:210:17" + "src": "3798:619:17" }, { "body": { + "nativeSrc": "4466:43:17", "nodeType": "YulBlock", - "src": "5614:195:17", + "src": "4466:43:17", "statements": [ { + "nativeSrc": "4476:27:17", "nodeType": "YulAssignment", - "src": "5624:26:17", + "src": "4476:27:17", "value": { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "4491:5:17", "nodeType": "YulIdentifier", - "src": "5636:9:17" + "src": "4491:5:17" }, { "kind": "number", + "nativeSrc": "4498:4:17", "nodeType": "YulLiteral", - "src": "5647:2:17", + "src": "4498:4:17", "type": "", - "value": "32" + "value": "0xff" } ], "functionName": { - "name": "add", + "name": "and", + "nativeSrc": "4487:3:17", "nodeType": "YulIdentifier", - "src": "5632:3:17" + "src": "4487:3:17" }, + "nativeSrc": "4487:16:17", "nodeType": "YulFunctionCall", - "src": "5632:18:17" + "src": "4487:16:17" }, "variableNames": [ { - "name": "tail", + "name": "cleaned", + "nativeSrc": "4476:7:17", "nodeType": "YulIdentifier", - "src": "5624:4:17" + "src": "4476:7:17" } ] - }, + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "4423:86:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4448:5:17", + "nodeType": "YulTypedName", + "src": "4448:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4458:7:17", + "nodeType": "YulTypedName", + "src": "4458:7:17", + "type": "" + } + ], + "src": "4423:86:17" + }, + { + "body": { + "nativeSrc": "4576:51:17", + "nodeType": "YulBlock", + "src": "4576:51:17", + "statements": [ { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5671:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5682:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5667:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5667:17:17" + "name": "pos", + "nativeSrc": "4593:3:17", + "nodeType": "YulIdentifier", + "src": "4593:3:17" }, { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5690:4:17" - }, - { - "name": "headStart", + "name": "value", + "nativeSrc": "4614:5:17", "nodeType": "YulIdentifier", - "src": "5696:9:17" + "src": "4614:5:17" } ], "functionName": { - "name": "sub", + "name": "cleanup_t_uint8", + "nativeSrc": "4598:15:17", "nodeType": "YulIdentifier", - "src": "5686:3:17" + "src": "4598:15:17" }, + "nativeSrc": "4598:22:17", "nodeType": "YulFunctionCall", - "src": "5686:20:17" + "src": "4598:22:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "4586:6:17", "nodeType": "YulIdentifier", - "src": "5660:6:17" + "src": "4586:6:17" }, + "nativeSrc": "4586:35:17", "nodeType": "YulFunctionCall", - "src": "5660:47:17" + "src": "4586:35:17" }, + "nativeSrc": "4586:35:17", "nodeType": "YulExpressionStatement", - "src": "5660:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "5716:86:17", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5788:6:17" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5797:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "5724:63:17" - }, - "nodeType": "YulFunctionCall", - "src": "5724:78:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5716:4:17" - } - ] + "src": "4586:35:17" } ] }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "4515:112:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "4564:5:17", "nodeType": "YulTypedName", - "src": "5586:9:17", + "src": "4564:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5598:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "4571:3:17", "nodeType": "YulTypedName", - "src": "5609:4:17", + "src": "4571:3:17", "type": "" } ], - "src": "5496:313:17" + "src": "4515:112:17" }, { "body": { + "nativeSrc": "4727:120:17", "nodeType": "YulBlock", - "src": "5986:248:17", + "src": "4727:120:17", "statements": [ { + "nativeSrc": "4737:26:17", "nodeType": "YulAssignment", - "src": "5996:26:17", + "src": "4737:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "4749:9:17", "nodeType": "YulIdentifier", - "src": "6008:9:17" + "src": "4749:9:17" }, { "kind": "number", + "nativeSrc": "4760:2:17", "nodeType": "YulLiteral", - "src": "6019:2:17", + "src": "4760:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "4745:3:17", "nodeType": "YulIdentifier", - "src": "6004:3:17" + "src": "4745:3:17" }, + "nativeSrc": "4745:18:17", "nodeType": "YulFunctionCall", - "src": "6004:18:17" + "src": "4745:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "4737:4:17", "nodeType": "YulIdentifier", - "src": "5996:4:17" + "src": "4737:4:17" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "4813:6:17", + "nodeType": "YulIdentifier", + "src": "4813:6:17" + }, { "arguments": [ { "name": "headStart", + "nativeSrc": "4826:9:17", "nodeType": "YulIdentifier", - "src": "6043:9:17" + "src": "4826:9:17" }, { "kind": "number", + "nativeSrc": "4837:1:17", "nodeType": "YulLiteral", - "src": "6054:1:17", + "src": "4837:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "4822:3:17", "nodeType": "YulIdentifier", - "src": "6039:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6039:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6062:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6068:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "6058:3:17" + "src": "4822:3:17" }, + "nativeSrc": "4822:17:17", "nodeType": "YulFunctionCall", - "src": "6058:20:17" + "src": "4822:17:17" } ], "functionName": { - "name": "mstore", + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nativeSrc": "4773:39:17", "nodeType": "YulIdentifier", - "src": "6032:6:17" + "src": "4773:39:17" }, + "nativeSrc": "4773:67:17", "nodeType": "YulFunctionCall", - "src": "6032:47:17" + "src": "4773:67:17" }, + "nativeSrc": "4773:67:17", "nodeType": "YulExpressionStatement", - "src": "6032:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6088:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6222:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6096:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6096:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6088:4:17" - } - ] + "src": "4773:67:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nativeSrc": "4633:214:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "4699:9:17", + "nodeType": "YulTypedName", + "src": "4699:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4711:6:17", "nodeType": "YulTypedName", - "src": "5966:9:17", + "src": "4711:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "4722:4:17", "nodeType": "YulTypedName", - "src": "5981:4:17", + "src": "4722:4:17", "type": "" } ], - "src": "5815:419:17" + "src": "4633:214:17" }, { "body": { + "nativeSrc": "4919:263:17", "nodeType": "YulBlock", - "src": "6411:248:17", + "src": "4919:263:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "6421:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6433:9:17" - }, + "body": { + "nativeSrc": "4965:83:17", + "nodeType": "YulBlock", + "src": "4965:83:17", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6444:2:17", - "type": "", - "value": "32" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4967:77:17", + "nodeType": "YulIdentifier", + "src": "4967:77:17" + }, + "nativeSrc": "4967:79:17", + "nodeType": "YulFunctionCall", + "src": "4967:79:17" + }, + "nativeSrc": "4967:79:17", + "nodeType": "YulExpressionStatement", + "src": "4967:79:17" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6429:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6429:18:17" + ] }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6421:4:17" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "4940:7:17", "nodeType": "YulIdentifier", - "src": "6468:9:17" + "src": "4940:7:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6479:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "4949:9:17", + "nodeType": "YulIdentifier", + "src": "4949:9:17" } ], "functionName": { - "name": "add", + "name": "sub", + "nativeSrc": "4936:3:17", "nodeType": "YulIdentifier", - "src": "6464:3:17" + "src": "4936:3:17" }, + "nativeSrc": "4936:23:17", "nodeType": "YulFunctionCall", - "src": "6464:17:17" + "src": "4936:23:17" }, { + "kind": "number", + "nativeSrc": "4961:2:17", + "nodeType": "YulLiteral", + "src": "4961:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4932:3:17", + "nodeType": "YulIdentifier", + "src": "4932:3:17" + }, + "nativeSrc": "4932:32:17", + "nodeType": "YulFunctionCall", + "src": "4932:32:17" + }, + "nativeSrc": "4929:119:17", + "nodeType": "YulIf", + "src": "4929:119:17" + }, + { + "nativeSrc": "5058:117:17", + "nodeType": "YulBlock", + "src": "5058:117:17", + "statements": [ + { + "nativeSrc": "5073:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5073:15:17", + "value": { + "kind": "number", + "nativeSrc": "5087:1:17", + "nodeType": "YulLiteral", + "src": "5087:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5077:6:17", + "nodeType": "YulTypedName", + "src": "5077:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5102:63:17", + "nodeType": "YulAssignment", + "src": "5102:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6487:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5137:9:17", + "nodeType": "YulIdentifier", + "src": "5137:9:17" + }, + { + "name": "offset", + "nativeSrc": "5148:6:17", + "nodeType": "YulIdentifier", + "src": "5148:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5133:3:17", + "nodeType": "YulIdentifier", + "src": "5133:3:17" + }, + "nativeSrc": "5133:22:17", + "nodeType": "YulFunctionCall", + "src": "5133:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "5157:7:17", "nodeType": "YulIdentifier", - "src": "6493:9:17" + "src": "5157:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_address", + "nativeSrc": "5112:20:17", "nodeType": "YulIdentifier", - "src": "6483:3:17" + "src": "5112:20:17" }, + "nativeSrc": "5112:53:17", "nodeType": "YulFunctionCall", - "src": "6483:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6457:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6457:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6457:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6513:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6647:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6521:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6521:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6513:4:17" + "src": "5112:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5102:6:17", + "nodeType": "YulIdentifier", + "src": "5102:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_address", + "nativeSrc": "4853:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "4889:9:17", + "nodeType": "YulTypedName", + "src": "4889:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4900:7:17", "nodeType": "YulTypedName", - "src": "6391:9:17", + "src": "4900:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "4912:6:17", "nodeType": "YulTypedName", - "src": "6406:4:17", + "src": "4912:6:17", "type": "" } ], - "src": "6240:419:17" + "src": "4853:329:17" }, { "body": { + "nativeSrc": "5271:391:17", "nodeType": "YulBlock", - "src": "6836:248:17", + "src": "5271:391:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "6846:26:17", - "value": { + "body": { + "nativeSrc": "5317:83:17", + "nodeType": "YulBlock", + "src": "5317:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5319:77:17", + "nodeType": "YulIdentifier", + "src": "5319:77:17" + }, + "nativeSrc": "5319:79:17", + "nodeType": "YulFunctionCall", + "src": "5319:79:17" + }, + "nativeSrc": "5319:79:17", + "nodeType": "YulExpressionStatement", + "src": "5319:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6858:9:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5292:7:17", + "nodeType": "YulIdentifier", + "src": "5292:7:17" + }, + { + "name": "headStart", + "nativeSrc": "5301:9:17", + "nodeType": "YulIdentifier", + "src": "5301:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5288:3:17", + "nodeType": "YulIdentifier", + "src": "5288:3:17" + }, + "nativeSrc": "5288:23:17", + "nodeType": "YulFunctionCall", + "src": "5288:23:17" }, { "kind": "number", + "nativeSrc": "5313:2:17", "nodeType": "YulLiteral", - "src": "6869:2:17", + "src": "5313:2:17", "type": "", - "value": "32" + "value": "64" } ], "functionName": { - "name": "add", + "name": "slt", + "nativeSrc": "5284:3:17", "nodeType": "YulIdentifier", - "src": "6854:3:17" + "src": "5284:3:17" }, + "nativeSrc": "5284:32:17", "nodeType": "YulFunctionCall", - "src": "6854:18:17" + "src": "5284:32:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6846:4:17" - } - ] + "nativeSrc": "5281:119:17", + "nodeType": "YulIf", + "src": "5281:119:17" }, { - "expression": { - "arguments": [ - { + "nativeSrc": "5410:117:17", + "nodeType": "YulBlock", + "src": "5410:117:17", + "statements": [ + { + "nativeSrc": "5425:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5425:15:17", + "value": { + "kind": "number", + "nativeSrc": "5439:1:17", + "nodeType": "YulLiteral", + "src": "5439:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5429:6:17", + "nodeType": "YulTypedName", + "src": "5429:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5454:63:17", + "nodeType": "YulAssignment", + "src": "5454:63:17", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "6893:9:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5489:9:17", + "nodeType": "YulIdentifier", + "src": "5489:9:17" + }, + { + "name": "offset", + "nativeSrc": "5500:6:17", + "nodeType": "YulIdentifier", + "src": "5500:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5485:3:17", + "nodeType": "YulIdentifier", + "src": "5485:3:17" + }, + "nativeSrc": "5485:22:17", + "nodeType": "YulFunctionCall", + "src": "5485:22:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6904:1:17", - "type": "", - "value": "0" + "name": "dataEnd", + "nativeSrc": "5509:7:17", + "nodeType": "YulIdentifier", + "src": "5509:7:17" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_address", + "nativeSrc": "5464:20:17", "nodeType": "YulIdentifier", - "src": "6889:3:17" + "src": "5464:20:17" }, + "nativeSrc": "5464:53:17", "nodeType": "YulFunctionCall", - "src": "6889:17:17" + "src": "5464:53:17" }, - { + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5454:6:17", + "nodeType": "YulIdentifier", + "src": "5454:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "5537:118:17", + "nodeType": "YulBlock", + "src": "5537:118:17", + "statements": [ + { + "nativeSrc": "5552:16:17", + "nodeType": "YulVariableDeclaration", + "src": "5552:16:17", + "value": { + "kind": "number", + "nativeSrc": "5566:2:17", + "nodeType": "YulLiteral", + "src": "5566:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5556:6:17", + "nodeType": "YulTypedName", + "src": "5556:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5582:63:17", + "nodeType": "YulAssignment", + "src": "5582:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6912:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5617:9:17", + "nodeType": "YulIdentifier", + "src": "5617:9:17" + }, + { + "name": "offset", + "nativeSrc": "5628:6:17", + "nodeType": "YulIdentifier", + "src": "5628:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5613:3:17", + "nodeType": "YulIdentifier", + "src": "5613:3:17" + }, + "nativeSrc": "5613:22:17", + "nodeType": "YulFunctionCall", + "src": "5613:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "5637:7:17", "nodeType": "YulIdentifier", - "src": "6918:9:17" + "src": "5637:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_address", + "nativeSrc": "5592:20:17", "nodeType": "YulIdentifier", - "src": "6908:3:17" + "src": "5592:20:17" }, + "nativeSrc": "5592:53:17", "nodeType": "YulFunctionCall", - "src": "6908:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6882:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6882:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6882:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "6938:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7072:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6946:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "6946:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "6938:4:17" + "src": "5592:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5582:6:17", + "nodeType": "YulIdentifier", + "src": "5582:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "5188:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "5233:9:17", + "nodeType": "YulTypedName", + "src": "5233:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5244:7:17", "nodeType": "YulTypedName", - "src": "6816:9:17", + "src": "5244:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "5256:6:17", + "nodeType": "YulTypedName", + "src": "5256:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5264:6:17", "nodeType": "YulTypedName", - "src": "6831:4:17", + "src": "5264:6:17", "type": "" } ], - "src": "6665:419:17" + "src": "5188:474:17" }, { "body": { + "nativeSrc": "5696:152:17", "nodeType": "YulBlock", - "src": "7261:248:17", + "src": "5696:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "7271:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7283:9:17" + "kind": "number", + "nativeSrc": "5713:1:17", + "nodeType": "YulLiteral", + "src": "5713:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "5716:77:17", "nodeType": "YulLiteral", - "src": "7294:2:17", + "src": "5716:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "5706:6:17", "nodeType": "YulIdentifier", - "src": "7279:3:17" + "src": "5706:6:17" }, + "nativeSrc": "5706:88:17", "nodeType": "YulFunctionCall", - "src": "7279:18:17" + "src": "5706:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7271:4:17" - } - ] + "nativeSrc": "5706:88:17", + "nodeType": "YulExpressionStatement", + "src": "5706:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7318:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7329:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7314:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7314:17:17" + "kind": "number", + "nativeSrc": "5810:1:17", + "nodeType": "YulLiteral", + "src": "5810:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7337:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7343:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7333:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7333:20:17" + "kind": "number", + "nativeSrc": "5813:4:17", + "nodeType": "YulLiteral", + "src": "5813:4:17", + "type": "", + "value": "0x22" } ], "functionName": { "name": "mstore", + "nativeSrc": "5803:6:17", "nodeType": "YulIdentifier", - "src": "7307:6:17" + "src": "5803:6:17" }, + "nativeSrc": "5803:15:17", "nodeType": "YulFunctionCall", - "src": "7307:47:17" + "src": "5803:15:17" }, + "nativeSrc": "5803:15:17", "nodeType": "YulExpressionStatement", - "src": "7307:47:17" + "src": "5803:15:17" }, { - "nodeType": "YulAssignment", - "src": "7363:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7497:4:17" + "kind": "number", + "nativeSrc": "5834:1:17", + "nodeType": "YulLiteral", + "src": "5834:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5837:4:17", + "nodeType": "YulLiteral", + "src": "5837:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "5827:6:17", "nodeType": "YulIdentifier", - "src": "7371:124:17" + "src": "5827:6:17" }, + "nativeSrc": "5827:15:17", "nodeType": "YulFunctionCall", - "src": "7371:131:17" + "src": "5827:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7363:4:17" - } - ] + "nativeSrc": "5827:15:17", + "nodeType": "YulExpressionStatement", + "src": "5827:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x22", + "nativeSrc": "5668:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "7241:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "7256:4:17", - "type": "" - } - ], - "src": "7090:419:17" + "src": "5668:180:17" }, { "body": { + "nativeSrc": "5905:269:17", "nodeType": "YulBlock", - "src": "7686:248:17", + "src": "5905:269:17", "statements": [ { + "nativeSrc": "5915:22:17", "nodeType": "YulAssignment", - "src": "7696:26:17", + "src": "5915:22:17", "value": { "arguments": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "5929:4:17", "nodeType": "YulIdentifier", - "src": "7708:9:17" + "src": "5929:4:17" }, { "kind": "number", + "nativeSrc": "5935:1:17", "nodeType": "YulLiteral", - "src": "7719:2:17", + "src": "5935:1:17", "type": "", - "value": "32" + "value": "2" } ], "functionName": { - "name": "add", + "name": "div", + "nativeSrc": "5925:3:17", "nodeType": "YulIdentifier", - "src": "7704:3:17" + "src": "5925:3:17" }, + "nativeSrc": "5925:12:17", "nodeType": "YulFunctionCall", - "src": "7704:18:17" + "src": "5925:12:17" }, "variableNames": [ { - "name": "tail", + "name": "length", + "nativeSrc": "5915:6:17", "nodeType": "YulIdentifier", - "src": "7696:4:17" + "src": "5915:6:17" } ] }, { - "expression": { + "nativeSrc": "5946:38:17", + "nodeType": "YulVariableDeclaration", + "src": "5946:38:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "7743:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7754:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7739:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7739:17:17" + "name": "data", + "nativeSrc": "5976:4:17", + "nodeType": "YulIdentifier", + "src": "5976:4:17" }, { - "arguments": [ - { - "name": "tail", + "kind": "number", + "nativeSrc": "5982:1:17", + "nodeType": "YulLiteral", + "src": "5982:1:17", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5972:3:17", + "nodeType": "YulIdentifier", + "src": "5972:3:17" + }, + "nativeSrc": "5972:12:17", + "nodeType": "YulFunctionCall", + "src": "5972:12:17" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5950:18:17", + "nodeType": "YulTypedName", + "src": "5950:18:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6023:51:17", + "nodeType": "YulBlock", + "src": "6023:51:17", + "statements": [ + { + "nativeSrc": "6037:27:17", + "nodeType": "YulAssignment", + "src": "6037:27:17", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6051:6:17", + "nodeType": "YulIdentifier", + "src": "6051:6:17" + }, + { + "kind": "number", + "nativeSrc": "6059:4:17", + "nodeType": "YulLiteral", + "src": "6059:4:17", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6047:3:17", "nodeType": "YulIdentifier", - "src": "7762:4:17" + "src": "6047:3:17" }, + "nativeSrc": "6047:17:17", + "nodeType": "YulFunctionCall", + "src": "6047:17:17" + }, + "variableNames": [ { - "name": "headStart", + "name": "length", + "nativeSrc": "6037:6:17", "nodeType": "YulIdentifier", - "src": "7768:9:17" + "src": "6037:6:17" } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "7758:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "7758:20:17" + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "6003:18:17", + "nodeType": "YulIdentifier", + "src": "6003:18:17" } ], "functionName": { - "name": "mstore", + "name": "iszero", + "nativeSrc": "5996:6:17", "nodeType": "YulIdentifier", - "src": "7732:6:17" + "src": "5996:6:17" }, + "nativeSrc": "5996:26:17", "nodeType": "YulFunctionCall", - "src": "7732:47:17" + "src": "5996:26:17" }, - "nodeType": "YulExpressionStatement", - "src": "7732:47:17" + "nativeSrc": "5993:81:17", + "nodeType": "YulIf", + "src": "5993:81:17" }, { - "nodeType": "YulAssignment", - "src": "7788:139:17", - "value": { + "body": { + "nativeSrc": "6126:42:17", + "nodeType": "YulBlock", + "src": "6126:42:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "6140:16:17", + "nodeType": "YulIdentifier", + "src": "6140:16:17" + }, + "nativeSrc": "6140:18:17", + "nodeType": "YulFunctionCall", + "src": "6140:18:17" + }, + "nativeSrc": "6140:18:17", + "nodeType": "YulExpressionStatement", + "src": "6140:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "tail", + "name": "outOfPlaceEncoding", + "nativeSrc": "6090:18:17", "nodeType": "YulIdentifier", - "src": "7922:4:17" + "src": "6090:18:17" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "6113:6:17", + "nodeType": "YulIdentifier", + "src": "6113:6:17" + }, + { + "kind": "number", + "nativeSrc": "6121:2:17", + "nodeType": "YulLiteral", + "src": "6121:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6110:2:17", + "nodeType": "YulIdentifier", + "src": "6110:2:17" + }, + "nativeSrc": "6110:14:17", + "nodeType": "YulFunctionCall", + "src": "6110:14:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "name": "eq", + "nativeSrc": "6087:2:17", "nodeType": "YulIdentifier", - "src": "7796:124:17" + "src": "6087:2:17" }, + "nativeSrc": "6087:38:17", "nodeType": "YulFunctionCall", - "src": "7796:131:17" + "src": "6087:38:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "7788:4:17" - } - ] + "nativeSrc": "6084:84:17", + "nodeType": "YulIf", + "src": "6084:84:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "name": "extract_byte_array_length", + "nativeSrc": "5854:320:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "data", + "nativeSrc": "5889:4:17", "nodeType": "YulTypedName", - "src": "7666:9:17", + "src": "5889:4:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "length", + "nativeSrc": "5898:6:17", "nodeType": "YulTypedName", - "src": "7681:4:17", + "src": "5898:6:17", "type": "" } ], - "src": "7515:419:17" + "src": "5854:320:17" }, { "body": { + "nativeSrc": "6208:152:17", "nodeType": "YulBlock", - "src": "8111:248:17", + "src": "6208:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "8121:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8133:9:17" + "kind": "number", + "nativeSrc": "6225:1:17", + "nodeType": "YulLiteral", + "src": "6225:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "6228:77:17", "nodeType": "YulLiteral", - "src": "8144:2:17", + "src": "6228:77:17", "type": "", - "value": "32" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "6218:6:17", "nodeType": "YulIdentifier", - "src": "8129:3:17" + "src": "6218:6:17" }, + "nativeSrc": "6218:88:17", "nodeType": "YulFunctionCall", - "src": "8129:18:17" + "src": "6218:88:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8121:4:17" - } - ] + "nativeSrc": "6218:88:17", + "nodeType": "YulExpressionStatement", + "src": "6218:88:17" }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8168:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8179:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8164:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8164:17:17" + "kind": "number", + "nativeSrc": "6322:1:17", + "nodeType": "YulLiteral", + "src": "6322:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8187:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8193:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8183:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8183:20:17" + "kind": "number", + "nativeSrc": "6325:4:17", + "nodeType": "YulLiteral", + "src": "6325:4:17", + "type": "", + "value": "0x11" } ], "functionName": { "name": "mstore", + "nativeSrc": "6315:6:17", "nodeType": "YulIdentifier", - "src": "8157:6:17" + "src": "6315:6:17" }, + "nativeSrc": "6315:15:17", "nodeType": "YulFunctionCall", - "src": "8157:47:17" + "src": "6315:15:17" }, + "nativeSrc": "6315:15:17", "nodeType": "YulExpressionStatement", - "src": "8157:47:17" + "src": "6315:15:17" }, { - "nodeType": "YulAssignment", - "src": "8213:139:17", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8347:4:17" + "kind": "number", + "nativeSrc": "6346:1:17", + "nodeType": "YulLiteral", + "src": "6346:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6349:4:17", + "nodeType": "YulLiteral", + "src": "6349:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "name": "revert", + "nativeSrc": "6339:6:17", "nodeType": "YulIdentifier", - "src": "8221:124:17" + "src": "6339:6:17" }, + "nativeSrc": "6339:15:17", "nodeType": "YulFunctionCall", - "src": "8221:131:17" + "src": "6339:15:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8213:4:17" - } - ] + "nativeSrc": "6339:15:17", + "nodeType": "YulExpressionStatement", + "src": "6339:15:17" } ] }, - "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "name": "panic_error_0x11", + "nativeSrc": "6180:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8091:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8106:4:17", - "type": "" - } - ], - "src": "7940:419:17" + "src": "6180:180:17" }, { "body": { + "nativeSrc": "6410:147:17", "nodeType": "YulBlock", - "src": "8536:248:17", + "src": "6410:147:17", "statements": [ { + "nativeSrc": "6420:25:17", "nodeType": "YulAssignment", - "src": "8546:26:17", + "src": "6420:25:17", "value": { "arguments": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6443:1:17", "nodeType": "YulIdentifier", - "src": "8558:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8569:2:17", - "type": "", - "value": "32" + "src": "6443:1:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "6425:17:17", "nodeType": "YulIdentifier", - "src": "8554:3:17" + "src": "6425:17:17" }, + "nativeSrc": "6425:20:17", "nodeType": "YulFunctionCall", - "src": "8554:18:17" + "src": "6425:20:17" }, "variableNames": [ { - "name": "tail", + "name": "x", + "nativeSrc": "6420:1:17", "nodeType": "YulIdentifier", - "src": "8546:4:17" + "src": "6420:1:17" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8593:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8604:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8589:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8589:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "8612:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8618:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "8608:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8608:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8582:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "8582:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "8582:47:17" - }, - { + "nativeSrc": "6454:25:17", "nodeType": "YulAssignment", - "src": "8638:139:17", + "src": "6454:25:17", "value": { "arguments": [ { - "name": "tail", + "name": "y", + "nativeSrc": "6477:1:17", "nodeType": "YulIdentifier", - "src": "8772:4:17" + "src": "6477:1:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "name": "cleanup_t_uint256", + "nativeSrc": "6459:17:17", "nodeType": "YulIdentifier", - "src": "8646:124:17" + "src": "6459:17:17" }, + "nativeSrc": "6459:20:17", "nodeType": "YulFunctionCall", - "src": "8646:131:17" + "src": "6459:20:17" }, "variableNames": [ { - "name": "tail", + "name": "y", + "nativeSrc": "6454:1:17", "nodeType": "YulIdentifier", - "src": "8638:4:17" + "src": "6454:1:17" } ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "8516:9:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "8531:4:17", - "type": "" - } - ], - "src": "8365:419:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8888:124:17", - "statements": [ + }, { + "nativeSrc": "6488:16:17", "nodeType": "YulAssignment", - "src": "8898:26:17", + "src": "6488:16:17", "value": { "arguments": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6499:1:17", "nodeType": "YulIdentifier", - "src": "8910:9:17" + "src": "6499:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8921:2:17", - "type": "", - "value": "32" + "name": "y", + "nativeSrc": "6502:1:17", + "nodeType": "YulIdentifier", + "src": "6502:1:17" } ], "functionName": { "name": "add", + "nativeSrc": "6495:3:17", "nodeType": "YulIdentifier", - "src": "8906:3:17" + "src": "6495:3:17" }, + "nativeSrc": "6495:9:17", "nodeType": "YulFunctionCall", - "src": "8906:18:17" + "src": "6495:9:17" }, "variableNames": [ { - "name": "tail", + "name": "sum", + "nativeSrc": "6488:3:17", "nodeType": "YulIdentifier", - "src": "8898:4:17" + "src": "6488:3:17" } ] }, { - "expression": { + "body": { + "nativeSrc": "6528:22:17", + "nodeType": "YulBlock", + "src": "6528:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "6530:16:17", + "nodeType": "YulIdentifier", + "src": "6530:16:17" + }, + "nativeSrc": "6530:18:17", + "nodeType": "YulFunctionCall", + "src": "6530:18:17" + }, + "nativeSrc": "6530:18:17", + "nodeType": "YulExpressionStatement", + "src": "6530:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value0", + "name": "x", + "nativeSrc": "6520:1:17", "nodeType": "YulIdentifier", - "src": "8978:6:17" + "src": "6520:1:17" }, { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "8991:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9002:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8987:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "8987:17:17" + "name": "sum", + "nativeSrc": "6523:3:17", + "nodeType": "YulIdentifier", + "src": "6523:3:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "gt", + "nativeSrc": "6517:2:17", "nodeType": "YulIdentifier", - "src": "8934:43:17" + "src": "6517:2:17" }, + "nativeSrc": "6517:10:17", "nodeType": "YulFunctionCall", - "src": "8934:71:17" + "src": "6517:10:17" }, - "nodeType": "YulExpressionStatement", - "src": "8934:71:17" + "nativeSrc": "6514:36:17", + "nodeType": "YulIf", + "src": "6514:36:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "checked_add_t_uint256", + "nativeSrc": "6366:191:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", + "nativeSrc": "6397:1:17", "nodeType": "YulTypedName", - "src": "8860:9:17", + "src": "6397:1:17", "type": "" }, { - "name": "value0", + "name": "y", + "nativeSrc": "6400:1:17", "nodeType": "YulTypedName", - "src": "8872:6:17", + "src": "6400:1:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "sum", + "nativeSrc": "6406:3:17", "nodeType": "YulTypedName", - "src": "8883:4:17", + "src": "6406:3:17", "type": "" } ], - "src": "8790:222:17" + "src": "6366:191:17" }, { "body": { + "nativeSrc": "6669:118:17", "nodeType": "YulBlock", - "src": "9112:120:17", + "src": "6669:118:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "9122:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "9134:9:17" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6691:6:17", + "nodeType": "YulIdentifier", + "src": "6691:6:17" + }, + { + "kind": "number", + "nativeSrc": "6699:1:17", + "nodeType": "YulLiteral", + "src": "6699:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6687:3:17", + "nodeType": "YulIdentifier", + "src": "6687:3:17" + }, + "nativeSrc": "6687:14:17", + "nodeType": "YulFunctionCall", + "src": "6687:14:17" }, { - "kind": "number", + "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77", + "kind": "string", + "nativeSrc": "6703:34:17", "nodeType": "YulLiteral", - "src": "9145:2:17", + "src": "6703:34:17", "type": "", - "value": "32" + "value": "ERC20: decreased allowance below" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "6680:6:17", "nodeType": "YulIdentifier", - "src": "9130:3:17" + "src": "6680:6:17" }, + "nativeSrc": "6680:58:17", "nodeType": "YulFunctionCall", - "src": "9130:18:17" + "src": "6680:58:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "9122:4:17" - } - ] + "nativeSrc": "6680:58:17", + "nodeType": "YulExpressionStatement", + "src": "6680:58:17" }, { "expression": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "9198:6:17" - }, { "arguments": [ { - "name": "headStart", + "name": "memPtr", + "nativeSrc": "6759:6:17", "nodeType": "YulIdentifier", - "src": "9211:9:17" + "src": "6759:6:17" }, { "kind": "number", + "nativeSrc": "6767:2:17", "nodeType": "YulLiteral", - "src": "9222:1:17", + "src": "6767:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "6755:3:17", "nodeType": "YulIdentifier", - "src": "9207:3:17" + "src": "6755:3:17" }, + "nativeSrc": "6755:15:17", "nodeType": "YulFunctionCall", - "src": "9207:17:17" + "src": "6755:15:17" + }, + { + "hexValue": "207a65726f", + "kind": "string", + "nativeSrc": "6772:7:17", + "nodeType": "YulLiteral", + "src": "6772:7:17", + "type": "", + "value": " zero" } ], "functionName": { - "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "name": "mstore", + "nativeSrc": "6748:6:17", "nodeType": "YulIdentifier", - "src": "9158:39:17" + "src": "6748:6:17" }, + "nativeSrc": "6748:32:17", "nodeType": "YulFunctionCall", - "src": "9158:67:17" + "src": "6748:32:17" }, + "nativeSrc": "6748:32:17", "nodeType": "YulExpressionStatement", - "src": "9158:67:17" + "src": "6748:32:17" } ] }, - "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nativeSrc": "6563:224:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "9084:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "9096:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "memPtr", + "nativeSrc": "6661:6:17", "nodeType": "YulTypedName", - "src": "9107:4:17", + "src": "6661:6:17", "type": "" } ], - "src": "9018:214:17" + "src": "6563:224:17" }, { "body": { + "nativeSrc": "6939:220:17", "nodeType": "YulBlock", - "src": "9297:40:17", + "src": "6939:220:17", "statements": [ { + "nativeSrc": "6949:74:17", "nodeType": "YulAssignment", - "src": "9308:22:17", + "src": "6949:74:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "7015:3:17", "nodeType": "YulIdentifier", - "src": "9324:5:17" + "src": "7015:3:17" + }, + { + "kind": "number", + "nativeSrc": "7020:2:17", + "nodeType": "YulLiteral", + "src": "7020:2:17", + "type": "", + "value": "37" } ], "functionName": { - "name": "mload", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6956:58:17", "nodeType": "YulIdentifier", - "src": "9318:5:17" + "src": "6956:58:17" }, + "nativeSrc": "6956:67:17", "nodeType": "YulFunctionCall", - "src": "9318:12:17" + "src": "6956:67:17" }, "variableNames": [ { - "name": "length", + "name": "pos", + "nativeSrc": "6949:3:17", "nodeType": "YulIdentifier", - "src": "9308:6:17" + "src": "6949:3:17" } ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9280:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9290:6:17", - "type": "" - } - ], - "src": "9238:99:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9439:73:17", - "statements": [ + }, { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "7121:3:17", "nodeType": "YulIdentifier", - "src": "9456:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "9461:6:17" + "src": "7121:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "nativeSrc": "7032:88:17", "nodeType": "YulIdentifier", - "src": "9449:6:17" + "src": "7032:88:17" }, + "nativeSrc": "7032:93:17", "nodeType": "YulFunctionCall", - "src": "9449:19:17" + "src": "7032:93:17" }, + "nativeSrc": "7032:93:17", "nodeType": "YulExpressionStatement", - "src": "9449:19:17" + "src": "7032:93:17" }, { + "nativeSrc": "7134:19:17", "nodeType": "YulAssignment", - "src": "9477:29:17", + "src": "7134:19:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "7145:3:17", "nodeType": "YulIdentifier", - "src": "9496:3:17" + "src": "7145:3:17" }, { "kind": "number", + "nativeSrc": "7150:2:17", "nodeType": "YulLiteral", - "src": "9501:4:17", + "src": "7150:2:17", "type": "", - "value": "0x20" + "value": "64" } ], "functionName": { "name": "add", + "nativeSrc": "7141:3:17", "nodeType": "YulIdentifier", - "src": "9492:3:17" + "src": "7141:3:17" }, + "nativeSrc": "7141:12:17", "nodeType": "YulFunctionCall", - "src": "9492:14:17" + "src": "7141:12:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "7134:3:17", "nodeType": "YulIdentifier", - "src": "9477:11:17" + "src": "7134:3:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6793:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", + "nativeSrc": "6927:3:17", "nodeType": "YulTypedName", - "src": "9411:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "9416:6:17", + "src": "6927:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "6935:3:17", "nodeType": "YulTypedName", - "src": "9427:11:17", + "src": "6935:3:17", "type": "" } ], - "src": "9343:169:17" + "src": "6793:366:17" }, { "body": { + "nativeSrc": "7336:248:17", "nodeType": "YulBlock", - "src": "9562:261:17", + "src": "7336:248:17", "statements": [ { + "nativeSrc": "7346:26:17", "nodeType": "YulAssignment", - "src": "9572:25:17", + "src": "7346:26:17", "value": { "arguments": [ { - "name": "x", + "name": "headStart", + "nativeSrc": "7358:9:17", "nodeType": "YulIdentifier", - "src": "9595:1:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "9577:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "9577:20:17" - }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9572:1:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "9606:25:17", - "value": { - "arguments": [ + "src": "7358:9:17" + }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9629:1:17" + "kind": "number", + "nativeSrc": "7369:2:17", + "nodeType": "YulLiteral", + "src": "7369:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "add", + "nativeSrc": "7354:3:17", "nodeType": "YulIdentifier", - "src": "9611:17:17" + "src": "7354:3:17" }, + "nativeSrc": "7354:18:17", "nodeType": "YulFunctionCall", - "src": "9611:20:17" + "src": "7354:18:17" }, "variableNames": [ { - "name": "y", + "name": "tail", + "nativeSrc": "7346:4:17", "nodeType": "YulIdentifier", - "src": "9606:1:17" + "src": "7346:4:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "9769:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "9771:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "9771:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "9771:18:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9690:1:17" - }, { "arguments": [ + { + "name": "headStart", + "nativeSrc": "7393:9:17", + "nodeType": "YulIdentifier", + "src": "7393:9:17" + }, { "kind": "number", + "nativeSrc": "7404:1:17", "nodeType": "YulLiteral", - "src": "9697:66:17", + "src": "7404:1:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9765:1:17" + "value": "0" } ], "functionName": { - "name": "sub", + "name": "add", + "nativeSrc": "7389:3:17", "nodeType": "YulIdentifier", - "src": "9693:3:17" + "src": "7389:3:17" }, + "nativeSrc": "7389:17:17", "nodeType": "YulFunctionCall", - "src": "9693:74:17" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "9687:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "9687:81:17" - }, - "nodeType": "YulIf", - "src": "9684:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "9801:16:17", - "value": { - "arguments": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "9812:1:17" + "src": "7389:17:17" }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "9815:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9808:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "9808:9:17" - }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "9801:3:17" - } - ] - } - ] - }, - "name": "checked_add_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "9549:1:17", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "9552:1:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "9558:3:17", - "type": "" - } - ], - "src": "9518:305:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9874:51:17", - "statements": [ + "arguments": [ + { + "name": "tail", + "nativeSrc": "7412:4:17", + "nodeType": "YulIdentifier", + "src": "7412:4:17" + }, + { + "name": "headStart", + "nativeSrc": "7418:9:17", + "nodeType": "YulIdentifier", + "src": "7418:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7408:3:17", + "nodeType": "YulIdentifier", + "src": "7408:3:17" + }, + "nativeSrc": "7408:20:17", + "nodeType": "YulFunctionCall", + "src": "7408:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7382:6:17", + "nodeType": "YulIdentifier", + "src": "7382:6:17" + }, + "nativeSrc": "7382:47:17", + "nodeType": "YulFunctionCall", + "src": "7382:47:17" + }, + "nativeSrc": "7382:47:17", + "nodeType": "YulExpressionStatement", + "src": "7382:47:17" + }, { + "nativeSrc": "7438:139:17", "nodeType": "YulAssignment", - "src": "9884:35:17", + "src": "7438:139:17", "value": { "arguments": [ { - "name": "value", + "name": "tail", + "nativeSrc": "7572:4:17", "nodeType": "YulIdentifier", - "src": "9913:5:17" + "src": "7572:4:17" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7446:124:17", "nodeType": "YulIdentifier", - "src": "9895:17:17" + "src": "7446:124:17" }, + "nativeSrc": "7446:131:17", "nodeType": "YulFunctionCall", - "src": "9895:24:17" + "src": "7446:131:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "7438:4:17", "nodeType": "YulIdentifier", - "src": "9884:7:17" + "src": "7438:4:17" } ] } ] }, - "name": "cleanup_t_address", + "name": "abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7165:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "7316:9:17", "nodeType": "YulTypedName", - "src": "9856:5:17", + "src": "7316:9:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "7331:4:17", "nodeType": "YulTypedName", - "src": "9866:7:17", + "src": "7331:4:17", "type": "" } ], - "src": "9829:96:17" + "src": "7165:419:17" }, { "body": { + "nativeSrc": "7696:117:17", "nodeType": "YulBlock", - "src": "9973:48:17", + "src": "7696:117:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "9983:32:17", - "value": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "7718:6:17", "nodeType": "YulIdentifier", - "src": "10008:5:17" + "src": "7718:6:17" + }, + { + "kind": "number", + "nativeSrc": "7726:1:17", + "nodeType": "YulLiteral", + "src": "7726:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "iszero", + "name": "add", + "nativeSrc": "7714:3:17", "nodeType": "YulIdentifier", - "src": "10001:6:17" + "src": "7714:3:17" }, + "nativeSrc": "7714:14:17", "nodeType": "YulFunctionCall", - "src": "10001:13:17" + "src": "7714:14:17" + }, + { + "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f20616464", + "kind": "string", + "nativeSrc": "7730:34:17", + "nodeType": "YulLiteral", + "src": "7730:34:17", + "type": "", + "value": "ERC20: approve from the zero add" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "7707:6:17", "nodeType": "YulIdentifier", - "src": "9994:6:17" + "src": "7707:6:17" }, + "nativeSrc": "7707:58:17", "nodeType": "YulFunctionCall", - "src": "9994:21:17" + "src": "7707:58:17" }, - "variableNames": [ - { - "name": "cleaned", + "nativeSrc": "7707:58:17", + "nodeType": "YulExpressionStatement", + "src": "7707:58:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7786:6:17", + "nodeType": "YulIdentifier", + "src": "7786:6:17" + }, + { + "kind": "number", + "nativeSrc": "7794:2:17", + "nodeType": "YulLiteral", + "src": "7794:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7782:3:17", + "nodeType": "YulIdentifier", + "src": "7782:3:17" + }, + "nativeSrc": "7782:15:17", + "nodeType": "YulFunctionCall", + "src": "7782:15:17" + }, + { + "hexValue": "72657373", + "kind": "string", + "nativeSrc": "7799:6:17", + "nodeType": "YulLiteral", + "src": "7799:6:17", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7775:6:17", "nodeType": "YulIdentifier", - "src": "9983:7:17" - } - ] + "src": "7775:6:17" + }, + "nativeSrc": "7775:31:17", + "nodeType": "YulFunctionCall", + "src": "7775:31:17" + }, + "nativeSrc": "7775:31:17", + "nodeType": "YulExpressionStatement", + "src": "7775:31:17" } ] }, - "name": "cleanup_t_bool", + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nativeSrc": "7590:223:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "9955:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", + "name": "memPtr", + "nativeSrc": "7688:6:17", "nodeType": "YulTypedName", - "src": "9965:7:17", + "src": "7688:6:17", "type": "" } ], - "src": "9931:90:17" + "src": "7590:223:17" }, { "body": { + "nativeSrc": "7965:220:17", "nodeType": "YulBlock", - "src": "10072:81:17", + "src": "7965:220:17", "statements": [ { + "nativeSrc": "7975:74:17", "nodeType": "YulAssignment", - "src": "10082:65:17", + "src": "7975:74:17", "value": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "8041:3:17", "nodeType": "YulIdentifier", - "src": "10097:5:17" + "src": "8041:3:17" }, { "kind": "number", + "nativeSrc": "8046:2:17", "nodeType": "YulLiteral", - "src": "10104:42:17", + "src": "8046:2:17", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "value": "36" } ], "functionName": { - "name": "and", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "7982:58:17", "nodeType": "YulIdentifier", - "src": "10093:3:17" + "src": "7982:58:17" }, + "nativeSrc": "7982:67:17", "nodeType": "YulFunctionCall", - "src": "10093:54:17" + "src": "7982:67:17" }, "variableNames": [ { - "name": "cleaned", + "name": "pos", + "nativeSrc": "7975:3:17", "nodeType": "YulIdentifier", - "src": "10082:7:17" + "src": "7975:3:17" } ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "10054:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "10064:7:17", - "type": "" - } - ], - "src": "10027:126:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10204:32:17", - "statements": [ + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8147:3:17", + "nodeType": "YulIdentifier", + "src": "8147:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "nativeSrc": "8058:88:17", + "nodeType": "YulIdentifier", + "src": "8058:88:17" + }, + "nativeSrc": "8058:93:17", + "nodeType": "YulFunctionCall", + "src": "8058:93:17" + }, + "nativeSrc": "8058:93:17", + "nodeType": "YulExpressionStatement", + "src": "8058:93:17" + }, { + "nativeSrc": "8160:19:17", "nodeType": "YulAssignment", - "src": "10214:16:17", + "src": "8160:19:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "10225:5:17" + "arguments": [ + { + "name": "pos", + "nativeSrc": "8171:3:17", + "nodeType": "YulIdentifier", + "src": "8171:3:17" + }, + { + "kind": "number", + "nativeSrc": "8176:2:17", + "nodeType": "YulLiteral", + "src": "8176:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8167:3:17", + "nodeType": "YulIdentifier", + "src": "8167:3:17" + }, + "nativeSrc": "8167:12:17", + "nodeType": "YulFunctionCall", + "src": "8167:12:17" }, "variableNames": [ { - "name": "cleaned", + "name": "end", + "nativeSrc": "8160:3:17", "nodeType": "YulIdentifier", - "src": "10214:7:17" + "src": "8160:3:17" } ] } ] }, - "name": "cleanup_t_uint256", + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7819:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "7953:3:17", "nodeType": "YulTypedName", - "src": "10186:5:17", + "src": "7953:3:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "end", + "nativeSrc": "7961:3:17", "nodeType": "YulTypedName", - "src": "10196:7:17", + "src": "7961:3:17", "type": "" } ], - "src": "10159:77:17" + "src": "7819:366:17" }, { "body": { + "nativeSrc": "8362:248:17", "nodeType": "YulBlock", - "src": "10285:43:17", + "src": "8362:248:17", "statements": [ { + "nativeSrc": "8372:26:17", "nodeType": "YulAssignment", - "src": "10295:27:17", + "src": "8372:26:17", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "8384:9:17", "nodeType": "YulIdentifier", - "src": "10310:5:17" + "src": "8384:9:17" }, { "kind": "number", + "nativeSrc": "8395:2:17", "nodeType": "YulLiteral", - "src": "10317:4:17", + "src": "8395:2:17", "type": "", - "value": "0xff" + "value": "32" } ], "functionName": { - "name": "and", + "name": "add", + "nativeSrc": "8380:3:17", + "nodeType": "YulIdentifier", + "src": "8380:3:17" + }, + "nativeSrc": "8380:18:17", + "nodeType": "YulFunctionCall", + "src": "8380:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8372:4:17", + "nodeType": "YulIdentifier", + "src": "8372:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8419:9:17", + "nodeType": "YulIdentifier", + "src": "8419:9:17" + }, + { + "kind": "number", + "nativeSrc": "8430:1:17", + "nodeType": "YulLiteral", + "src": "8430:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8415:3:17", + "nodeType": "YulIdentifier", + "src": "8415:3:17" + }, + "nativeSrc": "8415:17:17", + "nodeType": "YulFunctionCall", + "src": "8415:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8438:4:17", + "nodeType": "YulIdentifier", + "src": "8438:4:17" + }, + { + "name": "headStart", + "nativeSrc": "8444:9:17", + "nodeType": "YulIdentifier", + "src": "8444:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8434:3:17", + "nodeType": "YulIdentifier", + "src": "8434:3:17" + }, + "nativeSrc": "8434:20:17", + "nodeType": "YulFunctionCall", + "src": "8434:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8408:6:17", + "nodeType": "YulIdentifier", + "src": "8408:6:17" + }, + "nativeSrc": "8408:47:17", + "nodeType": "YulFunctionCall", + "src": "8408:47:17" + }, + "nativeSrc": "8408:47:17", + "nodeType": "YulExpressionStatement", + "src": "8408:47:17" + }, + { + "nativeSrc": "8464:139:17", + "nodeType": "YulAssignment", + "src": "8464:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8598:4:17", + "nodeType": "YulIdentifier", + "src": "8598:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8472:124:17", "nodeType": "YulIdentifier", - "src": "10306:3:17" + "src": "8472:124:17" }, + "nativeSrc": "8472:131:17", "nodeType": "YulFunctionCall", - "src": "10306:16:17" + "src": "8472:131:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "8464:4:17", "nodeType": "YulIdentifier", - "src": "10295:7:17" + "src": "8464:4:17" } ] } ] }, - "name": "cleanup_t_uint8", + "name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8191:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "8342:9:17", "nodeType": "YulTypedName", - "src": "10267:5:17", + "src": "8342:9:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "8357:4:17", "nodeType": "YulTypedName", - "src": "10277:7:17", + "src": "8357:4:17", "type": "" } ], - "src": "10242:86:17" + "src": "8191:419:17" }, { "body": { + "nativeSrc": "8722:115:17", "nodeType": "YulBlock", - "src": "10383:258:17", + "src": "8722:115:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "10393:10:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10402:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "10397:1:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10462:63:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10487:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10492:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10483:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10483:11:17" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "10506:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10511:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10502:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10502:11:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "10496:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "10496:18:17" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8744:6:17", "nodeType": "YulIdentifier", - "src": "10476:6:17" + "src": "8744:6:17" }, - "nodeType": "YulFunctionCall", - "src": "10476:39:17" + { + "kind": "number", + "nativeSrc": "8752:1:17", + "nodeType": "YulLiteral", + "src": "8752:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8740:3:17", + "nodeType": "YulIdentifier", + "src": "8740:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "10476:39:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10423:1:17" + "nativeSrc": "8740:14:17", + "nodeType": "YulFunctionCall", + "src": "8740:14:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10426:6:17" + "hexValue": "45524332303a20617070726f766520746f20746865207a65726f206164647265", + "kind": "string", + "nativeSrc": "8756:34:17", + "nodeType": "YulLiteral", + "src": "8756:34:17", + "type": "", + "value": "ERC20: approve to the zero addre" } ], "functionName": { - "name": "lt", + "name": "mstore", + "nativeSrc": "8733:6:17", "nodeType": "YulIdentifier", - "src": "10420:2:17" + "src": "8733:6:17" }, + "nativeSrc": "8733:58:17", "nodeType": "YulFunctionCall", - "src": "10420:13:17" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "10434:19:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10436:15:17", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10445:1:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10448:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10441:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10441:10:17" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10436:1:17" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "10416:3:17", - "statements": [] + "src": "8733:58:17" }, - "src": "10412:113:17" + "nativeSrc": "8733:58:17", + "nodeType": "YulExpressionStatement", + "src": "8733:58:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "10559:76:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "10609:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10614:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10605:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10605:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10623:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8812:6:17", "nodeType": "YulIdentifier", - "src": "10598:6:17" + "src": "8812:6:17" }, - "nodeType": "YulFunctionCall", - "src": "10598:27:17" + { + "kind": "number", + "nativeSrc": "8820:2:17", + "nodeType": "YulLiteral", + "src": "8820:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8808:3:17", + "nodeType": "YulIdentifier", + "src": "8808:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "10598:27:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "10540:1:17" + "nativeSrc": "8808:15:17", + "nodeType": "YulFunctionCall", + "src": "8808:15:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10543:6:17" + "hexValue": "7373", + "kind": "string", + "nativeSrc": "8825:4:17", + "nodeType": "YulLiteral", + "src": "8825:4:17", + "type": "", + "value": "ss" } ], "functionName": { - "name": "gt", + "name": "mstore", + "nativeSrc": "8801:6:17", "nodeType": "YulIdentifier", - "src": "10537:2:17" + "src": "8801:6:17" }, + "nativeSrc": "8801:29:17", "nodeType": "YulFunctionCall", - "src": "10537:13:17" + "src": "8801:29:17" }, - "nodeType": "YulIf", - "src": "10534:2:17" + "nativeSrc": "8801:29:17", + "nodeType": "YulExpressionStatement", + "src": "8801:29:17" } ] }, - "name": "copy_memory_to_memory", + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nativeSrc": "8616:221:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nodeType": "YulTypedName", - "src": "10365:3:17", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "10370:3:17", - "type": "" - }, - { - "name": "length", + "name": "memPtr", + "nativeSrc": "8714:6:17", "nodeType": "YulTypedName", - "src": "10375:6:17", + "src": "8714:6:17", "type": "" } ], - "src": "10334:307:17" + "src": "8616:221:17" }, { "body": { + "nativeSrc": "8989:220:17", "nodeType": "YulBlock", - "src": "10698:269:17", + "src": "8989:220:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "10708:22:17", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "10722:4:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10728:1:17", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "10718:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10718:12:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10708:6:17" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "10739:38:17", + "nativeSrc": "8999:74:17", + "nodeType": "YulAssignment", + "src": "8999:74:17", "value": { "arguments": [ { - "name": "data", + "name": "pos", + "nativeSrc": "9065:3:17", "nodeType": "YulIdentifier", - "src": "10769:4:17" + "src": "9065:3:17" }, { "kind": "number", + "nativeSrc": "9070:2:17", "nodeType": "YulLiteral", - "src": "10775:1:17", + "src": "9070:2:17", "type": "", - "value": "1" + "value": "34" } ], "functionName": { - "name": "and", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9006:58:17", "nodeType": "YulIdentifier", - "src": "10765:3:17" + "src": "9006:58:17" }, + "nativeSrc": "9006:67:17", "nodeType": "YulFunctionCall", - "src": "10765:12:17" + "src": "9006:67:17" }, - "variables": [ + "variableNames": [ { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "10743:18:17", - "type": "" + "name": "pos", + "nativeSrc": "8999:3:17", + "nodeType": "YulIdentifier", + "src": "8999:3:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "10816:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "10830:27:17", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10844:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10852:4:17", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "10840:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "10840:17:17" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10830:6:17" - } - ] - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "pos", + "nativeSrc": "9171:3:17", "nodeType": "YulIdentifier", - "src": "10796:18:17" + "src": "9171:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "nativeSrc": "9082:88:17", "nodeType": "YulIdentifier", - "src": "10789:6:17" + "src": "9082:88:17" }, + "nativeSrc": "9082:93:17", "nodeType": "YulFunctionCall", - "src": "10789:26:17" + "src": "9082:93:17" }, - "nodeType": "YulIf", - "src": "10786:2:17" + "nativeSrc": "9082:93:17", + "nodeType": "YulExpressionStatement", + "src": "9082:93:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "10919:42:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "10933:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "10933:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "10933:18:17" - } - ] - }, - "condition": { + "nativeSrc": "9184:19:17", + "nodeType": "YulAssignment", + "src": "9184:19:17", + "value": { "arguments": [ { - "name": "outOfPlaceEncoding", + "name": "pos", + "nativeSrc": "9195:3:17", "nodeType": "YulIdentifier", - "src": "10883:18:17" + "src": "9195:3:17" }, { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "10906:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10914:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "10903:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "10903:14:17" + "kind": "number", + "nativeSrc": "9200:2:17", + "nodeType": "YulLiteral", + "src": "9200:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "9191:3:17", "nodeType": "YulIdentifier", - "src": "10880:2:17" + "src": "9191:3:17" }, + "nativeSrc": "9191:12:17", "nodeType": "YulFunctionCall", - "src": "10880:38:17" + "src": "9191:12:17" }, - "nodeType": "YulIf", - "src": "10877:2:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "9184:3:17", + "nodeType": "YulIdentifier", + "src": "9184:3:17" + } + ] } ] }, - "name": "extract_byte_array_length", + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8843:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", + "name": "pos", + "nativeSrc": "8977:3:17", "nodeType": "YulTypedName", - "src": "10682:4:17", + "src": "8977:3:17", "type": "" } ], "returnVariables": [ { - "name": "length", + "name": "end", + "nativeSrc": "8985:3:17", "nodeType": "YulTypedName", - "src": "10691:6:17", + "src": "8985:3:17", "type": "" } ], - "src": "10647:320:17" + "src": "8843:366:17" }, { "body": { + "nativeSrc": "9386:248:17", "nodeType": "YulBlock", - "src": "11001:152:17", + "src": "9386:248:17", "statements": [ { - "expression": { + "nativeSrc": "9396:26:17", + "nodeType": "YulAssignment", + "src": "9396:26:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11018:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "9408:9:17", + "nodeType": "YulIdentifier", + "src": "9408:9:17" }, { "kind": "number", + "nativeSrc": "9419:2:17", "nodeType": "YulLiteral", - "src": "11021:77:17", + "src": "9419:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "9404:3:17", "nodeType": "YulIdentifier", - "src": "11011:6:17" + "src": "9404:3:17" }, + "nativeSrc": "9404:18:17", "nodeType": "YulFunctionCall", - "src": "11011:88:17" + "src": "9404:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "11011:88:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9396:4:17", + "nodeType": "YulIdentifier", + "src": "9396:4:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11115:1:17", - "type": "", - "value": "4" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9443:9:17", + "nodeType": "YulIdentifier", + "src": "9443:9:17" + }, + { + "kind": "number", + "nativeSrc": "9454:1:17", + "nodeType": "YulLiteral", + "src": "9454:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9439:3:17", + "nodeType": "YulIdentifier", + "src": "9439:3:17" + }, + "nativeSrc": "9439:17:17", + "nodeType": "YulFunctionCall", + "src": "9439:17:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11118:4:17", - "type": "", - "value": "0x11" + "arguments": [ + { + "name": "tail", + "nativeSrc": "9462:4:17", + "nodeType": "YulIdentifier", + "src": "9462:4:17" + }, + { + "name": "headStart", + "nativeSrc": "9468:9:17", + "nodeType": "YulIdentifier", + "src": "9468:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9458:3:17", + "nodeType": "YulIdentifier", + "src": "9458:3:17" + }, + "nativeSrc": "9458:20:17", + "nodeType": "YulFunctionCall", + "src": "9458:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "9432:6:17", "nodeType": "YulIdentifier", - "src": "11108:6:17" + "src": "9432:6:17" }, + "nativeSrc": "9432:47:17", "nodeType": "YulFunctionCall", - "src": "11108:15:17" + "src": "9432:47:17" }, + "nativeSrc": "9432:47:17", "nodeType": "YulExpressionStatement", - "src": "11108:15:17" + "src": "9432:47:17" }, + { + "nativeSrc": "9488:139:17", + "nodeType": "YulAssignment", + "src": "9488:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9622:4:17", + "nodeType": "YulIdentifier", + "src": "9622:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9496:124:17", + "nodeType": "YulIdentifier", + "src": "9496:124:17" + }, + "nativeSrc": "9496:131:17", + "nodeType": "YulFunctionCall", + "src": "9496:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9488:4:17", + "nodeType": "YulIdentifier", + "src": "9488:4:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9215:419:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9366:9:17", + "nodeType": "YulTypedName", + "src": "9366:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9381:4:17", + "nodeType": "YulTypedName", + "src": "9381:4:17", + "type": "" + } + ], + "src": "9215:419:17" + }, + { + "body": { + "nativeSrc": "9746:73:17", + "nodeType": "YulBlock", + "src": "9746:73:17", + "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11139:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9768:6:17", + "nodeType": "YulIdentifier", + "src": "9768:6:17" + }, + { + "kind": "number", + "nativeSrc": "9776:1:17", + "nodeType": "YulLiteral", + "src": "9776:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9764:3:17", + "nodeType": "YulIdentifier", + "src": "9764:3:17" + }, + "nativeSrc": "9764:14:17", + "nodeType": "YulFunctionCall", + "src": "9764:14:17" }, { - "kind": "number", + "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", + "kind": "string", + "nativeSrc": "9780:31:17", "nodeType": "YulLiteral", - "src": "11142:4:17", + "src": "9780:31:17", "type": "", - "value": "0x24" + "value": "ERC20: insufficient allowance" } ], "functionName": { - "name": "revert", + "name": "mstore", + "nativeSrc": "9757:6:17", "nodeType": "YulIdentifier", - "src": "11132:6:17" + "src": "9757:6:17" }, + "nativeSrc": "9757:55:17", "nodeType": "YulFunctionCall", - "src": "11132:15:17" + "src": "9757:55:17" }, + "nativeSrc": "9757:55:17", "nodeType": "YulExpressionStatement", - "src": "11132:15:17" + "src": "9757:55:17" } ] }, - "name": "panic_error_0x11", + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nativeSrc": "9640:179:17", "nodeType": "YulFunctionDefinition", - "src": "10973:180:17" + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "9738:6:17", + "nodeType": "YulTypedName", + "src": "9738:6:17", + "type": "" + } + ], + "src": "9640:179:17" }, { "body": { + "nativeSrc": "9971:220:17", "nodeType": "YulBlock", - "src": "11187:152:17", + "src": "9971:220:17", "statements": [ { - "expression": { + "nativeSrc": "9981:74:17", + "nodeType": "YulAssignment", + "src": "9981:74:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11204:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "10047:3:17", + "nodeType": "YulIdentifier", + "src": "10047:3:17" }, { "kind": "number", + "nativeSrc": "10052:2:17", "nodeType": "YulLiteral", - "src": "11207:77:17", + "src": "10052:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "29" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9988:58:17", "nodeType": "YulIdentifier", - "src": "11197:6:17" + "src": "9988:58:17" }, + "nativeSrc": "9988:67:17", "nodeType": "YulFunctionCall", - "src": "11197:88:17" + "src": "9988:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "11197:88:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9981:3:17", + "nodeType": "YulIdentifier", + "src": "9981:3:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11301:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11304:4:17", - "type": "", - "value": "0x22" + "name": "pos", + "nativeSrc": "10153:3:17", + "nodeType": "YulIdentifier", + "src": "10153:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "nativeSrc": "10064:88:17", "nodeType": "YulIdentifier", - "src": "11294:6:17" + "src": "10064:88:17" }, + "nativeSrc": "10064:93:17", "nodeType": "YulFunctionCall", - "src": "11294:15:17" + "src": "10064:93:17" }, + "nativeSrc": "10064:93:17", "nodeType": "YulExpressionStatement", - "src": "11294:15:17" + "src": "10064:93:17" }, { - "expression": { + "nativeSrc": "10166:19:17", + "nodeType": "YulAssignment", + "src": "10166:19:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11325:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "10177:3:17", + "nodeType": "YulIdentifier", + "src": "10177:3:17" }, { "kind": "number", + "nativeSrc": "10182:2:17", "nodeType": "YulLiteral", - "src": "11328:4:17", + "src": "10182:2:17", "type": "", - "value": "0x24" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "add", + "nativeSrc": "10173:3:17", "nodeType": "YulIdentifier", - "src": "11318:6:17" + "src": "10173:3:17" }, + "nativeSrc": "10173:12:17", "nodeType": "YulFunctionCall", - "src": "11318:15:17" + "src": "10173:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "11318:15:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "10166:3:17", + "nodeType": "YulIdentifier", + "src": "10166:3:17" + } + ] } ] }, - "name": "panic_error_0x22", + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9825:366:17", "nodeType": "YulFunctionDefinition", - "src": "11159:180:17" + "parameters": [ + { + "name": "pos", + "nativeSrc": "9959:3:17", + "nodeType": "YulTypedName", + "src": "9959:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "9967:3:17", + "nodeType": "YulTypedName", + "src": "9967:3:17", + "type": "" + } + ], + "src": "9825:366:17" }, { "body": { + "nativeSrc": "10368:248:17", "nodeType": "YulBlock", - "src": "11393:54:17", + "src": "10368:248:17", "statements": [ { + "nativeSrc": "10378:26:17", "nodeType": "YulAssignment", - "src": "11403:38:17", + "src": "10378:26:17", "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10390:9:17", + "nodeType": "YulIdentifier", + "src": "10390:9:17" + }, + { + "kind": "number", + "nativeSrc": "10401:2:17", + "nodeType": "YulLiteral", + "src": "10401:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10386:3:17", + "nodeType": "YulIdentifier", + "src": "10386:3:17" + }, + "nativeSrc": "10386:18:17", + "nodeType": "YulFunctionCall", + "src": "10386:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10378:4:17", + "nodeType": "YulIdentifier", + "src": "10378:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "10425:9:17", "nodeType": "YulIdentifier", - "src": "11421:5:17" + "src": "10425:9:17" }, { "kind": "number", + "nativeSrc": "10436:1:17", "nodeType": "YulLiteral", - "src": "11428:2:17", + "src": "10436:1:17", "type": "", - "value": "31" + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "10421:3:17", "nodeType": "YulIdentifier", - "src": "11417:3:17" + "src": "10421:3:17" }, + "nativeSrc": "10421:17:17", "nodeType": "YulFunctionCall", - "src": "11417:14:17" + "src": "10421:17:17" }, { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11437:2:17", - "type": "", - "value": "31" + "name": "tail", + "nativeSrc": "10444:4:17", + "nodeType": "YulIdentifier", + "src": "10444:4:17" + }, + { + "name": "headStart", + "nativeSrc": "10450:9:17", + "nodeType": "YulIdentifier", + "src": "10450:9:17" } ], "functionName": { - "name": "not", + "name": "sub", + "nativeSrc": "10440:3:17", "nodeType": "YulIdentifier", - "src": "11433:3:17" + "src": "10440:3:17" }, + "nativeSrc": "10440:20:17", "nodeType": "YulFunctionCall", - "src": "11433:7:17" + "src": "10440:20:17" } ], "functionName": { - "name": "and", + "name": "mstore", + "nativeSrc": "10414:6:17", "nodeType": "YulIdentifier", - "src": "11413:3:17" + "src": "10414:6:17" + }, + "nativeSrc": "10414:47:17", + "nodeType": "YulFunctionCall", + "src": "10414:47:17" + }, + "nativeSrc": "10414:47:17", + "nodeType": "YulExpressionStatement", + "src": "10414:47:17" + }, + { + "nativeSrc": "10470:139:17", + "nodeType": "YulAssignment", + "src": "10470:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10604:4:17", + "nodeType": "YulIdentifier", + "src": "10604:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10478:124:17", + "nodeType": "YulIdentifier", + "src": "10478:124:17" }, + "nativeSrc": "10478:131:17", "nodeType": "YulFunctionCall", - "src": "11413:28:17" + "src": "10478:131:17" }, "variableNames": [ { - "name": "result", + "name": "tail", + "nativeSrc": "10470:4:17", "nodeType": "YulIdentifier", - "src": "11403:6:17" + "src": "10470:4:17" } ] } ] }, - "name": "round_up_to_mul_of_32", + "name": "abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10197:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "10348:9:17", "nodeType": "YulTypedName", - "src": "11376:5:17", + "src": "10348:9:17", "type": "" } ], "returnVariables": [ { - "name": "result", + "name": "tail", + "nativeSrc": "10363:4:17", "nodeType": "YulTypedName", - "src": "11386:6:17", + "src": "10363:4:17", "type": "" } ], - "src": "11345:102:17" + "src": "10197:419:17" }, { "body": { + "nativeSrc": "10728:118:17", "nodeType": "YulBlock", - "src": "11559:116:17", + "src": "10728:118:17", "statements": [ { "expression": { @@ -6831,43 +11433,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "10750:6:17", "nodeType": "YulIdentifier", - "src": "11581:6:17" + "src": "10750:6:17" }, { "kind": "number", + "nativeSrc": "10758:1:17", "nodeType": "YulLiteral", - "src": "11589:1:17", + "src": "10758:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "10746:3:17", "nodeType": "YulIdentifier", - "src": "11577:3:17" + "src": "10746:3:17" }, + "nativeSrc": "10746:14:17", "nodeType": "YulFunctionCall", - "src": "11577:14:17" + "src": "10746:14:17" }, { + "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f206164", "kind": "string", + "nativeSrc": "10762:34:17", "nodeType": "YulLiteral", - "src": "11593:34:17", + "src": "10762:34:17", "type": "", - "value": "ERC20: transfer to the zero addr" + "value": "ERC20: transfer from the zero ad" } ], "functionName": { "name": "mstore", + "nativeSrc": "10739:6:17", "nodeType": "YulIdentifier", - "src": "11570:6:17" + "src": "10739:6:17" }, + "nativeSrc": "10739:58:17", "nodeType": "YulFunctionCall", - "src": "11570:58:17" + "src": "10739:58:17" }, + "nativeSrc": "10739:58:17", "nodeType": "YulExpressionStatement", - "src": "11570:58:17" + "src": "10739:58:17" }, { "expression": { @@ -6876,235 +11487,382 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "10818:6:17", "nodeType": "YulIdentifier", - "src": "11649:6:17" + "src": "10818:6:17" }, { "kind": "number", + "nativeSrc": "10826:2:17", "nodeType": "YulLiteral", - "src": "11657:2:17", + "src": "10826:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "10814:3:17", "nodeType": "YulIdentifier", - "src": "11645:3:17" + "src": "10814:3:17" }, + "nativeSrc": "10814:15:17", "nodeType": "YulFunctionCall", - "src": "11645:15:17" + "src": "10814:15:17" }, { + "hexValue": "6472657373", "kind": "string", + "nativeSrc": "10831:7:17", "nodeType": "YulLiteral", - "src": "11662:5:17", + "src": "10831:7:17", "type": "", - "value": "ess" + "value": "dress" } ], "functionName": { "name": "mstore", + "nativeSrc": "10807:6:17", "nodeType": "YulIdentifier", - "src": "11638:6:17" + "src": "10807:6:17" }, + "nativeSrc": "10807:32:17", "nodeType": "YulFunctionCall", - "src": "11638:30:17" + "src": "10807:32:17" }, + "nativeSrc": "10807:32:17", "nodeType": "YulExpressionStatement", - "src": "11638:30:17" + "src": "10807:32:17" } ] }, - "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nativeSrc": "10622:224:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "10720:6:17", "nodeType": "YulTypedName", - "src": "11551:6:17", + "src": "10720:6:17", "type": "" } ], - "src": "11453:222:17" + "src": "10622:224:17" }, { "body": { + "nativeSrc": "10998:220:17", "nodeType": "YulBlock", - "src": "11787:115:17", + "src": "10998:220:17", "statements": [ { - "expression": { + "nativeSrc": "11008:74:17", + "nodeType": "YulAssignment", + "src": "11008:74:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "11809:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11817:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11805:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "11805:14:17" + "name": "pos", + "nativeSrc": "11074:3:17", + "nodeType": "YulIdentifier", + "src": "11074:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "11079:2:17", "nodeType": "YulLiteral", - "src": "11821:34:17", + "src": "11079:2:17", "type": "", - "value": "ERC20: approve to the zero addre" + "value": "37" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "11015:58:17", "nodeType": "YulIdentifier", - "src": "11798:6:17" + "src": "11015:58:17" }, + "nativeSrc": "11015:67:17", "nodeType": "YulFunctionCall", - "src": "11798:58:17" + "src": "11015:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "11798:58:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11008:3:17", + "nodeType": "YulIdentifier", + "src": "11008:3:17" + } + ] }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "11877:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11885:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11873:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "11873:15:17" + "name": "pos", + "nativeSrc": "11180:3:17", + "nodeType": "YulIdentifier", + "src": "11180:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "nativeSrc": "11091:88:17", + "nodeType": "YulIdentifier", + "src": "11091:88:17" + }, + "nativeSrc": "11091:93:17", + "nodeType": "YulFunctionCall", + "src": "11091:93:17" + }, + "nativeSrc": "11091:93:17", + "nodeType": "YulExpressionStatement", + "src": "11091:93:17" + }, + { + "nativeSrc": "11193:19:17", + "nodeType": "YulAssignment", + "src": "11193:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11204:3:17", + "nodeType": "YulIdentifier", + "src": "11204:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "11209:2:17", "nodeType": "YulLiteral", - "src": "11890:4:17", + "src": "11209:2:17", "type": "", - "value": "ss" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "11200:3:17", "nodeType": "YulIdentifier", - "src": "11866:6:17" + "src": "11200:3:17" }, + "nativeSrc": "11200:12:17", "nodeType": "YulFunctionCall", - "src": "11866:29:17" + "src": "11200:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "11866:29:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "11193:3:17", + "nodeType": "YulIdentifier", + "src": "11193:3:17" + } + ] } ] }, - "name": "store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10852:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "10986:3:17", "nodeType": "YulTypedName", - "src": "11779:6:17", + "src": "10986:3:17", "type": "" } ], - "src": "11681:221:17" + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10994:3:17", + "nodeType": "YulTypedName", + "src": "10994:3:17", + "type": "" + } + ], + "src": "10852:366:17" }, { "body": { + "nativeSrc": "11395:248:17", "nodeType": "YulBlock", - "src": "12014:73:17", + "src": "11395:248:17", "statements": [ + { + "nativeSrc": "11405:26:17", + "nodeType": "YulAssignment", + "src": "11405:26:17", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11417:9:17", + "nodeType": "YulIdentifier", + "src": "11417:9:17" + }, + { + "kind": "number", + "nativeSrc": "11428:2:17", + "nodeType": "YulLiteral", + "src": "11428:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11413:3:17", + "nodeType": "YulIdentifier", + "src": "11413:3:17" + }, + "nativeSrc": "11413:18:17", + "nodeType": "YulFunctionCall", + "src": "11413:18:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11405:4:17", + "nodeType": "YulIdentifier", + "src": "11405:4:17" + } + ] + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "11452:9:17", "nodeType": "YulIdentifier", - "src": "12036:6:17" + "src": "11452:9:17" }, { "kind": "number", + "nativeSrc": "11463:1:17", "nodeType": "YulLiteral", - "src": "12044:1:17", + "src": "11463:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "11448:3:17", "nodeType": "YulIdentifier", - "src": "12032:3:17" + "src": "11448:3:17" }, + "nativeSrc": "11448:17:17", "nodeType": "YulFunctionCall", - "src": "12032:14:17" + "src": "11448:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "12048:31:17", - "type": "", - "value": "ERC20: insufficient allowance" + "arguments": [ + { + "name": "tail", + "nativeSrc": "11471:4:17", + "nodeType": "YulIdentifier", + "src": "11471:4:17" + }, + { + "name": "headStart", + "nativeSrc": "11477:9:17", + "nodeType": "YulIdentifier", + "src": "11477:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11467:3:17", + "nodeType": "YulIdentifier", + "src": "11467:3:17" + }, + "nativeSrc": "11467:20:17", + "nodeType": "YulFunctionCall", + "src": "11467:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "11441:6:17", "nodeType": "YulIdentifier", - "src": "12025:6:17" + "src": "11441:6:17" }, + "nativeSrc": "11441:47:17", "nodeType": "YulFunctionCall", - "src": "12025:55:17" + "src": "11441:47:17" }, + "nativeSrc": "11441:47:17", "nodeType": "YulExpressionStatement", - "src": "12025:55:17" + "src": "11441:47:17" + }, + { + "nativeSrc": "11497:139:17", + "nodeType": "YulAssignment", + "src": "11497:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11631:4:17", + "nodeType": "YulIdentifier", + "src": "11631:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11505:124:17", + "nodeType": "YulIdentifier", + "src": "11505:124:17" + }, + "nativeSrc": "11505:131:17", + "nodeType": "YulFunctionCall", + "src": "11505:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11497:4:17", + "nodeType": "YulIdentifier", + "src": "11497:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", + "name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11224:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "11375:9:17", + "nodeType": "YulTypedName", + "src": "11375:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11390:4:17", "nodeType": "YulTypedName", - "src": "12006:6:17", + "src": "11390:4:17", "type": "" } ], - "src": "11908:179:17" + "src": "11224:419:17" }, { "body": { + "nativeSrc": "11755:116:17", "nodeType": "YulBlock", - "src": "12199:119:17", + "src": "11755:116:17", "statements": [ { "expression": { @@ -7113,43 +11871,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "11777:6:17", "nodeType": "YulIdentifier", - "src": "12221:6:17" + "src": "11777:6:17" }, { "kind": "number", + "nativeSrc": "11785:1:17", "nodeType": "YulLiteral", - "src": "12229:1:17", + "src": "11785:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "11773:3:17", "nodeType": "YulIdentifier", - "src": "12217:3:17" + "src": "11773:3:17" }, + "nativeSrc": "11773:14:17", "nodeType": "YulFunctionCall", - "src": "12217:14:17" + "src": "11773:14:17" }, { + "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472", "kind": "string", + "nativeSrc": "11789:34:17", "nodeType": "YulLiteral", - "src": "12233:34:17", + "src": "11789:34:17", "type": "", - "value": "ERC20: transfer amount exceeds b" + "value": "ERC20: transfer to the zero addr" } ], "functionName": { "name": "mstore", + "nativeSrc": "11766:6:17", "nodeType": "YulIdentifier", - "src": "12210:6:17" + "src": "11766:6:17" }, + "nativeSrc": "11766:58:17", "nodeType": "YulFunctionCall", - "src": "12210:58:17" + "src": "11766:58:17" }, + "nativeSrc": "11766:58:17", "nodeType": "YulExpressionStatement", - "src": "12210:58:17" + "src": "11766:58:17" }, { "expression": { @@ -7158,216 +11925,249 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "11845:6:17", "nodeType": "YulIdentifier", - "src": "12289:6:17" + "src": "11845:6:17" }, { "kind": "number", + "nativeSrc": "11853:2:17", "nodeType": "YulLiteral", - "src": "12297:2:17", + "src": "11853:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "11841:3:17", "nodeType": "YulIdentifier", - "src": "12285:3:17" + "src": "11841:3:17" }, + "nativeSrc": "11841:15:17", "nodeType": "YulFunctionCall", - "src": "12285:15:17" + "src": "11841:15:17" }, { + "hexValue": "657373", "kind": "string", + "nativeSrc": "11858:5:17", "nodeType": "YulLiteral", - "src": "12302:8:17", + "src": "11858:5:17", "type": "", - "value": "alance" + "value": "ess" } ], "functionName": { "name": "mstore", + "nativeSrc": "11834:6:17", "nodeType": "YulIdentifier", - "src": "12278:6:17" + "src": "11834:6:17" }, + "nativeSrc": "11834:30:17", "nodeType": "YulFunctionCall", - "src": "12278:33:17" + "src": "11834:30:17" }, + "nativeSrc": "11834:30:17", "nodeType": "YulExpressionStatement", - "src": "12278:33:17" + "src": "11834:30:17" } ] }, - "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nativeSrc": "11649:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "11747:6:17", "nodeType": "YulTypedName", - "src": "12191:6:17", + "src": "11747:6:17", "type": "" } ], - "src": "12093:225:17" + "src": "11649:222:17" }, { "body": { + "nativeSrc": "12023:220:17", "nodeType": "YulBlock", - "src": "12430:118:17", + "src": "12023:220:17", "statements": [ { - "expression": { + "nativeSrc": "12033:74:17", + "nodeType": "YulAssignment", + "src": "12033:74:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12452:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12460:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12448:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12448:14:17" + "name": "pos", + "nativeSrc": "12099:3:17", + "nodeType": "YulIdentifier", + "src": "12099:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12104:2:17", "nodeType": "YulLiteral", - "src": "12464:34:17", + "src": "12104:2:17", "type": "", - "value": "ERC20: transfer from the zero ad" + "value": "35" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12040:58:17", "nodeType": "YulIdentifier", - "src": "12441:6:17" + "src": "12040:58:17" }, + "nativeSrc": "12040:67:17", "nodeType": "YulFunctionCall", - "src": "12441:58:17" + "src": "12040:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "12441:58:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12033:3:17", + "nodeType": "YulIdentifier", + "src": "12033:3:17" + } + ] }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12520:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12528:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12516:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12516:15:17" + "name": "pos", + "nativeSrc": "12205:3:17", + "nodeType": "YulIdentifier", + "src": "12205:3:17" + } + ], + "functionName": { + "name": "store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", + "nativeSrc": "12116:88:17", + "nodeType": "YulIdentifier", + "src": "12116:88:17" + }, + "nativeSrc": "12116:93:17", + "nodeType": "YulFunctionCall", + "src": "12116:93:17" + }, + "nativeSrc": "12116:93:17", + "nodeType": "YulExpressionStatement", + "src": "12116:93:17" + }, + { + "nativeSrc": "12218:19:17", + "nodeType": "YulAssignment", + "src": "12218:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12229:3:17", + "nodeType": "YulIdentifier", + "src": "12229:3:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12234:2:17", "nodeType": "YulLiteral", - "src": "12533:7:17", + "src": "12234:2:17", "type": "", - "value": "dress" + "value": "64" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "12225:3:17", "nodeType": "YulIdentifier", - "src": "12509:6:17" + "src": "12225:3:17" }, + "nativeSrc": "12225:12:17", "nodeType": "YulFunctionCall", - "src": "12509:32:17" + "src": "12225:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "12509:32:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "12218:3:17", + "nodeType": "YulIdentifier", + "src": "12218:3:17" + } + ] } ] }, - "name": "store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11877:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "12011:3:17", "nodeType": "YulTypedName", - "src": "12422:6:17", + "src": "12011:3:17", "type": "" } ], - "src": "12324:224:17" + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12019:3:17", + "nodeType": "YulTypedName", + "src": "12019:3:17", + "type": "" + } + ], + "src": "11877:366:17" }, { "body": { + "nativeSrc": "12420:248:17", "nodeType": "YulBlock", - "src": "12660:117:17", + "src": "12420:248:17", "statements": [ { - "expression": { + "nativeSrc": "12430:26:17", + "nodeType": "YulAssignment", + "src": "12430:26:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "12682:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12690:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12678:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "12678:14:17" + "name": "headStart", + "nativeSrc": "12442:9:17", + "nodeType": "YulIdentifier", + "src": "12442:9:17" }, { - "kind": "string", + "kind": "number", + "nativeSrc": "12453:2:17", "nodeType": "YulLiteral", - "src": "12694:34:17", + "src": "12453:2:17", "type": "", - "value": "ERC20: approve from the zero add" + "value": "32" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "12438:3:17", "nodeType": "YulIdentifier", - "src": "12671:6:17" + "src": "12438:3:17" }, + "nativeSrc": "12438:18:17", "nodeType": "YulFunctionCall", - "src": "12671:58:17" + "src": "12438:18:17" }, - "nodeType": "YulExpressionStatement", - "src": "12671:58:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12430:4:17", + "nodeType": "YulIdentifier", + "src": "12430:4:17" + } + ] }, { "expression": { @@ -7375,63 +12175,132 @@ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "12477:9:17", "nodeType": "YulIdentifier", - "src": "12750:6:17" + "src": "12477:9:17" }, { "kind": "number", + "nativeSrc": "12488:1:17", "nodeType": "YulLiteral", - "src": "12758:2:17", + "src": "12488:1:17", "type": "", - "value": "32" + "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "12473:3:17", "nodeType": "YulIdentifier", - "src": "12746:3:17" + "src": "12473:3:17" }, + "nativeSrc": "12473:17:17", "nodeType": "YulFunctionCall", - "src": "12746:15:17" + "src": "12473:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "12763:6:17", - "type": "", - "value": "ress" + "arguments": [ + { + "name": "tail", + "nativeSrc": "12496:4:17", + "nodeType": "YulIdentifier", + "src": "12496:4:17" + }, + { + "name": "headStart", + "nativeSrc": "12502:9:17", + "nodeType": "YulIdentifier", + "src": "12502:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12492:3:17", + "nodeType": "YulIdentifier", + "src": "12492:3:17" + }, + "nativeSrc": "12492:20:17", + "nodeType": "YulFunctionCall", + "src": "12492:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "12466:6:17", "nodeType": "YulIdentifier", - "src": "12739:6:17" + "src": "12466:6:17" }, + "nativeSrc": "12466:47:17", "nodeType": "YulFunctionCall", - "src": "12739:31:17" + "src": "12466:47:17" }, + "nativeSrc": "12466:47:17", "nodeType": "YulExpressionStatement", - "src": "12739:31:17" + "src": "12466:47:17" + }, + { + "nativeSrc": "12522:139:17", + "nodeType": "YulAssignment", + "src": "12522:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12656:4:17", + "nodeType": "YulIdentifier", + "src": "12656:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12530:124:17", + "nodeType": "YulIdentifier", + "src": "12530:124:17" + }, + "nativeSrc": "12530:131:17", + "nodeType": "YulFunctionCall", + "src": "12530:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12522:4:17", + "nodeType": "YulIdentifier", + "src": "12522:4:17" + } + ] } ] }, - "name": "store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", + "name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12249:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "12400:9:17", + "nodeType": "YulTypedName", + "src": "12400:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12415:4:17", "nodeType": "YulTypedName", - "src": "12652:6:17", + "src": "12415:4:17", "type": "" } ], - "src": "12554:223:17" + "src": "12249:419:17" }, { "body": { + "nativeSrc": "12780:119:17", "nodeType": "YulBlock", - "src": "12889:118:17", + "src": "12780:119:17", "statements": [ { "expression": { @@ -7440,43 +12309,52 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "12802:6:17", "nodeType": "YulIdentifier", - "src": "12911:6:17" + "src": "12802:6:17" }, { "kind": "number", + "nativeSrc": "12810:1:17", "nodeType": "YulLiteral", - "src": "12919:1:17", + "src": "12810:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "12798:3:17", "nodeType": "YulIdentifier", - "src": "12907:3:17" + "src": "12798:3:17" }, + "nativeSrc": "12798:14:17", "nodeType": "YulFunctionCall", - "src": "12907:14:17" + "src": "12798:14:17" }, { + "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062", "kind": "string", + "nativeSrc": "12814:34:17", "nodeType": "YulLiteral", - "src": "12923:34:17", + "src": "12814:34:17", "type": "", - "value": "ERC20: decreased allowance below" + "value": "ERC20: transfer amount exceeds b" } ], "functionName": { "name": "mstore", + "nativeSrc": "12791:6:17", "nodeType": "YulIdentifier", - "src": "12900:6:17" + "src": "12791:6:17" }, + "nativeSrc": "12791:58:17", "nodeType": "YulFunctionCall", - "src": "12900:58:17" + "src": "12791:58:17" }, + "nativeSrc": "12791:58:17", "nodeType": "YulExpressionStatement", - "src": "12900:58:17" + "src": "12791:58:17" }, { "expression": { @@ -7485,263 +12363,380 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "12870:6:17", "nodeType": "YulIdentifier", - "src": "12979:6:17" + "src": "12870:6:17" }, { "kind": "number", + "nativeSrc": "12878:2:17", "nodeType": "YulLiteral", - "src": "12987:2:17", + "src": "12878:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "12866:3:17", "nodeType": "YulIdentifier", - "src": "12975:3:17" + "src": "12866:3:17" }, + "nativeSrc": "12866:15:17", "nodeType": "YulFunctionCall", - "src": "12975:15:17" + "src": "12866:15:17" }, { + "hexValue": "616c616e6365", "kind": "string", + "nativeSrc": "12883:8:17", "nodeType": "YulLiteral", - "src": "12992:7:17", + "src": "12883:8:17", "type": "", - "value": " zero" + "value": "alance" } ], "functionName": { "name": "mstore", + "nativeSrc": "12859:6:17", "nodeType": "YulIdentifier", - "src": "12968:6:17" + "src": "12859:6:17" }, + "nativeSrc": "12859:33:17", "nodeType": "YulFunctionCall", - "src": "12968:32:17" + "src": "12859:33:17" }, + "nativeSrc": "12859:33:17", "nodeType": "YulExpressionStatement", - "src": "12968:32:17" + "src": "12859:33:17" } ] }, - "name": "store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nativeSrc": "12674:225:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "12772:6:17", "nodeType": "YulTypedName", - "src": "12881:6:17", + "src": "12772:6:17", "type": "" } ], - "src": "12783:224:17" + "src": "12674:225:17" }, { "body": { + "nativeSrc": "13051:220:17", "nodeType": "YulBlock", - "src": "13056:79:17", + "src": "13051:220:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "13113:16:17", - "statements": [ + "nativeSrc": "13061:74:17", + "nodeType": "YulAssignment", + "src": "13061:74:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13122:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13125:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "13115:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "13115:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "13115:12:17" + "name": "pos", + "nativeSrc": "13127:3:17", + "nodeType": "YulIdentifier", + "src": "13127:3:17" + }, + { + "kind": "number", + "nativeSrc": "13132:2:17", + "nodeType": "YulLiteral", + "src": "13132:2:17", + "type": "", + "value": "38" } - ] + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13068:58:17", + "nodeType": "YulIdentifier", + "src": "13068:58:17" + }, + "nativeSrc": "13068:67:17", + "nodeType": "YulFunctionCall", + "src": "13068:67:17" }, - "condition": { + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13061:3:17", + "nodeType": "YulIdentifier", + "src": "13061:3:17" + } + ] + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13079:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13104:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "13086:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "13086:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "13076:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "13076:35:17" + "name": "pos", + "nativeSrc": "13233:3:17", + "nodeType": "YulIdentifier", + "src": "13233:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", + "nativeSrc": "13144:88:17", "nodeType": "YulIdentifier", - "src": "13069:6:17" + "src": "13144:88:17" }, + "nativeSrc": "13144:93:17", "nodeType": "YulFunctionCall", - "src": "13069:43:17" + "src": "13144:93:17" }, - "nodeType": "YulIf", - "src": "13066:2:17" + "nativeSrc": "13144:93:17", + "nodeType": "YulExpressionStatement", + "src": "13144:93:17" + }, + { + "nativeSrc": "13246:19:17", + "nodeType": "YulAssignment", + "src": "13246:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13257:3:17", + "nodeType": "YulIdentifier", + "src": "13257:3:17" + }, + { + "kind": "number", + "nativeSrc": "13262:2:17", + "nodeType": "YulLiteral", + "src": "13262:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13253:3:17", + "nodeType": "YulIdentifier", + "src": "13253:3:17" + }, + "nativeSrc": "13253:12:17", + "nodeType": "YulFunctionCall", + "src": "13253:12:17" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13246:3:17", + "nodeType": "YulIdentifier", + "src": "13246:3:17" + } + ] } ] }, - "name": "validator_revert_t_address", + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12905:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "13039:3:17", + "nodeType": "YulTypedName", + "src": "13039:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13047:3:17", "nodeType": "YulTypedName", - "src": "13049:5:17", + "src": "13047:3:17", "type": "" } ], - "src": "13013:122:17" + "src": "12905:366:17" }, { "body": { + "nativeSrc": "13448:248:17", "nodeType": "YulBlock", - "src": "13184:79:17", + "src": "13448:248:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "13241:16:17", - "statements": [ + "nativeSrc": "13458:26:17", + "nodeType": "YulAssignment", + "src": "13458:26:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13250:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13253:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "13243:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "13243:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "13243:12:17" + "name": "headStart", + "nativeSrc": "13470:9:17", + "nodeType": "YulIdentifier", + "src": "13470:9:17" + }, + { + "kind": "number", + "nativeSrc": "13481:2:17", + "nodeType": "YulLiteral", + "src": "13481:2:17", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "13466:3:17", + "nodeType": "YulIdentifier", + "src": "13466:3:17" + }, + "nativeSrc": "13466:18:17", + "nodeType": "YulFunctionCall", + "src": "13466:18:17" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13458:4:17", + "nodeType": "YulIdentifier", + "src": "13458:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "13505:9:17", "nodeType": "YulIdentifier", - "src": "13207:5:17" + "src": "13505:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "13232:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "13214:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "13214:24:17" + "kind": "number", + "nativeSrc": "13516:1:17", + "nodeType": "YulLiteral", + "src": "13516:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "13501:3:17", + "nodeType": "YulIdentifier", + "src": "13501:3:17" + }, + "nativeSrc": "13501:17:17", + "nodeType": "YulFunctionCall", + "src": "13501:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13524:4:17", + "nodeType": "YulIdentifier", + "src": "13524:4:17" + }, + { + "name": "headStart", + "nativeSrc": "13530:9:17", + "nodeType": "YulIdentifier", + "src": "13530:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13520:3:17", "nodeType": "YulIdentifier", - "src": "13204:2:17" + "src": "13520:3:17" }, + "nativeSrc": "13520:20:17", "nodeType": "YulFunctionCall", - "src": "13204:35:17" + "src": "13520:20:17" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "13494:6:17", "nodeType": "YulIdentifier", - "src": "13197:6:17" + "src": "13494:6:17" }, + "nativeSrc": "13494:47:17", "nodeType": "YulFunctionCall", - "src": "13197:43:17" + "src": "13494:47:17" }, - "nodeType": "YulIf", - "src": "13194:2:17" + "nativeSrc": "13494:47:17", + "nodeType": "YulExpressionStatement", + "src": "13494:47:17" + }, + { + "nativeSrc": "13550:139:17", + "nodeType": "YulAssignment", + "src": "13550:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13684:4:17", + "nodeType": "YulIdentifier", + "src": "13684:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13558:124:17", + "nodeType": "YulIdentifier", + "src": "13558:124:17" + }, + "nativeSrc": "13558:131:17", + "nodeType": "YulFunctionCall", + "src": "13558:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13550:4:17", + "nodeType": "YulIdentifier", + "src": "13550:4:17" + } + ] } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13277:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "13428:9:17", + "nodeType": "YulTypedName", + "src": "13428:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13443:4:17", "nodeType": "YulTypedName", - "src": "13177:5:17", + "src": "13443:4:17", "type": "" } ], - "src": "13141:122:17" + "src": "13277:419:17" } ] }, - "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n mstore(add(memPtr, 32), \" zero\")\n\n }\n\n function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n mstore(add(memPtr, 32), \"ss\")\n\n }\n\n function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n }\n\n function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n mstore(add(memPtr, 32), \"dress\")\n\n }\n\n function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n mstore(add(memPtr, 32), \"ess\")\n\n }\n\n function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n mstore(add(memPtr, 32), \"alance\")\n\n }\n\n function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -7749,10 +12744,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006011905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea26469706673582212200f9924fbbe1897538c5df6d028eca311519c561d8ba5a282778a48d4817e613b64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x246 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x32B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xB0F JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15F SWAP2 SWAP1 PUSH2 0xE2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xAAA JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D0 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xD10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0xB5E JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x260 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25B SWAP2 SWAP1 PUSH2 0xAD3 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x285 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B1 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2FE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2FE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x313 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x320 DUP2 DUP6 DUP6 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x340 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x34D DUP6 DUP3 DUP6 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x358 DUP6 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x378 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x399 DUP2 DUP6 DUP6 PUSH2 0x38A DUP6 DUP10 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x394 SWAP2 SWAP1 PUSH2 0xE64 JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3FB SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x427 SWAP1 PUSH2 0xF42 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x474 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x449 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x474 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x457 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x489 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x497 DUP3 DUP7 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4D3 SWAP1 PUSH2 0xDF2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4E9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x500 PUSH2 0x59F JUMP JUMPDEST SWAP1 POP PUSH2 0x50D DUP2 DUP6 DUP6 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x60E SWAP1 PUSH2 0xDD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x687 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x67E SWAP1 PUSH2 0xD52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x765 SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77E DUP5 DUP5 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7F8 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7F7 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x5A7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x86E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x865 SWAP1 PUSH2 0xDB2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x8DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP1 PUSH2 0xD32 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8E9 DUP4 DUP4 DUP4 PUSH2 0xA76 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x966 SWAP1 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0xE12 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA70 DUP5 DUP5 DUP5 PUSH2 0xA7B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8F DUP2 PUSH2 0x11E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAA4 DUP2 PUSH2 0x11FD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP5 DUP3 DUP6 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xAF4 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB05 DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB43 DUP7 DUP3 DUP8 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB54 DUP7 DUP3 DUP8 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB7F DUP6 DUP3 DUP7 ADD PUSH2 0xA80 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xB90 DUP6 DUP3 DUP7 ADD PUSH2 0xA95 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xBA3 DUP2 PUSH2 0xECC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB4 DUP3 PUSH2 0xE48 JUMP JUMPDEST PUSH2 0xBBE DUP2 DUP6 PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP PUSH2 0xBCE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF0F JUMP JUMPDEST PUSH2 0xBD7 DUP2 PUSH2 0xFD2 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBEF PUSH1 0x23 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xBFA DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC12 PUSH1 0x22 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC1D DUP3 PUSH2 0x1032 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC35 PUSH1 0x1D DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC40 DUP3 PUSH2 0x1081 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x26 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC63 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xC86 DUP3 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH1 0x24 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCA9 DUP3 PUSH2 0x1148 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC1 PUSH1 0x25 DUP4 PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP PUSH2 0xCCC DUP3 PUSH2 0x1197 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE0 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xCEF DUP2 PUSH2 0xF02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD0A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD2A DUP2 DUP5 PUSH2 0xBA9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD4B DUP2 PUSH2 0xBE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD6B DUP2 PUSH2 0xC05 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xC28 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDAB DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDCB DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDEB DUP2 PUSH2 0xC91 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE0B DUP2 PUSH2 0xCB4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE27 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCE6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6F DUP3 PUSH2 0xEF8 JUMP JUMPDEST SWAP2 POP PUSH2 0xE7A DUP4 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH2 0xEAE PUSH2 0xF74 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEC5 DUP3 PUSH2 0xED8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF2D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xF12 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xF3C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xF5A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xF6E JUMPI PUSH2 0xF6D PUSH2 0xFA3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x11EF DUP2 PUSH2 0xEBA JUMP JUMPDEST DUP2 EQ PUSH2 0x11FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1206 DUP2 PUSH2 0xEF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1211 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF SWAP10 0x24 0xFB 0xBE XOR SWAP8 MSTORE8 DUP13 0x5D 0xF6 0xD0 0x28 0xEC LOG3 GT MLOAD SWAP13 JUMP SAR DUP12 0xA5 LOG2 DUP3 PUSH24 0x8A48D4817E613B64736F6C63430008020033000000000000 ", - "sourceMap": "128:420:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;455:91:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;455:91:9:-;513:5;537:2;530:9;;455:91;:::o;5854:234:0:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;640:96:3:-;693:7;719:10;712:17;;640:96;:::o;10457:340:0:-;10575:1;10558:19;;:5;:19;;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11078:411;;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7456:788;;;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:366::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2673:93;2762:3;2673:93;:::i;:::-;2791:2;2786:3;2782:12;2775:19;;2580:220;;;:::o;2806:366::-;;2969:67;3033:2;3028:3;2969:67;:::i;:::-;2962:74;;3045:93;3134:3;3045:93;:::i;:::-;3163:2;3158:3;3154:12;3147:19;;2952:220;;;:::o;3178:366::-;;3341:67;3405:2;3400:3;3341:67;:::i;:::-;3334:74;;3417:93;3506:3;3417:93;:::i;:::-;3535:2;3530:3;3526:12;3519:19;;3324:220;;;:::o;3550:366::-;;3713:67;3777:2;3772:3;3713:67;:::i;:::-;3706:74;;3789:93;3878:3;3789:93;:::i;:::-;3907:2;3902:3;3898:12;3891:19;;3696:220;;;:::o;3922:366::-;;4085:67;4149:2;4144:3;4085:67;:::i;:::-;4078:74;;4161:93;4250:3;4161:93;:::i;:::-;4279:2;4274:3;4270:12;4263:19;;4068:220;;;:::o;4294:366::-;;4457:67;4521:2;4516:3;4457:67;:::i;:::-;4450:74;;4533:93;4622:3;4533:93;:::i;:::-;4651:2;4646:3;4642:12;4635:19;;4440:220;;;:::o;4666:366::-;;4829:67;4893:2;4888:3;4829:67;:::i;:::-;4822:74;;4905:93;4994:3;4905:93;:::i;:::-;5023:2;5018:3;5014:12;5007:19;;4812:220;;;:::o;5038:118::-;5125:24;5143:5;5125:24;:::i;:::-;5120:3;5113:37;5103:53;;:::o;5162:112::-;5245:22;5261:5;5245:22;:::i;:::-;5240:3;5233:35;5223:51;;:::o;5280:210::-;;5405:2;5394:9;5390:18;5382:26;;5418:65;5480:1;5469:9;5465:17;5456:6;5418:65;:::i;:::-;5372:118;;;;:::o;5496:313::-;;5647:2;5636:9;5632:18;5624:26;;5696:9;5690:4;5686:20;5682:1;5671:9;5667:17;5660:47;5724:78;5797:4;5788:6;5724:78;:::i;:::-;5716:86;;5614:195;;;;:::o;5815:419::-;;6019:2;6008:9;6004:18;5996:26;;6068:9;6062:4;6058:20;6054:1;6043:9;6039:17;6032:47;6096:131;6222:4;6096:131;:::i;:::-;6088:139;;5986:248;;;:::o;6240:419::-;;6444:2;6433:9;6429:18;6421:26;;6493:9;6487:4;6483:20;6479:1;6468:9;6464:17;6457:47;6521:131;6647:4;6521:131;:::i;:::-;6513:139;;6411:248;;;:::o;6665:419::-;;6869:2;6858:9;6854:18;6846:26;;6918:9;6912:4;6908:20;6904:1;6893:9;6889:17;6882:47;6946:131;7072:4;6946:131;:::i;:::-;6938:139;;6836:248;;;:::o;7090:419::-;;7294:2;7283:9;7279:18;7271:26;;7343:9;7337:4;7333:20;7329:1;7318:9;7314:17;7307:47;7371:131;7497:4;7371:131;:::i;:::-;7363:139;;7261:248;;;:::o;7515:419::-;;7719:2;7708:9;7704:18;7696:26;;7768:9;7762:4;7758:20;7754:1;7743:9;7739:17;7732:47;7796:131;7922:4;7796:131;:::i;:::-;7788:139;;7686:248;;;:::o;7940:419::-;;8144:2;8133:9;8129:18;8121:26;;8193:9;8187:4;8183:20;8179:1;8168:9;8164:17;8157:47;8221:131;8347:4;8221:131;:::i;:::-;8213:139;;8111:248;;;:::o;8365:419::-;;8569:2;8558:9;8554:18;8546:26;;8618:9;8612:4;8608:20;8604:1;8593:9;8589:17;8582:47;8646:131;8772:4;8646:131;:::i;:::-;8638:139;;8536:248;;;:::o;8790:222::-;;8921:2;8910:9;8906:18;8898:26;;8934:71;9002:1;8991:9;8987:17;8978:6;8934:71;:::i;:::-;8888:124;;;;:::o;9018:214::-;;9145:2;9134:9;9130:18;9122:26;;9158:67;9222:1;9211:9;9207:17;9198:6;9158:67;:::i;:::-;9112:120;;;;:::o;9238:99::-;;9324:5;9318:12;9308:22;;9297:40;;;:::o;9343:169::-;;9461:6;9456:3;9449:19;9501:4;9496:3;9492:14;9477:29;;9439:73;;;;:::o;9518:305::-;;9577:20;9595:1;9577:20;:::i;:::-;9572:25;;9611:20;9629:1;9611:20;:::i;:::-;9606:25;;9765:1;9697:66;9693:74;9690:1;9687:81;9684:2;;;9771:18;;:::i;:::-;9684:2;9815:1;9812;9808:9;9801:16;;9562:261;;;;:::o;9829:96::-;;9895:24;9913:5;9895:24;:::i;:::-;9884:35;;9874:51;;;:::o;9931:90::-;;10008:5;10001:13;9994:21;9983:32;;9973:48;;;:::o;10027:126::-;;10104:42;10097:5;10093:54;10082:65;;10072:81;;;:::o;10159:77::-;;10225:5;10214:16;;10204:32;;;:::o;10242:86::-;;10317:4;10310:5;10306:16;10295:27;;10285:43;;;:::o;10334:307::-;10402:1;10412:113;10426:6;10423:1;10420:13;10412:113;;;10511:1;10506:3;10502:11;10496:18;10492:1;10487:3;10483:11;10476:39;10448:2;10445:1;10441:10;10436:15;;10412:113;;;10543:6;10540:1;10537:13;10534:2;;;10623:1;10614:6;10609:3;10605:16;10598:27;10534:2;10383:258;;;;:::o;10647:320::-;;10728:1;10722:4;10718:12;10708:22;;10775:1;10769:4;10765:12;10796:18;10786:2;;10852:4;10844:6;10840:17;10830:27;;10786:2;10914;10906:6;10903:14;10883:18;10880:38;10877:2;;;10933:18;;:::i;:::-;10877:2;10698:269;;;;:::o;10973:180::-;11021:77;11018:1;11011:88;11118:4;11115:1;11108:15;11142:4;11139:1;11132:15;11159:180;11207:77;11204:1;11197:88;11304:4;11301:1;11294:15;11328:4;11325:1;11318:15;11345:102;;11437:2;11433:7;11428:2;11421:5;11417:14;11413:28;11403:38;;11393:54;;;:::o;11453:222::-;11593:34;11589:1;11581:6;11577:14;11570:58;11662:5;11657:2;11649:6;11645:15;11638:30;11559:116;:::o;11681:221::-;11821:34;11817:1;11809:6;11805:14;11798:58;11890:4;11885:2;11877:6;11873:15;11866:29;11787:115;:::o;11908:179::-;12048:31;12044:1;12036:6;12032:14;12025:55;12014:73;:::o;12093:225::-;12233:34;12229:1;12221:6;12217:14;12210:58;12302:8;12297:2;12289:6;12285:15;12278:33;12199:119;:::o;12324:224::-;12464:34;12460:1;12452:6;12448:14;12441:58;12533:7;12528:2;12520:6;12516:15;12509:32;12430:118;:::o;12554:223::-;12694:34;12690:1;12682:6;12678:14;12671:58;12763:6;12758:2;12750:6;12746:15;12739:31;12660:117;:::o;12783:224::-;12923:34;12919:1;12911:6;12907:14;12900:58;12992:7;12987:2;12979:6;12975:15;12968:32;12889:118;:::o;13013:122::-;13086:24;13104:5;13086:24;:::i;:::-;13079:5;13076:35;13066:2;;13125:1;13122;13115:12;13066:2;13056:79;:::o;13141:122::-;13214:24;13232:5;13214:24;:::i;:::-;13207:5;13204:35;13194:2;;13253:1;13250;13243:12;13194:2;13184:79;:::o" + "object": "608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6011905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea264697066735822122062680aa81bd47e484462a2becb3aeaae50eade823ecfad3c2cf3d21b8ba9f39a64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA7 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x213 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x243 JUMPI PUSH2 0xA7 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x147 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB3 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDE SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH2 0x325 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15C SWAP2 SWAP1 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x364 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AA SWAP2 SWAP1 PUSH2 0xCAB JUMP JUMPDEST PUSH2 0x39A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CD PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x46F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x228 SWAP2 SWAP1 PUSH2 0xB8E JUMP JUMPDEST PUSH2 0x4E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0xBE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26A SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x282 SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2AE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2F9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2F9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2DC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x30D PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x31A DUP2 DUP6 DUP6 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x338 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x345 DUP6 DUP3 DUP6 PUSH2 0x752 JUMP JUMPDEST PUSH2 0x350 DUP6 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x11 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x36E PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x38F DUP2 DUP6 DUP6 PUSH2 0x380 DUP6 DUP10 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x38A SWAP2 SWAP1 PUSH2 0xD9E JUMP JUMPDEST PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3EE SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x41A SWAP1 PUSH2 0xD41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x465 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x43C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x465 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x448 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x479 PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x486 DUP3 DUP7 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C2 SWAP1 PUSH2 0xE41 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4EE PUSH2 0x588 JUMP JUMPDEST SWAP1 POP PUSH2 0x4FB DUP2 DUP6 DUP6 PUSH2 0x7DD JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5F4 SWAP1 PUSH2 0xECF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x66B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x662 SWAP1 PUSH2 0xF5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x75D DUP5 DUP5 PUSH2 0x506 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x7D7 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP1 PUSH2 0xFC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x58F JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x842 SWAP1 PUSH2 0x1053 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8B0 SWAP1 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8C4 DUP4 DUP4 DUP4 PUSH2 0xA49 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93E SWAP1 PUSH2 0x116F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0xA30 SWAP2 SWAP1 PUSH2 0xC0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA43 DUP5 DUP5 DUP5 PUSH2 0xA4E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA8A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA6F JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xAAF DUP3 PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xAB9 DUP2 DUP6 PUSH2 0xA5D JUMP JUMPDEST SWAP4 POP PUSH2 0xAC9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA6D JUMP JUMPDEST PUSH2 0xAD2 DUP2 PUSH2 0xA95 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xAF5 DUP2 DUP5 PUSH2 0xAA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB2A DUP3 PUSH2 0xB01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB3A DUP2 PUSH2 0xB20 JUMP JUMPDEST DUP2 EQ PUSH2 0xB44 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB55 DUP2 PUSH2 0xB31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6D DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP2 EQ PUSH2 0xB77 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB88 DUP2 PUSH2 0xB64 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA4 JUMPI PUSH2 0xBA3 PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBB1 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xBC2 DUP6 DUP3 DUP7 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE0 DUP2 PUSH2 0xBCC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBF9 PUSH0 DUP4 ADD DUP5 PUSH2 0xBD7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC08 DUP2 PUSH2 0xB5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC21 PUSH0 DUP4 ADD DUP5 PUSH2 0xBFF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC3D PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC4B DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xC5C DUP7 DUP3 DUP8 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xC6D DUP7 DUP3 DUP8 ADD PUSH2 0xB7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC8C DUP2 PUSH2 0xC77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCA5 PUSH0 DUP4 ADD DUP5 PUSH2 0xC83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCC0 JUMPI PUSH2 0xCBF PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCCD DUP5 DUP3 DUP6 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCEC JUMPI PUSH2 0xCEB PUSH2 0xAFD JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCF9 DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0A DUP6 DUP3 DUP7 ADD PUSH2 0xB47 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xD58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xD6B JUMPI PUSH2 0xD6A PUSH2 0xD14 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xDA8 DUP3 PUSH2 0xB5B JUMP JUMPDEST SWAP2 POP PUSH2 0xDB3 DUP4 PUSH2 0xB5B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xDCB JUMPI PUSH2 0xDCA PUSH2 0xD71 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH0 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xE2B PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xE36 DUP3 PUSH2 0xDD1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xE58 DUP2 PUSH2 0xE1F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xEB9 PUSH1 0x24 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xEC4 DUP3 PUSH2 0xE5F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xEAD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH0 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF47 PUSH1 0x22 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xF52 DUP3 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xF74 DUP2 PUSH2 0xF3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xFAF PUSH1 0x1D DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0xFBA DUP3 PUSH2 0xF7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFDC DUP2 PUSH2 0xFA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x103D PUSH1 0x25 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1048 DUP3 PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x106A DUP2 PUSH2 0x1031 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x10CB PUSH1 0x23 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x10D6 DUP3 PUSH2 0x1071 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10F8 DUP2 PUSH2 0x10BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH0 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x1159 PUSH1 0x26 DUP4 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP PUSH2 0x1164 DUP3 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1186 DUP2 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH3 0x680AA8 SHL 0xD4 PUSH31 0x484462A2BECB3AEAAE50EADE823ECFAD3C2CF3D21B8BA9F39A64736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "128:420:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;455:91:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3987:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;3255:106::-;3316:7;3342:12;;3335:19;;3255:106;:::o;5203:256::-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;455:91:9:-;513:5;537:2;530:9;;455:91;:::o;5854:234:0:-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;3419:125::-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;6575:427::-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;3740:189::-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;3987:149::-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;655:96:3:-;708:7;734:10;727:17;;655:96;:::o;10457:340:0:-;10575:1;10558:19;;:5;:19;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;7456:788::-;7568:1;7552:18;;:4;:18;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;12073:91::-;;;;:::o;12752:90::-;;;;:::o;7:99:17:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:191;6406:3;6425:20;6443:1;6425:20;:::i;:::-;6420:25;;6459:20;6477:1;6459:20;:::i;:::-;6454:25;;6502:1;6499;6495:9;6488:16;;6523:3;6520:1;6517:10;6514:36;;;6530:18;;:::i;:::-;6514:36;6366:191;;;;:::o;6563:224::-;6703:34;6699:1;6691:6;6687:14;6680:58;6772:7;6767:2;6759:6;6755:15;6748:32;6563:224;:::o;6793:366::-;6935:3;6956:67;7020:2;7015:3;6956:67;:::i;:::-;6949:74;;7032:93;7121:3;7032:93;:::i;:::-;7150:2;7145:3;7141:12;7134:19;;6793:366;;;:::o;7165:419::-;7331:4;7369:2;7358:9;7354:18;7346:26;;7418:9;7412:4;7408:20;7404:1;7393:9;7389:17;7382:47;7446:131;7572:4;7446:131;:::i;:::-;7438:139;;7165:419;;;:::o;7590:223::-;7730:34;7726:1;7718:6;7714:14;7707:58;7799:6;7794:2;7786:6;7782:15;7775:31;7590:223;:::o;7819:366::-;7961:3;7982:67;8046:2;8041:3;7982:67;:::i;:::-;7975:74;;8058:93;8147:3;8058:93;:::i;:::-;8176:2;8171:3;8167:12;8160:19;;7819:366;;;:::o;8191:419::-;8357:4;8395:2;8384:9;8380:18;8372:26;;8444:9;8438:4;8434:20;8430:1;8419:9;8415:17;8408:47;8472:131;8598:4;8472:131;:::i;:::-;8464:139;;8191:419;;;:::o;8616:221::-;8756:34;8752:1;8744:6;8740:14;8733:58;8825:4;8820:2;8812:6;8808:15;8801:29;8616:221;:::o;8843:366::-;8985:3;9006:67;9070:2;9065:3;9006:67;:::i;:::-;8999:74;;9082:93;9171:3;9082:93;:::i;:::-;9200:2;9195:3;9191:12;9184:19;;8843:366;;;:::o;9215:419::-;9381:4;9419:2;9408:9;9404:18;9396:26;;9468:9;9462:4;9458:20;9454:1;9443:9;9439:17;9432:47;9496:131;9622:4;9496:131;:::i;:::-;9488:139;;9215:419;;;:::o;9640:179::-;9780:31;9776:1;9768:6;9764:14;9757:55;9640:179;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9825:366;;;:::o;10197:419::-;10363:4;10401:2;10390:9;10386:18;10378:26;;10450:9;10444:4;10440:20;10436:1;10425:9;10421:17;10414:47;10478:131;10604:4;10478:131;:::i;:::-;10470:139;;10197:419;;;:::o;10622:224::-;10762:34;10758:1;10750:6;10746:14;10739:58;10831:7;10826:2;10818:6;10814:15;10807:32;10622:224;:::o;10852:366::-;10994:3;11015:67;11079:2;11074:3;11015:67;:::i;:::-;11008:74;;11091:93;11180:3;11091:93;:::i;:::-;11209:2;11204:3;11200:12;11193:19;;10852:366;;;:::o;11224:419::-;11390:4;11428:2;11417:9;11413:18;11405:26;;11477:9;11471:4;11467:20;11463:1;11452:9;11448:17;11441:47;11505:131;11631:4;11505:131;:::i;:::-;11497:139;;11224:419;;;:::o;11649:222::-;11789:34;11785:1;11777:6;11773:14;11766:58;11858:5;11853:2;11845:6;11841:15;11834:30;11649:222;:::o;11877:366::-;12019:3;12040:67;12104:2;12099:3;12040:67;:::i;:::-;12033:74;;12116:93;12205:3;12116:93;:::i;:::-;12234:2;12229:3;12225:12;12218:19;;11877:366;;;:::o;12249:419::-;12415:4;12453:2;12442:9;12438:18;12430:26;;12502:9;12496:4;12492:20;12488:1;12477:9;12473:17;12466:47;12530:131;12656:4;12530:131;:::i;:::-;12522:139;;12249:419;;;:::o;12674:225::-;12814:34;12810:1;12802:6;12798:14;12791:58;12883:8;12878:2;12870:6;12866:15;12859:33;12674:225;:::o;12905:366::-;13047:3;13068:67;13132:2;13127:3;13068:67;:::i;:::-;13061:74;;13144:93;13233:3;13144:93;:::i;:::-;13262:2;13257:3;13253:12;13246:19;;12905:366;;;:::o;13277:419::-;13443:4;13481:2;13470:9;13466:18;13458:26;;13530:9;13524:4;13520:20;13516:1;13505:9;13501:17;13494:47;13558:131;13684:4;13558:131;:::i;:::-;13550:139;;13277:419;;;:::o" } }, - "bytecode": "60806040523480156200001157600080fd5b50604051806080016040528060588152602001620016fa605891396040518060400160405280600981526020017f54657374546f6b656e000000000000000000000000000000000000000000000081525081600390805190602001906200007a92919062000244565b5080600490805190602001906200009392919062000244565b505050620000c673100000000000000000000000000000000000000169152d02c7e14af6800000620000cc60201b60201c565b620004a0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200013f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000136906200032c565b60405180910390fd5b62000153600083836200023a60201b60201c565b80600260008282546200016791906200037c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200021a91906200034e565b60405180910390a362000236600083836200023f60201b60201c565b5050565b505050565b505050565b8280546200025290620003e3565b90600052602060002090601f016020900481019282620002765760008555620002c2565b82601f106200029157805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c1578251825591602001919060010190620002a4565b5b509050620002d19190620002d5565b5090565b5b80821115620002f0576000816000905550600101620002d6565b5090565b600062000303601f836200036b565b9150620003108262000477565b602082019050919050565b6200032681620003d9565b82525050565b600060208201905081810360008301526200034781620002f4565b9050919050565b60006020820190506200036560008301846200031b565b92915050565b600082825260208201905092915050565b60006200038982620003d9565b91506200039683620003d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620003ce57620003cd62000419565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620003fc57607f821691505b6020821081141562000413576200041262000448565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61124a80620004b06000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610d10565b60405180910390f35b6100e660048036038101906100e19190610b5e565b610308565b6040516100f39190610cf5565b60405180910390f35b61010461032b565b6040516101119190610e12565b60405180910390f35b610134600480360381019061012f9190610b0f565b610335565b6040516101419190610cf5565b60405180910390f35b610152610364565b60405161015f9190610e2d565b60405180910390f35b610182600480360381019061017d9190610b5e565b61036d565b60405161018f9190610cf5565b60405180910390f35b6101b260048036038101906101ad9190610aaa565b6103a4565b6040516101bf9190610e12565b60405180910390f35b6101d06103ec565b6040516101dd9190610d10565b60405180910390f35b61020060048036038101906101fb9190610b5e565b61047e565b60405161020d9190610cf5565b60405180910390f35b610230600480360381019061022b9190610b5e565b6104f5565b60405161023d9190610cf5565b60405180910390f35b610260600480360381019061025b9190610ad3565b610518565b60405161026d9190610e12565b60405180910390f35b60606003805461028590610f42565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610f42565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610772565b6103588585856107fe565b60019150509392505050565b60006011905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610e64565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610f42565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610f42565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610df2565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fe565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90610dd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067e90610d52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107659190610e12565b60405180910390a3505050565b600061077e8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f857818110156107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190610d72565b60405180910390fd5b6107f784848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590610db2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590610d32565b60405180910390fd5b6108e9838383610a76565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096690610d92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a5d9190610e12565b60405180910390a3610a70848484610a7b565b50505050565b505050565b505050565b600081359050610a8f816111e6565b92915050565b600081359050610aa4816111fd565b92915050565b600060208284031215610abc57600080fd5b6000610aca84828501610a80565b91505092915050565b60008060408385031215610ae657600080fd5b6000610af485828601610a80565b9250506020610b0585828601610a80565b9150509250929050565b600080600060608486031215610b2457600080fd5b6000610b3286828701610a80565b9350506020610b4386828701610a80565b9250506040610b5486828701610a95565b9150509250925092565b60008060408385031215610b7157600080fd5b6000610b7f85828601610a80565b9250506020610b9085828601610a95565b9150509250929050565b610ba381610ecc565b82525050565b6000610bb482610e48565b610bbe8185610e53565b9350610bce818560208601610f0f565b610bd781610fd2565b840191505092915050565b6000610bef602383610e53565b9150610bfa82610fe3565b604082019050919050565b6000610c12602283610e53565b9150610c1d82611032565b604082019050919050565b6000610c35601d83610e53565b9150610c4082611081565b602082019050919050565b6000610c58602683610e53565b9150610c63826110aa565b604082019050919050565b6000610c7b602583610e53565b9150610c86826110f9565b604082019050919050565b6000610c9e602483610e53565b9150610ca982611148565b604082019050919050565b6000610cc1602583610e53565b9150610ccc82611197565b604082019050919050565b610ce081610ef8565b82525050565b610cef81610f02565b82525050565b6000602082019050610d0a6000830184610b9a565b92915050565b60006020820190508181036000830152610d2a8184610ba9565b905092915050565b60006020820190508181036000830152610d4b81610be2565b9050919050565b60006020820190508181036000830152610d6b81610c05565b9050919050565b60006020820190508181036000830152610d8b81610c28565b9050919050565b60006020820190508181036000830152610dab81610c4b565b9050919050565b60006020820190508181036000830152610dcb81610c6e565b9050919050565b60006020820190508181036000830152610deb81610c91565b9050919050565b60006020820190508181036000830152610e0b81610cb4565b9050919050565b6000602082019050610e276000830184610cd7565b92915050565b6000602082019050610e426000830184610ce6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610e6f82610ef8565b9150610e7a83610ef8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610eaf57610eae610f74565b5b828201905092915050565b6000610ec582610ed8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610f2d578082015181840152602081019050610f12565b83811115610f3c576000848401525b50505050565b60006002820490506001821680610f5a57607f821691505b60208210811415610f6e57610f6d610fa3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6111ef81610eba565b81146111fa57600080fd5b50565b61120681610ef8565b811461121157600080fd5b5056fea26469706673582212200f9924fbbe1897538c5df6d028eca311519c561d8ba5a282778a48d4817e613b64736f6c634300080200336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65" + "bytecode": "608060405234801562000010575f80fd5b5060405180608001604052806058815260200162001856605891396040518060400160405280600981526020017f54657374546f6b656e0000000000000000000000000000000000000000000000815250816003908162000072919062000490565b50806004908162000084919062000490565b505050620000b773100000000000000000000000000000000000000169152d02c7e14af6800000620000bd60201b60201c565b62000685565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200012e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012590620005d2565b60405180910390fd5b620001415f83836200022260201b60201c565b8060025f8282546200015491906200061f565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200020391906200066a565b60405180910390a36200021e5f83836200022760201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002a857607f821691505b602082108103620002be57620002bd62000263565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002e5565b6200032e8683620002e5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000378620003726200036c8462000346565b6200034f565b62000346565b9050919050565b5f819050919050565b620003938362000358565b620003ab620003a2826200037f565b848454620002f1565b825550505050565b5f90565b620003c1620003b3565b620003ce81848462000388565b505050565b5b81811015620003f557620003e95f82620003b7565b600181019050620003d4565b5050565b601f82111562000444576200040e81620002c4565b6200041984620002d6565b8101602085101562000429578190505b620004416200043885620002d6565b830182620003d3565b50505b505050565b5f82821c905092915050565b5f620004665f198460080262000449565b1980831691505092915050565b5f62000480838362000455565b9150826002028217905092915050565b6200049b826200022c565b67ffffffffffffffff811115620004b757620004b662000236565b5b620004c3825462000290565b620004d0828285620003f9565b5f60209050601f83116001811462000506575f8415620004f1578287015190505b620004fd858262000473565b8655506200056c565b601f1984166200051686620002c4565b5f5b828110156200053f5784890151825560018201915060208501945060208101905062000518565b868310156200055f57848901516200055b601f89168262000455565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620005ba601f8362000574565b9150620005c78262000584565b602082019050919050565b5f6020820190508181035f830152620005eb81620005ac565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200062b8262000346565b9150620006388362000346565b9250828201905080821115620006535762000652620005f2565b5b92915050565b620006648162000346565b82525050565b5f6020820190506200067f5f83018462000659565b92915050565b6111c380620006935f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610add565b60405180910390f35b6100e360048036038101906100de9190610b8e565b610303565b6040516100f09190610be6565b60405180910390f35b610101610325565b60405161010e9190610c0e565b60405180910390f35b610131600480360381019061012c9190610c27565b61032e565b60405161013e9190610be6565b60405180910390f35b61014f61035c565b60405161015c9190610c92565b60405180910390f35b61017f600480360381019061017a9190610b8e565b610364565b60405161018c9190610be6565b60405180910390f35b6101af60048036038101906101aa9190610cab565b61039a565b6040516101bc9190610c0e565b60405180910390f35b6101cd6103df565b6040516101da9190610add565b60405180910390f35b6101fd60048036038101906101f89190610b8e565b61046f565b60405161020a9190610be6565b60405180910390f35b61022d60048036038101906102289190610b8e565b6104e4565b60405161023a9190610be6565b60405180910390f35b61025d60048036038101906102589190610cd6565b610506565b60405161026a9190610c0e565b60405180910390f35b60606003805461028290610d41565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610d41565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610588565b905061031a81858561058f565b600191505092915050565b5f600254905090565b5f80610338610588565b9050610345858285610752565b6103508585856107dd565b60019150509392505050565b5f6011905090565b5f8061036e610588565b905061038f8185856103808589610506565b61038a9190610d9e565b61058f565b600191505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103ee90610d41565b80601f016020809104026020016040519081016040528092919081815260200182805461041a90610d41565b80156104655780601f1061043c57610100808354040283529160200191610465565b820191905f5260205f20905b81548152906001019060200180831161044857829003601f168201915b5050505050905090565b5f80610479610588565b90505f6104868286610506565b9050838110156104cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c290610e41565b60405180910390fd5b6104d8828686840361058f565b60019250505092915050565b5f806104ee610588565b90506104fb8185856107dd565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490610ecf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107459190610c0e565b60405180910390a3505050565b5f61075d8484610506565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d757818110156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c090610fc5565b60405180910390fd5b6107d6848484840361058f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084290611053565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906110e1565b60405180910390fd5b6108c4838383610a49565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e9061116f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a309190610c0e565b60405180910390a3610a43848484610a4e565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a8a578082015181840152602081019050610a6f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610aaf82610a53565b610ab98185610a5d565b9350610ac9818560208601610a6d565b610ad281610a95565b840191505092915050565b5f6020820190508181035f830152610af58184610aa5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b2a82610b01565b9050919050565b610b3a81610b20565b8114610b44575f80fd5b50565b5f81359050610b5581610b31565b92915050565b5f819050919050565b610b6d81610b5b565b8114610b77575f80fd5b50565b5f81359050610b8881610b64565b92915050565b5f8060408385031215610ba457610ba3610afd565b5b5f610bb185828601610b47565b9250506020610bc285828601610b7a565b9150509250929050565b5f8115159050919050565b610be081610bcc565b82525050565b5f602082019050610bf95f830184610bd7565b92915050565b610c0881610b5b565b82525050565b5f602082019050610c215f830184610bff565b92915050565b5f805f60608486031215610c3e57610c3d610afd565b5b5f610c4b86828701610b47565b9350506020610c5c86828701610b47565b9250506040610c6d86828701610b7a565b9150509250925092565b5f60ff82169050919050565b610c8c81610c77565b82525050565b5f602082019050610ca55f830184610c83565b92915050565b5f60208284031215610cc057610cbf610afd565b5b5f610ccd84828501610b47565b91505092915050565b5f8060408385031215610cec57610ceb610afd565b5b5f610cf985828601610b47565b9250506020610d0a85828601610b47565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5857607f821691505b602082108103610d6b57610d6a610d14565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da882610b5b565b9150610db383610b5b565b9250828201905080821115610dcb57610dca610d71565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610e2b602583610a5d565b9150610e3682610dd1565b604082019050919050565b5f6020820190508181035f830152610e5881610e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610eb9602483610a5d565b9150610ec482610e5f565b604082019050919050565b5f6020820190508181035f830152610ee681610ead565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f47602283610a5d565b9150610f5282610eed565b604082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f610faf601d83610a5d565b9150610fba82610f7b565b602082019050919050565b5f6020820190508181035f830152610fdc81610fa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61103d602583610a5d565b915061104882610fe3565b604082019050919050565b5f6020820190508181035f83015261106a81611031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6110cb602383610a5d565b91506110d682611071565b604082019050919050565b5f6020820190508181035f8301526110f8816110bf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611159602683610a5d565b9150611164826110ff565b604082019050919050565b5f6020820190508181035f8301526111868161114d565b905091905056fea264697066735822122062680aa81bd47e484462a2becb3aeaae50eade823ecfad3c2cf3d21b8ba9f39a64736f6c634300081800336c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d652c206c6f6e6720737472696e67206e616d65" } \ No newline at end of file diff --git a/ts-tests/build/ExplicitRevertReason.json b/ts-tests/build/ExplicitRevertReason.json index 4148670a4b..8d0d50333a 100644 --- a/ts-tests/build/ExplicitRevertReason.json +++ b/ts-tests/build/ExplicitRevertReason.json @@ -22,48 +22,461 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638361ff9c14610030575b600080fd5b61004a600480360381019061004591906100c3565b610060565b604051610057919061013e565b60405180910390f35b6000600a8211156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d9061011e565b60405180910390fd5b819050919050565b6000813590506100bd816101c3565b92915050565b6000602082840312156100d557600080fd5b60006100e3848285016100ae565b91505092915050565b60006100f9602283610159565b915061010482610174565b604082019050919050565b6101188161016a565b82525050565b60006020820190508181036000830152610137816100ec565b9050919050565b6000602082019050610153600083018461010f565b92915050565b600082825260208201905092915050565b6000819050919050565b7f56616c7565206d757374206e6f742062652067726561746572207468616e203160008201527f302e000000000000000000000000000000000000000000000000000000000000602082015250565b6101cc8161016a565b81146101d757600080fd5b5056fea2646970667358221220f5b79fac4ec15269d431dac90daf6e41889961548fd2ccc50d99104587797a5764736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x210 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8361FF9C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0xC3 JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x13E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0xA DUP3 GT ISZERO PUSH2 0xA6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9D SWAP1 PUSH2 0x11E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBD DUP2 PUSH2 0x1C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE3 DUP5 DUP3 DUP6 ADD PUSH2 0xAE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF9 PUSH1 0x22 DUP4 PUSH2 0x159 JUMP JUMPDEST SWAP2 POP PUSH2 0x104 DUP3 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x118 DUP2 PUSH2 0x16A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x137 DUP2 PUSH2 0xEC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x153 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x10F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x56616C7565206D757374206E6F742062652067726561746572207468616E2031 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x302E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x1CC DUP2 PUSH2 0x16A JUMP JUMPDEST DUP2 EQ PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 0xB7 SWAP16 0xAC 0x4E 0xC1 MSTORE PUSH10 0xD431DAC90DAF6E418899 PUSH2 0x548F 0xD2 0xCC 0xC5 0xD SWAP10 LT GASLIMIT DUP8 PUSH26 0x7A5764736F6C6343000802003300000000000000000000000000 ", - "sourceMap": "70:186:10:-:0;;;;;;;;;;;;;;;;;;;" + "object": "608060405234801561000f575f80fd5b506102088061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638361ff9c1461002d575b5f80fd5b610047600480360381019061004291906100e1565b61005d565b604051610054919061011b565b60405180910390f35b5f600a8211156100a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906101b4565b60405180910390fd5b819050919050565b5f80fd5b5f819050919050565b6100c0816100ae565b81146100ca575f80fd5b50565b5f813590506100db816100b7565b92915050565b5f602082840312156100f6576100f56100aa565b5b5f610103848285016100cd565b91505092915050565b610115816100ae565b82525050565b5f60208201905061012e5f83018461010c565b92915050565b5f82825260208201905092915050565b7f56616c7565206d757374206e6f742062652067726561746572207468616e20315f8201527f302e000000000000000000000000000000000000000000000000000000000000602082015250565b5f61019e602283610134565b91506101a982610144565b604082019050919050565b5f6020820190508181035f8301526101cb81610192565b905091905056fea2646970667358221220a72d82662a267230290a08044b3c6ce9ab2f0f7290ed99e973bdc7d2d8a9346064736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8361FF9C EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0xE1 JUMP JUMPDEST PUSH2 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x54 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH1 0xA DUP3 GT ISZERO PUSH2 0xA2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x99 SWAP1 PUSH2 0x1B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC0 DUP2 PUSH2 0xAE JUMP JUMPDEST DUP2 EQ PUSH2 0xCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDB DUP2 PUSH2 0xB7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF6 JUMPI PUSH2 0xF5 PUSH2 0xAA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x103 DUP5 DUP3 DUP6 ADD PUSH2 0xCD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x115 DUP2 PUSH2 0xAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12E PUSH0 DUP4 ADD DUP5 PUSH2 0x10C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x56616C7565206D757374206E6F742062652067726561746572207468616E2031 PUSH0 DUP3 ADD MSTORE PUSH32 0x302E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x19E PUSH1 0x22 DUP4 PUSH2 0x134 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A9 DUP3 PUSH2 0x144 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1CB DUP2 PUSH2 0x192 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0x2D DUP3 PUSH7 0x2A267230290A08 DIV 0x4B EXTCODECOPY PUSH13 0xE9AB2F0F7290ED99E973BDC7D2 0xD8 0xA9 CALLVALUE PUSH1 0x64 PUSH20 0x6F6C634300081800330000000000000000000000 ", + "sourceMap": "71:186:10:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@max10_1048": { + "entryPoint": 93, + "id": 1048, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 205, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 225, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack": { + "entryPoint": 402, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 268, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 436, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 283, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 308, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 174, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 170, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb": { + "entryPoint": 324, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 183, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:2573:17", "nodeType": "YulBlock", - "src": "0:2179:17", + "src": "0:2573:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", + "nodeType": "YulBlock", + "src": "47:35:17", + "statements": [ + { + "nativeSrc": "57:19:17", + "nodeType": "YulAssignment", + "src": "57:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:17", + "nodeType": "YulIdentifier", + "src": "67:5:17" + }, + "nativeSrc": "67:9:17", + "nodeType": "YulFunctionCall", + "src": "67:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:17", + "nodeType": "YulIdentifier", + "src": "57:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:17", + "nodeType": "YulIdentifier", + "src": "187:6:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulFunctionCall", + "src": "187:12:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulExpressionStatement", + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:32:17", + "nodeType": "YulBlock", + "src": "379:32:17", + "statements": [ + { + "nativeSrc": "389:16:17", + "nodeType": "YulAssignment", + "src": "389:16:17", + "value": { + "name": "value", + "nativeSrc": "400:5:17", + "nodeType": "YulIdentifier", + "src": "400:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:17", + "nodeType": "YulTypedName", + "src": "361:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:17", + "nodeType": "YulTypedName", + "src": "371:7:17", + "type": "" + } + ], + "src": "334:77:17" + }, + { + "body": { + "nativeSrc": "460:79:17", + "nodeType": "YulBlock", + "src": "460:79:17", + "statements": [ + { + "body": { + "nativeSrc": "517:16:17", + "nodeType": "YulBlock", + "src": "517:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:17", + "nodeType": "YulLiteral", + "src": "526:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:17", + "nodeType": "YulLiteral", + "src": "529:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:17", + "nodeType": "YulIdentifier", + "src": "519:6:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulFunctionCall", + "src": "519:12:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulExpressionStatement", + "src": "519:12:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:17", + "nodeType": "YulIdentifier", + "src": "483:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:17", + "nodeType": "YulIdentifier", + "src": "508:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:17", + "nodeType": "YulIdentifier", + "src": "490:17:17" + }, + "nativeSrc": "490:24:17", + "nodeType": "YulFunctionCall", + "src": "490:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:17", + "nodeType": "YulIdentifier", + "src": "480:2:17" + }, + "nativeSrc": "480:35:17", + "nodeType": "YulFunctionCall", + "src": "480:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:17", + "nodeType": "YulIdentifier", + "src": "473:6:17" + }, + "nativeSrc": "473:43:17", + "nodeType": "YulFunctionCall", + "src": "473:43:17" + }, + "nativeSrc": "470:63:17", + "nodeType": "YulIf", + "src": "470:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:17", + "nodeType": "YulTypedName", + "src": "453:5:17", + "type": "" + } + ], + "src": "417:122:17" + }, + { + "body": { + "nativeSrc": "597:87:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "597:87:17", "statements": [ { + "nativeSrc": "607:29:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "607:29:17", "value": { "arguments": [ { "name": "offset", + "nativeSrc": "629:6:17", "nodeType": "YulIdentifier", - "src": "91:6:17" + "src": "629:6:17" } ], "functionName": { "name": "calldataload", + "nativeSrc": "616:12:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "616:12:17" }, + "nativeSrc": "616:20:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "616:20:17" }, "variableNames": [ { "name": "value", + "nativeSrc": "607:5:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "607:5:17" } ] }, @@ -72,87 +485,85 @@ "arguments": [ { "name": "value", + "nativeSrc": "672:5:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "672:5:17" } ], "functionName": { "name": "validator_revert_t_uint256", + "nativeSrc": "645:26:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "645:26:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "645:33:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "src": "645:33:17" } ] }, "name": "abi_decode_t_uint256", + "nativeSrc": "545:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", + "nativeSrc": "575:6:17", "nodeType": "YulTypedName", - "src": "37:6:17", + "src": "575:6:17", "type": "" }, { "name": "end", + "nativeSrc": "583:3:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "583:3:17", "type": "" } ], "returnVariables": [ { "name": "value", + "nativeSrc": "591:5:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "591:5:17", "type": "" } ], - "src": "7:139:17" + "src": "545:139:17" }, { "body": { + "nativeSrc": "756:263:17", "nodeType": "YulBlock", - "src": "218:196:17", + "src": "756:263:17", "statements": [ { "body": { + "nativeSrc": "802:83:17", "nodeType": "YulBlock", - "src": "264:16:17", + "src": "802:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "273:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "276:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "804:77:17", "nodeType": "YulIdentifier", - "src": "266:6:17" + "src": "804:77:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulFunctionCall", - "src": "266:12:17" + "src": "804:79:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulExpressionStatement", - "src": "266:12:17" + "src": "804:79:17" } ] }, @@ -162,110 +573,131 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "777:7:17", "nodeType": "YulIdentifier", - "src": "239:7:17" + "src": "777:7:17" }, { "name": "headStart", + "nativeSrc": "786:9:17", "nodeType": "YulIdentifier", - "src": "248:9:17" + "src": "786:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "773:3:17", "nodeType": "YulIdentifier", - "src": "235:3:17" + "src": "773:3:17" }, + "nativeSrc": "773:23:17", "nodeType": "YulFunctionCall", - "src": "235:23:17" + "src": "773:23:17" }, { "kind": "number", + "nativeSrc": "798:2:17", "nodeType": "YulLiteral", - "src": "260:2:17", + "src": "798:2:17", "type": "", "value": "32" } ], "functionName": { "name": "slt", + "nativeSrc": "769:3:17", "nodeType": "YulIdentifier", - "src": "231:3:17" + "src": "769:3:17" }, + "nativeSrc": "769:32:17", "nodeType": "YulFunctionCall", - "src": "231:32:17" + "src": "769:32:17" }, + "nativeSrc": "766:119:17", "nodeType": "YulIf", - "src": "228:2:17" + "src": "766:119:17" }, { + "nativeSrc": "895:117:17", "nodeType": "YulBlock", - "src": "290:117:17", + "src": "895:117:17", "statements": [ { + "nativeSrc": "910:15:17", "nodeType": "YulVariableDeclaration", - "src": "305:15:17", + "src": "910:15:17", "value": { "kind": "number", + "nativeSrc": "924:1:17", "nodeType": "YulLiteral", - "src": "319:1:17", + "src": "924:1:17", "type": "", "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "914:6:17", "nodeType": "YulTypedName", - "src": "309:6:17", + "src": "914:6:17", "type": "" } ] }, { + "nativeSrc": "939:63:17", "nodeType": "YulAssignment", - "src": "334:63:17", + "src": "939:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "974:9:17", "nodeType": "YulIdentifier", - "src": "369:9:17" + "src": "974:9:17" }, { "name": "offset", + "nativeSrc": "985:6:17", "nodeType": "YulIdentifier", - "src": "380:6:17" + "src": "985:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "970:3:17", "nodeType": "YulIdentifier", - "src": "365:3:17" + "src": "970:3:17" }, + "nativeSrc": "970:22:17", "nodeType": "YulFunctionCall", - "src": "365:22:17" + "src": "970:22:17" }, { "name": "dataEnd", + "nativeSrc": "994:7:17", "nodeType": "YulIdentifier", - "src": "389:7:17" + "src": "994:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "949:20:17", "nodeType": "YulIdentifier", - "src": "344:20:17" + "src": "949:20:17" }, + "nativeSrc": "949:53:17", "nodeType": "YulFunctionCall", - "src": "344:53:17" + "src": "949:53:17" }, "variableNames": [ { "name": "value0", + "nativeSrc": "939:6:17", "nodeType": "YulIdentifier", - "src": "334:6:17" + "src": "939:6:17" } ] } @@ -274,812 +706,785 @@ ] }, "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "690:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "726:9:17", "nodeType": "YulTypedName", - "src": "188:9:17", + "src": "726:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "737:7:17", "nodeType": "YulTypedName", - "src": "199:7:17", + "src": "737:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "749:6:17", "nodeType": "YulTypedName", - "src": "211:6:17", + "src": "749:6:17", "type": "" } ], - "src": "152:262:17" + "src": "690:329:17" }, { "body": { + "nativeSrc": "1090:53:17", "nodeType": "YulBlock", - "src": "566:220:17", + "src": "1090:53:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "576:74:17", - "value": { + "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "1107:3:17", "nodeType": "YulIdentifier", - "src": "642:3:17" + "src": "1107:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "647:2:17", - "type": "", - "value": "34" + "arguments": [ + { + "name": "value", + "nativeSrc": "1130:5:17", + "nodeType": "YulIdentifier", + "src": "1130:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1112:17:17", + "nodeType": "YulIdentifier", + "src": "1112:17:17" + }, + "nativeSrc": "1112:24:17", + "nodeType": "YulFunctionCall", + "src": "1112:24:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "mstore", + "nativeSrc": "1100:6:17", "nodeType": "YulIdentifier", - "src": "583:58:17" + "src": "1100:6:17" }, + "nativeSrc": "1100:37:17", "nodeType": "YulFunctionCall", - "src": "583:67:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "576:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "748:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb", - "nodeType": "YulIdentifier", - "src": "659:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "659:93:17" + "src": "1100:37:17" }, + "nativeSrc": "1100:37:17", "nodeType": "YulExpressionStatement", - "src": "659:93:17" - }, - { - "nodeType": "YulAssignment", - "src": "761:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "772:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "777:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "768:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "768:12:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "761:3:17" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "554:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "562:3:17", - "type": "" - } - ], - "src": "420:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "857:53:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "874:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "897:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "879:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "879:24:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "867:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "867:37:17" - }, - "nodeType": "YulExpressionStatement", - "src": "867:37:17" + "src": "1100:37:17" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1025:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1078:5:17", "nodeType": "YulTypedName", - "src": "845:5:17", + "src": "1078:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "1085:3:17", "nodeType": "YulTypedName", - "src": "852:3:17", + "src": "1085:3:17", "type": "" } ], - "src": "792:118:17" + "src": "1025:118:17" }, { "body": { + "nativeSrc": "1247:124:17", "nodeType": "YulBlock", - "src": "1087:248:17", + "src": "1247:124:17", "statements": [ { + "nativeSrc": "1257:26:17", "nodeType": "YulAssignment", - "src": "1097:26:17", + "src": "1257:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "1269:9:17", "nodeType": "YulIdentifier", - "src": "1109:9:17" + "src": "1269:9:17" }, { "kind": "number", + "nativeSrc": "1280:2:17", "nodeType": "YulLiteral", - "src": "1120:2:17", + "src": "1280:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "1265:3:17", "nodeType": "YulIdentifier", - "src": "1105:3:17" + "src": "1265:3:17" }, + "nativeSrc": "1265:18:17", "nodeType": "YulFunctionCall", - "src": "1105:18:17" + "src": "1265:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "1257:4:17", "nodeType": "YulIdentifier", - "src": "1097:4:17" + "src": "1257:4:17" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "1337:6:17", + "nodeType": "YulIdentifier", + "src": "1337:6:17" + }, { "arguments": [ { "name": "headStart", + "nativeSrc": "1350:9:17", "nodeType": "YulIdentifier", - "src": "1144:9:17" + "src": "1350:9:17" }, { "kind": "number", + "nativeSrc": "1361:1:17", "nodeType": "YulLiteral", - "src": "1155:1:17", + "src": "1361:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "1346:3:17", "nodeType": "YulIdentifier", - "src": "1140:3:17" + "src": "1346:3:17" }, + "nativeSrc": "1346:17:17", "nodeType": "YulFunctionCall", - "src": "1140:17:17" + "src": "1346:17:17" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1293:43:17", + "nodeType": "YulIdentifier", + "src": "1293:43:17" + }, + "nativeSrc": "1293:71:17", + "nodeType": "YulFunctionCall", + "src": "1293:71:17" + }, + "nativeSrc": "1293:71:17", + "nodeType": "YulExpressionStatement", + "src": "1293:71:17" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1149:222:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1219:9:17", + "nodeType": "YulTypedName", + "src": "1219:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1231:6:17", + "nodeType": "YulTypedName", + "src": "1231:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1242:4:17", + "nodeType": "YulTypedName", + "src": "1242:4:17", + "type": "" + } + ], + "src": "1149:222:17" + }, + { + "body": { + "nativeSrc": "1473:73:17", + "nodeType": "YulBlock", + "src": "1473:73:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1490:3:17", + "nodeType": "YulIdentifier", + "src": "1490:3:17" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1163:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1169:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1159:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1159:20:17" + "name": "length", + "nativeSrc": "1495:6:17", + "nodeType": "YulIdentifier", + "src": "1495:6:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "1483:6:17", "nodeType": "YulIdentifier", - "src": "1133:6:17" + "src": "1483:6:17" }, + "nativeSrc": "1483:19:17", "nodeType": "YulFunctionCall", - "src": "1133:47:17" + "src": "1483:19:17" }, + "nativeSrc": "1483:19:17", "nodeType": "YulExpressionStatement", - "src": "1133:47:17" + "src": "1483:19:17" }, { + "nativeSrc": "1511:29:17", "nodeType": "YulAssignment", - "src": "1189:139:17", + "src": "1511:29:17", "value": { "arguments": [ { - "name": "tail", + "name": "pos", + "nativeSrc": "1530:3:17", "nodeType": "YulIdentifier", - "src": "1323:4:17" + "src": "1530:3:17" + }, + { + "kind": "number", + "nativeSrc": "1535:4:17", + "nodeType": "YulLiteral", + "src": "1535:4:17", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack", + "name": "add", + "nativeSrc": "1526:3:17", "nodeType": "YulIdentifier", - "src": "1197:124:17" + "src": "1526:3:17" }, + "nativeSrc": "1526:14:17", "nodeType": "YulFunctionCall", - "src": "1197:131:17" + "src": "1526:14:17" }, "variableNames": [ { - "name": "tail", + "name": "updated_pos", + "nativeSrc": "1511:11:17", "nodeType": "YulIdentifier", - "src": "1189:4:17" + "src": "1511:11:17" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb__to_t_string_memory_ptr__fromStack_reversed", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1377:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "pos", + "nativeSrc": "1445:3:17", + "nodeType": "YulTypedName", + "src": "1445:3:17", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1450:6:17", "nodeType": "YulTypedName", - "src": "1067:9:17", + "src": "1450:6:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "updated_pos", + "nativeSrc": "1461:11:17", "nodeType": "YulTypedName", - "src": "1082:4:17", + "src": "1461:11:17", "type": "" } ], - "src": "916:419:17" + "src": "1377:169:17" }, { "body": { + "nativeSrc": "1658:115:17", "nodeType": "YulBlock", - "src": "1439:124:17", + "src": "1658:115:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "1449:26:17", - "value": { + "expression": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1461:9:17" + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1680:6:17", + "nodeType": "YulIdentifier", + "src": "1680:6:17" + }, + { + "kind": "number", + "nativeSrc": "1688:1:17", + "nodeType": "YulLiteral", + "src": "1688:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1676:3:17", + "nodeType": "YulIdentifier", + "src": "1676:3:17" + }, + "nativeSrc": "1676:14:17", + "nodeType": "YulFunctionCall", + "src": "1676:14:17" }, { - "kind": "number", + "hexValue": "56616c7565206d757374206e6f742062652067726561746572207468616e2031", + "kind": "string", + "nativeSrc": "1692:34:17", "nodeType": "YulLiteral", - "src": "1472:2:17", + "src": "1692:34:17", "type": "", - "value": "32" + "value": "Value must not be greater than 1" } ], "functionName": { - "name": "add", + "name": "mstore", + "nativeSrc": "1669:6:17", "nodeType": "YulIdentifier", - "src": "1457:3:17" + "src": "1669:6:17" }, + "nativeSrc": "1669:58:17", "nodeType": "YulFunctionCall", - "src": "1457:18:17" + "src": "1669:58:17" }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1449:4:17" - } - ] + "nativeSrc": "1669:58:17", + "nodeType": "YulExpressionStatement", + "src": "1669:58:17" }, { "expression": { "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1529:6:17" - }, { "arguments": [ { - "name": "headStart", + "name": "memPtr", + "nativeSrc": "1748:6:17", "nodeType": "YulIdentifier", - "src": "1542:9:17" + "src": "1748:6:17" }, { "kind": "number", + "nativeSrc": "1756:2:17", "nodeType": "YulLiteral", - "src": "1553:1:17", + "src": "1756:2:17", "type": "", - "value": "0" + "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "1744:3:17", "nodeType": "YulIdentifier", - "src": "1538:3:17" + "src": "1744:3:17" }, + "nativeSrc": "1744:15:17", "nodeType": "YulFunctionCall", - "src": "1538:17:17" + "src": "1744:15:17" + }, + { + "hexValue": "302e", + "kind": "string", + "nativeSrc": "1761:4:17", + "nodeType": "YulLiteral", + "src": "1761:4:17", + "type": "", + "value": "0." } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "mstore", + "nativeSrc": "1737:6:17", "nodeType": "YulIdentifier", - "src": "1485:43:17" + "src": "1737:6:17" }, + "nativeSrc": "1737:29:17", "nodeType": "YulFunctionCall", - "src": "1485:71:17" + "src": "1737:29:17" }, + "nativeSrc": "1737:29:17", "nodeType": "YulExpressionStatement", - "src": "1485:71:17" + "src": "1737:29:17" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "name": "store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb", + "nativeSrc": "1552:221:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1411:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1423:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "memPtr", + "nativeSrc": "1650:6:17", "nodeType": "YulTypedName", - "src": "1434:4:17", + "src": "1650:6:17", "type": "" } ], - "src": "1341:222:17" + "src": "1552:221:17" }, { "body": { + "nativeSrc": "1925:220:17", "nodeType": "YulBlock", - "src": "1665:73:17", + "src": "1925:220:17", "statements": [ { - "expression": { + "nativeSrc": "1935:74:17", + "nodeType": "YulAssignment", + "src": "1935:74:17", + "value": { "arguments": [ { "name": "pos", + "nativeSrc": "2001:3:17", "nodeType": "YulIdentifier", - "src": "1682:3:17" + "src": "2001:3:17" }, { - "name": "length", + "kind": "number", + "nativeSrc": "2006:2:17", + "nodeType": "YulLiteral", + "src": "2006:2:17", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1942:58:17", + "nodeType": "YulIdentifier", + "src": "1942:58:17" + }, + "nativeSrc": "1942:67:17", + "nodeType": "YulFunctionCall", + "src": "1942:67:17" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "1935:3:17", + "nodeType": "YulIdentifier", + "src": "1935:3:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2107:3:17", "nodeType": "YulIdentifier", - "src": "1687:6:17" + "src": "2107:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb", + "nativeSrc": "2018:88:17", "nodeType": "YulIdentifier", - "src": "1675:6:17" + "src": "2018:88:17" }, + "nativeSrc": "2018:93:17", "nodeType": "YulFunctionCall", - "src": "1675:19:17" + "src": "2018:93:17" }, + "nativeSrc": "2018:93:17", "nodeType": "YulExpressionStatement", - "src": "1675:19:17" + "src": "2018:93:17" }, { + "nativeSrc": "2120:19:17", "nodeType": "YulAssignment", - "src": "1703:29:17", + "src": "2120:19:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "2131:3:17", "nodeType": "YulIdentifier", - "src": "1722:3:17" + "src": "2131:3:17" }, { "kind": "number", + "nativeSrc": "2136:2:17", "nodeType": "YulLiteral", - "src": "1727:4:17", + "src": "2136:2:17", "type": "", - "value": "0x20" + "value": "64" } ], "functionName": { "name": "add", + "nativeSrc": "2127:3:17", "nodeType": "YulIdentifier", - "src": "1718:3:17" + "src": "2127:3:17" }, + "nativeSrc": "2127:12:17", "nodeType": "YulFunctionCall", - "src": "1718:14:17" + "src": "2127:12:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "2120:3:17", "nodeType": "YulIdentifier", - "src": "1703:11:17" + "src": "2120:3:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack", + "nativeSrc": "1779:366:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", + "nativeSrc": "1913:3:17", "nodeType": "YulTypedName", - "src": "1637:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1642:6:17", + "src": "1913:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "1921:3:17", "nodeType": "YulTypedName", - "src": "1653:11:17", + "src": "1921:3:17", "type": "" } ], - "src": "1569:169:17" + "src": "1779:366:17" }, { "body": { + "nativeSrc": "2322:248:17", "nodeType": "YulBlock", - "src": "1789:32:17", + "src": "2322:248:17", "statements": [ { + "nativeSrc": "2332:26:17", "nodeType": "YulAssignment", - "src": "1799:16:17", + "src": "2332:26:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1810:5:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2344:9:17", + "nodeType": "YulIdentifier", + "src": "2344:9:17" + }, + { + "kind": "number", + "nativeSrc": "2355:2:17", + "nodeType": "YulLiteral", + "src": "2355:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2340:3:17", + "nodeType": "YulIdentifier", + "src": "2340:3:17" + }, + "nativeSrc": "2340:18:17", + "nodeType": "YulFunctionCall", + "src": "2340:18:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "2332:4:17", "nodeType": "YulIdentifier", - "src": "1799:7:17" + "src": "2332:4:17" } ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1771:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1781:7:17", - "type": "" - } - ], - "src": "1744:77:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1933:115:17", - "statements": [ + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "2379:9:17", "nodeType": "YulIdentifier", - "src": "1955:6:17" + "src": "2379:9:17" }, { "kind": "number", + "nativeSrc": "2390:1:17", "nodeType": "YulLiteral", - "src": "1963:1:17", + "src": "2390:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "2375:3:17", "nodeType": "YulIdentifier", - "src": "1951:3:17" + "src": "2375:3:17" }, + "nativeSrc": "2375:17:17", "nodeType": "YulFunctionCall", - "src": "1951:14:17" + "src": "2375:17:17" }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "1967:34:17", - "type": "", - "value": "Value must not be greater than 1" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1944:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1944:58:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1944:58:17" - }, - { - "expression": { - "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "tail", + "nativeSrc": "2398:4:17", "nodeType": "YulIdentifier", - "src": "2023:6:17" + "src": "2398:4:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2031:2:17", - "type": "", - "value": "32" + "name": "headStart", + "nativeSrc": "2404:9:17", + "nodeType": "YulIdentifier", + "src": "2404:9:17" } ], "functionName": { - "name": "add", + "name": "sub", + "nativeSrc": "2394:3:17", "nodeType": "YulIdentifier", - "src": "2019:3:17" + "src": "2394:3:17" }, + "nativeSrc": "2394:20:17", "nodeType": "YulFunctionCall", - "src": "2019:15:17" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "2036:4:17", - "type": "", - "value": "0." + "src": "2394:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "2368:6:17", "nodeType": "YulIdentifier", - "src": "2012:6:17" + "src": "2368:6:17" }, + "nativeSrc": "2368:47:17", "nodeType": "YulFunctionCall", - "src": "2012:29:17" + "src": "2368:47:17" }, + "nativeSrc": "2368:47:17", "nodeType": "YulExpressionStatement", - "src": "2012:29:17" - } - ] - }, - "name": "store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "1925:6:17", - "type": "" - } - ], - "src": "1827:221:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2097:79:17", - "statements": [ + "src": "2368:47:17" + }, { - "body": { - "nodeType": "YulBlock", - "src": "2154:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2163:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2166:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2156:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2156:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2156:12:17" - } - ] - }, - "condition": { + "nativeSrc": "2424:139:17", + "nodeType": "YulAssignment", + "src": "2424:139:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2120:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2145:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "2127:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2127:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "2117:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "2117:35:17" + "name": "tail", + "nativeSrc": "2558:4:17", + "nodeType": "YulIdentifier", + "src": "2558:4:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2432:124:17", "nodeType": "YulIdentifier", - "src": "2110:6:17" + "src": "2432:124:17" }, + "nativeSrc": "2432:131:17", "nodeType": "YulFunctionCall", - "src": "2110:43:17" + "src": "2432:131:17" }, - "nodeType": "YulIf", - "src": "2107:2:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2424:4:17", + "nodeType": "YulIdentifier", + "src": "2424:4:17" + } + ] } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2151:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "2302:9:17", + "nodeType": "YulTypedName", + "src": "2302:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2317:4:17", "nodeType": "YulTypedName", - "src": "2090:5:17", + "src": "2317:4:17", "type": "" } ], - "src": "2054:122:17" + "src": "2151:419:17" } ] }, - "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb(memPtr) {\n\n mstore(add(memPtr, 0), \"Value must not be greater than 1\")\n\n mstore(add(memPtr, 32), \"0.\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb(memPtr) {\n\n mstore(add(memPtr, 0), \"Value must not be greater than 1\")\n\n mstore(add(memPtr, 32), \"0.\")\n\n }\n\n function abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_67d39c0f113ae963272b5c54ce39dca04678e71029a89755d3ef53dd8acf76eb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -1087,10 +1492,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80638361ff9c14610030575b600080fd5b61004a600480360381019061004591906100c3565b610060565b604051610057919061013e565b60405180910390f35b6000600a8211156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d9061011e565b60405180910390fd5b819050919050565b6000813590506100bd816101c3565b92915050565b6000602082840312156100d557600080fd5b60006100e3848285016100ae565b91505092915050565b60006100f9602283610159565b915061010482610174565b604082019050919050565b6101188161016a565b82525050565b60006020820190508181036000830152610137816100ec565b9050919050565b6000602082019050610153600083018461010f565b92915050565b600082825260208201905092915050565b6000819050919050565b7f56616c7565206d757374206e6f742062652067726561746572207468616e203160008201527f302e000000000000000000000000000000000000000000000000000000000000602082015250565b6101cc8161016a565b81146101d757600080fd5b5056fea2646970667358221220f5b79fac4ec15269d431dac90daf6e41889961548fd2ccc50d99104587797a5764736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8361FF9C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0xC3 JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x13E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0xA DUP3 GT ISZERO PUSH2 0xA6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9D SWAP1 PUSH2 0x11E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBD DUP2 PUSH2 0x1C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE3 DUP5 DUP3 DUP6 ADD PUSH2 0xAE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF9 PUSH1 0x22 DUP4 PUSH2 0x159 JUMP JUMPDEST SWAP2 POP PUSH2 0x104 DUP3 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x118 DUP2 PUSH2 0x16A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x137 DUP2 PUSH2 0xEC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x153 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x10F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x56616C7565206D757374206E6F742062652067726561746572207468616E2031 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x302E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x1CC DUP2 PUSH2 0x16A JUMP JUMPDEST DUP2 EQ PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 0xB7 SWAP16 0xAC 0x4E 0xC1 MSTORE PUSH10 0xD431DAC90DAF6E418899 PUSH2 0x548F 0xD2 0xCC 0xC5 0xD SWAP10 LT GASLIMIT DUP8 PUSH26 0x7A5764736F6C6343000802003300000000000000000000000000 ", - "sourceMap": "70:186:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;106:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;153:7;180:2;176:1;:6;172:56;;;184:44;;;;;;;;;;:::i;:::-;;;;;;;;172:56;245:1;238:8;;106:148;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:366::-;;583:67;647:2;642:3;583:67;:::i;:::-;576:74;;659:93;748:3;659:93;:::i;:::-;777:2;772:3;768:12;761:19;;566:220;;;:::o;792:118::-;879:24;897:5;879:24;:::i;:::-;874:3;867:37;857:53;;:::o;916:419::-;;1120:2;1109:9;1105:18;1097:26;;1169:9;1163:4;1159:20;1155:1;1144:9;1140:17;1133:47;1197:131;1323:4;1197:131;:::i;:::-;1189:139;;1087:248;;;:::o;1341:222::-;;1472:2;1461:9;1457:18;1449:26;;1485:71;1553:1;1542:9;1538:17;1529:6;1485:71;:::i;:::-;1439:124;;;;:::o;1569:169::-;;1687:6;1682:3;1675:19;1727:4;1722:3;1718:14;1703:29;;1665:73;;;;:::o;1744:77::-;;1810:5;1799:16;;1789:32;;;:::o;1827:221::-;1967:34;1963:1;1955:6;1951:14;1944:58;2036:4;2031:2;2023:6;2019:15;2012:29;1933:115;:::o;2054:122::-;2127:24;2145:5;2127:24;:::i;:::-;2120:5;2117:35;2107:2;;2166:1;2163;2156:12;2107:2;2097:79;:::o" + "object": "608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638361ff9c1461002d575b5f80fd5b610047600480360381019061004291906100e1565b61005d565b604051610054919061011b565b60405180910390f35b5f600a8211156100a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906101b4565b60405180910390fd5b819050919050565b5f80fd5b5f819050919050565b6100c0816100ae565b81146100ca575f80fd5b50565b5f813590506100db816100b7565b92915050565b5f602082840312156100f6576100f56100aa565b5b5f610103848285016100cd565b91505092915050565b610115816100ae565b82525050565b5f60208201905061012e5f83018461010c565b92915050565b5f82825260208201905092915050565b7f56616c7565206d757374206e6f742062652067726561746572207468616e20315f8201527f302e000000000000000000000000000000000000000000000000000000000000602082015250565b5f61019e602283610134565b91506101a982610144565b604082019050919050565b5f6020820190508181035f8301526101cb81610192565b905091905056fea2646970667358221220a72d82662a267230290a08044b3c6ce9ab2f0f7290ed99e973bdc7d2d8a9346064736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8361FF9C EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0xE1 JUMP JUMPDEST PUSH2 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x54 SWAP2 SWAP1 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH1 0xA DUP3 GT ISZERO PUSH2 0xA2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x99 SWAP1 PUSH2 0x1B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC0 DUP2 PUSH2 0xAE JUMP JUMPDEST DUP2 EQ PUSH2 0xCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDB DUP2 PUSH2 0xB7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF6 JUMPI PUSH2 0xF5 PUSH2 0xAA JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x103 DUP5 DUP3 DUP6 ADD PUSH2 0xCD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x115 DUP2 PUSH2 0xAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12E PUSH0 DUP4 ADD DUP5 PUSH2 0x10C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x56616C7565206D757374206E6F742062652067726561746572207468616E2031 PUSH0 DUP3 ADD MSTORE PUSH32 0x302E000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x19E PUSH1 0x22 DUP4 PUSH2 0x134 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A9 DUP3 PUSH2 0x144 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1CB DUP2 PUSH2 0x192 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0x2D DUP3 PUSH7 0x2A267230290A08 DIV 0x4B EXTCODECOPY PUSH13 0xE9AB2F0F7290ED99E973BDC7D2 0xD8 0xA9 CALLVALUE PUSH1 0x64 PUSH20 0x6F6C634300081800330000000000000000000000 ", + "sourceMap": "71:186:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;107:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;154:7;181:2;177:1;:6;173:56;;;185:44;;;;;;;;;;:::i;:::-;;;;;;;;173:56;246:1;239:8;;107:148;;;:::o;88:117:17:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:169::-;1461:11;1495:6;1490:3;1483:19;1535:4;1530:3;1526:14;1511:29;;1377:169;;;;:::o;1552:221::-;1692:34;1688:1;1680:6;1676:14;1669:58;1761:4;1756:2;1748:6;1744:15;1737:29;1552:221;:::o;1779:366::-;1921:3;1942:67;2006:2;2001:3;1942:67;:::i;:::-;1935:74;;2018:93;2107:3;2018:93;:::i;:::-;2136:2;2131:3;2127:12;2120:19;;1779:366;;;:::o;2151:419::-;2317:4;2355:2;2344:9;2340:18;2332:26;;2404:9;2398:4;2394:20;2390:1;2379:9;2375:17;2368:47;2432:131;2558:4;2432:131;:::i;:::-;2424:139;;2151:419;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638361ff9c14610030575b600080fd5b61004a600480360381019061004591906100c3565b610060565b604051610057919061013e565b60405180910390f35b6000600a8211156100a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009d9061011e565b60405180910390fd5b819050919050565b6000813590506100bd816101c3565b92915050565b6000602082840312156100d557600080fd5b60006100e3848285016100ae565b91505092915050565b60006100f9602283610159565b915061010482610174565b604082019050919050565b6101188161016a565b82525050565b60006020820190508181036000830152610137816100ec565b9050919050565b6000602082019050610153600083018461010f565b92915050565b600082825260208201905092915050565b6000819050919050565b7f56616c7565206d757374206e6f742062652067726561746572207468616e203160008201527f302e000000000000000000000000000000000000000000000000000000000000602082015250565b6101cc8161016a565b81146101d757600080fd5b5056fea2646970667358221220f5b79fac4ec15269d431dac90daf6e41889961548fd2ccc50d99104587797a5764736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506102088061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80638361ff9c1461002d575b5f80fd5b610047600480360381019061004291906100e1565b61005d565b604051610054919061011b565b60405180910390f35b5f600a8211156100a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610099906101b4565b60405180910390fd5b819050919050565b5f80fd5b5f819050919050565b6100c0816100ae565b81146100ca575f80fd5b50565b5f813590506100db816100b7565b92915050565b5f602082840312156100f6576100f56100aa565b5b5f610103848285016100cd565b91505092915050565b610115816100ae565b82525050565b5f60208201905061012e5f83018461010c565b92915050565b5f82825260208201905092915050565b7f56616c7565206d757374206e6f742062652067726561746572207468616e20315f8201527f302e000000000000000000000000000000000000000000000000000000000000602082015250565b5f61019e602283610134565b91506101a982610144565b604082019050919050565b5f6020820190508181035f8301526101cb81610192565b905091905056fea2646970667358221220a72d82662a267230290a08044b3c6ce9ab2f0f7290ed99e973bdc7d2d8a9346064736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/Factory.json b/ts-tests/build/Factory.json index 215010db3c..b1873928f6 100644 --- a/ts-tests/build/Factory.json +++ b/ts-tests/build/Factory.json @@ -29,48 +29,443 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5061032c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633f8308e61461003b578063659aaab314610057575b600080fd5b61005560048036038101906100509190610182565b610073565b005b610071600480360381019061006c9190610182565b6100ae565b005b60005b818110156100aa57600180600082825461009091906101ab565b9250508190555080806100a29061020b565b915050610076565b5050565b60005b8181101561015d5760006040516100c790610161565b604051809103906000f0801580156100e3573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806101559061020b565b9150506100b1565b5050565b605c8061029b83390190565b60008135905061017c81610283565b92915050565b60006020828403121561019457600080fd5b60006101a28482850161016d565b91505092915050565b60006101b682610201565b91506101c183610201565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f6576101f5610254565b5b828201905092915050565b6000819050919050565b600061021682610201565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024957610248610254565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028c81610201565b811461029757600080fd5b5056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122006977fabfa6fad9f18e547cefafa048f5053e1fe13432a1739a038e99b0e5bfa64736f6c63430008020033a26469706673582212205951ff1ea51ca5f0682de8486c4357738419fddee36bcacc3c55764371c24e8a64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3F8308E6 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x659AAAB3 EQ PUSH2 0x57 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x182 JUMP JUMPDEST PUSH2 0x73 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x71 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x182 JUMP JUMPDEST PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x1AB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH2 0xA2 SWAP1 PUSH2 0x20B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP1 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x155 SWAP1 PUSH2 0x20B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x5C DUP1 PUSH2 0x29B DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17C DUP2 PUSH2 0x283 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A2 DUP5 DUP3 DUP6 ADD PUSH2 0x16D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B6 DUP3 PUSH2 0x201 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C1 DUP4 PUSH2 0x201 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F6 JUMPI PUSH2 0x1F5 PUSH2 0x254 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x216 DUP3 PUSH2 0x201 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x249 JUMPI PUSH2 0x248 PUSH2 0x254 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x28C DUP2 PUSH2 0x201 JUMP JUMPDEST DUP2 EQ PUSH2 0x297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD SWAP8 PUSH32 0xABFA6FAD9F18E547CEFAFA048F5053E1FE13432A1739A038E99B0E5BFA64736F PUSH13 0x63430008020033A26469706673 PC 0x22 SLT KECCAK256 MSIZE MLOAD SELFDESTRUCT 0x1E 0xA5 SHR 0xA5 CREATE PUSH9 0x2DE8486C4357738419 REVERT 0xDE 0xE3 PUSH12 0xCACC3C55764371C24E8A6473 PUSH16 0x6C634300080200330000000000000000 ", + "object": "608060405234801561000f575f80fd5b506102a38061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633f8308e614610038578063659aaab314610054575b5f80fd5b610052600480360381019061004d919061018a565b610070565b005b61006e6004803603810190610069919061018a565b6100a3565b005b5f5b8181101561009f576001805f82825461008b91906101e2565b925050819055508080600101915050610072565b5050565b5f5b81811015610143575f6040516100ba90610147565b604051809103905ff0801580156100d3573d5f803e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806001019150506100a5565b5050565b60588061021683390190565b5f80fd5b5f819050919050565b61016981610157565b8114610173575f80fd5b50565b5f8135905061018481610160565b92915050565b5f6020828403121561019f5761019e610153565b5b5f6101ac84828501610176565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101ec82610157565b91506101f783610157565b925082820190508082111561020f5761020e6101b5565b5b9291505056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122096e825e9e8bfff64b6ab6a0e09a6d6a5daa298a417186e1c79bcb7804e4078f564736f6c63430008180033a26469706673582212201b70abb804e95aa37474a67abddf36091e89dc59b6128b8453de6fcc7b84aa2564736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A3 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3F8308E6 EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0x659AAAB3 EQ PUSH2 0x54 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x52 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH2 0x70 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x69 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH2 0xA3 JUMP JUMPDEST STOP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x1 DUP1 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x72 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x143 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH2 0xBA SWAP1 PUSH2 0x147 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xD3 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP PUSH0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x58 DUP1 PUSH2 0x216 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169 DUP2 PUSH2 0x157 JUMP JUMPDEST DUP2 EQ PUSH2 0x173 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x184 DUP2 PUSH2 0x160 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19F JUMPI PUSH2 0x19E PUSH2 0x153 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1AC DUP5 DUP3 DUP6 ADD PUSH2 0x176 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1EC DUP3 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F7 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x20F JUMPI PUSH2 0x20E PUSH2 0x1B5 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x3E DUP1 PUSH1 0x1A PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 0xE8 0x25 0xE9 0xE8 0xBF SELFDESTRUCT PUSH5 0xB6AB6A0E09 0xA6 0xD6 0xA5 0xDA LOG2 SWAP9 LOG4 OR XOR PUSH15 0x1C79BCB7804E4078F564736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL PUSH17 0xABB804E95AA37474A67ABDDF36091E89DC MSIZE 0xB6 SLT DUP12 DUP5 MSTORE8 0xDE PUSH16 0xCC7B84AA2564736F6C63430008180033 ", "sourceMap": "71:405:11:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@createContractLoop_1089": { + "entryPoint": 163, + "id": 1089, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@incrementLoop_1111": { + "entryPoint": 112, + "id": 1111, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_t_uint256": { + "entryPoint": 374, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 394, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 482, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 343, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 437, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 339, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 352, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:1405:17", "nodeType": "YulBlock", - "src": "0:1364:17", + "src": "0:1405:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", + "nodeType": "YulBlock", + "src": "47:35:17", + "statements": [ + { + "nativeSrc": "57:19:17", + "nodeType": "YulAssignment", + "src": "57:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:17", + "nodeType": "YulIdentifier", + "src": "67:5:17" + }, + "nativeSrc": "67:9:17", + "nodeType": "YulFunctionCall", + "src": "67:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:17", + "nodeType": "YulIdentifier", + "src": "57:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:17", + "nodeType": "YulIdentifier", + "src": "187:6:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulFunctionCall", + "src": "187:12:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulExpressionStatement", + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:32:17", + "nodeType": "YulBlock", + "src": "379:32:17", + "statements": [ + { + "nativeSrc": "389:16:17", + "nodeType": "YulAssignment", + "src": "389:16:17", + "value": { + "name": "value", + "nativeSrc": "400:5:17", + "nodeType": "YulIdentifier", + "src": "400:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:17", + "nodeType": "YulTypedName", + "src": "361:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:17", + "nodeType": "YulTypedName", + "src": "371:7:17", + "type": "" + } + ], + "src": "334:77:17" + }, + { + "body": { + "nativeSrc": "460:79:17", + "nodeType": "YulBlock", + "src": "460:79:17", + "statements": [ + { + "body": { + "nativeSrc": "517:16:17", + "nodeType": "YulBlock", + "src": "517:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:17", + "nodeType": "YulLiteral", + "src": "526:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:17", + "nodeType": "YulLiteral", + "src": "529:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:17", + "nodeType": "YulIdentifier", + "src": "519:6:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulFunctionCall", + "src": "519:12:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulExpressionStatement", + "src": "519:12:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:17", + "nodeType": "YulIdentifier", + "src": "483:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:17", + "nodeType": "YulIdentifier", + "src": "508:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:17", + "nodeType": "YulIdentifier", + "src": "490:17:17" + }, + "nativeSrc": "490:24:17", + "nodeType": "YulFunctionCall", + "src": "490:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:17", + "nodeType": "YulIdentifier", + "src": "480:2:17" + }, + "nativeSrc": "480:35:17", + "nodeType": "YulFunctionCall", + "src": "480:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:17", + "nodeType": "YulIdentifier", + "src": "473:6:17" + }, + "nativeSrc": "473:43:17", + "nodeType": "YulFunctionCall", + "src": "473:43:17" + }, + "nativeSrc": "470:63:17", + "nodeType": "YulIf", + "src": "470:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:17", + "nodeType": "YulTypedName", + "src": "453:5:17", + "type": "" + } + ], + "src": "417:122:17" + }, + { + "body": { + "nativeSrc": "597:87:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "597:87:17", "statements": [ { + "nativeSrc": "607:29:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "607:29:17", "value": { "arguments": [ { "name": "offset", + "nativeSrc": "629:6:17", "nodeType": "YulIdentifier", - "src": "91:6:17" + "src": "629:6:17" } ], "functionName": { "name": "calldataload", + "nativeSrc": "616:12:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "616:12:17" }, + "nativeSrc": "616:20:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "616:20:17" }, "variableNames": [ { "name": "value", + "nativeSrc": "607:5:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "607:5:17" } ] }, @@ -79,87 +474,85 @@ "arguments": [ { "name": "value", + "nativeSrc": "672:5:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "672:5:17" } ], "functionName": { "name": "validator_revert_t_uint256", + "nativeSrc": "645:26:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "645:26:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "645:33:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "src": "645:33:17" } ] }, "name": "abi_decode_t_uint256", + "nativeSrc": "545:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", + "nativeSrc": "575:6:17", "nodeType": "YulTypedName", - "src": "37:6:17", + "src": "575:6:17", "type": "" }, { "name": "end", + "nativeSrc": "583:3:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "583:3:17", "type": "" } ], "returnVariables": [ { "name": "value", + "nativeSrc": "591:5:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "591:5:17", "type": "" } ], - "src": "7:139:17" + "src": "545:139:17" }, { "body": { + "nativeSrc": "756:263:17", "nodeType": "YulBlock", - "src": "218:196:17", + "src": "756:263:17", "statements": [ { "body": { + "nativeSrc": "802:83:17", "nodeType": "YulBlock", - "src": "264:16:17", + "src": "802:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "273:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "276:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "804:77:17", "nodeType": "YulIdentifier", - "src": "266:6:17" + "src": "804:77:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulFunctionCall", - "src": "266:12:17" + "src": "804:79:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulExpressionStatement", - "src": "266:12:17" + "src": "804:79:17" } ] }, @@ -169,110 +562,131 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "777:7:17", "nodeType": "YulIdentifier", - "src": "239:7:17" + "src": "777:7:17" }, { "name": "headStart", + "nativeSrc": "786:9:17", "nodeType": "YulIdentifier", - "src": "248:9:17" + "src": "786:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "773:3:17", "nodeType": "YulIdentifier", - "src": "235:3:17" + "src": "773:3:17" }, + "nativeSrc": "773:23:17", "nodeType": "YulFunctionCall", - "src": "235:23:17" + "src": "773:23:17" }, { "kind": "number", + "nativeSrc": "798:2:17", "nodeType": "YulLiteral", - "src": "260:2:17", + "src": "798:2:17", "type": "", "value": "32" } ], "functionName": { "name": "slt", + "nativeSrc": "769:3:17", "nodeType": "YulIdentifier", - "src": "231:3:17" + "src": "769:3:17" }, + "nativeSrc": "769:32:17", "nodeType": "YulFunctionCall", - "src": "231:32:17" + "src": "769:32:17" }, + "nativeSrc": "766:119:17", "nodeType": "YulIf", - "src": "228:2:17" + "src": "766:119:17" }, { + "nativeSrc": "895:117:17", "nodeType": "YulBlock", - "src": "290:117:17", + "src": "895:117:17", "statements": [ { + "nativeSrc": "910:15:17", "nodeType": "YulVariableDeclaration", - "src": "305:15:17", + "src": "910:15:17", "value": { "kind": "number", + "nativeSrc": "924:1:17", "nodeType": "YulLiteral", - "src": "319:1:17", + "src": "924:1:17", "type": "", "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "914:6:17", "nodeType": "YulTypedName", - "src": "309:6:17", + "src": "914:6:17", "type": "" } ] }, { + "nativeSrc": "939:63:17", "nodeType": "YulAssignment", - "src": "334:63:17", + "src": "939:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "974:9:17", "nodeType": "YulIdentifier", - "src": "369:9:17" + "src": "974:9:17" }, { "name": "offset", + "nativeSrc": "985:6:17", "nodeType": "YulIdentifier", - "src": "380:6:17" + "src": "985:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "970:3:17", "nodeType": "YulIdentifier", - "src": "365:3:17" + "src": "970:3:17" }, + "nativeSrc": "970:22:17", "nodeType": "YulFunctionCall", - "src": "365:22:17" + "src": "970:22:17" }, { "name": "dataEnd", + "nativeSrc": "994:7:17", "nodeType": "YulIdentifier", - "src": "389:7:17" + "src": "994:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "949:20:17", "nodeType": "YulIdentifier", - "src": "344:20:17" + "src": "949:20:17" }, + "nativeSrc": "949:53:17", "nodeType": "YulFunctionCall", - "src": "344:53:17" + "src": "949:53:17" }, "variableNames": [ { "name": "value0", + "nativeSrc": "939:6:17", "nodeType": "YulIdentifier", - "src": "334:6:17" + "src": "939:6:17" } ] } @@ -281,593 +695,347 @@ ] }, "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "690:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "726:9:17", "nodeType": "YulTypedName", - "src": "188:9:17", + "src": "726:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "737:7:17", "nodeType": "YulTypedName", - "src": "199:7:17", + "src": "737:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "749:6:17", "nodeType": "YulTypedName", - "src": "211:6:17", + "src": "749:6:17", "type": "" } ], - "src": "152:262:17" + "src": "690:329:17" }, { "body": { + "nativeSrc": "1053:152:17", "nodeType": "YulBlock", - "src": "464:261:17", + "src": "1053:152:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "474:25:17", - "value": { + "expression": { "arguments": [ { - "name": "x", - "nodeType": "YulIdentifier", - "src": "497:1:17" + "kind": "number", + "nativeSrc": "1070:1:17", + "nodeType": "YulLiteral", + "src": "1070:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1073:77:17", + "nodeType": "YulLiteral", + "src": "1073:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "cleanup_t_uint256", + "name": "mstore", + "nativeSrc": "1063:6:17", "nodeType": "YulIdentifier", - "src": "479:17:17" + "src": "1063:6:17" }, + "nativeSrc": "1063:88:17", "nodeType": "YulFunctionCall", - "src": "479:20:17" + "src": "1063:88:17" }, - "variableNames": [ - { - "name": "x", - "nodeType": "YulIdentifier", - "src": "474:1:17" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "508:25:17", - "value": { - "arguments": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "531:1:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "513:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "513:20:17" - }, - "variableNames": [ - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "508:1:17" - } - ] + "nativeSrc": "1063:88:17", + "nodeType": "YulExpressionStatement", + "src": "1063:88:17" }, { - "body": { - "nodeType": "YulBlock", - "src": "671:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "673:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "673:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "673:18:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "x", - "nodeType": "YulIdentifier", - "src": "592:1:17" + "kind": "number", + "nativeSrc": "1167:1:17", + "nodeType": "YulLiteral", + "src": "1167:1:17", + "type": "", + "value": "4" }, { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "599:66:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - }, - { - "name": "y", - "nodeType": "YulIdentifier", - "src": "667:1:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "595:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "595:74:17" + "kind": "number", + "nativeSrc": "1170:4:17", + "nodeType": "YulLiteral", + "src": "1170:4:17", + "type": "", + "value": "0x11" } ], "functionName": { - "name": "gt", + "name": "mstore", + "nativeSrc": "1160:6:17", "nodeType": "YulIdentifier", - "src": "589:2:17" + "src": "1160:6:17" }, + "nativeSrc": "1160:15:17", "nodeType": "YulFunctionCall", - "src": "589:81:17" + "src": "1160:15:17" }, - "nodeType": "YulIf", - "src": "586:2:17" + "nativeSrc": "1160:15:17", + "nodeType": "YulExpressionStatement", + "src": "1160:15:17" }, { - "nodeType": "YulAssignment", - "src": "703:16:17", - "value": { + "expression": { "arguments": [ { - "name": "x", - "nodeType": "YulIdentifier", - "src": "714:1:17" + "kind": "number", + "nativeSrc": "1191:1:17", + "nodeType": "YulLiteral", + "src": "1191:1:17", + "type": "", + "value": "0" }, { - "name": "y", - "nodeType": "YulIdentifier", - "src": "717:1:17" + "kind": "number", + "nativeSrc": "1194:4:17", + "nodeType": "YulLiteral", + "src": "1194:4:17", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "add", + "name": "revert", + "nativeSrc": "1184:6:17", "nodeType": "YulIdentifier", - "src": "710:3:17" + "src": "1184:6:17" }, + "nativeSrc": "1184:15:17", "nodeType": "YulFunctionCall", - "src": "710:9:17" + "src": "1184:15:17" }, - "variableNames": [ - { - "name": "sum", - "nodeType": "YulIdentifier", - "src": "703:3:17" - } - ] - } - ] - }, - "name": "checked_add_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nodeType": "YulTypedName", - "src": "451:1:17", - "type": "" - }, - { - "name": "y", - "nodeType": "YulTypedName", - "src": "454:1:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nodeType": "YulTypedName", - "src": "460:3:17", - "type": "" - } - ], - "src": "420:305:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "776:32:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "786:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "797:5:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "786:7:17" - } - ] + "nativeSrc": "1184:15:17", + "nodeType": "YulExpressionStatement", + "src": "1184:15:17" } ] }, - "name": "cleanup_t_uint256", + "name": "panic_error_0x11", + "nativeSrc": "1025:180:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "758:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "768:7:17", - "type": "" - } - ], - "src": "731:77:17" + "src": "1025:180:17" }, { "body": { + "nativeSrc": "1255:147:17", "nodeType": "YulBlock", - "src": "857:190:17", + "src": "1255:147:17", "statements": [ { + "nativeSrc": "1265:25:17", "nodeType": "YulAssignment", - "src": "867:33:17", + "src": "1265:25:17", "value": { "arguments": [ { - "name": "value", + "name": "x", + "nativeSrc": "1288:1:17", "nodeType": "YulIdentifier", - "src": "894:5:17" + "src": "1288:1:17" } ], "functionName": { "name": "cleanup_t_uint256", + "nativeSrc": "1270:17:17", "nodeType": "YulIdentifier", - "src": "876:17:17" + "src": "1270:17:17" }, + "nativeSrc": "1270:20:17", "nodeType": "YulFunctionCall", - "src": "876:24:17" + "src": "1270:20:17" }, "variableNames": [ { - "name": "value", + "name": "x", + "nativeSrc": "1265:1:17", "nodeType": "YulIdentifier", - "src": "867:5:17" + "src": "1265:1:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "990:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "992:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "992:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "992:18:17" - } - ] - }, - "condition": { + "nativeSrc": "1299:25:17", + "nodeType": "YulAssignment", + "src": "1299:25:17", + "value": { "arguments": [ { - "name": "value", + "name": "y", + "nativeSrc": "1322:1:17", "nodeType": "YulIdentifier", - "src": "915:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "922:66:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "src": "1322:1:17" } ], "functionName": { - "name": "eq", + "name": "cleanup_t_uint256", + "nativeSrc": "1304:17:17", "nodeType": "YulIdentifier", - "src": "912:2:17" + "src": "1304:17:17" }, + "nativeSrc": "1304:20:17", "nodeType": "YulFunctionCall", - "src": "912:77:17" + "src": "1304:20:17" }, - "nodeType": "YulIf", - "src": "909:2:17" + "variableNames": [ + { + "name": "y", + "nativeSrc": "1299:1:17", + "nodeType": "YulIdentifier", + "src": "1299:1:17" + } + ] }, { + "nativeSrc": "1333:16:17", "nodeType": "YulAssignment", - "src": "1021:20:17", + "src": "1333:16:17", "value": { "arguments": [ { - "name": "value", + "name": "x", + "nativeSrc": "1344:1:17", "nodeType": "YulIdentifier", - "src": "1032:5:17" + "src": "1344:1:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1039:1:17", - "type": "", - "value": "1" + "name": "y", + "nativeSrc": "1347:1:17", + "nodeType": "YulIdentifier", + "src": "1347:1:17" } ], "functionName": { "name": "add", + "nativeSrc": "1340:3:17", "nodeType": "YulIdentifier", - "src": "1028:3:17" + "src": "1340:3:17" }, + "nativeSrc": "1340:9:17", "nodeType": "YulFunctionCall", - "src": "1028:13:17" + "src": "1340:9:17" }, "variableNames": [ { - "name": "ret", + "name": "sum", + "nativeSrc": "1333:3:17", "nodeType": "YulIdentifier", - "src": "1021:3:17" + "src": "1333:3:17" } ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "843:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "853:3:17", - "type": "" - } - ], - "src": "814:233:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1081:152:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1098:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1101:77:17", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1091:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1091:88:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1091:88:17" }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1195:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1198:4:17", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1188:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1188:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1188:15:17" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1219:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1222:4:17", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1212:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1212:15:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1212:15:17" - } - ] - }, - "name": "panic_error_0x11", - "nodeType": "YulFunctionDefinition", - "src": "1053:180:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1282:79:17", - "statements": [ { "body": { + "nativeSrc": "1373:22:17", "nodeType": "YulBlock", - "src": "1339:16:17", + "src": "1373:22:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1348:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1351:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x11", + "nativeSrc": "1375:16:17", "nodeType": "YulIdentifier", - "src": "1341:6:17" + "src": "1375:16:17" }, + "nativeSrc": "1375:18:17", "nodeType": "YulFunctionCall", - "src": "1341:12:17" + "src": "1375:18:17" }, + "nativeSrc": "1375:18:17", "nodeType": "YulExpressionStatement", - "src": "1341:12:17" + "src": "1375:18:17" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1305:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1330:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1312:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "1312:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "1302:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "1302:35:17" + "name": "x", + "nativeSrc": "1365:1:17", + "nodeType": "YulIdentifier", + "src": "1365:1:17" + }, + { + "name": "sum", + "nativeSrc": "1368:3:17", + "nodeType": "YulIdentifier", + "src": "1368:3:17" } ], "functionName": { - "name": "iszero", + "name": "gt", + "nativeSrc": "1362:2:17", "nodeType": "YulIdentifier", - "src": "1295:6:17" + "src": "1362:2:17" }, + "nativeSrc": "1362:10:17", "nodeType": "YulFunctionCall", - "src": "1295:43:17" + "src": "1362:10:17" }, + "nativeSrc": "1359:36:17", "nodeType": "YulIf", - "src": "1292:2:17" + "src": "1359:36:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "checked_add_t_uint256", + "nativeSrc": "1211:191:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "x", + "nativeSrc": "1242:1:17", + "nodeType": "YulTypedName", + "src": "1242:1:17", + "type": "" + }, + { + "name": "y", + "nativeSrc": "1245:1:17", + "nodeType": "YulTypedName", + "src": "1245:1:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "1251:3:17", "nodeType": "YulTypedName", - "src": "1275:5:17", + "src": "1251:3:17", "type": "" } ], - "src": "1239:122:17" + "src": "1211:191:17" } ] }, - "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -875,10 +1043,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80633f8308e61461003b578063659aaab314610057575b600080fd5b61005560048036038101906100509190610182565b610073565b005b610071600480360381019061006c9190610182565b6100ae565b005b60005b818110156100aa57600180600082825461009091906101ab565b9250508190555080806100a29061020b565b915050610076565b5050565b60005b8181101561015d5760006040516100c790610161565b604051809103906000f0801580156100e3573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806101559061020b565b9150506100b1565b5050565b605c8061029b83390190565b60008135905061017c81610283565b92915050565b60006020828403121561019457600080fd5b60006101a28482850161016d565b91505092915050565b60006101b682610201565b91506101c183610201565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f6576101f5610254565b5b828201905092915050565b6000819050919050565b600061021682610201565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024957610248610254565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028c81610201565b811461029757600080fd5b5056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122006977fabfa6fad9f18e547cefafa048f5053e1fe13432a1739a038e99b0e5bfa64736f6c63430008020033a26469706673582212205951ff1ea51ca5f0682de8486c4357738419fddee36bcacc3c55764371c24e8a64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3F8308E6 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x659AAAB3 EQ PUSH2 0x57 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x182 JUMP JUMPDEST PUSH2 0x73 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x71 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x182 JUMP JUMPDEST PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x1AB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH2 0xA2 SWAP1 PUSH2 0x20B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x76 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP1 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xE3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x155 SWAP1 PUSH2 0x20B JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x5C DUP1 PUSH2 0x29B DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17C DUP2 PUSH2 0x283 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A2 DUP5 DUP3 DUP6 ADD PUSH2 0x16D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B6 DUP3 PUSH2 0x201 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C1 DUP4 PUSH2 0x201 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1F6 JUMPI PUSH2 0x1F5 PUSH2 0x254 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x216 DUP3 PUSH2 0x201 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x249 JUMPI PUSH2 0x248 PUSH2 0x254 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x28C DUP2 PUSH2 0x201 JUMP JUMPDEST DUP2 EQ PUSH2 0x297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD SWAP8 PUSH32 0xABFA6FAD9F18E547CEFAFA048F5053E1FE13432A1739A038E99B0E5BFA64736F PUSH13 0x63430008020033A26469706673 PC 0x22 SLT KECCAK256 MSIZE MLOAD SELFDESTRUCT 0x1E 0xA5 SHR 0xA5 CREATE PUSH9 0x2DE8486C4357738419 REVERT 0xDE 0xE3 PUSH12 0xCACC3C55764371C24E8A6473 PUSH16 0x6C634300080200330000000000000000 ", - "sourceMap": "71:405:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;348:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;140:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;348:126;405:6;401:67;421:5;417:1;:9;401:67;;;456:1;447:5;;:10;;;;;;;:::i;:::-;;;;;;;;428:3;;;;;:::i;:::-;;;;401:67;;;;348:126;:::o;140:202::-;202:6;198:138;218:5;214:1;:9;198:138;;;244:20;267:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;244:37;;295:12;313:11;295:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;198:138;225:3;;;;;:::i;:::-;;;;198:138;;;;140:202;:::o;-1:-1:-1:-;;;;;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:305::-;;479:20;497:1;479:20;:::i;:::-;474:25;;513:20;531:1;513:20;:::i;:::-;508:25;;667:1;599:66;595:74;592:1;589:81;586:2;;;673:18;;:::i;:::-;586:2;717:1;714;710:9;703:16;;464:261;;;;:::o;731:77::-;;797:5;786:16;;776:32;;;:::o;814:233::-;;876:24;894:5;876:24;:::i;:::-;867:33;;922:66;915:5;912:77;909:2;;;992:18;;:::i;:::-;909:2;1039:1;1032:5;1028:13;1021:20;;857:190;;;:::o;1053:180::-;1101:77;1098:1;1091:88;1198:4;1195:1;1188:15;1222:4;1219:1;1212:15;1239:122;1312:24;1330:5;1312:24;:::i;:::-;1305:5;1302:35;1292:2;;1351:1;1348;1341:12;1292:2;1282:79;:::o" + "object": "608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633f8308e614610038578063659aaab314610054575b5f80fd5b610052600480360381019061004d919061018a565b610070565b005b61006e6004803603810190610069919061018a565b6100a3565b005b5f5b8181101561009f576001805f82825461008b91906101e2565b925050819055508080600101915050610072565b5050565b5f5b81811015610143575f6040516100ba90610147565b604051809103905ff0801580156100d3573d5f803e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806001019150506100a5565b5050565b60588061021683390190565b5f80fd5b5f819050919050565b61016981610157565b8114610173575f80fd5b50565b5f8135905061018481610160565b92915050565b5f6020828403121561019f5761019e610153565b5b5f6101ac84828501610176565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101ec82610157565b91506101f783610157565b925082820190508082111561020f5761020e6101b5565b5b9291505056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122096e825e9e8bfff64b6ab6a0e09a6d6a5daa298a417186e1c79bcb7804e4078f564736f6c63430008180033a26469706673582212201b70abb804e95aa37474a67abddf36091e89dc59b6128b8453de6fcc7b84aa2564736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3F8308E6 EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0x659AAAB3 EQ PUSH2 0x54 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x52 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH2 0x70 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x69 SWAP2 SWAP1 PUSH2 0x18A JUMP JUMPDEST PUSH2 0xA3 JUMP JUMPDEST STOP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x1 DUP1 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x72 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x143 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH2 0xBA SWAP1 PUSH2 0x147 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xD3 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP PUSH0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x58 DUP1 PUSH2 0x216 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x169 DUP2 PUSH2 0x157 JUMP JUMPDEST DUP2 EQ PUSH2 0x173 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x184 DUP2 PUSH2 0x160 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19F JUMPI PUSH2 0x19E PUSH2 0x153 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1AC DUP5 DUP3 DUP6 ADD PUSH2 0x176 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1EC DUP3 PUSH2 0x157 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F7 DUP4 PUSH2 0x157 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x20F JUMPI PUSH2 0x20E PUSH2 0x1B5 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x3E DUP1 PUSH1 0x1A PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 0xE8 0x25 0xE9 0xE8 0xBF SELFDESTRUCT PUSH5 0xB6AB6A0E09 0xA6 0xD6 0xA5 0xDA LOG2 SWAP9 LOG4 OR XOR PUSH15 0x1C79BCB7804E4078F564736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL PUSH17 0xABB804E95AA37474A67ABDDF36091E89DC MSIZE 0xB6 SLT DUP12 DUP5 MSTORE8 0xDE PUSH16 0xCC7B84AA2564736F6C63430008180033 ", + "sourceMap": "71:405:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;348:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;140:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;348:126;405:6;401:67;421:5;417:1;:9;401:67;;;456:1;447:5;;:10;;;;;;;:::i;:::-;;;;;;;;428:3;;;;;;;401:67;;;;348:126;:::o;140:202::-;202:6;198:138;218:5;214:1;:9;198:138;;;244:20;267:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;244:37;;295:12;313:11;295:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;230:106;225:3;;;;;;;198:138;;;;140:202;:::o;-1:-1:-1:-;;;;;;;;:::o;88:117:17:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:180::-;1073:77;1070:1;1063:88;1170:4;1167:1;1160:15;1194:4;1191:1;1184:15;1211:191;1251:3;1270:20;1288:1;1270:20;:::i;:::-;1265:25;;1304:20;1322:1;1304:20;:::i;:::-;1299:25;;1347:1;1344;1340:9;1333:16;;1368:3;1365:1;1362:10;1359:36;;;1375:18;;:::i;:::-;1359:36;1211:191;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b5061032c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633f8308e61461003b578063659aaab314610057575b600080fd5b61005560048036038101906100509190610182565b610073565b005b610071600480360381019061006c9190610182565b6100ae565b005b60005b818110156100aa57600180600082825461009091906101ab565b9250508190555080806100a29061020b565b915050610076565b5050565b60005b8181101561015d5760006040516100c790610161565b604051809103906000f0801580156100e3573d6000803e3d6000fd5b5090506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806101559061020b565b9150506100b1565b5050565b605c8061029b83390190565b60008135905061017c81610283565b92915050565b60006020828403121561019457600080fd5b60006101a28482850161016d565b91505092915050565b60006101b682610201565b91506101c183610201565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156101f6576101f5610254565b5b828201905092915050565b6000819050919050565b600061021682610201565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561024957610248610254565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028c81610201565b811461029757600080fd5b5056fe6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122006977fabfa6fad9f18e547cefafa048f5053e1fe13432a1739a038e99b0e5bfa64736f6c63430008020033a26469706673582212205951ff1ea51ca5f0682de8486c4357738419fddee36bcacc3c55764371c24e8a64736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506102a38061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633f8308e614610038578063659aaab314610054575b5f80fd5b610052600480360381019061004d919061018a565b610070565b005b61006e6004803603810190610069919061018a565b6100a3565b005b5f5b8181101561009f576001805f82825461008b91906101e2565b925050819055508080600101915050610072565b5050565b5f5b81811015610143575f6040516100ba90610147565b604051809103905ff0801580156100d3573d5f803e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806001019150506100a5565b5050565b60588061021683390190565b5f80fd5b5f819050919050565b61016981610157565b8114610173575f80fd5b50565b5f8135905061018481610160565b92915050565b5f6020828403121561019f5761019e610153565b5b5f6101ac84828501610176565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101ec82610157565b91506101f783610157565b925082820190508082111561020f5761020e6101b5565b5b9291505056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122096e825e9e8bfff64b6ab6a0e09a6d6a5daa298a417186e1c79bcb7804e4078f564736f6c63430008180033a26469706673582212201b70abb804e95aa37474a67abddf36091e89dc59b6128b8453de6fcc7b84aa2564736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/IERC20.json b/ts-tests/build/IERC20.json index 6537de8c08..368e33b3ef 100644 --- a/ts-tests/build/IERC20.json +++ b/ts-tests/build/IERC20.json @@ -186,6 +186,7 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", @@ -193,6 +194,7 @@ "sourceMap": "" }, "deployedBytecode": { + "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, diff --git a/ts-tests/build/IERC20Metadata.json b/ts-tests/build/IERC20Metadata.json index 3b6a056292..cdab257662 100644 --- a/ts-tests/build/IERC20Metadata.json +++ b/ts-tests/build/IERC20Metadata.json @@ -225,6 +225,7 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "", @@ -232,6 +233,7 @@ "sourceMap": "" }, "deployedBytecode": { + "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, diff --git a/ts-tests/build/LiquidationErr.json b/ts-tests/build/LiquidationErr.json index b2368b8f99..4569ce25e0 100644 --- a/ts-tests/build/LiquidationErr.json +++ b/ts-tests/build/LiquidationErr.json @@ -67,217 +67,466 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610331806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324e22902146100465780634a45d98014610062578063c13425741461007e575b600080fd5b610060600480360381019061005b91906101d8565b61009a565b005b61007c600480360381019061007791906101d8565b6100d5565b005b61009860048036038101906100939190610175565b610110565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90610237565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610237565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014290610237565b60405180910390fd5b60008135905061015a816102cd565b92915050565b60008135905061016f816102e4565b92915050565b6000806000806080858703121561018b57600080fd5b60006101998782880161014b565b94505060206101aa8782880161014b565b93505060406101bb87828801610160565b92505060606101cc87828801610160565b91505092959194509250565b600080604083850312156101eb57600080fd5b60006101f98582860161014b565b925050602061020a85828601610160565b9150509250929050565b6000610221600383610257565b915061022c826102a4565b602082019050919050565b6000602082019050818103600083015261025081610214565b9050919050565b600082825260208201905092915050565b60006102738261027a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4572720000000000000000000000000000000000000000000000000000000000600082015250565b6102d681610268565b81146102e157600080fd5b50565b6102ed8161029a565b81146102f857600080fd5b5056fea2646970667358221220d462f214caa46e64fa03034e368af111b2e4766fb1ca9554a17f30a1417f365964736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x331 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x110 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC SWAP1 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x107 SWAP1 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x142 SWAP1 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x15A DUP2 PUSH2 0x2CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x2E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x18B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x199 DUP8 DUP3 DUP9 ADD PUSH2 0x14B JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1AA DUP8 DUP3 DUP9 ADD PUSH2 0x14B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1BB DUP8 DUP3 DUP9 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1CC DUP8 DUP3 DUP9 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F9 DUP6 DUP3 DUP7 ADD PUSH2 0x14B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221 PUSH1 0x3 DUP4 PUSH2 0x257 JUMP JUMPDEST SWAP2 POP PUSH2 0x22C DUP3 PUSH2 0x2A4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x250 DUP2 PUSH2 0x214 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x273 DUP3 PUSH2 0x27A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4572720000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x2D6 DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2ED DUP2 PUSH2 0x29A JUMP JUMPDEST DUP2 EQ PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 PUSH3 0xF214CA LOG4 PUSH15 0x64FA03034E368AF111B2E4766FB1CA SWAP6 SLOAD LOG1 PUSH32 0x30A1417F365964736F6C63430008020033000000000000000000000000000000 ", + "object": "608060405234801561000f575f80fd5b506103298061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806324e22902146100435780634a45d9801461005f578063c13425741461007b575b5f80fd5b61005d600480360381019061005891906101d9565b610097565b005b610079600480360381019061007491906101d9565b6100d2565b005b61009560048036038101906100909190610217565b61010d565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c9906102d5565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610104906102d5565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013f906102d5565b60405180910390fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101758261014c565b9050919050565b6101858161016b565b811461018f575f80fd5b50565b5f813590506101a08161017c565b92915050565b5f819050919050565b6101b8816101a6565b81146101c2575f80fd5b50565b5f813590506101d3816101af565b92915050565b5f80604083850312156101ef576101ee610148565b5b5f6101fc85828601610192565b925050602061020d858286016101c5565b9150509250929050565b5f805f806080858703121561022f5761022e610148565b5b5f61023c87828801610192565b945050602061024d87828801610192565b935050604061025e878288016101c5565b925050606061026f878288016101c5565b91505092959194509250565b5f82825260208201905092915050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6102bf60038361027b565b91506102ca8261028b565b602082019050919050565b5f6020820190508181035f8301526102ec816102b3565b905091905056fea2646970667358221220272f3a3ecbc3b0a463b7c4488323271697cea404f8546af20c1a220df444ab1f64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x329 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x5F JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST PUSH2 0x97 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x79 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST PUSH2 0xD2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x217 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST STOP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x104 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x175 DUP3 PUSH2 0x14C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185 DUP2 PUSH2 0x16B JUMP JUMPDEST DUP2 EQ PUSH2 0x18F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A0 DUP2 PUSH2 0x17C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B8 DUP2 PUSH2 0x1A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D3 DUP2 PUSH2 0x1AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EF JUMPI PUSH2 0x1EE PUSH2 0x148 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1FC DUP6 DUP3 DUP7 ADD PUSH2 0x192 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20D DUP6 DUP3 DUP7 ADD PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x22F JUMPI PUSH2 0x22E PUSH2 0x148 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23C DUP8 DUP3 DUP9 ADD PUSH2 0x192 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x24D DUP8 DUP3 DUP9 ADD PUSH2 0x192 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x25E DUP8 DUP3 DUP9 ADD PUSH2 0x1C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x26F DUP8 DUP3 DUP9 ADD PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4572720000000000000000000000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2BF PUSH1 0x3 DUP4 PUSH2 0x27B JUMP JUMPDEST SWAP2 POP PUSH2 0x2CA DUP3 PUSH2 0x28B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2EC DUP2 PUSH2 0x2B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0x2F GASPRICE RETURNDATACOPY 0xCB 0xC3 0xB0 LOG4 PUSH4 0xB7C44883 0x23 0x27 AND SWAP8 0xCE LOG4 DIV 0xF8 SLOAD PUSH11 0xF20C1A220DF444AB1F6473 PUSH16 0x6C634300081800330000000000000000 ", "sourceMap": "62:373:12:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@liquidate_1131": { + "entryPoint": 269, + "id": 1131, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@onCollateralTransfer_1143": { + "entryPoint": 151, + "id": 1143, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@onRepaymentRefund_1155": { + "entryPoint": 210, + "id": 1155, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 402, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 453, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256": { + "entryPoint": 535, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 473, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack": { + "entryPoint": 691, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 635, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 363, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 332, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 422, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 328, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee": { + "entryPoint": 651, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 380, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 431, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:3575:17", "nodeType": "YulBlock", - "src": "0:3114:17", + "src": "0:3575:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "57:19:17", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "calldataload", + "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:17", + "nodeType": "YulIdentifier", + "src": "187:6:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulFunctionCall", + "src": "187:12:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulExpressionStatement", + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ { "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:81:17", + "nodeType": "YulBlock", + "src": "379:81:17", + "statements": [ + { + "nativeSrc": "389:65:17", + "nodeType": "YulAssignment", + "src": "389:65:17", + "value": { "arguments": [ { "name": "value", + "nativeSrc": "404:5:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "404:5:17" + }, + { + "kind": "number", + "nativeSrc": "411:42:17", + "nodeType": "YulLiteral", + "src": "411:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "validator_revert_t_address", + "name": "and", + "nativeSrc": "400:3:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "400:3:17" }, + "nativeSrc": "400:54:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "400:54:17" }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] } ] }, - "name": "abi_decode_t_address", + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "361:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "361:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "371:7:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "371:7:17", "type": "" } ], - "src": "7:139:17" + "src": "334:126:17" }, { "body": { + "nativeSrc": "511:51:17", "nodeType": "YulBlock", - "src": "204:87:17", + "src": "511:51:17", "statements": [ { + "nativeSrc": "521:35:17", "nodeType": "YulAssignment", - "src": "214:29:17", + "src": "521:35:17", "value": { "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "550:5:17", "nodeType": "YulIdentifier", - "src": "236:6:17" + "src": "550:5:17" } ], "functionName": { - "name": "calldataload", + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:17", "nodeType": "YulIdentifier", - "src": "223:12:17" + "src": "532:17:17" }, + "nativeSrc": "532:24:17", "nodeType": "YulFunctionCall", - "src": "223:20:17" + "src": "532:24:17" }, "variableNames": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "521:7:17", "nodeType": "YulIdentifier", - "src": "214:5:17" + "src": "521:7:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "279:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "252:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "252:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "252:33:17" } ] }, - "name": "abi_decode_t_uint256", + "name": "cleanup_t_address", + "nativeSrc": "466:96:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "182:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "493:5:17", "nodeType": "YulTypedName", - "src": "190:3:17", + "src": "493:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "503:7:17", "nodeType": "YulTypedName", - "src": "198:5:17", + "src": "503:7:17", "type": "" } ], - "src": "152:139:17" + "src": "466:96:17" }, { "body": { + "nativeSrc": "611:79:17", "nodeType": "YulBlock", - "src": "414:581:17", + "src": "611:79:17", "statements": [ { "body": { + "nativeSrc": "668:16:17", "nodeType": "YulBlock", - "src": "461:16:17", + "src": "668:16:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "677:1:17", "nodeType": "YulLiteral", - "src": "470:1:17", + "src": "677:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "680:1:17", "nodeType": "YulLiteral", - "src": "473:1:17", + "src": "680:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "670:6:17", "nodeType": "YulIdentifier", - "src": "463:6:17" + "src": "670:6:17" }, + "nativeSrc": "670:12:17", "nodeType": "YulFunctionCall", - "src": "463:12:17" + "src": "670:12:17" }, + "nativeSrc": "670:12:17", "nodeType": "YulExpressionStatement", - "src": "463:12:17" + "src": "670:12:17" } ] }, @@ -286,330 +535,677 @@ { "arguments": [ { - "name": "dataEnd", + "name": "value", + "nativeSrc": "634:5:17", "nodeType": "YulIdentifier", - "src": "435:7:17" + "src": "634:5:17" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "444:9:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:17", + "nodeType": "YulIdentifier", + "src": "659:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:17", + "nodeType": "YulIdentifier", + "src": "641:17:17" + }, + "nativeSrc": "641:24:17", + "nodeType": "YulFunctionCall", + "src": "641:24:17" } ], "functionName": { - "name": "sub", + "name": "eq", + "nativeSrc": "631:2:17", "nodeType": "YulIdentifier", - "src": "431:3:17" + "src": "631:2:17" }, + "nativeSrc": "631:35:17", "nodeType": "YulFunctionCall", - "src": "431:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "456:3:17", - "type": "", - "value": "128" + "src": "631:35:17" } ], "functionName": { - "name": "slt", + "name": "iszero", + "nativeSrc": "624:6:17", "nodeType": "YulIdentifier", - "src": "427:3:17" + "src": "624:6:17" }, + "nativeSrc": "624:43:17", "nodeType": "YulFunctionCall", - "src": "427:33:17" + "src": "624:43:17" }, + "nativeSrc": "621:63:17", "nodeType": "YulIf", - "src": "424:2:17" - }, + "src": "621:63:17" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:17", + "nodeType": "YulTypedName", + "src": "604:5:17", + "type": "" + } + ], + "src": "568:122:17" + }, + { + "body": { + "nativeSrc": "748:87:17", + "nodeType": "YulBlock", + "src": "748:87:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "487:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "502:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "516:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "506:6:17", - "type": "" - } - ] + "nativeSrc": "758:29:17", + "nodeType": "YulAssignment", + "src": "758:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "780:6:17", + "nodeType": "YulIdentifier", + "src": "780:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "767:12:17", + "nodeType": "YulIdentifier", + "src": "767:12:17" }, + "nativeSrc": "767:20:17", + "nodeType": "YulFunctionCall", + "src": "767:20:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "531:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "566:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "577:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "562:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "562:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "586:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "541:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "541:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "531:6:17" - } - ] + "name": "value", + "nativeSrc": "758:5:17", + "nodeType": "YulIdentifier", + "src": "758:5:17" } ] }, { - "nodeType": "YulBlock", - "src": "614:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "629:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "643:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "633:6:17", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "823:5:17", + "nodeType": "YulIdentifier", + "src": "823:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "796:26:17", + "nodeType": "YulIdentifier", + "src": "796:26:17" }, + "nativeSrc": "796:33:17", + "nodeType": "YulFunctionCall", + "src": "796:33:17" + }, + "nativeSrc": "796:33:17", + "nodeType": "YulExpressionStatement", + "src": "796:33:17" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "696:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "726:6:17", + "nodeType": "YulTypedName", + "src": "726:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "734:3:17", + "nodeType": "YulTypedName", + "src": "734:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "742:5:17", + "nodeType": "YulTypedName", + "src": "742:5:17", + "type": "" + } + ], + "src": "696:139:17" + }, + { + "body": { + "nativeSrc": "886:32:17", + "nodeType": "YulBlock", + "src": "886:32:17", + "statements": [ + { + "nativeSrc": "896:16:17", + "nodeType": "YulAssignment", + "src": "896:16:17", + "value": { + "name": "value", + "nativeSrc": "907:5:17", + "nodeType": "YulIdentifier", + "src": "907:5:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "659:63:17", - "value": { + "name": "cleaned", + "nativeSrc": "896:7:17", + "nodeType": "YulIdentifier", + "src": "896:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "841:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "868:5:17", + "nodeType": "YulTypedName", + "src": "868:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "878:7:17", + "nodeType": "YulTypedName", + "src": "878:7:17", + "type": "" + } + ], + "src": "841:77:17" + }, + { + "body": { + "nativeSrc": "967:79:17", + "nodeType": "YulBlock", + "src": "967:79:17", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:17", + "nodeType": "YulBlock", + "src": "1024:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:17", + "nodeType": "YulLiteral", + "src": "1033:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:17", + "nodeType": "YulLiteral", + "src": "1036:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:17", + "nodeType": "YulIdentifier", + "src": "1026:6:17" + }, + "nativeSrc": "1026:12:17", + "nodeType": "YulFunctionCall", + "src": "1026:12:17" + }, + "nativeSrc": "1026:12:17", + "nodeType": "YulExpressionStatement", + "src": "1026:12:17" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:17", + "nodeType": "YulIdentifier", + "src": "990:5:17" + }, { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "694:9:17" - }, - { - "name": "offset", + "name": "value", + "nativeSrc": "1015:5:17", "nodeType": "YulIdentifier", - "src": "705:6:17" + "src": "1015:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "997:17:17", "nodeType": "YulIdentifier", - "src": "690:3:17" + "src": "997:17:17" }, + "nativeSrc": "997:24:17", "nodeType": "YulFunctionCall", - "src": "690:22:17" + "src": "997:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:17", + "nodeType": "YulIdentifier", + "src": "987:2:17" + }, + "nativeSrc": "987:35:17", + "nodeType": "YulFunctionCall", + "src": "987:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:17", + "nodeType": "YulIdentifier", + "src": "980:6:17" + }, + "nativeSrc": "980:43:17", + "nodeType": "YulFunctionCall", + "src": "980:43:17" + }, + "nativeSrc": "977:63:17", + "nodeType": "YulIf", + "src": "977:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "924:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:17", + "nodeType": "YulTypedName", + "src": "960:5:17", + "type": "" + } + ], + "src": "924:122:17" + }, + { + "body": { + "nativeSrc": "1104:87:17", + "nodeType": "YulBlock", + "src": "1104:87:17", + "statements": [ + { + "nativeSrc": "1114:29:17", + "nodeType": "YulAssignment", + "src": "1114:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:17", + "nodeType": "YulIdentifier", + "src": "1136:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:17", + "nodeType": "YulIdentifier", + "src": "1123:12:17" + }, + "nativeSrc": "1123:20:17", + "nodeType": "YulFunctionCall", + "src": "1123:20:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:17", + "nodeType": "YulIdentifier", + "src": "1114:5:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:17", + "nodeType": "YulIdentifier", + "src": "1179:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1152:26:17", + "nodeType": "YulIdentifier", + "src": "1152:26:17" + }, + "nativeSrc": "1152:33:17", + "nodeType": "YulFunctionCall", + "src": "1152:33:17" + }, + "nativeSrc": "1152:33:17", + "nodeType": "YulExpressionStatement", + "src": "1152:33:17" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1052:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:17", + "nodeType": "YulTypedName", + "src": "1082:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:17", + "nodeType": "YulTypedName", + "src": "1090:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:17", + "nodeType": "YulTypedName", + "src": "1098:5:17", + "type": "" + } + ], + "src": "1052:139:17" + }, + { + "body": { + "nativeSrc": "1280:391:17", + "nodeType": "YulBlock", + "src": "1280:391:17", + "statements": [ + { + "body": { + "nativeSrc": "1326:83:17", + "nodeType": "YulBlock", + "src": "1326:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1328:77:17", + "nodeType": "YulIdentifier", + "src": "1328:77:17" }, + "nativeSrc": "1328:79:17", + "nodeType": "YulFunctionCall", + "src": "1328:79:17" + }, + "nativeSrc": "1328:79:17", + "nodeType": "YulExpressionStatement", + "src": "1328:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ { "name": "dataEnd", + "nativeSrc": "1301:7:17", + "nodeType": "YulIdentifier", + "src": "1301:7:17" + }, + { + "name": "headStart", + "nativeSrc": "1310:9:17", "nodeType": "YulIdentifier", - "src": "714:7:17" + "src": "1310:9:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "sub", + "nativeSrc": "1297:3:17", "nodeType": "YulIdentifier", - "src": "669:20:17" + "src": "1297:3:17" }, + "nativeSrc": "1297:23:17", "nodeType": "YulFunctionCall", - "src": "669:53:17" + "src": "1297:23:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "659:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "1322:2:17", + "nodeType": "YulLiteral", + "src": "1322:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1293:3:17", + "nodeType": "YulIdentifier", + "src": "1293:3:17" + }, + "nativeSrc": "1293:32:17", + "nodeType": "YulFunctionCall", + "src": "1293:32:17" + }, + "nativeSrc": "1290:119:17", + "nodeType": "YulIf", + "src": "1290:119:17" }, { + "nativeSrc": "1419:117:17", "nodeType": "YulBlock", - "src": "742:118:17", + "src": "1419:117:17", "statements": [ { + "nativeSrc": "1434:15:17", "nodeType": "YulVariableDeclaration", - "src": "757:16:17", + "src": "1434:15:17", "value": { "kind": "number", + "nativeSrc": "1448:1:17", "nodeType": "YulLiteral", - "src": "771:2:17", + "src": "1448:1:17", "type": "", - "value": "64" + "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "1438:6:17", "nodeType": "YulTypedName", - "src": "761:6:17", + "src": "1438:6:17", "type": "" } ] }, { + "nativeSrc": "1463:63:17", "nodeType": "YulAssignment", - "src": "787:63:17", + "src": "1463:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "1498:9:17", "nodeType": "YulIdentifier", - "src": "822:9:17" + "src": "1498:9:17" }, { "name": "offset", + "nativeSrc": "1509:6:17", "nodeType": "YulIdentifier", - "src": "833:6:17" + "src": "1509:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "1494:3:17", "nodeType": "YulIdentifier", - "src": "818:3:17" + "src": "1494:3:17" }, + "nativeSrc": "1494:22:17", "nodeType": "YulFunctionCall", - "src": "818:22:17" + "src": "1494:22:17" }, { "name": "dataEnd", + "nativeSrc": "1518:7:17", "nodeType": "YulIdentifier", - "src": "842:7:17" + "src": "1518:7:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_address", + "nativeSrc": "1473:20:17", "nodeType": "YulIdentifier", - "src": "797:20:17" + "src": "1473:20:17" }, + "nativeSrc": "1473:53:17", "nodeType": "YulFunctionCall", - "src": "797:53:17" + "src": "1473:53:17" }, "variableNames": [ { - "name": "value2", + "name": "value0", + "nativeSrc": "1463:6:17", "nodeType": "YulIdentifier", - "src": "787:6:17" + "src": "1463:6:17" } ] } ] }, { + "nativeSrc": "1546:118:17", "nodeType": "YulBlock", - "src": "870:118:17", + "src": "1546:118:17", "statements": [ { + "nativeSrc": "1561:16:17", "nodeType": "YulVariableDeclaration", - "src": "885:16:17", + "src": "1561:16:17", "value": { "kind": "number", + "nativeSrc": "1575:2:17", "nodeType": "YulLiteral", - "src": "899:2:17", + "src": "1575:2:17", "type": "", - "value": "96" + "value": "32" }, "variables": [ { "name": "offset", + "nativeSrc": "1565:6:17", "nodeType": "YulTypedName", - "src": "889:6:17", + "src": "1565:6:17", "type": "" } ] }, { + "nativeSrc": "1591:63:17", "nodeType": "YulAssignment", - "src": "915:63:17", + "src": "1591:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "1626:9:17", "nodeType": "YulIdentifier", - "src": "950:9:17" + "src": "1626:9:17" }, { "name": "offset", + "nativeSrc": "1637:6:17", "nodeType": "YulIdentifier", - "src": "961:6:17" + "src": "1637:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "1622:3:17", "nodeType": "YulIdentifier", - "src": "946:3:17" + "src": "1622:3:17" }, + "nativeSrc": "1622:22:17", "nodeType": "YulFunctionCall", - "src": "946:22:17" + "src": "1622:22:17" }, { "name": "dataEnd", + "nativeSrc": "1646:7:17", "nodeType": "YulIdentifier", - "src": "970:7:17" + "src": "1646:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "1601:20:17", "nodeType": "YulIdentifier", - "src": "925:20:17" + "src": "1601:20:17" }, + "nativeSrc": "1601:53:17", "nodeType": "YulFunctionCall", - "src": "925:53:17" + "src": "1601:53:17" }, "variableNames": [ { - "name": "value3", + "name": "value1", + "nativeSrc": "1591:6:17", "nodeType": "YulIdentifier", - "src": "915:6:17" + "src": "1591:6:17" } ] } @@ -617,88 +1213,71 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1197:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1242:9:17", "nodeType": "YulTypedName", - "src": "360:9:17", + "src": "1242:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "1253:7:17", "nodeType": "YulTypedName", - "src": "371:7:17", + "src": "1253:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "1265:6:17", "nodeType": "YulTypedName", - "src": "383:6:17", + "src": "1265:6:17", "type": "" }, { "name": "value1", + "nativeSrc": "1273:6:17", "nodeType": "YulTypedName", - "src": "391:6:17", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "399:6:17", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "407:6:17", + "src": "1273:6:17", "type": "" } ], - "src": "297:698:17" + "src": "1197:474:17" }, { "body": { + "nativeSrc": "1794:648:17", "nodeType": "YulBlock", - "src": "1084:324:17", + "src": "1794:648:17", "statements": [ { "body": { + "nativeSrc": "1841:83:17", "nodeType": "YulBlock", - "src": "1130:16:17", + "src": "1841:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1139:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1142:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1843:77:17", "nodeType": "YulIdentifier", - "src": "1132:6:17" + "src": "1843:77:17" }, + "nativeSrc": "1843:79:17", "nodeType": "YulFunctionCall", - "src": "1132:12:17" + "src": "1843:79:17" }, + "nativeSrc": "1843:79:17", "nodeType": "YulExpressionStatement", - "src": "1132:12:17" + "src": "1843:79:17" } ] }, @@ -708,738 +1287,560 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "1815:7:17", "nodeType": "YulIdentifier", - "src": "1105:7:17" + "src": "1815:7:17" }, { "name": "headStart", + "nativeSrc": "1824:9:17", "nodeType": "YulIdentifier", - "src": "1114:9:17" + "src": "1824:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "1811:3:17", "nodeType": "YulIdentifier", - "src": "1101:3:17" + "src": "1811:3:17" }, + "nativeSrc": "1811:23:17", "nodeType": "YulFunctionCall", - "src": "1101:23:17" + "src": "1811:23:17" }, { "kind": "number", + "nativeSrc": "1836:3:17", "nodeType": "YulLiteral", - "src": "1126:2:17", + "src": "1836:3:17", "type": "", - "value": "64" + "value": "128" } ], "functionName": { "name": "slt", + "nativeSrc": "1807:3:17", "nodeType": "YulIdentifier", - "src": "1097:3:17" + "src": "1807:3:17" }, + "nativeSrc": "1807:33:17", "nodeType": "YulFunctionCall", - "src": "1097:32:17" + "src": "1807:33:17" }, + "nativeSrc": "1804:120:17", "nodeType": "YulIf", - "src": "1094:2:17" + "src": "1804:120:17" }, { + "nativeSrc": "1934:117:17", "nodeType": "YulBlock", - "src": "1156:117:17", + "src": "1934:117:17", "statements": [ { + "nativeSrc": "1949:15:17", "nodeType": "YulVariableDeclaration", - "src": "1171:15:17", + "src": "1949:15:17", "value": { "kind": "number", + "nativeSrc": "1963:1:17", "nodeType": "YulLiteral", - "src": "1185:1:17", + "src": "1963:1:17", "type": "", "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "1953:6:17", "nodeType": "YulTypedName", - "src": "1175:6:17", + "src": "1953:6:17", "type": "" } ] }, { + "nativeSrc": "1978:63:17", "nodeType": "YulAssignment", - "src": "1200:63:17", + "src": "1978:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "2013:9:17", "nodeType": "YulIdentifier", - "src": "1235:9:17" + "src": "2013:9:17" }, { "name": "offset", + "nativeSrc": "2024:6:17", "nodeType": "YulIdentifier", - "src": "1246:6:17" + "src": "2024:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2009:3:17", "nodeType": "YulIdentifier", - "src": "1231:3:17" + "src": "2009:3:17" }, + "nativeSrc": "2009:22:17", "nodeType": "YulFunctionCall", - "src": "1231:22:17" + "src": "2009:22:17" }, { "name": "dataEnd", + "nativeSrc": "2033:7:17", "nodeType": "YulIdentifier", - "src": "1255:7:17" + "src": "2033:7:17" } ], "functionName": { "name": "abi_decode_t_address", + "nativeSrc": "1988:20:17", "nodeType": "YulIdentifier", - "src": "1210:20:17" + "src": "1988:20:17" }, + "nativeSrc": "1988:53:17", "nodeType": "YulFunctionCall", - "src": "1210:53:17" + "src": "1988:53:17" }, "variableNames": [ { "name": "value0", + "nativeSrc": "1978:6:17", "nodeType": "YulIdentifier", - "src": "1200:6:17" + "src": "1978:6:17" } ] } ] }, { + "nativeSrc": "2061:118:17", "nodeType": "YulBlock", - "src": "1283:118:17", + "src": "2061:118:17", "statements": [ { + "nativeSrc": "2076:16:17", "nodeType": "YulVariableDeclaration", - "src": "1298:16:17", + "src": "2076:16:17", "value": { "kind": "number", + "nativeSrc": "2090:2:17", "nodeType": "YulLiteral", - "src": "1312:2:17", + "src": "2090:2:17", "type": "", "value": "32" }, "variables": [ { "name": "offset", + "nativeSrc": "2080:6:17", "nodeType": "YulTypedName", - "src": "1302:6:17", + "src": "2080:6:17", "type": "" } ] }, { + "nativeSrc": "2106:63:17", "nodeType": "YulAssignment", - "src": "1328:63:17", + "src": "2106:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "2141:9:17", "nodeType": "YulIdentifier", - "src": "1363:9:17" + "src": "2141:9:17" }, { "name": "offset", + "nativeSrc": "2152:6:17", "nodeType": "YulIdentifier", - "src": "1374:6:17" + "src": "2152:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2137:3:17", "nodeType": "YulIdentifier", - "src": "1359:3:17" + "src": "2137:3:17" }, + "nativeSrc": "2137:22:17", "nodeType": "YulFunctionCall", - "src": "1359:22:17" + "src": "2137:22:17" }, { "name": "dataEnd", + "nativeSrc": "2161:7:17", "nodeType": "YulIdentifier", - "src": "1383:7:17" + "src": "2161:7:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_address", + "nativeSrc": "2116:20:17", "nodeType": "YulIdentifier", - "src": "1338:20:17" + "src": "2116:20:17" }, + "nativeSrc": "2116:53:17", "nodeType": "YulFunctionCall", - "src": "1338:53:17" + "src": "2116:53:17" }, "variableNames": [ { "name": "value1", + "nativeSrc": "2106:6:17", "nodeType": "YulIdentifier", - "src": "1328:6:17" + "src": "2106:6:17" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1046:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1057:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1069:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1077:6:17", - "type": "" - } - ], - "src": "1001:407:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1560:219:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1570:73:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1636:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1641:1:17", - "type": "", - "value": "3" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "1577:58:17" - }, - "nodeType": "YulFunctionCall", - "src": "1577:66:17" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1570:3:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1741:3:17" - } - ], - "functionName": { - "name": "store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee", - "nodeType": "YulIdentifier", - "src": "1652:88:17" - }, - "nodeType": "YulFunctionCall", - "src": "1652:93:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1652:93:17" }, { - "nodeType": "YulAssignment", - "src": "1754:19:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1765:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1770:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1761:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1761:12:17" - }, - "variableNames": [ + "nativeSrc": "2189:118:17", + "nodeType": "YulBlock", + "src": "2189:118:17", + "statements": [ { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1754:3:17" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1548:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1556:3:17", - "type": "" - } - ], - "src": "1414:365:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1956:248:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1966:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1978:9:17" - }, - { + "nativeSrc": "2204:16:17", + "nodeType": "YulVariableDeclaration", + "src": "2204:16:17", + "value": { "kind": "number", + "nativeSrc": "2218:2:17", "nodeType": "YulLiteral", - "src": "1989:2:17", + "src": "2218:2:17", "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1974:3:17" + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2208:6:17", + "nodeType": "YulTypedName", + "src": "2208:6:17", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "1974:18:17" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1966:4:17" - } - ] - }, - { - "expression": { - "arguments": [ - { + "nativeSrc": "2234:63:17", + "nodeType": "YulAssignment", + "src": "2234:63:17", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2013:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2024:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2269:9:17", + "nodeType": "YulIdentifier", + "src": "2269:9:17" + }, + { + "name": "offset", + "nativeSrc": "2280:6:17", + "nodeType": "YulIdentifier", + "src": "2280:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2265:3:17", + "nodeType": "YulIdentifier", + "src": "2265:3:17" + }, + "nativeSrc": "2265:22:17", + "nodeType": "YulFunctionCall", + "src": "2265:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2289:7:17", + "nodeType": "YulIdentifier", + "src": "2289:7:17" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_uint256", + "nativeSrc": "2244:20:17", "nodeType": "YulIdentifier", - "src": "2009:3:17" + "src": "2244:20:17" }, + "nativeSrc": "2244:53:17", "nodeType": "YulFunctionCall", - "src": "2009:17:17" + "src": "2244:53:17" }, - { + "variableNames": [ + { + "name": "value2", + "nativeSrc": "2234:6:17", + "nodeType": "YulIdentifier", + "src": "2234:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "2317:118:17", + "nodeType": "YulBlock", + "src": "2317:118:17", + "statements": [ + { + "nativeSrc": "2332:16:17", + "nodeType": "YulVariableDeclaration", + "src": "2332:16:17", + "value": { + "kind": "number", + "nativeSrc": "2346:2:17", + "nodeType": "YulLiteral", + "src": "2346:2:17", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2336:6:17", + "nodeType": "YulTypedName", + "src": "2336:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "2362:63:17", + "nodeType": "YulAssignment", + "src": "2362:63:17", + "value": { "arguments": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2032:4:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2397:9:17", + "nodeType": "YulIdentifier", + "src": "2397:9:17" + }, + { + "name": "offset", + "nativeSrc": "2408:6:17", + "nodeType": "YulIdentifier", + "src": "2408:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2393:3:17", + "nodeType": "YulIdentifier", + "src": "2393:3:17" + }, + "nativeSrc": "2393:22:17", + "nodeType": "YulFunctionCall", + "src": "2393:22:17" }, { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "2417:7:17", "nodeType": "YulIdentifier", - "src": "2038:9:17" + "src": "2417:7:17" } ], "functionName": { - "name": "sub", + "name": "abi_decode_t_uint256", + "nativeSrc": "2372:20:17", "nodeType": "YulIdentifier", - "src": "2028:3:17" + "src": "2372:20:17" }, + "nativeSrc": "2372:53:17", "nodeType": "YulFunctionCall", - "src": "2028:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2002:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2002:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2002:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "2058:139:17", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2192:4:17" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "2066:124:17" - }, - "nodeType": "YulFunctionCall", - "src": "2066:131:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "2058:4:17" + "src": "2372:53:17" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "2362:6:17", + "nodeType": "YulIdentifier", + "src": "2362:6:17" + } + ] } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "nativeSrc": "1677:765:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1740:9:17", + "nodeType": "YulTypedName", + "src": "1740:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1751:7:17", "nodeType": "YulTypedName", - "src": "1936:9:17", + "src": "1751:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "1763:6:17", + "nodeType": "YulTypedName", + "src": "1763:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1771:6:17", + "nodeType": "YulTypedName", + "src": "1771:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1779:6:17", + "nodeType": "YulTypedName", + "src": "1779:6:17", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1787:6:17", "nodeType": "YulTypedName", - "src": "1951:4:17", + "src": "1787:6:17", "type": "" } ], - "src": "1785:419:17" + "src": "1677:765:17" }, { "body": { + "nativeSrc": "2544:73:17", "nodeType": "YulBlock", - "src": "2306:73:17", + "src": "2544:73:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "2561:3:17", "nodeType": "YulIdentifier", - "src": "2323:3:17" + "src": "2561:3:17" }, { "name": "length", + "nativeSrc": "2566:6:17", "nodeType": "YulIdentifier", - "src": "2328:6:17" + "src": "2566:6:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "2554:6:17", "nodeType": "YulIdentifier", - "src": "2316:6:17" + "src": "2554:6:17" }, + "nativeSrc": "2554:19:17", "nodeType": "YulFunctionCall", - "src": "2316:19:17" + "src": "2554:19:17" }, + "nativeSrc": "2554:19:17", "nodeType": "YulExpressionStatement", - "src": "2316:19:17" + "src": "2554:19:17" }, { + "nativeSrc": "2582:29:17", "nodeType": "YulAssignment", - "src": "2344:29:17", + "src": "2582:29:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "2601:3:17", "nodeType": "YulIdentifier", - "src": "2363:3:17" + "src": "2601:3:17" }, { "kind": "number", + "nativeSrc": "2606:4:17", "nodeType": "YulLiteral", - "src": "2368:4:17", + "src": "2606:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "2597:3:17", "nodeType": "YulIdentifier", - "src": "2359:3:17" + "src": "2597:3:17" }, + "nativeSrc": "2597:14:17", "nodeType": "YulFunctionCall", - "src": "2359:14:17" + "src": "2597:14:17" }, "variableNames": [ { "name": "updated_pos", + "nativeSrc": "2582:11:17", "nodeType": "YulIdentifier", - "src": "2344:11:17" + "src": "2582:11:17" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2448:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2278:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2283:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "2294:11:17", - "type": "" - } - ], - "src": "2210:169:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2430:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2440:35:17", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2469:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "2451:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2451:24:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2440:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2412:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "2422:7:17", - "type": "" - } - ], - "src": "2385:96:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2532:81:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2542:65:17", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2557:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2564:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2553:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2553:54:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2542:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2514:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "2524:7:17", - "type": "" - } - ], - "src": "2487:126:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2664:32:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2674:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2685:5:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2674:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ + "name": "pos", + "nativeSrc": "2516:3:17", + "nodeType": "YulTypedName", + "src": "2516:3:17", + "type": "" + }, { - "name": "value", + "name": "length", + "nativeSrc": "2521:6:17", "nodeType": "YulTypedName", - "src": "2646:5:17", + "src": "2521:6:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "updated_pos", + "nativeSrc": "2532:11:17", "nodeType": "YulTypedName", - "src": "2656:7:17", + "src": "2532:11:17", "type": "" } ], - "src": "2619:77:17" + "src": "2448:169:17" }, { "body": { + "nativeSrc": "2729:47:17", "nodeType": "YulBlock", - "src": "2808:47:17", + "src": "2729:47:17", "statements": [ { "expression": { @@ -1448,263 +1849,380 @@ "arguments": [ { "name": "memPtr", + "nativeSrc": "2751:6:17", "nodeType": "YulIdentifier", - "src": "2830:6:17" + "src": "2751:6:17" }, { "kind": "number", + "nativeSrc": "2759:1:17", "nodeType": "YulLiteral", - "src": "2838:1:17", + "src": "2759:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "2747:3:17", "nodeType": "YulIdentifier", - "src": "2826:3:17" + "src": "2747:3:17" }, + "nativeSrc": "2747:14:17", "nodeType": "YulFunctionCall", - "src": "2826:14:17" + "src": "2747:14:17" }, { + "hexValue": "457272", "kind": "string", + "nativeSrc": "2763:5:17", "nodeType": "YulLiteral", - "src": "2842:5:17", + "src": "2763:5:17", "type": "", "value": "Err" } ], "functionName": { "name": "mstore", + "nativeSrc": "2740:6:17", "nodeType": "YulIdentifier", - "src": "2819:6:17" + "src": "2740:6:17" }, + "nativeSrc": "2740:29:17", "nodeType": "YulFunctionCall", - "src": "2819:29:17" + "src": "2740:29:17" }, + "nativeSrc": "2740:29:17", "nodeType": "YulExpressionStatement", - "src": "2819:29:17" + "src": "2740:29:17" } ] }, "name": "store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee", + "nativeSrc": "2623:153:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", + "nativeSrc": "2721:6:17", "nodeType": "YulTypedName", - "src": "2800:6:17", + "src": "2721:6:17", "type": "" } ], - "src": "2702:153:17" + "src": "2623:153:17" }, { "body": { + "nativeSrc": "2928:219:17", "nodeType": "YulBlock", - "src": "2904:79:17", + "src": "2928:219:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "2961:16:17", - "statements": [ + "nativeSrc": "2938:73:17", + "nodeType": "YulAssignment", + "src": "2938:73:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2970:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2973:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2963:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2963:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2963:12:17" + "name": "pos", + "nativeSrc": "3004:3:17", + "nodeType": "YulIdentifier", + "src": "3004:3:17" + }, + { + "kind": "number", + "nativeSrc": "3009:1:17", + "nodeType": "YulLiteral", + "src": "3009:1:17", + "type": "", + "value": "3" } - ] + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2945:58:17", + "nodeType": "YulIdentifier", + "src": "2945:58:17" + }, + "nativeSrc": "2945:66:17", + "nodeType": "YulFunctionCall", + "src": "2945:66:17" }, - "condition": { + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2938:3:17", + "nodeType": "YulIdentifier", + "src": "2938:3:17" + } + ] + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2927:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2952:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "2934:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2934:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "2924:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "2924:35:17" + "name": "pos", + "nativeSrc": "3109:3:17", + "nodeType": "YulIdentifier", + "src": "3109:3:17" } ], "functionName": { - "name": "iszero", + "name": "store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee", + "nativeSrc": "3020:88:17", "nodeType": "YulIdentifier", - "src": "2917:6:17" + "src": "3020:88:17" }, + "nativeSrc": "3020:93:17", "nodeType": "YulFunctionCall", - "src": "2917:43:17" + "src": "3020:93:17" }, - "nodeType": "YulIf", - "src": "2914:2:17" + "nativeSrc": "3020:93:17", + "nodeType": "YulExpressionStatement", + "src": "3020:93:17" + }, + { + "nativeSrc": "3122:19:17", + "nodeType": "YulAssignment", + "src": "3122:19:17", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3133:3:17", + "nodeType": "YulIdentifier", + "src": "3133:3:17" + }, + { + "kind": "number", + "nativeSrc": "3138:2:17", + "nodeType": "YulLiteral", + "src": "3138:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3129:3:17", + "nodeType": "YulIdentifier", + "src": "3129:3:17" + }, + "nativeSrc": "3129:12:17", + "nodeType": "YulFunctionCall", + "src": "3129:12:17" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "3122:3:17", + "nodeType": "YulIdentifier", + "src": "3122:3:17" + } + ] } ] }, - "name": "validator_revert_t_address", + "name": "abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2782:365:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "pos", + "nativeSrc": "2916:3:17", + "nodeType": "YulTypedName", + "src": "2916:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2924:3:17", "nodeType": "YulTypedName", - "src": "2897:5:17", + "src": "2924:3:17", "type": "" } ], - "src": "2861:122:17" + "src": "2782:365:17" }, { "body": { + "nativeSrc": "3324:248:17", "nodeType": "YulBlock", - "src": "3032:79:17", + "src": "3324:248:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "3089:16:17", - "statements": [ + "nativeSrc": "3334:26:17", + "nodeType": "YulAssignment", + "src": "3334:26:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3098:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3101:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3091:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "3091:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "3091:12:17" + "name": "headStart", + "nativeSrc": "3346:9:17", + "nodeType": "YulIdentifier", + "src": "3346:9:17" + }, + { + "kind": "number", + "nativeSrc": "3357:2:17", + "nodeType": "YulLiteral", + "src": "3357:2:17", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "3342:3:17", + "nodeType": "YulIdentifier", + "src": "3342:3:17" + }, + "nativeSrc": "3342:18:17", + "nodeType": "YulFunctionCall", + "src": "3342:18:17" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3334:4:17", + "nodeType": "YulIdentifier", + "src": "3334:4:17" + } + ] + }, + { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3381:9:17", "nodeType": "YulIdentifier", - "src": "3055:5:17" + "src": "3381:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3080:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "3062:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "3062:24:17" + "kind": "number", + "nativeSrc": "3392:1:17", + "nodeType": "YulLiteral", + "src": "3392:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "3377:3:17", + "nodeType": "YulIdentifier", + "src": "3377:3:17" + }, + "nativeSrc": "3377:17:17", + "nodeType": "YulFunctionCall", + "src": "3377:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "3400:4:17", + "nodeType": "YulIdentifier", + "src": "3400:4:17" + }, + { + "name": "headStart", + "nativeSrc": "3406:9:17", + "nodeType": "YulIdentifier", + "src": "3406:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3396:3:17", "nodeType": "YulIdentifier", - "src": "3052:2:17" + "src": "3396:3:17" }, + "nativeSrc": "3396:20:17", "nodeType": "YulFunctionCall", - "src": "3052:35:17" + "src": "3396:20:17" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "3370:6:17", "nodeType": "YulIdentifier", - "src": "3045:6:17" + "src": "3370:6:17" }, + "nativeSrc": "3370:47:17", "nodeType": "YulFunctionCall", - "src": "3045:43:17" + "src": "3370:47:17" }, - "nodeType": "YulIf", - "src": "3042:2:17" + "nativeSrc": "3370:47:17", + "nodeType": "YulExpressionStatement", + "src": "3370:47:17" + }, + { + "nativeSrc": "3426:139:17", + "nodeType": "YulAssignment", + "src": "3426:139:17", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "3560:4:17", + "nodeType": "YulIdentifier", + "src": "3560:4:17" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack", + "nativeSrc": "3434:124:17", + "nodeType": "YulIdentifier", + "src": "3434:124:17" + }, + "nativeSrc": "3434:131:17", + "nodeType": "YulFunctionCall", + "src": "3434:131:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3426:4:17", + "nodeType": "YulIdentifier", + "src": "3426:4:17" + } + ] } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "3153:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3304:9:17", + "nodeType": "YulTypedName", + "src": "3304:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3319:4:17", "nodeType": "YulTypedName", - "src": "3025:5:17", + "src": "3319:4:17", "type": "" } ], - "src": "2989:122:17" + "src": "3153:419:17" } ] }, - "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 3)\n store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee(memPtr) {\n\n mstore(add(memPtr, 0), \"Err\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee(memPtr) {\n\n mstore(add(memPtr, 0), \"Err\")\n\n }\n\n function abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 3)\n store_literal_in_memory_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d036db99b97b2d59ca6b0930393f561f5f2771758a8d74d270f6b0ce4f14cee_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -1712,10 +2230,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806324e22902146100465780634a45d98014610062578063c13425741461007e575b600080fd5b610060600480360381019061005b91906101d8565b61009a565b005b61007c600480360381019061007791906101d8565b6100d5565b005b61009860048036038101906100939190610175565b610110565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90610237565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610237565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014290610237565b60405180910390fd5b60008135905061015a816102cd565b92915050565b60008135905061016f816102e4565b92915050565b6000806000806080858703121561018b57600080fd5b60006101998782880161014b565b94505060206101aa8782880161014b565b93505060406101bb87828801610160565b92505060606101cc87828801610160565b91505092959194509250565b600080604083850312156101eb57600080fd5b60006101f98582860161014b565b925050602061020a85828601610160565b9150509250929050565b6000610221600383610257565b915061022c826102a4565b602082019050919050565b6000602082019050818103600083015261025081610214565b9050919050565b600082825260208201905092915050565b60006102738261027a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4572720000000000000000000000000000000000000000000000000000000000600082015250565b6102d681610268565b81146102e157600080fd5b50565b6102ed8161029a565b81146102f857600080fd5b5056fea2646970667358221220d462f214caa46e64fa03034e368af111b2e4766fb1ca9554a17f30a1417f365964736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x1D8 JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH2 0x110 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC SWAP1 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x107 SWAP1 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x142 SWAP1 PUSH2 0x237 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x15A DUP2 PUSH2 0x2CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16F DUP2 PUSH2 0x2E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x18B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x199 DUP8 DUP3 DUP9 ADD PUSH2 0x14B JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1AA DUP8 DUP3 DUP9 ADD PUSH2 0x14B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1BB DUP8 DUP3 DUP9 ADD PUSH2 0x160 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1CC DUP8 DUP3 DUP9 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F9 DUP6 DUP3 DUP7 ADD PUSH2 0x14B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20A DUP6 DUP3 DUP7 ADD PUSH2 0x160 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221 PUSH1 0x3 DUP4 PUSH2 0x257 JUMP JUMPDEST SWAP2 POP PUSH2 0x22C DUP3 PUSH2 0x2A4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x250 DUP2 PUSH2 0x214 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x273 DUP3 PUSH2 0x27A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4572720000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x2D6 DUP2 PUSH2 0x268 JUMP JUMPDEST DUP2 EQ PUSH2 0x2E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2ED DUP2 PUSH2 0x29A JUMP JUMPDEST DUP2 EQ PUSH2 0x2F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 PUSH3 0xF214CA LOG4 PUSH15 0x64FA03034E368AF111B2E4766FB1CA SWAP6 SLOAD LOG1 PUSH32 0x30A1417F365964736F6C63430008020033000000000000000000000000000000 ", - "sourceMap": "62:373:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;333:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;93:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;225:103;308:13;;;;;;;;;;:::i;:::-;;;;;;;;333:100;413:13;;;;;;;;;;:::i;:::-;;;;;;;;93:127;200:13;;;;;;;;;;:::i;:::-;;;;;;;;7:139:17;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:698::-;;;;;456:3;444:9;435:7;431:23;427:33;424:2;;;473:1;470;463:12;424:2;516:1;541:53;586:7;577:6;566:9;562:22;541:53;:::i;:::-;531:63;;487:117;643:2;669:53;714:7;705:6;694:9;690:22;669:53;:::i;:::-;659:63;;614:118;771:2;797:53;842:7;833:6;822:9;818:22;797:53;:::i;:::-;787:63;;742:118;899:2;925:53;970:7;961:6;950:9;946:22;925:53;:::i;:::-;915:63;;870:118;414:581;;;;;;;:::o;1001:407::-;;;1126:2;1114:9;1105:7;1101:23;1097:32;1094:2;;;1142:1;1139;1132:12;1094:2;1185:1;1210:53;1255:7;1246:6;1235:9;1231:22;1210:53;:::i;:::-;1200:63;;1156:117;1312:2;1338:53;1383:7;1374:6;1363:9;1359:22;1338:53;:::i;:::-;1328:63;;1283:118;1084:324;;;;;:::o;1414:365::-;;1577:66;1641:1;1636:3;1577:66;:::i;:::-;1570:73;;1652:93;1741:3;1652:93;:::i;:::-;1770:2;1765:3;1761:12;1754:19;;1560:219;;;:::o;1785:419::-;;1989:2;1978:9;1974:18;1966:26;;2038:9;2032:4;2028:20;2024:1;2013:9;2009:17;2002:47;2066:131;2192:4;2066:131;:::i;:::-;2058:139;;1956:248;;;:::o;2210:169::-;;2328:6;2323:3;2316:19;2368:4;2363:3;2359:14;2344:29;;2306:73;;;;:::o;2385:96::-;;2451:24;2469:5;2451:24;:::i;:::-;2440:35;;2430:51;;;:::o;2487:126::-;;2564:42;2557:5;2553:54;2542:65;;2532:81;;;:::o;2619:77::-;;2685:5;2674:16;;2664:32;;;:::o;2702:153::-;2842:5;2838:1;2830:6;2826:14;2819:29;2808:47;:::o;2861:122::-;2934:24;2952:5;2934:24;:::i;:::-;2927:5;2924:35;2914:2;;2973:1;2970;2963:12;2914:2;2904:79;:::o;2989:122::-;3062:24;3080:5;3062:24;:::i;:::-;3055:5;3052:35;3042:2;;3101:1;3098;3091:12;3042:2;3032:79;:::o" + "object": "608060405234801561000f575f80fd5b506004361061003f575f3560e01c806324e22902146100435780634a45d9801461005f578063c13425741461007b575b5f80fd5b61005d600480360381019061005891906101d9565b610097565b005b610079600480360381019061007491906101d9565b6100d2565b005b61009560048036038101906100909190610217565b61010d565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c9906102d5565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610104906102d5565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013f906102d5565b60405180910390fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101758261014c565b9050919050565b6101858161016b565b811461018f575f80fd5b50565b5f813590506101a08161017c565b92915050565b5f819050919050565b6101b8816101a6565b81146101c2575f80fd5b50565b5f813590506101d3816101af565b92915050565b5f80604083850312156101ef576101ee610148565b5b5f6101fc85828601610192565b925050602061020d858286016101c5565b9150509250929050565b5f805f806080858703121561022f5761022e610148565b5b5f61023c87828801610192565b945050602061024d87828801610192565b935050604061025e878288016101c5565b925050606061026f878288016101c5565b91505092959194509250565b5f82825260208201905092915050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6102bf60038361027b565b91506102ca8261028b565b602082019050919050565b5f6020820190508181035f8301526102ec816102b3565b905091905056fea2646970667358221220272f3a3ecbc3b0a463b7c4488323271697cea404f8546af20c1a220df444ab1f64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x5F JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST PUSH2 0x97 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x79 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x1D9 JUMP JUMPDEST PUSH2 0xD2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x217 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST STOP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x104 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x175 DUP3 PUSH2 0x14C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185 DUP2 PUSH2 0x16B JUMP JUMPDEST DUP2 EQ PUSH2 0x18F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A0 DUP2 PUSH2 0x17C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B8 DUP2 PUSH2 0x1A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D3 DUP2 PUSH2 0x1AF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EF JUMPI PUSH2 0x1EE PUSH2 0x148 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1FC DUP6 DUP3 DUP7 ADD PUSH2 0x192 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20D DUP6 DUP3 DUP7 ADD PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x22F JUMPI PUSH2 0x22E PUSH2 0x148 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23C DUP8 DUP3 DUP9 ADD PUSH2 0x192 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x24D DUP8 DUP3 DUP9 ADD PUSH2 0x192 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x25E DUP8 DUP3 DUP9 ADD PUSH2 0x1C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x26F DUP8 DUP3 DUP9 ADD PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4572720000000000000000000000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2BF PUSH1 0x3 DUP4 PUSH2 0x27B JUMP JUMPDEST SWAP2 POP PUSH2 0x2CA DUP3 PUSH2 0x28B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2EC DUP2 PUSH2 0x2B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0x2F GASPRICE RETURNDATACOPY 0xCB 0xC3 0xB0 LOG4 PUSH4 0xB7C44883 0x23 0x27 AND SWAP8 0xCE LOG4 DIV 0xF8 SLOAD PUSH11 0xF20C1A220DF444AB1F6473 PUSH16 0x6C634300081800330000000000000000 ", + "sourceMap": "62:373:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;333:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;93:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;225:103;308:13;;;;;;;;;;:::i;:::-;;;;;;;;333:100;413:13;;;;;;;;;;:::i;:::-;;;;;;;;93:127;200:13;;;;;;;;;;:::i;:::-;;;;;;;;88:117:17;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:765::-;1763:6;1771;1779;1787;1836:3;1824:9;1815:7;1811:23;1807:33;1804:120;;;1843:79;;:::i;:::-;1804:120;1963:1;1988:53;2033:7;2024:6;2013:9;2009:22;1988:53;:::i;:::-;1978:63;;1934:117;2090:2;2116:53;2161:7;2152:6;2141:9;2137:22;2116:53;:::i;:::-;2106:63;;2061:118;2218:2;2244:53;2289:7;2280:6;2269:9;2265:22;2244:53;:::i;:::-;2234:63;;2189:118;2346:2;2372:53;2417:7;2408:6;2397:9;2393:22;2372:53;:::i;:::-;2362:63;;2317:118;1677:765;;;;;;;:::o;2448:169::-;2532:11;2566:6;2561:3;2554:19;2606:4;2601:3;2597:14;2582:29;;2448:169;;;;:::o;2623:153::-;2763:5;2759:1;2751:6;2747:14;2740:29;2623:153;:::o;2782:365::-;2924:3;2945:66;3009:1;3004:3;2945:66;:::i;:::-;2938:73;;3020:93;3109:3;3020:93;:::i;:::-;3138:2;3133:3;3129:12;3122:19;;2782:365;;;:::o;3153:419::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3406:9;3400:4;3396:20;3392:1;3381:9;3377:17;3370:47;3434:131;3560:4;3434:131;:::i;:::-;3426:139;;3153:419;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b50610331806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324e22902146100465780634a45d98014610062578063c13425741461007e575b600080fd5b610060600480360381019061005b91906101d8565b61009a565b005b61007c600480360381019061007791906101d8565b6100d5565b005b61009860048036038101906100939190610175565b610110565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90610237565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610237565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014290610237565b60405180910390fd5b60008135905061015a816102cd565b92915050565b60008135905061016f816102e4565b92915050565b6000806000806080858703121561018b57600080fd5b60006101998782880161014b565b94505060206101aa8782880161014b565b93505060406101bb87828801610160565b92505060606101cc87828801610160565b91505092959194509250565b600080604083850312156101eb57600080fd5b60006101f98582860161014b565b925050602061020a85828601610160565b9150509250929050565b6000610221600383610257565b915061022c826102a4565b602082019050919050565b6000602082019050818103600083015261025081610214565b9050919050565b600082825260208201905092915050565b60006102738261027a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4572720000000000000000000000000000000000000000000000000000000000600082015250565b6102d681610268565b81146102e157600080fd5b50565b6102ed8161029a565b81146102f857600080fd5b5056fea2646970667358221220d462f214caa46e64fa03034e368af111b2e4766fb1ca9554a17f30a1417f365964736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506103298061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806324e22902146100435780634a45d9801461005f578063c13425741461007b575b5f80fd5b61005d600480360381019061005891906101d9565b610097565b005b610079600480360381019061007491906101d9565b6100d2565b005b61009560048036038101906100909190610217565b61010d565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c9906102d5565b60405180910390fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610104906102d5565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013f906102d5565b60405180910390fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101758261014c565b9050919050565b6101858161016b565b811461018f575f80fd5b50565b5f813590506101a08161017c565b92915050565b5f819050919050565b6101b8816101a6565b81146101c2575f80fd5b50565b5f813590506101d3816101af565b92915050565b5f80604083850312156101ef576101ee610148565b5b5f6101fc85828601610192565b925050602061020d858286016101c5565b9150509250929050565b5f805f806080858703121561022f5761022e610148565b5b5f61023c87828801610192565b945050602061024d87828801610192565b935050604061025e878288016101c5565b925050606061026f878288016101c5565b91505092959194509250565b5f82825260208201905092915050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6102bf60038361027b565b91506102ca8261028b565b602082019050919050565b5f6020820190508181035f8301526102ec816102b3565b905091905056fea2646970667358221220272f3a3ecbc3b0a463b7c4488323271697cea404f8546af20c1a220df444ab1f64736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/LiquidationOk.json b/ts-tests/build/LiquidationOk.json index aeba2126ae..dd095a5393 100644 --- a/ts-tests/build/LiquidationOk.json +++ b/ts-tests/build/LiquidationOk.json @@ -136,217 +136,466 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5061034b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324e22902146100465780634a45d98014610062578063c13425741461007e575b600080fd5b610060600480360381019061005b91906101e3565b61009a565b005b61007c600480360381019061007791906101e3565b6100d7565b005b61009860048036038101906100939190610180565b610113565b005b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be7482826040516100cb929190610282565b60405180910390a15050565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e188282604051610107929190610282565b60405180910390a15050565b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef97284848484604051610148949392919061023d565b60405180910390a150505050565b600081359050610165816102e7565b92915050565b60008135905061017a816102fe565b92915050565b6000806000806080858703121561019657600080fd5b60006101a487828801610156565b94505060206101b587828801610156565b93505060406101c68782880161016b565b92505060606101d78782880161016b565b91505092959194509250565b600080604083850312156101f657600080fd5b600061020485828601610156565b92505060206102158582860161016b565b9150509250929050565b610228816102ab565b82525050565b610237816102dd565b82525050565b6000608082019050610252600083018761021f565b61025f602083018661021f565b61026c604083018561022e565b610279606083018461022e565b95945050505050565b6000604082019050610297600083018561021f565b6102a4602083018461022e565b9392505050565b60006102b6826102bd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102f0816102ab565b81146102fb57600080fd5b50565b610307816102dd565b811461031257600080fd5b5056fea2646970667358221220b22da1040e9813d3455a26de9f214213e7a835355b69660ad21e712fa2e75fd664736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0xD7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH2 0x113 JUMP JUMPDEST STOP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCB SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x107 SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x148 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x165 DUP2 PUSH2 0x2E7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17A DUP2 PUSH2 0x2FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4 DUP8 DUP3 DUP9 ADD PUSH2 0x156 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1B5 DUP8 DUP3 DUP9 ADD PUSH2 0x156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1C6 DUP8 DUP3 DUP9 ADD PUSH2 0x16B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1D7 DUP8 DUP3 DUP9 ADD PUSH2 0x16B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x204 DUP6 DUP3 DUP7 ADD PUSH2 0x156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x215 DUP6 DUP3 DUP7 ADD PUSH2 0x16B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x228 DUP2 PUSH2 0x2AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x237 DUP2 PUSH2 0x2DD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x252 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x25F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x26C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x279 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x22E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x297 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x2A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x22E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B6 DUP3 PUSH2 0x2BD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F0 DUP2 PUSH2 0x2AB JUMP JUMPDEST DUP2 EQ PUSH2 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x307 DUP2 PUSH2 0x2DD JUMP JUMPDEST DUP2 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0x2D LOG1 DIV 0xE SWAP9 SGT 0xD3 GASLIMIT GAS 0x26 0xDE SWAP16 0x21 TIMESTAMP SGT 0xE7 0xA8 CALLDATALOAD CALLDATALOAD JUMPDEST PUSH10 0x660AD21E712FA2E75FD6 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ", + "object": "608060405234801561000f575f80fd5b506103448061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806324e22902146100435780634a45d9801461005f578063c13425741461007b575b5f80fd5b61005d600480360381019061005891906101e4565b610097565b005b610079600480360381019061007491906101e4565b6100d4565b005b61009560048036038101906100909190610222565b610110565b005b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be7482826040516100c89291906102a4565b60405180910390a15050565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e1882826040516101049291906102a4565b60405180910390a15050565b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef9728484848460405161014594939291906102cb565b60405180910390a150505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018082610157565b9050919050565b61019081610176565b811461019a575f80fd5b50565b5f813590506101ab81610187565b92915050565b5f819050919050565b6101c3816101b1565b81146101cd575f80fd5b50565b5f813590506101de816101ba565b92915050565b5f80604083850312156101fa576101f9610153565b5b5f6102078582860161019d565b9250506020610218858286016101d0565b9150509250929050565b5f805f806080858703121561023a57610239610153565b5b5f6102478782880161019d565b94505060206102588782880161019d565b9350506040610269878288016101d0565b925050606061027a878288016101d0565b91505092959194509250565b61028f81610176565b82525050565b61029e816101b1565b82525050565b5f6040820190506102b75f830185610286565b6102c46020830184610295565b9392505050565b5f6080820190506102de5f830187610286565b6102eb6020830186610286565b6102f86040830185610295565b6103056060830184610295565b9594505050505056fea264697066735822122007799f171db15ef121ef88e5d0807b86e3e15a85a6f86ca4417d3e928ef152a464736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x344 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x5F JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x97 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x79 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0xD4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x222 JUMP JUMPDEST PUSH2 0x110 JUMP JUMPDEST STOP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP3 SWAP2 SWAP1 PUSH2 0x2A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x104 SWAP3 SWAP2 SWAP1 PUSH2 0x2A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x180 DUP3 PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x190 DUP2 PUSH2 0x176 JUMP JUMPDEST DUP2 EQ PUSH2 0x19A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1AB DUP2 PUSH2 0x187 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C3 DUP2 PUSH2 0x1B1 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1DE DUP2 PUSH2 0x1BA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1FA JUMPI PUSH2 0x1F9 PUSH2 0x153 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x207 DUP6 DUP3 DUP7 ADD PUSH2 0x19D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x218 DUP6 DUP3 DUP7 ADD PUSH2 0x1D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x23A JUMPI PUSH2 0x239 PUSH2 0x153 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x247 DUP8 DUP3 DUP9 ADD PUSH2 0x19D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x258 DUP8 DUP3 DUP9 ADD PUSH2 0x19D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x269 DUP8 DUP3 DUP9 ADD PUSH2 0x1D0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x27A DUP8 DUP3 DUP9 ADD PUSH2 0x1D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x28F DUP2 PUSH2 0x176 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x29E DUP2 PUSH2 0x1B1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2B7 PUSH0 DUP4 ADD DUP6 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x2C4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x295 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2DE PUSH0 DUP4 ADD DUP8 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x2EB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x2F8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x295 JUMP JUMPDEST PUSH2 0x305 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x295 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SMOD PUSH26 0x9F171DB15EF121EF88E5D0807B86E3E15A85A6F86CA4417D3E92 DUP15 CALL MSTORE LOG4 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", "sourceMap": "62:698:13:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@liquidate_1199": { + "entryPoint": 272, + "id": 1199, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@onCollateralTransfer_1212": { + "entryPoint": 151, + "id": 1212, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@onRepaymentRefund_1225": { + "entryPoint": 212, + "id": 1225, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 413, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 464, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256": { + "entryPoint": 546, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 484, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 646, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 661, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 715, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 676, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 374, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 343, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 433, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 339, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 391, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 442, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:3590:17", "nodeType": "YulBlock", - "src": "0:3129:17", + "src": "0:3590:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "57:19:17", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "calldataload", + "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:17", + "nodeType": "YulIdentifier", + "src": "187:6:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulFunctionCall", + "src": "187:12:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulExpressionStatement", + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ { "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:81:17", + "nodeType": "YulBlock", + "src": "379:81:17", + "statements": [ + { + "nativeSrc": "389:65:17", + "nodeType": "YulAssignment", + "src": "389:65:17", + "value": { "arguments": [ { "name": "value", + "nativeSrc": "404:5:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "404:5:17" + }, + { + "kind": "number", + "nativeSrc": "411:42:17", + "nodeType": "YulLiteral", + "src": "411:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "validator_revert_t_address", + "name": "and", + "nativeSrc": "400:3:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "400:3:17" }, + "nativeSrc": "400:54:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "400:54:17" }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] } ] }, - "name": "abi_decode_t_address", + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "361:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "361:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "371:7:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "371:7:17", "type": "" } ], - "src": "7:139:17" + "src": "334:126:17" }, { "body": { + "nativeSrc": "511:51:17", "nodeType": "YulBlock", - "src": "204:87:17", + "src": "511:51:17", "statements": [ { + "nativeSrc": "521:35:17", "nodeType": "YulAssignment", - "src": "214:29:17", + "src": "521:35:17", "value": { "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "550:5:17", "nodeType": "YulIdentifier", - "src": "236:6:17" + "src": "550:5:17" } ], "functionName": { - "name": "calldataload", + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:17", "nodeType": "YulIdentifier", - "src": "223:12:17" + "src": "532:17:17" }, + "nativeSrc": "532:24:17", "nodeType": "YulFunctionCall", - "src": "223:20:17" + "src": "532:24:17" }, "variableNames": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "521:7:17", "nodeType": "YulIdentifier", - "src": "214:5:17" + "src": "521:7:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "279:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "252:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "252:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "252:33:17" } ] }, - "name": "abi_decode_t_uint256", + "name": "cleanup_t_address", + "nativeSrc": "466:96:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "182:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "493:5:17", "nodeType": "YulTypedName", - "src": "190:3:17", + "src": "493:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "503:7:17", "nodeType": "YulTypedName", - "src": "198:5:17", + "src": "503:7:17", "type": "" } ], - "src": "152:139:17" + "src": "466:96:17" }, { "body": { + "nativeSrc": "611:79:17", "nodeType": "YulBlock", - "src": "414:581:17", + "src": "611:79:17", "statements": [ { "body": { + "nativeSrc": "668:16:17", "nodeType": "YulBlock", - "src": "461:16:17", + "src": "668:16:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "677:1:17", "nodeType": "YulLiteral", - "src": "470:1:17", + "src": "677:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "680:1:17", "nodeType": "YulLiteral", - "src": "473:1:17", + "src": "680:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "670:6:17", "nodeType": "YulIdentifier", - "src": "463:6:17" + "src": "670:6:17" }, + "nativeSrc": "670:12:17", "nodeType": "YulFunctionCall", - "src": "463:12:17" + "src": "670:12:17" }, + "nativeSrc": "670:12:17", "nodeType": "YulExpressionStatement", - "src": "463:12:17" + "src": "670:12:17" } ] }, @@ -355,330 +604,677 @@ { "arguments": [ { - "name": "dataEnd", + "name": "value", + "nativeSrc": "634:5:17", "nodeType": "YulIdentifier", - "src": "435:7:17" + "src": "634:5:17" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "444:9:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:17", + "nodeType": "YulIdentifier", + "src": "659:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:17", + "nodeType": "YulIdentifier", + "src": "641:17:17" + }, + "nativeSrc": "641:24:17", + "nodeType": "YulFunctionCall", + "src": "641:24:17" } ], "functionName": { - "name": "sub", + "name": "eq", + "nativeSrc": "631:2:17", "nodeType": "YulIdentifier", - "src": "431:3:17" + "src": "631:2:17" }, + "nativeSrc": "631:35:17", "nodeType": "YulFunctionCall", - "src": "431:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "456:3:17", - "type": "", - "value": "128" + "src": "631:35:17" } ], "functionName": { - "name": "slt", + "name": "iszero", + "nativeSrc": "624:6:17", "nodeType": "YulIdentifier", - "src": "427:3:17" + "src": "624:6:17" }, + "nativeSrc": "624:43:17", "nodeType": "YulFunctionCall", - "src": "427:33:17" + "src": "624:43:17" }, + "nativeSrc": "621:63:17", "nodeType": "YulIf", - "src": "424:2:17" - }, + "src": "621:63:17" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:17", + "nodeType": "YulTypedName", + "src": "604:5:17", + "type": "" + } + ], + "src": "568:122:17" + }, + { + "body": { + "nativeSrc": "748:87:17", + "nodeType": "YulBlock", + "src": "748:87:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "487:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "502:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "516:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "506:6:17", - "type": "" - } - ] + "nativeSrc": "758:29:17", + "nodeType": "YulAssignment", + "src": "758:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "780:6:17", + "nodeType": "YulIdentifier", + "src": "780:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "767:12:17", + "nodeType": "YulIdentifier", + "src": "767:12:17" }, + "nativeSrc": "767:20:17", + "nodeType": "YulFunctionCall", + "src": "767:20:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "531:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "566:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "577:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "562:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "562:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "586:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "541:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "541:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "531:6:17" - } - ] + "name": "value", + "nativeSrc": "758:5:17", + "nodeType": "YulIdentifier", + "src": "758:5:17" } ] }, { - "nodeType": "YulBlock", - "src": "614:118:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "629:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "643:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "633:6:17", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "823:5:17", + "nodeType": "YulIdentifier", + "src": "823:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "796:26:17", + "nodeType": "YulIdentifier", + "src": "796:26:17" }, + "nativeSrc": "796:33:17", + "nodeType": "YulFunctionCall", + "src": "796:33:17" + }, + "nativeSrc": "796:33:17", + "nodeType": "YulExpressionStatement", + "src": "796:33:17" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "696:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "726:6:17", + "nodeType": "YulTypedName", + "src": "726:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "734:3:17", + "nodeType": "YulTypedName", + "src": "734:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "742:5:17", + "nodeType": "YulTypedName", + "src": "742:5:17", + "type": "" + } + ], + "src": "696:139:17" + }, + { + "body": { + "nativeSrc": "886:32:17", + "nodeType": "YulBlock", + "src": "886:32:17", + "statements": [ + { + "nativeSrc": "896:16:17", + "nodeType": "YulAssignment", + "src": "896:16:17", + "value": { + "name": "value", + "nativeSrc": "907:5:17", + "nodeType": "YulIdentifier", + "src": "907:5:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "659:63:17", - "value": { + "name": "cleaned", + "nativeSrc": "896:7:17", + "nodeType": "YulIdentifier", + "src": "896:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "841:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "868:5:17", + "nodeType": "YulTypedName", + "src": "868:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "878:7:17", + "nodeType": "YulTypedName", + "src": "878:7:17", + "type": "" + } + ], + "src": "841:77:17" + }, + { + "body": { + "nativeSrc": "967:79:17", + "nodeType": "YulBlock", + "src": "967:79:17", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:17", + "nodeType": "YulBlock", + "src": "1024:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:17", + "nodeType": "YulLiteral", + "src": "1033:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:17", + "nodeType": "YulLiteral", + "src": "1036:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:17", + "nodeType": "YulIdentifier", + "src": "1026:6:17" + }, + "nativeSrc": "1026:12:17", + "nodeType": "YulFunctionCall", + "src": "1026:12:17" + }, + "nativeSrc": "1026:12:17", + "nodeType": "YulExpressionStatement", + "src": "1026:12:17" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:17", + "nodeType": "YulIdentifier", + "src": "990:5:17" + }, { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "694:9:17" - }, - { - "name": "offset", + "name": "value", + "nativeSrc": "1015:5:17", "nodeType": "YulIdentifier", - "src": "705:6:17" + "src": "1015:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "997:17:17", "nodeType": "YulIdentifier", - "src": "690:3:17" + "src": "997:17:17" }, + "nativeSrc": "997:24:17", "nodeType": "YulFunctionCall", - "src": "690:22:17" + "src": "997:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:17", + "nodeType": "YulIdentifier", + "src": "987:2:17" + }, + "nativeSrc": "987:35:17", + "nodeType": "YulFunctionCall", + "src": "987:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:17", + "nodeType": "YulIdentifier", + "src": "980:6:17" + }, + "nativeSrc": "980:43:17", + "nodeType": "YulFunctionCall", + "src": "980:43:17" + }, + "nativeSrc": "977:63:17", + "nodeType": "YulIf", + "src": "977:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "924:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:17", + "nodeType": "YulTypedName", + "src": "960:5:17", + "type": "" + } + ], + "src": "924:122:17" + }, + { + "body": { + "nativeSrc": "1104:87:17", + "nodeType": "YulBlock", + "src": "1104:87:17", + "statements": [ + { + "nativeSrc": "1114:29:17", + "nodeType": "YulAssignment", + "src": "1114:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:17", + "nodeType": "YulIdentifier", + "src": "1136:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:17", + "nodeType": "YulIdentifier", + "src": "1123:12:17" + }, + "nativeSrc": "1123:20:17", + "nodeType": "YulFunctionCall", + "src": "1123:20:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:17", + "nodeType": "YulIdentifier", + "src": "1114:5:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:17", + "nodeType": "YulIdentifier", + "src": "1179:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1152:26:17", + "nodeType": "YulIdentifier", + "src": "1152:26:17" + }, + "nativeSrc": "1152:33:17", + "nodeType": "YulFunctionCall", + "src": "1152:33:17" + }, + "nativeSrc": "1152:33:17", + "nodeType": "YulExpressionStatement", + "src": "1152:33:17" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1052:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:17", + "nodeType": "YulTypedName", + "src": "1082:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:17", + "nodeType": "YulTypedName", + "src": "1090:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:17", + "nodeType": "YulTypedName", + "src": "1098:5:17", + "type": "" + } + ], + "src": "1052:139:17" + }, + { + "body": { + "nativeSrc": "1280:391:17", + "nodeType": "YulBlock", + "src": "1280:391:17", + "statements": [ + { + "body": { + "nativeSrc": "1326:83:17", + "nodeType": "YulBlock", + "src": "1326:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1328:77:17", + "nodeType": "YulIdentifier", + "src": "1328:77:17" }, + "nativeSrc": "1328:79:17", + "nodeType": "YulFunctionCall", + "src": "1328:79:17" + }, + "nativeSrc": "1328:79:17", + "nodeType": "YulExpressionStatement", + "src": "1328:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ { "name": "dataEnd", + "nativeSrc": "1301:7:17", "nodeType": "YulIdentifier", - "src": "714:7:17" + "src": "1301:7:17" + }, + { + "name": "headStart", + "nativeSrc": "1310:9:17", + "nodeType": "YulIdentifier", + "src": "1310:9:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "sub", + "nativeSrc": "1297:3:17", "nodeType": "YulIdentifier", - "src": "669:20:17" + "src": "1297:3:17" }, + "nativeSrc": "1297:23:17", "nodeType": "YulFunctionCall", - "src": "669:53:17" + "src": "1297:23:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "659:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "1322:2:17", + "nodeType": "YulLiteral", + "src": "1322:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1293:3:17", + "nodeType": "YulIdentifier", + "src": "1293:3:17" + }, + "nativeSrc": "1293:32:17", + "nodeType": "YulFunctionCall", + "src": "1293:32:17" + }, + "nativeSrc": "1290:119:17", + "nodeType": "YulIf", + "src": "1290:119:17" }, { + "nativeSrc": "1419:117:17", "nodeType": "YulBlock", - "src": "742:118:17", + "src": "1419:117:17", "statements": [ { + "nativeSrc": "1434:15:17", "nodeType": "YulVariableDeclaration", - "src": "757:16:17", + "src": "1434:15:17", "value": { "kind": "number", + "nativeSrc": "1448:1:17", "nodeType": "YulLiteral", - "src": "771:2:17", + "src": "1448:1:17", "type": "", - "value": "64" + "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "1438:6:17", "nodeType": "YulTypedName", - "src": "761:6:17", + "src": "1438:6:17", "type": "" } ] }, { + "nativeSrc": "1463:63:17", "nodeType": "YulAssignment", - "src": "787:63:17", + "src": "1463:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "1498:9:17", "nodeType": "YulIdentifier", - "src": "822:9:17" + "src": "1498:9:17" }, { "name": "offset", + "nativeSrc": "1509:6:17", "nodeType": "YulIdentifier", - "src": "833:6:17" + "src": "1509:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "1494:3:17", "nodeType": "YulIdentifier", - "src": "818:3:17" + "src": "1494:3:17" }, + "nativeSrc": "1494:22:17", "nodeType": "YulFunctionCall", - "src": "818:22:17" + "src": "1494:22:17" }, { "name": "dataEnd", + "nativeSrc": "1518:7:17", "nodeType": "YulIdentifier", - "src": "842:7:17" + "src": "1518:7:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_address", + "nativeSrc": "1473:20:17", "nodeType": "YulIdentifier", - "src": "797:20:17" + "src": "1473:20:17" }, + "nativeSrc": "1473:53:17", "nodeType": "YulFunctionCall", - "src": "797:53:17" + "src": "1473:53:17" }, "variableNames": [ { - "name": "value2", + "name": "value0", + "nativeSrc": "1463:6:17", "nodeType": "YulIdentifier", - "src": "787:6:17" + "src": "1463:6:17" } ] } ] }, { + "nativeSrc": "1546:118:17", "nodeType": "YulBlock", - "src": "870:118:17", + "src": "1546:118:17", "statements": [ { + "nativeSrc": "1561:16:17", "nodeType": "YulVariableDeclaration", - "src": "885:16:17", + "src": "1561:16:17", "value": { "kind": "number", + "nativeSrc": "1575:2:17", "nodeType": "YulLiteral", - "src": "899:2:17", + "src": "1575:2:17", "type": "", - "value": "96" + "value": "32" }, "variables": [ { "name": "offset", + "nativeSrc": "1565:6:17", "nodeType": "YulTypedName", - "src": "889:6:17", + "src": "1565:6:17", "type": "" } ] }, { + "nativeSrc": "1591:63:17", "nodeType": "YulAssignment", - "src": "915:63:17", + "src": "1591:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "1626:9:17", "nodeType": "YulIdentifier", - "src": "950:9:17" + "src": "1626:9:17" }, { "name": "offset", + "nativeSrc": "1637:6:17", "nodeType": "YulIdentifier", - "src": "961:6:17" + "src": "1637:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "1622:3:17", "nodeType": "YulIdentifier", - "src": "946:3:17" + "src": "1622:3:17" }, + "nativeSrc": "1622:22:17", "nodeType": "YulFunctionCall", - "src": "946:22:17" + "src": "1622:22:17" }, { "name": "dataEnd", + "nativeSrc": "1646:7:17", "nodeType": "YulIdentifier", - "src": "970:7:17" + "src": "1646:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "1601:20:17", "nodeType": "YulIdentifier", - "src": "925:20:17" + "src": "1601:20:17" }, + "nativeSrc": "1601:53:17", "nodeType": "YulFunctionCall", - "src": "925:53:17" + "src": "1601:53:17" }, "variableNames": [ { - "name": "value3", + "name": "value1", + "nativeSrc": "1591:6:17", "nodeType": "YulIdentifier", - "src": "915:6:17" + "src": "1591:6:17" } ] } @@ -686,88 +1282,71 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1197:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1242:9:17", "nodeType": "YulTypedName", - "src": "360:9:17", + "src": "1242:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "1253:7:17", "nodeType": "YulTypedName", - "src": "371:7:17", + "src": "1253:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "1265:6:17", "nodeType": "YulTypedName", - "src": "383:6:17", + "src": "1265:6:17", "type": "" }, { "name": "value1", + "nativeSrc": "1273:6:17", "nodeType": "YulTypedName", - "src": "391:6:17", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "399:6:17", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "407:6:17", + "src": "1273:6:17", "type": "" } ], - "src": "297:698:17" + "src": "1197:474:17" }, { "body": { + "nativeSrc": "1794:648:17", "nodeType": "YulBlock", - "src": "1084:324:17", + "src": "1794:648:17", "statements": [ { "body": { + "nativeSrc": "1841:83:17", "nodeType": "YulBlock", - "src": "1130:16:17", + "src": "1841:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1139:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1142:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1843:77:17", "nodeType": "YulIdentifier", - "src": "1132:6:17" + "src": "1843:77:17" }, + "nativeSrc": "1843:79:17", "nodeType": "YulFunctionCall", - "src": "1132:12:17" + "src": "1843:79:17" }, + "nativeSrc": "1843:79:17", "nodeType": "YulExpressionStatement", - "src": "1132:12:17" + "src": "1843:79:17" } ] }, @@ -777,183 +1356,389 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "1815:7:17", "nodeType": "YulIdentifier", - "src": "1105:7:17" + "src": "1815:7:17" }, { "name": "headStart", + "nativeSrc": "1824:9:17", "nodeType": "YulIdentifier", - "src": "1114:9:17" + "src": "1824:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "1811:3:17", + "nodeType": "YulIdentifier", + "src": "1811:3:17" + }, + "nativeSrc": "1811:23:17", + "nodeType": "YulFunctionCall", + "src": "1811:23:17" + }, + { + "kind": "number", + "nativeSrc": "1836:3:17", + "nodeType": "YulLiteral", + "src": "1836:3:17", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1807:3:17", + "nodeType": "YulIdentifier", + "src": "1807:3:17" + }, + "nativeSrc": "1807:33:17", + "nodeType": "YulFunctionCall", + "src": "1807:33:17" + }, + "nativeSrc": "1804:120:17", + "nodeType": "YulIf", + "src": "1804:120:17" + }, + { + "nativeSrc": "1934:117:17", + "nodeType": "YulBlock", + "src": "1934:117:17", + "statements": [ + { + "nativeSrc": "1949:15:17", + "nodeType": "YulVariableDeclaration", + "src": "1949:15:17", + "value": { + "kind": "number", + "nativeSrc": "1963:1:17", + "nodeType": "YulLiteral", + "src": "1963:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1953:6:17", + "nodeType": "YulTypedName", + "src": "1953:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "1978:63:17", + "nodeType": "YulAssignment", + "src": "1978:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2013:9:17", + "nodeType": "YulIdentifier", + "src": "2013:9:17" + }, + { + "name": "offset", + "nativeSrc": "2024:6:17", + "nodeType": "YulIdentifier", + "src": "2024:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2009:3:17", + "nodeType": "YulIdentifier", + "src": "2009:3:17" + }, + "nativeSrc": "2009:22:17", + "nodeType": "YulFunctionCall", + "src": "2009:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2033:7:17", + "nodeType": "YulIdentifier", + "src": "2033:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1988:20:17", + "nodeType": "YulIdentifier", + "src": "1988:20:17" + }, + "nativeSrc": "1988:53:17", + "nodeType": "YulFunctionCall", + "src": "1988:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1978:6:17", + "nodeType": "YulIdentifier", + "src": "1978:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "2061:118:17", + "nodeType": "YulBlock", + "src": "2061:118:17", + "statements": [ + { + "nativeSrc": "2076:16:17", + "nodeType": "YulVariableDeclaration", + "src": "2076:16:17", + "value": { + "kind": "number", + "nativeSrc": "2090:2:17", + "nodeType": "YulLiteral", + "src": "2090:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2080:6:17", + "nodeType": "YulTypedName", + "src": "2080:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "2106:63:17", + "nodeType": "YulAssignment", + "src": "2106:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2141:9:17", + "nodeType": "YulIdentifier", + "src": "2141:9:17" + }, + { + "name": "offset", + "nativeSrc": "2152:6:17", + "nodeType": "YulIdentifier", + "src": "2152:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2137:3:17", + "nodeType": "YulIdentifier", + "src": "2137:3:17" + }, + "nativeSrc": "2137:22:17", + "nodeType": "YulFunctionCall", + "src": "2137:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "2161:7:17", + "nodeType": "YulIdentifier", + "src": "2161:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2116:20:17", "nodeType": "YulIdentifier", - "src": "1101:3:17" + "src": "2116:20:17" }, + "nativeSrc": "2116:53:17", "nodeType": "YulFunctionCall", - "src": "1101:23:17" + "src": "2116:53:17" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1126:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1097:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1097:32:17" - }, - "nodeType": "YulIf", - "src": "1094:2:17" + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2106:6:17", + "nodeType": "YulIdentifier", + "src": "2106:6:17" + } + ] + } + ] }, { + "nativeSrc": "2189:118:17", "nodeType": "YulBlock", - "src": "1156:117:17", + "src": "2189:118:17", "statements": [ { + "nativeSrc": "2204:16:17", "nodeType": "YulVariableDeclaration", - "src": "1171:15:17", + "src": "2204:16:17", "value": { "kind": "number", + "nativeSrc": "2218:2:17", "nodeType": "YulLiteral", - "src": "1185:1:17", + "src": "2218:2:17", "type": "", - "value": "0" + "value": "64" }, "variables": [ { "name": "offset", + "nativeSrc": "2208:6:17", "nodeType": "YulTypedName", - "src": "1175:6:17", + "src": "2208:6:17", "type": "" } ] }, { + "nativeSrc": "2234:63:17", "nodeType": "YulAssignment", - "src": "1200:63:17", + "src": "2234:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "2269:9:17", "nodeType": "YulIdentifier", - "src": "1235:9:17" + "src": "2269:9:17" }, { "name": "offset", + "nativeSrc": "2280:6:17", "nodeType": "YulIdentifier", - "src": "1246:6:17" + "src": "2280:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2265:3:17", "nodeType": "YulIdentifier", - "src": "1231:3:17" + "src": "2265:3:17" }, + "nativeSrc": "2265:22:17", "nodeType": "YulFunctionCall", - "src": "1231:22:17" + "src": "2265:22:17" }, { "name": "dataEnd", + "nativeSrc": "2289:7:17", "nodeType": "YulIdentifier", - "src": "1255:7:17" + "src": "2289:7:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "abi_decode_t_uint256", + "nativeSrc": "2244:20:17", "nodeType": "YulIdentifier", - "src": "1210:20:17" + "src": "2244:20:17" }, + "nativeSrc": "2244:53:17", "nodeType": "YulFunctionCall", - "src": "1210:53:17" + "src": "2244:53:17" }, "variableNames": [ { - "name": "value0", + "name": "value2", + "nativeSrc": "2234:6:17", "nodeType": "YulIdentifier", - "src": "1200:6:17" + "src": "2234:6:17" } ] } ] }, { + "nativeSrc": "2317:118:17", "nodeType": "YulBlock", - "src": "1283:118:17", + "src": "2317:118:17", "statements": [ { + "nativeSrc": "2332:16:17", "nodeType": "YulVariableDeclaration", - "src": "1298:16:17", + "src": "2332:16:17", "value": { "kind": "number", + "nativeSrc": "2346:2:17", "nodeType": "YulLiteral", - "src": "1312:2:17", + "src": "2346:2:17", "type": "", - "value": "32" + "value": "96" }, "variables": [ { "name": "offset", + "nativeSrc": "2336:6:17", "nodeType": "YulTypedName", - "src": "1302:6:17", + "src": "2336:6:17", "type": "" } ] }, { + "nativeSrc": "2362:63:17", "nodeType": "YulAssignment", - "src": "1328:63:17", + "src": "2362:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "2397:9:17", "nodeType": "YulIdentifier", - "src": "1363:9:17" + "src": "2397:9:17" }, { "name": "offset", + "nativeSrc": "2408:6:17", "nodeType": "YulIdentifier", - "src": "1374:6:17" + "src": "2408:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2393:3:17", "nodeType": "YulIdentifier", - "src": "1359:3:17" + "src": "2393:3:17" }, + "nativeSrc": "2393:22:17", "nodeType": "YulFunctionCall", - "src": "1359:22:17" + "src": "2393:22:17" }, { "name": "dataEnd", + "nativeSrc": "2417:7:17", "nodeType": "YulIdentifier", - "src": "1383:7:17" + "src": "2417:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "2372:20:17", "nodeType": "YulIdentifier", - "src": "1338:20:17" + "src": "2372:20:17" }, + "nativeSrc": "2372:53:17", "nodeType": "YulFunctionCall", - "src": "1338:53:17" + "src": "2372:53:17" }, "variableNames": [ { - "name": "value1", + "name": "value3", + "nativeSrc": "2362:6:17", "nodeType": "YulIdentifier", - "src": "1328:6:17" + "src": "2362:6:17" } ] } @@ -961,453 +1746,244 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256", + "nativeSrc": "1677:765:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1740:9:17", "nodeType": "YulTypedName", - "src": "1046:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1057:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1069:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1077:6:17", - "type": "" - } - ], - "src": "1001:407:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1479:53:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1496:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1519:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "1501:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "1501:24:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1489:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1489:37:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1489:37:17" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1467:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1474:3:17", - "type": "" - } - ], - "src": "1414:118:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1603:53:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "1620:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1643:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1625:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "1625:24:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1613:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1613:37:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1613:37:17" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1591:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "1598:3:17", + "src": "1740:9:17", "type": "" - } - ], - "src": "1538:118:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1844:371:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1854:27:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1866:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1877:3:17", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1862:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1862:19:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "1854:4:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1935:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1948:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1959:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1944:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1944:17:17" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "1891:43:17" - }, - "nodeType": "YulFunctionCall", - "src": "1891:71:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1891:71:17" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "2016:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2029:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2040:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2025:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2025:18:17" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "1972:43:17" - }, - "nodeType": "YulFunctionCall", - "src": "1972:72:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1972:72:17" - }, + }, + { + "name": "dataEnd", + "nativeSrc": "1751:7:17", + "nodeType": "YulTypedName", + "src": "1751:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1763:6:17", + "nodeType": "YulTypedName", + "src": "1763:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1771:6:17", + "nodeType": "YulTypedName", + "src": "1771:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1779:6:17", + "nodeType": "YulTypedName", + "src": "1779:6:17", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "1787:6:17", + "nodeType": "YulTypedName", + "src": "1787:6:17", + "type": "" + } + ], + "src": "1677:765:17" + }, + { + "body": { + "nativeSrc": "2513:53:17", + "nodeType": "YulBlock", + "src": "2513:53:17", + "statements": [ { "expression": { "arguments": [ { - "name": "value2", + "name": "pos", + "nativeSrc": "2530:3:17", "nodeType": "YulIdentifier", - "src": "2098:6:17" + "src": "2530:3:17" }, { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "2553:5:17", "nodeType": "YulIdentifier", - "src": "2111:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2122:2:17", - "type": "", - "value": "64" + "src": "2553:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_address", + "nativeSrc": "2535:17:17", "nodeType": "YulIdentifier", - "src": "2107:3:17" + "src": "2535:17:17" }, + "nativeSrc": "2535:24:17", "nodeType": "YulFunctionCall", - "src": "2107:18:17" + "src": "2535:24:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "mstore", + "nativeSrc": "2523:6:17", "nodeType": "YulIdentifier", - "src": "2054:43:17" + "src": "2523:6:17" }, + "nativeSrc": "2523:37:17", "nodeType": "YulFunctionCall", - "src": "2054:72:17" + "src": "2523:37:17" }, + "nativeSrc": "2523:37:17", "nodeType": "YulExpressionStatement", - "src": "2054:72:17" - }, + "src": "2523:37:17" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "2448:118:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2501:5:17", + "nodeType": "YulTypedName", + "src": "2501:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2508:3:17", + "nodeType": "YulTypedName", + "src": "2508:3:17", + "type": "" + } + ], + "src": "2448:118:17" + }, + { + "body": { + "nativeSrc": "2637:53:17", + "nodeType": "YulBlock", + "src": "2637:53:17", + "statements": [ { "expression": { "arguments": [ { - "name": "value3", + "name": "pos", + "nativeSrc": "2654:3:17", "nodeType": "YulIdentifier", - "src": "2180:6:17" + "src": "2654:3:17" }, { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "2677:5:17", "nodeType": "YulIdentifier", - "src": "2193:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2204:2:17", - "type": "", - "value": "96" + "src": "2677:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "2659:17:17", "nodeType": "YulIdentifier", - "src": "2189:3:17" + "src": "2659:17:17" }, + "nativeSrc": "2659:24:17", "nodeType": "YulFunctionCall", - "src": "2189:18:17" + "src": "2659:24:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "mstore", + "nativeSrc": "2647:6:17", "nodeType": "YulIdentifier", - "src": "2136:43:17" + "src": "2647:6:17" }, + "nativeSrc": "2647:37:17", "nodeType": "YulFunctionCall", - "src": "2136:72:17" + "src": "2647:37:17" }, + "nativeSrc": "2647:37:17", "nodeType": "YulExpressionStatement", - "src": "2136:72:17" + "src": "2647:37:17" } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2572:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1792:9:17", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "1804:6:17", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "1812:6:17", - "type": "" - }, - { - "name": "value1", + "name": "value", + "nativeSrc": "2625:5:17", "nodeType": "YulTypedName", - "src": "1820:6:17", + "src": "2625:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1828:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "2632:3:17", "nodeType": "YulTypedName", - "src": "1839:4:17", + "src": "2632:3:17", "type": "" } ], - "src": "1662:553:17" + "src": "2572:118:17" }, { "body": { + "nativeSrc": "2822:206:17", "nodeType": "YulBlock", - "src": "2347:206:17", + "src": "2822:206:17", "statements": [ { + "nativeSrc": "2832:26:17", "nodeType": "YulAssignment", - "src": "2357:26:17", + "src": "2832:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "2844:9:17", "nodeType": "YulIdentifier", - "src": "2369:9:17" + "src": "2844:9:17" }, { "kind": "number", + "nativeSrc": "2855:2:17", "nodeType": "YulLiteral", - "src": "2380:2:17", + "src": "2855:2:17", "type": "", "value": "64" } ], "functionName": { "name": "add", + "nativeSrc": "2840:3:17", "nodeType": "YulIdentifier", - "src": "2365:3:17" + "src": "2840:3:17" }, + "nativeSrc": "2840:18:17", "nodeType": "YulFunctionCall", - "src": "2365:18:17" + "src": "2840:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "2832:4:17", "nodeType": "YulIdentifier", - "src": "2357:4:17" + "src": "2832:4:17" } ] }, @@ -1416,484 +1992,448 @@ "arguments": [ { "name": "value0", + "nativeSrc": "2912:6:17", "nodeType": "YulIdentifier", - "src": "2437:6:17" + "src": "2912:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "2925:9:17", "nodeType": "YulIdentifier", - "src": "2450:9:17" + "src": "2925:9:17" }, { "kind": "number", + "nativeSrc": "2936:1:17", "nodeType": "YulLiteral", - "src": "2461:1:17", + "src": "2936:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "2921:3:17", "nodeType": "YulIdentifier", - "src": "2446:3:17" + "src": "2921:3:17" }, + "nativeSrc": "2921:17:17", "nodeType": "YulFunctionCall", - "src": "2446:17:17" + "src": "2921:17:17" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "2868:43:17", "nodeType": "YulIdentifier", - "src": "2393:43:17" + "src": "2868:43:17" }, + "nativeSrc": "2868:71:17", "nodeType": "YulFunctionCall", - "src": "2393:71:17" + "src": "2868:71:17" }, + "nativeSrc": "2868:71:17", "nodeType": "YulExpressionStatement", - "src": "2393:71:17" + "src": "2868:71:17" }, { "expression": { "arguments": [ { "name": "value1", + "nativeSrc": "2993:6:17", "nodeType": "YulIdentifier", - "src": "2518:6:17" + "src": "2993:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "3006:9:17", "nodeType": "YulIdentifier", - "src": "2531:9:17" + "src": "3006:9:17" }, { "kind": "number", + "nativeSrc": "3017:2:17", "nodeType": "YulLiteral", - "src": "2542:2:17", + "src": "3017:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3002:3:17", "nodeType": "YulIdentifier", - "src": "2527:3:17" + "src": "3002:3:17" }, + "nativeSrc": "3002:18:17", "nodeType": "YulFunctionCall", - "src": "2527:18:17" + "src": "3002:18:17" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2949:43:17", "nodeType": "YulIdentifier", - "src": "2474:43:17" - }, - "nodeType": "YulFunctionCall", - "src": "2474:72:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2474:72:17" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2311:9:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2323:6:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2331:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "2342:4:17", - "type": "" - } - ], - "src": "2221:332:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2604:51:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2614:35:17", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2643:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "2625:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2625:24:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2614:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2586:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "2596:7:17", - "type": "" - } - ], - "src": "2559:96:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2706:81:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2716:65:17", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2731:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2738:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2727:3:17" + "src": "2949:43:17" }, + "nativeSrc": "2949:72:17", "nodeType": "YulFunctionCall", - "src": "2727:54:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2716:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2688:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "2698:7:17", - "type": "" - } - ], - "src": "2661:126:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2838:32:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "2848:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2859:5:17" + "src": "2949:72:17" }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "2848:7:17" - } - ] + "nativeSrc": "2949:72:17", + "nodeType": "YulExpressionStatement", + "src": "2949:72:17" } ] }, - "name": "cleanup_t_uint256", + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "2696:332:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "2786:9:17", + "nodeType": "YulTypedName", + "src": "2786:9:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2798:6:17", + "nodeType": "YulTypedName", + "src": "2798:6:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2806:6:17", "nodeType": "YulTypedName", - "src": "2820:5:17", + "src": "2806:6:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "2817:4:17", "nodeType": "YulTypedName", - "src": "2830:7:17", + "src": "2817:4:17", "type": "" } ], - "src": "2793:77:17" + "src": "2696:332:17" }, { "body": { + "nativeSrc": "3216:371:17", "nodeType": "YulBlock", - "src": "2919:79:17", + "src": "3216:371:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "2976:16:17", - "statements": [ + "nativeSrc": "3226:27:17", + "nodeType": "YulAssignment", + "src": "3226:27:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2985:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2988:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "name": "headStart", + "nativeSrc": "3238:9:17", + "nodeType": "YulIdentifier", + "src": "3238:9:17" + }, + { + "kind": "number", + "nativeSrc": "3249:3:17", + "nodeType": "YulLiteral", + "src": "3249:3:17", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3234:3:17", + "nodeType": "YulIdentifier", + "src": "3234:3:17" + }, + "nativeSrc": "3234:19:17", + "nodeType": "YulFunctionCall", + "src": "3234:19:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3226:4:17", + "nodeType": "YulIdentifier", + "src": "3226:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3307:6:17", + "nodeType": "YulIdentifier", + "src": "3307:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3320:9:17", "nodeType": "YulIdentifier", - "src": "2978:6:17" + "src": "3320:9:17" }, - "nodeType": "YulFunctionCall", - "src": "2978:12:17" + { + "kind": "number", + "nativeSrc": "3331:1:17", + "nodeType": "YulLiteral", + "src": "3331:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3316:3:17", + "nodeType": "YulIdentifier", + "src": "3316:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "2978:12:17" + "nativeSrc": "3316:17:17", + "nodeType": "YulFunctionCall", + "src": "3316:17:17" } - ] + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3263:43:17", + "nodeType": "YulIdentifier", + "src": "3263:43:17" + }, + "nativeSrc": "3263:71:17", + "nodeType": "YulFunctionCall", + "src": "3263:71:17" }, - "condition": { + "nativeSrc": "3263:71:17", + "nodeType": "YulExpressionStatement", + "src": "3263:71:17" + }, + { + "expression": { "arguments": [ + { + "name": "value1", + "nativeSrc": "3388:6:17", + "nodeType": "YulIdentifier", + "src": "3388:6:17" + }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3401:9:17", "nodeType": "YulIdentifier", - "src": "2942:5:17" + "src": "3401:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2967:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "2949:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2949:24:17" + "kind": "number", + "nativeSrc": "3412:2:17", + "nodeType": "YulLiteral", + "src": "3412:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "3397:3:17", "nodeType": "YulIdentifier", - "src": "2939:2:17" + "src": "3397:3:17" }, + "nativeSrc": "3397:18:17", "nodeType": "YulFunctionCall", - "src": "2939:35:17" + "src": "3397:18:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3344:43:17", "nodeType": "YulIdentifier", - "src": "2932:6:17" + "src": "3344:43:17" }, + "nativeSrc": "3344:72:17", "nodeType": "YulFunctionCall", - "src": "2932:43:17" + "src": "3344:72:17" }, - "nodeType": "YulIf", - "src": "2929:2:17" - } - ] - }, - "name": "validator_revert_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2912:5:17", - "type": "" - } - ], - "src": "2876:122:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3047:79:17", - "statements": [ + "nativeSrc": "3344:72:17", + "nodeType": "YulExpressionStatement", + "src": "3344:72:17" + }, { - "body": { - "nodeType": "YulBlock", - "src": "3104:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3113:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3116:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "name": "value2", + "nativeSrc": "3470:6:17", + "nodeType": "YulIdentifier", + "src": "3470:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3483:9:17", "nodeType": "YulIdentifier", - "src": "3106:6:17" + "src": "3483:9:17" }, - "nodeType": "YulFunctionCall", - "src": "3106:12:17" + { + "kind": "number", + "nativeSrc": "3494:2:17", + "nodeType": "YulLiteral", + "src": "3494:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3479:3:17", + "nodeType": "YulIdentifier", + "src": "3479:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "3106:12:17" + "nativeSrc": "3479:18:17", + "nodeType": "YulFunctionCall", + "src": "3479:18:17" } - ] + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3426:43:17", + "nodeType": "YulIdentifier", + "src": "3426:43:17" + }, + "nativeSrc": "3426:72:17", + "nodeType": "YulFunctionCall", + "src": "3426:72:17" }, - "condition": { + "nativeSrc": "3426:72:17", + "nodeType": "YulExpressionStatement", + "src": "3426:72:17" + }, + { + "expression": { "arguments": [ + { + "name": "value3", + "nativeSrc": "3552:6:17", + "nodeType": "YulIdentifier", + "src": "3552:6:17" + }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3565:9:17", "nodeType": "YulIdentifier", - "src": "3070:5:17" + "src": "3565:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3095:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "3077:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "3077:24:17" + "kind": "number", + "nativeSrc": "3576:2:17", + "nodeType": "YulLiteral", + "src": "3576:2:17", + "type": "", + "value": "96" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "3561:3:17", "nodeType": "YulIdentifier", - "src": "3067:2:17" + "src": "3561:3:17" }, + "nativeSrc": "3561:18:17", "nodeType": "YulFunctionCall", - "src": "3067:35:17" + "src": "3561:18:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3508:43:17", "nodeType": "YulIdentifier", - "src": "3060:6:17" + "src": "3508:43:17" }, + "nativeSrc": "3508:72:17", "nodeType": "YulFunctionCall", - "src": "3060:43:17" + "src": "3508:72:17" }, - "nodeType": "YulIf", - "src": "3057:2:17" + "nativeSrc": "3508:72:17", + "nodeType": "YulExpressionStatement", + "src": "3508:72:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "3034:553:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "3164:9:17", + "nodeType": "YulTypedName", + "src": "3164:9:17", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "3176:6:17", + "nodeType": "YulTypedName", + "src": "3176:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3184:6:17", + "nodeType": "YulTypedName", + "src": "3184:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3192:6:17", + "nodeType": "YulTypedName", + "src": "3192:6:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3200:6:17", + "nodeType": "YulTypedName", + "src": "3200:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3211:4:17", "nodeType": "YulTypedName", - "src": "3040:5:17", + "src": "3211:4:17", "type": "" } ], - "src": "3004:122:17" + "src": "3034:553:17" } ] }, - "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -1901,10 +2441,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806324e22902146100465780634a45d98014610062578063c13425741461007e575b600080fd5b610060600480360381019061005b91906101e3565b61009a565b005b61007c600480360381019061007791906101e3565b6100d7565b005b61009860048036038101906100939190610180565b610113565b005b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be7482826040516100cb929190610282565b60405180910390a15050565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e188282604051610107929190610282565b60405180910390a15050565b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef97284848484604051610148949392919061023d565b60405180910390a150505050565b600081359050610165816102e7565b92915050565b60008135905061017a816102fe565b92915050565b6000806000806080858703121561019657600080fd5b60006101a487828801610156565b94505060206101b587828801610156565b93505060406101c68782880161016b565b92505060606101d78782880161016b565b91505092959194509250565b600080604083850312156101f657600080fd5b600061020485828601610156565b92505060206102158582860161016b565b9150509250929050565b610228816102ab565b82525050565b610237816102dd565b82525050565b6000608082019050610252600083018761021f565b61025f602083018661021f565b61026c604083018561022e565b610279606083018461022e565b95945050505050565b6000604082019050610297600083018561021f565b6102a4602083018461022e565b9392505050565b60006102b6826102bd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102f0816102ab565b81146102fb57600080fd5b50565b610307816102dd565b811461031257600080fd5b5056fea2646970667358221220b22da1040e9813d3455a26de9f214213e7a835355b69660ad21e712fa2e75fd664736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0xD7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH2 0x113 JUMP JUMPDEST STOP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCB SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x107 SWAP3 SWAP2 SWAP1 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x148 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x165 DUP2 PUSH2 0x2E7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17A DUP2 PUSH2 0x2FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4 DUP8 DUP3 DUP9 ADD PUSH2 0x156 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1B5 DUP8 DUP3 DUP9 ADD PUSH2 0x156 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1C6 DUP8 DUP3 DUP9 ADD PUSH2 0x16B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1D7 DUP8 DUP3 DUP9 ADD PUSH2 0x16B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x204 DUP6 DUP3 DUP7 ADD PUSH2 0x156 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x215 DUP6 DUP3 DUP7 ADD PUSH2 0x16B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x228 DUP2 PUSH2 0x2AB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x237 DUP2 PUSH2 0x2DD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x252 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x25F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x26C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x279 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x22E JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x297 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F JUMP JUMPDEST PUSH2 0x2A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x22E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B6 DUP3 PUSH2 0x2BD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F0 DUP2 PUSH2 0x2AB JUMP JUMPDEST DUP2 EQ PUSH2 0x2FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x307 DUP2 PUSH2 0x2DD JUMP JUMPDEST DUP2 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0x2D LOG1 DIV 0xE SWAP9 SGT 0xD3 GASLIMIT GAS 0x26 0xDE SWAP16 0x21 TIMESTAMP SGT 0xE7 0xA8 CALLDATALOAD CALLDATALOAD JUMPDEST PUSH10 0x660AD21E712FA2E75FD6 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "62:698:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;489:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;629:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;317:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;489:135;577:40;598:10;610:6;577:40;;;;;;;:::i;:::-;;;;;;;;489:135;;:::o;629:129::-;714:37;732:10;744:6;714:37;;;;;;;:::i;:::-;;;;;;;;629:129;;:::o;317:167::-;429:48;439:10;451:9;462:6;470;429:48;;;;;;;;;:::i;:::-;;;;;;;;317:167;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:698::-;;;;;456:3;444:9;435:7;431:23;427:33;424:2;;;473:1;470;463:12;424:2;516:1;541:53;586:7;577:6;566:9;562:22;541:53;:::i;:::-;531:63;;487:117;643:2;669:53;714:7;705:6;694:9;690:22;669:53;:::i;:::-;659:63;;614:118;771:2;797:53;842:7;833:6;822:9;818:22;797:53;:::i;:::-;787:63;;742:118;899:2;925:53;970:7;961:6;950:9;946:22;925:53;:::i;:::-;915:63;;870:118;414:581;;;;;;;:::o;1001:407::-;;;1126:2;1114:9;1105:7;1101:23;1097:32;1094:2;;;1142:1;1139;1132:12;1094:2;1185:1;1210:53;1255:7;1246:6;1235:9;1231:22;1210:53;:::i;:::-;1200:63;;1156:117;1312:2;1338:53;1383:7;1374:6;1363:9;1359:22;1338:53;:::i;:::-;1328:63;;1283:118;1084:324;;;;;:::o;1414:118::-;1501:24;1519:5;1501:24;:::i;:::-;1496:3;1489:37;1479:53;;:::o;1538:118::-;1625:24;1643:5;1625:24;:::i;:::-;1620:3;1613:37;1603:53;;:::o;1662:553::-;;1877:3;1866:9;1862:19;1854:27;;1891:71;1959:1;1948:9;1944:17;1935:6;1891:71;:::i;:::-;1972:72;2040:2;2029:9;2025:18;2016:6;1972:72;:::i;:::-;2054;2122:2;2111:9;2107:18;2098:6;2054:72;:::i;:::-;2136;2204:2;2193:9;2189:18;2180:6;2136:72;:::i;:::-;1844:371;;;;;;;:::o;2221:332::-;;2380:2;2369:9;2365:18;2357:26;;2393:71;2461:1;2450:9;2446:17;2437:6;2393:71;:::i;:::-;2474:72;2542:2;2531:9;2527:18;2518:6;2474:72;:::i;:::-;2347:206;;;;;:::o;2559:96::-;;2625:24;2643:5;2625:24;:::i;:::-;2614:35;;2604:51;;;:::o;2661:126::-;;2738:42;2731:5;2727:54;2716:65;;2706:81;;;:::o;2793:77::-;;2859:5;2848:16;;2838:32;;;:::o;2876:122::-;2949:24;2967:5;2949:24;:::i;:::-;2942:5;2939:35;2929:2;;2988:1;2985;2978:12;2929:2;2919:79;:::o;3004:122::-;3077:24;3095:5;3077:24;:::i;:::-;3070:5;3067:35;3057:2;;3116:1;3113;3106:12;3057:2;3047:79;:::o" + "object": "608060405234801561000f575f80fd5b506004361061003f575f3560e01c806324e22902146100435780634a45d9801461005f578063c13425741461007b575b5f80fd5b61005d600480360381019061005891906101e4565b610097565b005b610079600480360381019061007491906101e4565b6100d4565b005b61009560048036038101906100909190610222565b610110565b005b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be7482826040516100c89291906102a4565b60405180910390a15050565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e1882826040516101049291906102a4565b60405180910390a15050565b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef9728484848460405161014594939291906102cb565b60405180910390a150505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018082610157565b9050919050565b61019081610176565b811461019a575f80fd5b50565b5f813590506101ab81610187565b92915050565b5f819050919050565b6101c3816101b1565b81146101cd575f80fd5b50565b5f813590506101de816101ba565b92915050565b5f80604083850312156101fa576101f9610153565b5b5f6102078582860161019d565b9250506020610218858286016101d0565b9150509250929050565b5f805f806080858703121561023a57610239610153565b5b5f6102478782880161019d565b94505060206102588782880161019d565b9350506040610269878288016101d0565b925050606061027a878288016101d0565b91505092959194509250565b61028f81610176565b82525050565b61029e816101b1565b82525050565b5f6040820190506102b75f830185610286565b6102c46020830184610295565b9392505050565b5f6080820190506102de5f830187610286565b6102eb6020830186610286565b6102f86040830185610295565b6103056060830184610295565b9594505050505056fea264697066735822122007799f171db15ef121ef88e5d0807b86e3e15a85a6f86ca4417d3e928ef152a464736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x24E22902 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0x5F JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0x7B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x97 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x79 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0xD4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x222 JUMP JUMPDEST PUSH2 0x110 JUMP JUMPDEST STOP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP3 SWAP2 SWAP1 PUSH2 0x2A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x104 SWAP3 SWAP2 SWAP1 PUSH2 0x2A4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x145 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x180 DUP3 PUSH2 0x157 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x190 DUP2 PUSH2 0x176 JUMP JUMPDEST DUP2 EQ PUSH2 0x19A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1AB DUP2 PUSH2 0x187 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C3 DUP2 PUSH2 0x1B1 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1DE DUP2 PUSH2 0x1BA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1FA JUMPI PUSH2 0x1F9 PUSH2 0x153 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x207 DUP6 DUP3 DUP7 ADD PUSH2 0x19D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x218 DUP6 DUP3 DUP7 ADD PUSH2 0x1D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x23A JUMPI PUSH2 0x239 PUSH2 0x153 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x247 DUP8 DUP3 DUP9 ADD PUSH2 0x19D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x258 DUP8 DUP3 DUP9 ADD PUSH2 0x19D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x269 DUP8 DUP3 DUP9 ADD PUSH2 0x1D0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x27A DUP8 DUP3 DUP9 ADD PUSH2 0x1D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x28F DUP2 PUSH2 0x176 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x29E DUP2 PUSH2 0x1B1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2B7 PUSH0 DUP4 ADD DUP6 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x2C4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x295 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2DE PUSH0 DUP4 ADD DUP8 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x2EB PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x2F8 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x295 JUMP JUMPDEST PUSH2 0x305 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x295 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SMOD PUSH26 0x9F171DB15EF121EF88E5D0807B86E3E15A85A6F86CA4417D3E92 DUP15 CALL MSTORE LOG4 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "62:698:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;489:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;629:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;317:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;489:135;577:40;598:10;610:6;577:40;;;;;;;:::i;:::-;;;;;;;;489:135;;:::o;629:129::-;714:37;732:10;744:6;714:37;;;;;;;:::i;:::-;;;;;;;;629:129;;:::o;317:167::-;429:48;439:10;451:9;462:6;470;429:48;;;;;;;;;:::i;:::-;;;;;;;;317:167;;;;:::o;88:117:17:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:765::-;1763:6;1771;1779;1787;1836:3;1824:9;1815:7;1811:23;1807:33;1804:120;;;1843:79;;:::i;:::-;1804:120;1963:1;1988:53;2033:7;2024:6;2013:9;2009:22;1988:53;:::i;:::-;1978:63;;1934:117;2090:2;2116:53;2161:7;2152:6;2141:9;2137:22;2116:53;:::i;:::-;2106:63;;2061:118;2218:2;2244:53;2289:7;2280:6;2269:9;2265:22;2244:53;:::i;:::-;2234:63;;2189:118;2346:2;2372:53;2417:7;2408:6;2397:9;2393:22;2372:53;:::i;:::-;2362:63;;2317:118;1677:765;;;;;;;:::o;2448:118::-;2535:24;2553:5;2535:24;:::i;:::-;2530:3;2523:37;2448:118;;:::o;2572:::-;2659:24;2677:5;2659:24;:::i;:::-;2654:3;2647:37;2572:118;;:::o;2696:332::-;2817:4;2855:2;2844:9;2840:18;2832:26;;2868:71;2936:1;2925:9;2921:17;2912:6;2868:71;:::i;:::-;2949:72;3017:2;3006:9;3002:18;2993:6;2949:72;:::i;:::-;2696:332;;;;;:::o;3034:553::-;3211:4;3249:3;3238:9;3234:19;3226:27;;3263:71;3331:1;3320:9;3316:17;3307:6;3263:71;:::i;:::-;3344:72;3412:2;3401:9;3397:18;3388:6;3344:72;:::i;:::-;3426;3494:2;3483:9;3479:18;3470:6;3426:72;:::i;:::-;3508;3576:2;3565:9;3561:18;3552:6;3508:72;:::i;:::-;3034:553;;;;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b5061034b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806324e22902146100465780634a45d98014610062578063c13425741461007e575b600080fd5b610060600480360381019061005b91906101e3565b61009a565b005b61007c600480360381019061007791906101e3565b6100d7565b005b61009860048036038101906100939190610180565b610113565b005b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be7482826040516100cb929190610282565b60405180910390a15050565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e188282604051610107929190610282565b60405180910390a15050565b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef97284848484604051610148949392919061023d565b60405180910390a150505050565b600081359050610165816102e7565b92915050565b60008135905061017a816102fe565b92915050565b6000806000806080858703121561019657600080fd5b60006101a487828801610156565b94505060206101b587828801610156565b93505060406101c68782880161016b565b92505060606101d78782880161016b565b91505092959194509250565b600080604083850312156101f657600080fd5b600061020485828601610156565b92505060206102158582860161016b565b9150509250929050565b610228816102ab565b82525050565b610237816102dd565b82525050565b6000608082019050610252600083018761021f565b61025f602083018661021f565b61026c604083018561022e565b610279606083018461022e565b95945050505050565b6000604082019050610297600083018561021f565b6102a4602083018461022e565b9392505050565b60006102b6826102bd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6102f0816102ab565b81146102fb57600080fd5b50565b610307816102dd565b811461031257600080fd5b5056fea2646970667358221220b22da1040e9813d3455a26de9f214213e7a835355b69660ad21e712fa2e75fd664736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506103448061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806324e22902146100435780634a45d9801461005f578063c13425741461007b575b5f80fd5b61005d600480360381019061005891906101e4565b610097565b005b610079600480360381019061007491906101e4565b6100d4565b005b61009560048036038101906100909190610222565b610110565b005b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be7482826040516100c89291906102a4565b60405180910390a15050565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e1882826040516101049291906102a4565b60405180910390a15050565b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef9728484848460405161014594939291906102cb565b60405180910390a150505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018082610157565b9050919050565b61019081610176565b811461019a575f80fd5b50565b5f813590506101ab81610187565b92915050565b5f819050919050565b6101c3816101b1565b81146101cd575f80fd5b50565b5f813590506101de816101ba565b92915050565b5f80604083850312156101fa576101f9610153565b5b5f6102078582860161019d565b9250506020610218858286016101d0565b9150509250929050565b5f805f806080858703121561023a57610239610153565b5b5f6102478782880161019d565b94505060206102588782880161019d565b9350506040610269878288016101d0565b925050606061027a878288016101d0565b91505092959194509250565b61028f81610176565b82525050565b61029e816101b1565b82525050565b5f6040820190506102b75f830185610286565b6102c46020830184610295565b9392505050565b5f6080820190506102de5f830187610286565b6102eb6020830186610286565b6102f86040830185610295565b6103056060830184610295565b9594505050505056fea264697066735822122007799f171db15ef121ef88e5d0807b86e3e15a85a6f86ca4417d3e928ef152a464736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/MockLiquidationContract.json b/ts-tests/build/MockLiquidationContract.json index 7154db65bf..71508215b7 100644 --- a/ts-tests/build/MockLiquidationContract.json +++ b/ts-tests/build/MockLiquidationContract.json @@ -162,288 +162,500 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5061079d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806318ad37af1461005c57806324e229021461007a5780632fd7d1fd146100965780634a45d980146100b4578063c1342574146100d0575b600080fd5b6100646100ec565b60405161007191906105c9565b60405180910390f35b610094600480360381019061008f91906104ff565b6100fb565b005b61009e610138565b6040516100ab91906105c9565b60405180910390f35b6100ce60048036038101906100c991906104ff565b610147565b005b6100ea60048036038101906100e5919061049c565b610183565b005b6a010000000000000000008181565b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be74828260405161012c929190610652565b60405180910390a15050565b6a010000000000000000000181565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e188282604051610177929190610652565b60405180910390a15050565b806a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101c891906105c9565b60206040518083038186803b1580156101e057600080fd5b505afa1580156101f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102189190610564565b106102bb576a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016102639291906105e4565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b5919061053b565b506103f0565b806a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161030091906105c9565b60206040518083038186803b15801561031857600080fd5b505afa15801561032c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103509190610564565b106103ef576a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161039b9291906105e4565b602060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed919061053b565b505b5b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef97284848484604051610425949392919061060d565b60405180910390a150505050565b6000813590506104428161070b565b92915050565b60008135905061045781610722565b92915050565b60008151905061046c81610739565b92915050565b60008135905061048181610750565b92915050565b60008151905061049681610750565b92915050565b600080600080608085870312156104b257600080fd5b60006104c087828801610433565b94505060206104d187828801610448565b93505060406104e287828801610472565b92505060606104f387828801610472565b91505092959194509250565b6000806040838503121561051257600080fd5b600061052085828601610433565b925050602061053185828601610472565b9150509250929050565b60006020828403121561054d57600080fd5b600061055b8482850161045d565b91505092915050565b60006020828403121561057657600080fd5b600061058484828501610487565b91505092915050565b610596816106d5565b82525050565b6105a58161068d565b82525050565b6105b48161067b565b82525050565b6105c3816106cb565b82525050565b60006020820190506105de60008301846105ab565b92915050565b60006040820190506105f9600083018561058d565b61060660208301846105ba565b9392505050565b600060808201905061062260008301876105ab565b61062f602083018661059c565b61063c60408301856105ba565b61064960608301846105ba565b95945050505050565b600060408201905061066760008301856105ab565b61067460208301846105ba565b9392505050565b6000610686826106ab565b9050919050565b6000610698826106ab565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006106e0826106e7565b9050919050565b60006106f2826106f9565b9050919050565b6000610704826106ab565b9050919050565b6107148161067b565b811461071f57600080fd5b50565b61072b8161068d565b811461073657600080fd5b50565b6107428161069f565b811461074d57600080fd5b50565b610759816106cb565b811461076457600080fd5b5056fea26469706673582212201080b2662bf4242373a4a47f61124118ec2f5dd5e3284f1c829caf6f7c6d4f1464736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x79D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18AD37AF EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x24E22902 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x2FD7D1FD EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST PUSH2 0xFB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9E PUSH2 0x138 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x49C JUMP JUMPDEST PUSH2 0x183 JUMP JUMPDEST STOP JUMPDEST PUSH11 0x100000000000000000081 DUP2 JUMP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x12C SWAP3 SWAP2 SWAP1 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH11 0x100000000000000000001 DUP2 JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x177 SWAP3 SWAP2 SWAP1 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x564 JUMP JUMPDEST LT PUSH2 0x2BB JUMPI PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x5E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST POP PUSH2 0x3F0 JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x32C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x350 SWAP2 SWAP1 PUSH2 0x564 JUMP JUMPDEST LT PUSH2 0x3EF JUMPI PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP3 SWAP2 SWAP1 PUSH2 0x5E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST POP JUMPDEST JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x425 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x60D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x442 DUP2 PUSH2 0x70B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x457 DUP2 PUSH2 0x722 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x46C DUP2 PUSH2 0x739 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x481 DUP2 PUSH2 0x750 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x496 DUP2 PUSH2 0x750 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4C0 DUP8 DUP3 DUP9 ADD PUSH2 0x433 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x4D1 DUP8 DUP3 DUP9 ADD PUSH2 0x448 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x4E2 DUP8 DUP3 DUP9 ADD PUSH2 0x472 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x4F3 DUP8 DUP3 DUP9 ADD PUSH2 0x472 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP3 DUP7 ADD PUSH2 0x433 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x531 DUP6 DUP3 DUP7 ADD PUSH2 0x472 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x54D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x55B DUP5 DUP3 DUP6 ADD PUSH2 0x45D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x584 DUP5 DUP3 DUP6 ADD PUSH2 0x487 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x596 DUP2 PUSH2 0x6D5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5A5 DUP2 PUSH2 0x68D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5B4 DUP2 PUSH2 0x67B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5C3 DUP2 PUSH2 0x6CB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5DE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5F9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x58D JUMP JUMPDEST PUSH2 0x606 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x622 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x5AB JUMP JUMPDEST PUSH2 0x62F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x59C JUMP JUMPDEST PUSH2 0x63C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x5BA JUMP JUMPDEST PUSH2 0x649 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x5BA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x667 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5AB JUMP JUMPDEST PUSH2 0x674 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x686 DUP3 PUSH2 0x6AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x698 DUP3 PUSH2 0x6AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E0 DUP3 PUSH2 0x6E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F2 DUP3 PUSH2 0x6F9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x704 DUP3 PUSH2 0x6AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x714 DUP2 PUSH2 0x67B JUMP JUMPDEST DUP2 EQ PUSH2 0x71F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x72B DUP2 PUSH2 0x68D JUMP JUMPDEST DUP2 EQ PUSH2 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x742 DUP2 PUSH2 0x69F JUMP JUMPDEST DUP2 EQ PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x759 DUP2 PUSH2 0x6CB JUMP JUMPDEST DUP2 EQ PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT DUP1 0xB2 PUSH7 0x2BF4242373A4A4 PUSH32 0x61124118EC2F5DD5E3284F1C829CAF6F7C6D4F1464736F6C6343000802003300 ", + "object": "608060405234801561000f575f80fd5b5061075f8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806318ad37af1461005957806324e22902146100775780632fd7d1fd146100935780634a45d980146100b1578063c1342574146100cd575b5f80fd5b6100616100e9565b60405161006e9190610429565b60405180910390f35b610091600480360381019061008c91906104a3565b6100f8565b005b61009b610135565b6040516100a89190610429565b60405180910390f35b6100cb60048036038101906100c691906104a3565b610144565b005b6100e760048036038101906100e2919061051c565b610180565b005b6a010000000000000000008181565b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be74828260405161012992919061058f565b60405180910390a15050565b6a010000000000000000000181565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e18828260405161017492919061058f565b60405180910390a15050565b806a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101c59190610429565b602060405180830381865afa1580156101e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020491906105ca565b10610295576a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161024f929190610650565b6020604051808303815f875af115801561026b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028f91906106ac565b506103a7565b806a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102da9190610429565b602060405180830381865afa1580156102f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031991906105ca565b106103a6576a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610364929190610650565b6020604051808303815f875af1158015610380573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a491906106ac565b505b5b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef972848484846040516103dc94939291906106e6565b60405180910390a150505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610413826103ea565b9050919050565b61042381610409565b82525050565b5f60208201905061043c5f83018461041a565b92915050565b5f80fd5b61044f81610409565b8114610459575f80fd5b50565b5f8135905061046a81610446565b92915050565b5f819050919050565b61048281610470565b811461048c575f80fd5b50565b5f8135905061049d81610479565b92915050565b5f80604083850312156104b9576104b8610442565b5b5f6104c68582860161045c565b92505060206104d78582860161048f565b9150509250929050565b5f6104eb826103ea565b9050919050565b6104fb816104e1565b8114610505575f80fd5b50565b5f81359050610516816104f2565b92915050565b5f805f806080858703121561053457610533610442565b5b5f6105418782880161045c565b945050602061055287828801610508565b93505060406105638782880161048f565b92505060606105748782880161048f565b91505092959194509250565b61058981610470565b82525050565b5f6040820190506105a25f83018561041a565b6105af6020830184610580565b9392505050565b5f815190506105c481610479565b92915050565b5f602082840312156105df576105de610442565b5b5f6105ec848285016105b6565b91505092915050565b5f819050919050565b5f61061861061361060e846103ea565b6105f5565b6103ea565b9050919050565b5f610629826105fe565b9050919050565b5f61063a8261061f565b9050919050565b61064a81610630565b82525050565b5f6040820190506106635f830185610641565b6106706020830184610580565b9392505050565b5f8115159050919050565b61068b81610677565b8114610695575f80fd5b50565b5f815190506106a681610682565b92915050565b5f602082840312156106c1576106c0610442565b5b5f6106ce84828501610698565b91505092915050565b6106e0816104e1565b82525050565b5f6080820190506106f95f83018761041a565b61070660208301866106d7565b6107136040830185610580565b6107206060830184610580565b9594505050505056fea26469706673582212209641de41cfb5748aa65c78726444eb72768e56977a8c6ee88c8b7eda3d7ddab364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x75F DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18AD37AF EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x24E22902 EQ PUSH2 0x77 JUMPI DUP1 PUSH4 0x2FD7D1FD EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x61 PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x91 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0xF8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9B PUSH2 0x135 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x144 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x51C JUMP JUMPDEST PUSH2 0x180 JUMP JUMPDEST STOP JUMPDEST PUSH11 0x100000000000000000081 DUP2 JUMP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x129 SWAP3 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH11 0x100000000000000000001 DUP2 JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x174 SWAP3 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST LT PUSH2 0x295 JUMPI PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24F SWAP3 SWAP2 SWAP1 PUSH2 0x650 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST POP PUSH2 0x3A7 JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F5 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST LT PUSH2 0x3A6 JUMPI PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x364 SWAP3 SWAP2 SWAP1 PUSH2 0x650 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x380 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A4 SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST POP JUMPDEST JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x3DC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x413 DUP3 PUSH2 0x3EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x423 DUP2 PUSH2 0x409 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x43C PUSH0 DUP4 ADD DUP5 PUSH2 0x41A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x409 JUMP JUMPDEST DUP2 EQ PUSH2 0x459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x46A DUP2 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x470 JUMP JUMPDEST DUP2 EQ PUSH2 0x48C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49D DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B9 JUMPI PUSH2 0x4B8 PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4C6 DUP6 DUP3 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x4D7 DUP6 DUP3 DUP7 ADD PUSH2 0x48F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4EB DUP3 PUSH2 0x3EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4FB DUP2 PUSH2 0x4E1 JUMP JUMPDEST DUP2 EQ PUSH2 0x505 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x516 DUP2 PUSH2 0x4F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x534 JUMPI PUSH2 0x533 PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x541 DUP8 DUP3 DUP9 ADD PUSH2 0x45C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x552 DUP8 DUP3 DUP9 ADD PUSH2 0x508 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x563 DUP8 DUP3 DUP9 ADD PUSH2 0x48F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x574 DUP8 DUP3 DUP9 ADD PUSH2 0x48F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x589 DUP2 PUSH2 0x470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5A2 PUSH0 DUP4 ADD DUP6 PUSH2 0x41A JUMP JUMPDEST PUSH2 0x5AF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x580 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x5C4 DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DF JUMPI PUSH2 0x5DE PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x5EC DUP5 DUP3 DUP6 ADD PUSH2 0x5B6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x618 PUSH2 0x613 PUSH2 0x60E DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH2 0x5F5 JUMP JUMPDEST PUSH2 0x3EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x629 DUP3 PUSH2 0x5FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x63A DUP3 PUSH2 0x61F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x64A DUP2 PUSH2 0x630 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x663 PUSH0 DUP4 ADD DUP6 PUSH2 0x641 JUMP JUMPDEST PUSH2 0x670 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x580 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68B DUP2 PUSH2 0x677 JUMP JUMPDEST DUP2 EQ PUSH2 0x695 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x6A6 DUP2 PUSH2 0x682 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x6CE DUP5 DUP3 DUP6 ADD PUSH2 0x698 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6E0 DUP2 PUSH2 0x4E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x6F9 PUSH0 DUP4 ADD DUP8 PUSH2 0x41A JUMP JUMPDEST PUSH2 0x706 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x6D7 JUMP JUMPDEST PUSH2 0x713 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x580 JUMP JUMPDEST PUSH2 0x720 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x580 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 COINBASE 0xDE COINBASE 0xCF 0xB5 PUSH21 0x8AA65C78726444EB72768E56977A8C6EE88C8B7EDA RETURNDATASIZE PUSH30 0xDAB364736F6C634300081800330000000000000000000000000000000000 ", "sourceMap": "123:1147:14:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@AUSD_1257": { + "entryPoint": 309, + "id": 1257, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@KUSD_1254": { + "entryPoint": 233, + "id": 1254, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@liquidate_1318": { + "entryPoint": 384, + "id": 1318, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@onCollateralTransfer_1331": { + "entryPoint": 248, + "id": 1331, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@onRepaymentRefund_1344": { + "entryPoint": 324, + "id": 1344, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_address": { + "entryPoint": 1116, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_payable": { + "entryPoint": 1288, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 1688, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 1167, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 1462, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address_payablet_uint256t_uint256": { + "entryPoint": 1308, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 1187, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 1708, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 1482, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_payable_to_t_address_fromStack": { + "entryPoint": 1601, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_payable_to_t_address_payable_fromStack": { + "entryPoint": 1751, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1050, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 1408, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1065, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 1616, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_payable_t_uint256_t_uint256__to_t_address_t_address_payable_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 1766, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 1423, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 1033, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_address_payable": { + "entryPoint": 1249, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 1655, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1002, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1136, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_address_payable_to_t_address": { + "entryPoint": 1584, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 1567, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 1534, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 1525, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 1090, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 1094, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address_payable": { + "entryPoint": 1266, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 1666, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 1145, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:6640:17", "nodeType": "YulBlock", - "src": "0:5950:17", + "src": "0:6640:17", "statements": [ { "body": { + "nativeSrc": "52:81:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "52:81:17", "statements": [ { + "nativeSrc": "62:65:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "62:65:17", "value": { "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "77:5:17", "nodeType": "YulIdentifier", - "src": "91:6:17" + "src": "77:5:17" + }, + { + "kind": "number", + "nativeSrc": "84:42:17", + "nodeType": "YulLiteral", + "src": "84:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "calldataload", + "name": "and", + "nativeSrc": "73:3:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "73:3:17" }, + "nativeSrc": "73:54:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "73:54:17" }, "variableNames": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "62:7:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "62:7:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "134:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "107:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "107:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "107:33:17" } ] }, - "name": "abi_decode_t_address", + "name": "cleanup_t_uint160", + "nativeSrc": "7:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "34:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "34:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "44:7:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "44:7:17", "type": "" } ], - "src": "7:139:17" + "src": "7:126:17" }, { "body": { + "nativeSrc": "184:51:17", "nodeType": "YulBlock", - "src": "212:95:17", + "src": "184:51:17", "statements": [ { + "nativeSrc": "194:35:17", "nodeType": "YulAssignment", - "src": "222:29:17", + "src": "194:35:17", "value": { "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "223:5:17", "nodeType": "YulIdentifier", - "src": "244:6:17" + "src": "223:5:17" } ], "functionName": { - "name": "calldataload", + "name": "cleanup_t_uint160", + "nativeSrc": "205:17:17", "nodeType": "YulIdentifier", - "src": "231:12:17" + "src": "205:17:17" }, + "nativeSrc": "205:24:17", "nodeType": "YulFunctionCall", - "src": "231:20:17" + "src": "205:24:17" }, "variableNames": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "194:7:17", "nodeType": "YulIdentifier", - "src": "222:5:17" + "src": "194:7:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "295:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_address_payable", - "nodeType": "YulIdentifier", - "src": "260:34:17" - }, - "nodeType": "YulFunctionCall", - "src": "260:41:17" - }, - "nodeType": "YulExpressionStatement", - "src": "260:41:17" } ] }, - "name": "abi_decode_t_address_payable", + "name": "cleanup_t_address", + "nativeSrc": "139:96:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "190:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "166:5:17", "nodeType": "YulTypedName", - "src": "198:3:17", + "src": "166:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "176:7:17", "nodeType": "YulTypedName", - "src": "206:5:17", + "src": "176:7:17", "type": "" } ], - "src": "152:155:17" + "src": "139:96:17" }, { "body": { + "nativeSrc": "306:53:17", "nodeType": "YulBlock", - "src": "373:77:17", + "src": "306:53:17", "statements": [ - { - "nodeType": "YulAssignment", - "src": "383:22:17", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "398:6:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "392:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "392:13:17" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "383:5:17" - } - ] - }, { "expression": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "323:3:17", "nodeType": "YulIdentifier", - "src": "438:5:17" + "src": "323:3:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "346:5:17", + "nodeType": "YulIdentifier", + "src": "346:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "328:17:17", + "nodeType": "YulIdentifier", + "src": "328:17:17" + }, + "nativeSrc": "328:24:17", + "nodeType": "YulFunctionCall", + "src": "328:24:17" } ], "functionName": { - "name": "validator_revert_t_bool", + "name": "mstore", + "nativeSrc": "316:6:17", "nodeType": "YulIdentifier", - "src": "414:23:17" + "src": "316:6:17" }, + "nativeSrc": "316:37:17", "nodeType": "YulFunctionCall", - "src": "414:30:17" + "src": "316:37:17" }, + "nativeSrc": "316:37:17", "nodeType": "YulExpressionStatement", - "src": "414:30:17" + "src": "316:37:17" } ] }, - "name": "abi_decode_t_bool_fromMemory", + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "241:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "value", + "nativeSrc": "294:5:17", "nodeType": "YulTypedName", - "src": "351:6:17", + "src": "294:5:17", "type": "" }, { - "name": "end", - "nodeType": "YulTypedName", - "src": "359:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", + "name": "pos", + "nativeSrc": "301:3:17", "nodeType": "YulTypedName", - "src": "367:5:17", + "src": "301:3:17", "type": "" } ], - "src": "313:137:17" + "src": "241:118:17" }, { "body": { + "nativeSrc": "463:124:17", "nodeType": "YulBlock", - "src": "508:87:17", + "src": "463:124:17", "statements": [ { + "nativeSrc": "473:26:17", "nodeType": "YulAssignment", - "src": "518:29:17", + "src": "473:26:17", "value": { "arguments": [ { - "name": "offset", + "name": "headStart", + "nativeSrc": "485:9:17", "nodeType": "YulIdentifier", - "src": "540:6:17" + "src": "485:9:17" + }, + { + "kind": "number", + "nativeSrc": "496:2:17", + "nodeType": "YulLiteral", + "src": "496:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "calldataload", + "name": "add", + "nativeSrc": "481:3:17", "nodeType": "YulIdentifier", - "src": "527:12:17" + "src": "481:3:17" }, + "nativeSrc": "481:18:17", "nodeType": "YulFunctionCall", - "src": "527:20:17" + "src": "481:18:17" }, "variableNames": [ { - "name": "value", + "name": "tail", + "nativeSrc": "473:4:17", "nodeType": "YulIdentifier", - "src": "518:5:17" + "src": "473:4:17" } ] }, @@ -451,168 +663,280 @@ "expression": { "arguments": [ { - "name": "value", + "name": "value0", + "nativeSrc": "553:6:17", "nodeType": "YulIdentifier", - "src": "583:5:17" + "src": "553:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "566:9:17", + "nodeType": "YulIdentifier", + "src": "566:9:17" + }, + { + "kind": "number", + "nativeSrc": "577:1:17", + "nodeType": "YulLiteral", + "src": "577:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "562:3:17", + "nodeType": "YulIdentifier", + "src": "562:3:17" + }, + "nativeSrc": "562:17:17", + "nodeType": "YulFunctionCall", + "src": "562:17:17" } ], "functionName": { - "name": "validator_revert_t_uint256", + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "509:43:17", "nodeType": "YulIdentifier", - "src": "556:26:17" + "src": "509:43:17" }, + "nativeSrc": "509:71:17", "nodeType": "YulFunctionCall", - "src": "556:33:17" + "src": "509:71:17" }, + "nativeSrc": "509:71:17", "nodeType": "YulExpressionStatement", - "src": "556:33:17" + "src": "509:71:17" } ] }, - "name": "abi_decode_t_uint256", + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "365:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "headStart", + "nativeSrc": "435:9:17", "nodeType": "YulTypedName", - "src": "486:6:17", + "src": "435:9:17", "type": "" }, { - "name": "end", + "name": "value0", + "nativeSrc": "447:6:17", "nodeType": "YulTypedName", - "src": "494:3:17", + "src": "447:6:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "tail", + "nativeSrc": "458:4:17", "nodeType": "YulTypedName", - "src": "502:5:17", + "src": "458:4:17", "type": "" } ], - "src": "456:139:17" + "src": "365:222:17" }, { "body": { + "nativeSrc": "633:35:17", "nodeType": "YulBlock", - "src": "664:80:17", + "src": "633:35:17", "statements": [ { + "nativeSrc": "643:19:17", "nodeType": "YulAssignment", - "src": "674:22:17", + "src": "643:19:17", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "689:6:17" + "kind": "number", + "nativeSrc": "659:2:17", + "nodeType": "YulLiteral", + "src": "659:2:17", + "type": "", + "value": "64" } ], "functionName": { "name": "mload", + "nativeSrc": "653:5:17", "nodeType": "YulIdentifier", - "src": "683:5:17" + "src": "653:5:17" }, + "nativeSrc": "653:9:17", "nodeType": "YulFunctionCall", - "src": "683:13:17" + "src": "653:9:17" }, "variableNames": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "643:6:17", "nodeType": "YulIdentifier", - "src": "674:5:17" + "src": "643:6:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "732:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "705:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "705:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "705:33:17" } ] }, - "name": "abi_decode_t_uint256_fromMemory", + "name": "allocate_unbounded", + "nativeSrc": "593:75:17", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "642:6:17", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "650:3:17", - "type": "" - } - ], "returnVariables": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "626:6:17", "nodeType": "YulTypedName", - "src": "658:5:17", + "src": "626:6:17", "type": "" } ], - "src": "601:143:17" + "src": "593:75:17" }, { "body": { + "nativeSrc": "763:28:17", "nodeType": "YulBlock", - "src": "875:589:17", + "src": "763:28:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "922:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "931:1:17", - "type": "", - "value": "0" - }, - { + "kind": "number", + "nativeSrc": "780:1:17", + "nodeType": "YulLiteral", + "src": "780:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "783:1:17", + "nodeType": "YulLiteral", + "src": "783:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "773:6:17", + "nodeType": "YulIdentifier", + "src": "773:6:17" + }, + "nativeSrc": "773:12:17", + "nodeType": "YulFunctionCall", + "src": "773:12:17" + }, + "nativeSrc": "773:12:17", + "nodeType": "YulExpressionStatement", + "src": "773:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "674:117:17", + "nodeType": "YulFunctionDefinition", + "src": "674:117:17" + }, + { + "body": { + "nativeSrc": "886:28:17", + "nodeType": "YulBlock", + "src": "886:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "903:1:17", + "nodeType": "YulLiteral", + "src": "903:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "906:1:17", + "nodeType": "YulLiteral", + "src": "906:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "896:6:17", + "nodeType": "YulIdentifier", + "src": "896:6:17" + }, + "nativeSrc": "896:12:17", + "nodeType": "YulFunctionCall", + "src": "896:12:17" + }, + "nativeSrc": "896:12:17", + "nodeType": "YulExpressionStatement", + "src": "896:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "797:117:17", + "nodeType": "YulFunctionDefinition", + "src": "797:117:17" + }, + { + "body": { + "nativeSrc": "963:79:17", + "nodeType": "YulBlock", + "src": "963:79:17", + "statements": [ + { + "body": { + "nativeSrc": "1020:16:17", + "nodeType": "YulBlock", + "src": "1020:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1029:1:17", + "nodeType": "YulLiteral", + "src": "1029:1:17", + "type": "", + "value": "0" + }, + { "kind": "number", + "nativeSrc": "1032:1:17", "nodeType": "YulLiteral", - "src": "934:1:17", + "src": "1032:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "1022:6:17", "nodeType": "YulIdentifier", - "src": "924:6:17" + "src": "1022:6:17" }, + "nativeSrc": "1022:12:17", "nodeType": "YulFunctionCall", - "src": "924:12:17" + "src": "1022:12:17" }, + "nativeSrc": "1022:12:17", "nodeType": "YulExpressionStatement", - "src": "924:12:17" + "src": "1022:12:17" } ] }, @@ -621,330 +945,677 @@ { "arguments": [ { - "name": "dataEnd", + "name": "value", + "nativeSrc": "986:5:17", "nodeType": "YulIdentifier", - "src": "896:7:17" + "src": "986:5:17" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "905:9:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "1011:5:17", + "nodeType": "YulIdentifier", + "src": "1011:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "993:17:17", + "nodeType": "YulIdentifier", + "src": "993:17:17" + }, + "nativeSrc": "993:24:17", + "nodeType": "YulFunctionCall", + "src": "993:24:17" } ], "functionName": { - "name": "sub", + "name": "eq", + "nativeSrc": "983:2:17", "nodeType": "YulIdentifier", - "src": "892:3:17" + "src": "983:2:17" }, + "nativeSrc": "983:35:17", "nodeType": "YulFunctionCall", - "src": "892:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "917:3:17", - "type": "", - "value": "128" + "src": "983:35:17" } ], "functionName": { - "name": "slt", + "name": "iszero", + "nativeSrc": "976:6:17", "nodeType": "YulIdentifier", - "src": "888:3:17" + "src": "976:6:17" }, + "nativeSrc": "976:43:17", "nodeType": "YulFunctionCall", - "src": "888:33:17" + "src": "976:43:17" }, + "nativeSrc": "973:63:17", "nodeType": "YulIf", - "src": "885:2:17" - }, + "src": "973:63:17" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "920:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "956:5:17", + "nodeType": "YulTypedName", + "src": "956:5:17", + "type": "" + } + ], + "src": "920:122:17" + }, + { + "body": { + "nativeSrc": "1100:87:17", + "nodeType": "YulBlock", + "src": "1100:87:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "948:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "963:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "977:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "967:6:17", - "type": "" - } - ] + "nativeSrc": "1110:29:17", + "nodeType": "YulAssignment", + "src": "1110:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1132:6:17", + "nodeType": "YulIdentifier", + "src": "1132:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1119:12:17", + "nodeType": "YulIdentifier", + "src": "1119:12:17" }, + "nativeSrc": "1119:20:17", + "nodeType": "YulFunctionCall", + "src": "1119:20:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "992:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1027:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1038:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1023:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1023:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1047:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1002:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "1002:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "992:6:17" - } - ] + "name": "value", + "nativeSrc": "1110:5:17", + "nodeType": "YulIdentifier", + "src": "1110:5:17" } ] }, { - "nodeType": "YulBlock", - "src": "1075:126:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1090:16:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1104:2:17", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1094:6:17", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1175:5:17", + "nodeType": "YulIdentifier", + "src": "1175:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1148:26:17", + "nodeType": "YulIdentifier", + "src": "1148:26:17" }, + "nativeSrc": "1148:33:17", + "nodeType": "YulFunctionCall", + "src": "1148:33:17" + }, + "nativeSrc": "1148:33:17", + "nodeType": "YulExpressionStatement", + "src": "1148:33:17" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1048:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1078:6:17", + "nodeType": "YulTypedName", + "src": "1078:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1086:3:17", + "nodeType": "YulTypedName", + "src": "1086:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1094:5:17", + "nodeType": "YulTypedName", + "src": "1094:5:17", + "type": "" + } + ], + "src": "1048:139:17" + }, + { + "body": { + "nativeSrc": "1238:32:17", + "nodeType": "YulBlock", + "src": "1238:32:17", + "statements": [ + { + "nativeSrc": "1248:16:17", + "nodeType": "YulAssignment", + "src": "1248:16:17", + "value": { + "name": "value", + "nativeSrc": "1259:5:17", + "nodeType": "YulIdentifier", + "src": "1259:5:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "1120:71:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1163:9:17" - }, + "name": "cleaned", + "nativeSrc": "1248:7:17", + "nodeType": "YulIdentifier", + "src": "1248:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "1193:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1220:5:17", + "nodeType": "YulTypedName", + "src": "1220:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1230:7:17", + "nodeType": "YulTypedName", + "src": "1230:7:17", + "type": "" + } + ], + "src": "1193:77:17" + }, + { + "body": { + "nativeSrc": "1319:79:17", + "nodeType": "YulBlock", + "src": "1319:79:17", + "statements": [ + { + "body": { + "nativeSrc": "1376:16:17", + "nodeType": "YulBlock", + "src": "1376:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1385:1:17", + "nodeType": "YulLiteral", + "src": "1385:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1388:1:17", + "nodeType": "YulLiteral", + "src": "1388:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1378:6:17", + "nodeType": "YulIdentifier", + "src": "1378:6:17" + }, + "nativeSrc": "1378:12:17", + "nodeType": "YulFunctionCall", + "src": "1378:12:17" + }, + "nativeSrc": "1378:12:17", + "nodeType": "YulExpressionStatement", + "src": "1378:12:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1342:5:17", + "nodeType": "YulIdentifier", + "src": "1342:5:17" + }, + { + "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "1367:5:17", "nodeType": "YulIdentifier", - "src": "1174:6:17" + "src": "1367:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "1349:17:17", "nodeType": "YulIdentifier", - "src": "1159:3:17" + "src": "1349:17:17" }, + "nativeSrc": "1349:24:17", "nodeType": "YulFunctionCall", - "src": "1159:22:17" + "src": "1349:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1339:2:17", + "nodeType": "YulIdentifier", + "src": "1339:2:17" + }, + "nativeSrc": "1339:35:17", + "nodeType": "YulFunctionCall", + "src": "1339:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1332:6:17", + "nodeType": "YulIdentifier", + "src": "1332:6:17" + }, + "nativeSrc": "1332:43:17", + "nodeType": "YulFunctionCall", + "src": "1332:43:17" + }, + "nativeSrc": "1329:63:17", + "nodeType": "YulIf", + "src": "1329:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "1276:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1312:5:17", + "nodeType": "YulTypedName", + "src": "1312:5:17", + "type": "" + } + ], + "src": "1276:122:17" + }, + { + "body": { + "nativeSrc": "1456:87:17", + "nodeType": "YulBlock", + "src": "1456:87:17", + "statements": [ + { + "nativeSrc": "1466:29:17", + "nodeType": "YulAssignment", + "src": "1466:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1488:6:17", + "nodeType": "YulIdentifier", + "src": "1488:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1475:12:17", + "nodeType": "YulIdentifier", + "src": "1475:12:17" + }, + "nativeSrc": "1475:20:17", + "nodeType": "YulFunctionCall", + "src": "1475:20:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1466:5:17", + "nodeType": "YulIdentifier", + "src": "1466:5:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1531:5:17", + "nodeType": "YulIdentifier", + "src": "1531:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1504:26:17", + "nodeType": "YulIdentifier", + "src": "1504:26:17" + }, + "nativeSrc": "1504:33:17", + "nodeType": "YulFunctionCall", + "src": "1504:33:17" + }, + "nativeSrc": "1504:33:17", + "nodeType": "YulExpressionStatement", + "src": "1504:33:17" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1404:139:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1434:6:17", + "nodeType": "YulTypedName", + "src": "1434:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1442:3:17", + "nodeType": "YulTypedName", + "src": "1442:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1450:5:17", + "nodeType": "YulTypedName", + "src": "1450:5:17", + "type": "" + } + ], + "src": "1404:139:17" + }, + { + "body": { + "nativeSrc": "1632:391:17", + "nodeType": "YulBlock", + "src": "1632:391:17", + "statements": [ + { + "body": { + "nativeSrc": "1678:83:17", + "nodeType": "YulBlock", + "src": "1678:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1680:77:17", + "nodeType": "YulIdentifier", + "src": "1680:77:17" }, + "nativeSrc": "1680:79:17", + "nodeType": "YulFunctionCall", + "src": "1680:79:17" + }, + "nativeSrc": "1680:79:17", + "nodeType": "YulExpressionStatement", + "src": "1680:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ { "name": "dataEnd", + "nativeSrc": "1653:7:17", + "nodeType": "YulIdentifier", + "src": "1653:7:17" + }, + { + "name": "headStart", + "nativeSrc": "1662:9:17", "nodeType": "YulIdentifier", - "src": "1183:7:17" + "src": "1662:9:17" } ], "functionName": { - "name": "abi_decode_t_address_payable", + "name": "sub", + "nativeSrc": "1649:3:17", "nodeType": "YulIdentifier", - "src": "1130:28:17" + "src": "1649:3:17" }, + "nativeSrc": "1649:23:17", "nodeType": "YulFunctionCall", - "src": "1130:61:17" + "src": "1649:23:17" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1120:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "1674:2:17", + "nodeType": "YulLiteral", + "src": "1674:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1645:3:17", + "nodeType": "YulIdentifier", + "src": "1645:3:17" + }, + "nativeSrc": "1645:32:17", + "nodeType": "YulFunctionCall", + "src": "1645:32:17" + }, + "nativeSrc": "1642:119:17", + "nodeType": "YulIf", + "src": "1642:119:17" }, { + "nativeSrc": "1771:117:17", "nodeType": "YulBlock", - "src": "1211:118:17", + "src": "1771:117:17", "statements": [ { + "nativeSrc": "1786:15:17", "nodeType": "YulVariableDeclaration", - "src": "1226:16:17", + "src": "1786:15:17", "value": { "kind": "number", + "nativeSrc": "1800:1:17", "nodeType": "YulLiteral", - "src": "1240:2:17", + "src": "1800:1:17", "type": "", - "value": "64" + "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "1790:6:17", "nodeType": "YulTypedName", - "src": "1230:6:17", + "src": "1790:6:17", "type": "" } ] }, { + "nativeSrc": "1815:63:17", "nodeType": "YulAssignment", - "src": "1256:63:17", + "src": "1815:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "1850:9:17", "nodeType": "YulIdentifier", - "src": "1291:9:17" + "src": "1850:9:17" }, { "name": "offset", + "nativeSrc": "1861:6:17", "nodeType": "YulIdentifier", - "src": "1302:6:17" + "src": "1861:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "1846:3:17", "nodeType": "YulIdentifier", - "src": "1287:3:17" + "src": "1846:3:17" }, + "nativeSrc": "1846:22:17", "nodeType": "YulFunctionCall", - "src": "1287:22:17" + "src": "1846:22:17" }, { "name": "dataEnd", + "nativeSrc": "1870:7:17", "nodeType": "YulIdentifier", - "src": "1311:7:17" + "src": "1870:7:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_address", + "nativeSrc": "1825:20:17", "nodeType": "YulIdentifier", - "src": "1266:20:17" + "src": "1825:20:17" }, + "nativeSrc": "1825:53:17", "nodeType": "YulFunctionCall", - "src": "1266:53:17" + "src": "1825:53:17" }, "variableNames": [ { - "name": "value2", + "name": "value0", + "nativeSrc": "1815:6:17", "nodeType": "YulIdentifier", - "src": "1256:6:17" + "src": "1815:6:17" } ] } ] }, { + "nativeSrc": "1898:118:17", "nodeType": "YulBlock", - "src": "1339:118:17", + "src": "1898:118:17", "statements": [ { + "nativeSrc": "1913:16:17", "nodeType": "YulVariableDeclaration", - "src": "1354:16:17", + "src": "1913:16:17", "value": { "kind": "number", + "nativeSrc": "1927:2:17", "nodeType": "YulLiteral", - "src": "1368:2:17", + "src": "1927:2:17", "type": "", - "value": "96" + "value": "32" }, "variables": [ { "name": "offset", + "nativeSrc": "1917:6:17", "nodeType": "YulTypedName", - "src": "1358:6:17", + "src": "1917:6:17", "type": "" } ] }, { + "nativeSrc": "1943:63:17", "nodeType": "YulAssignment", - "src": "1384:63:17", + "src": "1943:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "1978:9:17", "nodeType": "YulIdentifier", - "src": "1419:9:17" + "src": "1978:9:17" }, { "name": "offset", + "nativeSrc": "1989:6:17", "nodeType": "YulIdentifier", - "src": "1430:6:17" + "src": "1989:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "1974:3:17", "nodeType": "YulIdentifier", - "src": "1415:3:17" + "src": "1974:3:17" }, + "nativeSrc": "1974:22:17", "nodeType": "YulFunctionCall", - "src": "1415:22:17" + "src": "1974:22:17" }, { "name": "dataEnd", + "nativeSrc": "1998:7:17", "nodeType": "YulIdentifier", - "src": "1439:7:17" + "src": "1998:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "1953:20:17", "nodeType": "YulIdentifier", - "src": "1394:20:17" + "src": "1953:20:17" }, + "nativeSrc": "1953:53:17", "nodeType": "YulFunctionCall", - "src": "1394:53:17" + "src": "1953:53:17" }, "variableNames": [ { - "name": "value3", + "name": "value1", + "nativeSrc": "1943:6:17", "nodeType": "YulIdentifier", - "src": "1384:6:17" + "src": "1943:6:17" } ] } @@ -952,88 +1623,347 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_address_payablet_uint256t_uint256", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1549:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1594:9:17", "nodeType": "YulTypedName", - "src": "821:9:17", + "src": "1594:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "1605:7:17", "nodeType": "YulTypedName", - "src": "832:7:17", + "src": "1605:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "1617:6:17", "nodeType": "YulTypedName", - "src": "844:6:17", + "src": "1617:6:17", "type": "" }, { "name": "value1", + "nativeSrc": "1625:6:17", "nodeType": "YulTypedName", - "src": "852:6:17", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "860:6:17", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "868:6:17", + "src": "1625:6:17", "type": "" } ], - "src": "750:714:17" + "src": "1549:474:17" }, { "body": { + "nativeSrc": "2082:51:17", "nodeType": "YulBlock", - "src": "1553:324:17", + "src": "2082:51:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "1599:16:17", - "statements": [ + "nativeSrc": "2092:35:17", + "nodeType": "YulAssignment", + "src": "2092:35:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1608:1:17", - "type": "", - "value": "0" + "name": "value", + "nativeSrc": "2121:5:17", + "nodeType": "YulIdentifier", + "src": "2121:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "2103:17:17", + "nodeType": "YulIdentifier", + "src": "2103:17:17" + }, + "nativeSrc": "2103:24:17", + "nodeType": "YulFunctionCall", + "src": "2103:24:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2092:7:17", + "nodeType": "YulIdentifier", + "src": "2092:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_address_payable", + "nativeSrc": "2029:104:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2064:5:17", + "nodeType": "YulTypedName", + "src": "2064:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2074:7:17", + "nodeType": "YulTypedName", + "src": "2074:7:17", + "type": "" + } + ], + "src": "2029:104:17" + }, + { + "body": { + "nativeSrc": "2190:87:17", + "nodeType": "YulBlock", + "src": "2190:87:17", + "statements": [ + { + "body": { + "nativeSrc": "2255:16:17", + "nodeType": "YulBlock", + "src": "2255:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2264:1:17", + "nodeType": "YulLiteral", + "src": "2264:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "2267:1:17", "nodeType": "YulLiteral", - "src": "1611:1:17", + "src": "2267:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "2257:6:17", + "nodeType": "YulIdentifier", + "src": "2257:6:17" + }, + "nativeSrc": "2257:12:17", + "nodeType": "YulFunctionCall", + "src": "2257:12:17" + }, + "nativeSrc": "2257:12:17", + "nodeType": "YulExpressionStatement", + "src": "2257:12:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2213:5:17", + "nodeType": "YulIdentifier", + "src": "2213:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2246:5:17", + "nodeType": "YulIdentifier", + "src": "2246:5:17" + } + ], + "functionName": { + "name": "cleanup_t_address_payable", + "nativeSrc": "2220:25:17", + "nodeType": "YulIdentifier", + "src": "2220:25:17" + }, + "nativeSrc": "2220:32:17", + "nodeType": "YulFunctionCall", + "src": "2220:32:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2210:2:17", + "nodeType": "YulIdentifier", + "src": "2210:2:17" + }, + "nativeSrc": "2210:43:17", + "nodeType": "YulFunctionCall", + "src": "2210:43:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2203:6:17", + "nodeType": "YulIdentifier", + "src": "2203:6:17" + }, + "nativeSrc": "2203:51:17", + "nodeType": "YulFunctionCall", + "src": "2203:51:17" + }, + "nativeSrc": "2200:71:17", + "nodeType": "YulIf", + "src": "2200:71:17" + } + ] + }, + "name": "validator_revert_t_address_payable", + "nativeSrc": "2139:138:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2183:5:17", + "nodeType": "YulTypedName", + "src": "2183:5:17", + "type": "" + } + ], + "src": "2139:138:17" + }, + { + "body": { + "nativeSrc": "2343:95:17", + "nodeType": "YulBlock", + "src": "2343:95:17", + "statements": [ + { + "nativeSrc": "2353:29:17", + "nodeType": "YulAssignment", + "src": "2353:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2375:6:17", + "nodeType": "YulIdentifier", + "src": "2375:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2362:12:17", + "nodeType": "YulIdentifier", + "src": "2362:12:17" + }, + "nativeSrc": "2362:20:17", + "nodeType": "YulFunctionCall", + "src": "2362:20:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2353:5:17", + "nodeType": "YulIdentifier", + "src": "2353:5:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2426:5:17", + "nodeType": "YulIdentifier", + "src": "2426:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_address_payable", + "nativeSrc": "2391:34:17", + "nodeType": "YulIdentifier", + "src": "2391:34:17" + }, + "nativeSrc": "2391:41:17", + "nodeType": "YulFunctionCall", + "src": "2391:41:17" + }, + "nativeSrc": "2391:41:17", + "nodeType": "YulExpressionStatement", + "src": "2391:41:17" + } + ] + }, + "name": "abi_decode_t_address_payable", + "nativeSrc": "2283:155:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2321:6:17", + "nodeType": "YulTypedName", + "src": "2321:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2329:3:17", + "nodeType": "YulTypedName", + "src": "2329:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2337:5:17", + "nodeType": "YulTypedName", + "src": "2337:5:17", + "type": "" + } + ], + "src": "2283:155:17" + }, + { + "body": { + "nativeSrc": "2569:656:17", + "nodeType": "YulBlock", + "src": "2569:656:17", + "statements": [ + { + "body": { + "nativeSrc": "2616:83:17", + "nodeType": "YulBlock", + "src": "2616:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2618:77:17", "nodeType": "YulIdentifier", - "src": "1601:6:17" + "src": "2618:77:17" }, + "nativeSrc": "2618:79:17", "nodeType": "YulFunctionCall", - "src": "1601:12:17" + "src": "2618:79:17" }, + "nativeSrc": "2618:79:17", "nodeType": "YulExpressionStatement", - "src": "1601:12:17" + "src": "2618:79:17" } ] }, @@ -1043,557 +1973,389 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "2590:7:17", "nodeType": "YulIdentifier", - "src": "1574:7:17" + "src": "2590:7:17" }, { "name": "headStart", + "nativeSrc": "2599:9:17", "nodeType": "YulIdentifier", - "src": "1583:9:17" + "src": "2599:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "2586:3:17", "nodeType": "YulIdentifier", - "src": "1570:3:17" + "src": "2586:3:17" }, + "nativeSrc": "2586:23:17", "nodeType": "YulFunctionCall", - "src": "1570:23:17" + "src": "2586:23:17" }, { "kind": "number", + "nativeSrc": "2611:3:17", "nodeType": "YulLiteral", - "src": "1595:2:17", + "src": "2611:3:17", "type": "", - "value": "64" + "value": "128" } ], "functionName": { "name": "slt", + "nativeSrc": "2582:3:17", "nodeType": "YulIdentifier", - "src": "1566:3:17" + "src": "2582:3:17" }, + "nativeSrc": "2582:33:17", "nodeType": "YulFunctionCall", - "src": "1566:32:17" + "src": "2582:33:17" }, + "nativeSrc": "2579:120:17", "nodeType": "YulIf", - "src": "1563:2:17" + "src": "2579:120:17" }, { + "nativeSrc": "2709:117:17", "nodeType": "YulBlock", - "src": "1625:117:17", + "src": "2709:117:17", "statements": [ { + "nativeSrc": "2724:15:17", "nodeType": "YulVariableDeclaration", - "src": "1640:15:17", + "src": "2724:15:17", "value": { "kind": "number", + "nativeSrc": "2738:1:17", "nodeType": "YulLiteral", - "src": "1654:1:17", + "src": "2738:1:17", "type": "", "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "2728:6:17", "nodeType": "YulTypedName", - "src": "1644:6:17", + "src": "2728:6:17", "type": "" } ] }, { + "nativeSrc": "2753:63:17", "nodeType": "YulAssignment", - "src": "1669:63:17", + "src": "2753:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "2788:9:17", "nodeType": "YulIdentifier", - "src": "1704:9:17" + "src": "2788:9:17" }, { "name": "offset", + "nativeSrc": "2799:6:17", "nodeType": "YulIdentifier", - "src": "1715:6:17" + "src": "2799:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2784:3:17", "nodeType": "YulIdentifier", - "src": "1700:3:17" + "src": "2784:3:17" }, + "nativeSrc": "2784:22:17", "nodeType": "YulFunctionCall", - "src": "1700:22:17" + "src": "2784:22:17" }, { "name": "dataEnd", + "nativeSrc": "2808:7:17", "nodeType": "YulIdentifier", - "src": "1724:7:17" + "src": "2808:7:17" } ], "functionName": { "name": "abi_decode_t_address", + "nativeSrc": "2763:20:17", "nodeType": "YulIdentifier", - "src": "1679:20:17" + "src": "2763:20:17" }, + "nativeSrc": "2763:53:17", "nodeType": "YulFunctionCall", - "src": "1679:53:17" + "src": "2763:53:17" }, "variableNames": [ { "name": "value0", + "nativeSrc": "2753:6:17", "nodeType": "YulIdentifier", - "src": "1669:6:17" + "src": "2753:6:17" } ] } ] }, { + "nativeSrc": "2836:126:17", "nodeType": "YulBlock", - "src": "1752:118:17", + "src": "2836:126:17", "statements": [ { + "nativeSrc": "2851:16:17", "nodeType": "YulVariableDeclaration", - "src": "1767:16:17", + "src": "2851:16:17", "value": { "kind": "number", + "nativeSrc": "2865:2:17", "nodeType": "YulLiteral", - "src": "1781:2:17", + "src": "2865:2:17", "type": "", "value": "32" }, "variables": [ { "name": "offset", + "nativeSrc": "2855:6:17", "nodeType": "YulTypedName", - "src": "1771:6:17", + "src": "2855:6:17", "type": "" } ] }, { + "nativeSrc": "2881:71:17", "nodeType": "YulAssignment", - "src": "1797:63:17", + "src": "2881:71:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "2924:9:17", "nodeType": "YulIdentifier", - "src": "1832:9:17" + "src": "2924:9:17" }, { "name": "offset", + "nativeSrc": "2935:6:17", "nodeType": "YulIdentifier", - "src": "1843:6:17" + "src": "2935:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2920:3:17", "nodeType": "YulIdentifier", - "src": "1828:3:17" + "src": "2920:3:17" }, + "nativeSrc": "2920:22:17", "nodeType": "YulFunctionCall", - "src": "1828:22:17" + "src": "2920:22:17" }, { "name": "dataEnd", + "nativeSrc": "2944:7:17", "nodeType": "YulIdentifier", - "src": "1852:7:17" + "src": "2944:7:17" } ], "functionName": { - "name": "abi_decode_t_uint256", + "name": "abi_decode_t_address_payable", + "nativeSrc": "2891:28:17", "nodeType": "YulIdentifier", - "src": "1807:20:17" + "src": "2891:28:17" }, + "nativeSrc": "2891:61:17", "nodeType": "YulFunctionCall", - "src": "1807:53:17" + "src": "2891:61:17" }, "variableNames": [ { "name": "value1", + "nativeSrc": "2881:6:17", "nodeType": "YulIdentifier", - "src": "1797:6:17" + "src": "2881:6:17" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1515:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1526:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1538:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1546:6:17", - "type": "" - } - ], - "src": "1470:407:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1957:204:17", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2003:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2012:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2015:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2005:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2005:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2005:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1978:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1987:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1974:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1974:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1999:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1970:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1970:32:17" - }, - "nodeType": "YulIf", - "src": "1967:2:17" - }, + }, { + "nativeSrc": "2972:118:17", "nodeType": "YulBlock", - "src": "2029:125:17", + "src": "2972:118:17", "statements": [ { + "nativeSrc": "2987:16:17", "nodeType": "YulVariableDeclaration", - "src": "2044:15:17", + "src": "2987:16:17", "value": { "kind": "number", + "nativeSrc": "3001:2:17", "nodeType": "YulLiteral", - "src": "2058:1:17", + "src": "3001:2:17", "type": "", - "value": "0" + "value": "64" }, "variables": [ { "name": "offset", + "nativeSrc": "2991:6:17", "nodeType": "YulTypedName", - "src": "2048:6:17", + "src": "2991:6:17", "type": "" } ] }, { + "nativeSrc": "3017:63:17", "nodeType": "YulAssignment", - "src": "2073:71:17", + "src": "3017:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "3052:9:17", "nodeType": "YulIdentifier", - "src": "2116:9:17" + "src": "3052:9:17" }, { "name": "offset", + "nativeSrc": "3063:6:17", "nodeType": "YulIdentifier", - "src": "2127:6:17" + "src": "3063:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "3048:3:17", "nodeType": "YulIdentifier", - "src": "2112:3:17" + "src": "3048:3:17" }, + "nativeSrc": "3048:22:17", "nodeType": "YulFunctionCall", - "src": "2112:22:17" + "src": "3048:22:17" }, { "name": "dataEnd", + "nativeSrc": "3072:7:17", "nodeType": "YulIdentifier", - "src": "2136:7:17" + "src": "3072:7:17" } ], "functionName": { - "name": "abi_decode_t_bool_fromMemory", + "name": "abi_decode_t_uint256", + "nativeSrc": "3027:20:17", "nodeType": "YulIdentifier", - "src": "2083:28:17" + "src": "3027:20:17" }, + "nativeSrc": "3027:53:17", "nodeType": "YulFunctionCall", - "src": "2083:61:17" + "src": "3027:53:17" }, "variableNames": [ { - "name": "value0", + "name": "value2", + "nativeSrc": "3017:6:17", "nodeType": "YulIdentifier", - "src": "2073:6:17" + "src": "3017:6:17" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1927:9:17", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1938:7:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1950:6:17", - "type": "" - } - ], - "src": "1883:278:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2244:207:17", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2290:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2299:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2302:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2292:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2292:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2292:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2265:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2274:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2261:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2261:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2286:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2257:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2257:32:17" - }, - "nodeType": "YulIf", - "src": "2254:2:17" }, { + "nativeSrc": "3100:118:17", "nodeType": "YulBlock", - "src": "2316:128:17", + "src": "3100:118:17", "statements": [ { + "nativeSrc": "3115:16:17", "nodeType": "YulVariableDeclaration", - "src": "2331:15:17", + "src": "3115:16:17", "value": { "kind": "number", + "nativeSrc": "3129:2:17", "nodeType": "YulLiteral", - "src": "2345:1:17", + "src": "3129:2:17", "type": "", - "value": "0" + "value": "96" }, "variables": [ { "name": "offset", + "nativeSrc": "3119:6:17", "nodeType": "YulTypedName", - "src": "2335:6:17", + "src": "3119:6:17", "type": "" } ] }, { + "nativeSrc": "3145:63:17", "nodeType": "YulAssignment", - "src": "2360:74:17", + "src": "3145:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "3180:9:17", "nodeType": "YulIdentifier", - "src": "2406:9:17" + "src": "3180:9:17" }, { "name": "offset", + "nativeSrc": "3191:6:17", "nodeType": "YulIdentifier", - "src": "2417:6:17" + "src": "3191:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "3176:3:17", "nodeType": "YulIdentifier", - "src": "2402:3:17" + "src": "3176:3:17" }, + "nativeSrc": "3176:22:17", "nodeType": "YulFunctionCall", - "src": "2402:22:17" + "src": "3176:22:17" }, { "name": "dataEnd", + "nativeSrc": "3200:7:17", "nodeType": "YulIdentifier", - "src": "2426:7:17" + "src": "3200:7:17" } ], "functionName": { - "name": "abi_decode_t_uint256_fromMemory", + "name": "abi_decode_t_uint256", + "nativeSrc": "3155:20:17", "nodeType": "YulIdentifier", - "src": "2370:31:17" + "src": "3155:20:17" }, + "nativeSrc": "3155:53:17", "nodeType": "YulFunctionCall", - "src": "2370:64:17" + "src": "3155:53:17" }, "variableNames": [ { - "name": "value0", + "name": "value3", + "nativeSrc": "3145:6:17", "nodeType": "YulIdentifier", - "src": "2360:6:17" + "src": "3145:6:17" } ] } @@ -1601,581 +2363,172 @@ } ] }, - "name": "abi_decode_tuple_t_uint256_fromMemory", + "name": "abi_decode_tuple_t_addresst_address_payablet_uint256t_uint256", + "nativeSrc": "2444:781:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "2515:9:17", "nodeType": "YulTypedName", - "src": "2214:9:17", + "src": "2515:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "2526:7:17", "nodeType": "YulTypedName", - "src": "2225:7:17", + "src": "2526:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "2538:6:17", "nodeType": "YulTypedName", - "src": "2237:6:17", - "type": "" - } - ], - "src": "2167:284:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2530:74:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2547:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2591:5:17" - } - ], - "functionName": { - "name": "convert_t_address_payable_to_t_address", - "nodeType": "YulIdentifier", - "src": "2552:38:17" - }, - "nodeType": "YulFunctionCall", - "src": "2552:45:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2540:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2540:58:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2540:58:17" - } - ] - }, - "name": "abi_encode_t_address_payable_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2518:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2525:3:17", - "type": "" - } - ], - "src": "2457:147:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2691:61:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2708:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2739:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address_payable", - "nodeType": "YulIdentifier", - "src": "2713:25:17" - }, - "nodeType": "YulFunctionCall", - "src": "2713:32:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2701:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2701:45:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2701:45:17" - } - ] - }, - "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2679:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2686:3:17", - "type": "" - } - ], - "src": "2610:142:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2823:53:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2840:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2863:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "2845:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2845:24:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2833:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2833:37:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2833:37:17" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2811:5:17", + "src": "2538:6:17", "type": "" }, { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2818:3:17", - "type": "" - } - ], - "src": "2758:118:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2947:53:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2964:3:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2987:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "2969:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "2969:24:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2957:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "2957:37:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2957:37:17" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2935:5:17", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2942:3:17", - "type": "" - } - ], - "src": "2882:118:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3104:124:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3114:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3126:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3137:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3122:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3122:18:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3114:4:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3194:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3207:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3218:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3203:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3203:17:17" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "3150:43:17" - }, - "nodeType": "YulFunctionCall", - "src": "3150:71:17" - }, - "nodeType": "YulExpressionStatement", - "src": "3150:71:17" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3076:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3088:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "value1", + "nativeSrc": "2546:6:17", "nodeType": "YulTypedName", - "src": "3099:4:17", - "type": "" - } - ], - "src": "3006:222:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3368:214:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3378:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3390:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3401:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3386:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3386:18:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3378:4:17" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3466:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3479:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3490:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3475:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3475:17:17" - } - ], - "functionName": { - "name": "abi_encode_t_address_payable_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "3414:51:17" - }, - "nodeType": "YulFunctionCall", - "src": "3414:79:17" - }, - "nodeType": "YulExpressionStatement", - "src": "3414:79:17" - }, + "src": "2546:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2554:6:17", + "nodeType": "YulTypedName", + "src": "2554:6:17", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "2562:6:17", + "nodeType": "YulTypedName", + "src": "2562:6:17", + "type": "" + } + ], + "src": "2444:781:17" + }, + { + "body": { + "nativeSrc": "3296:53:17", + "nodeType": "YulBlock", + "src": "3296:53:17", + "statements": [ { "expression": { "arguments": [ { - "name": "value1", + "name": "pos", + "nativeSrc": "3313:3:17", "nodeType": "YulIdentifier", - "src": "3547:6:17" + "src": "3313:3:17" }, { "arguments": [ { - "name": "headStart", + "name": "value", + "nativeSrc": "3336:5:17", "nodeType": "YulIdentifier", - "src": "3560:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3571:2:17", - "type": "", - "value": "32" + "src": "3336:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_uint256", + "nativeSrc": "3318:17:17", "nodeType": "YulIdentifier", - "src": "3556:3:17" + "src": "3318:17:17" }, + "nativeSrc": "3318:24:17", "nodeType": "YulFunctionCall", - "src": "3556:18:17" + "src": "3318:24:17" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "name": "mstore", + "nativeSrc": "3306:6:17", "nodeType": "YulIdentifier", - "src": "3503:43:17" + "src": "3306:6:17" }, + "nativeSrc": "3306:37:17", "nodeType": "YulFunctionCall", - "src": "3503:72:17" + "src": "3306:37:17" }, + "nativeSrc": "3306:37:17", "nodeType": "YulExpressionStatement", - "src": "3503:72:17" + "src": "3306:37:17" } ] }, - "name": "abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3231:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3332:9:17", - "type": "" - }, - { - "name": "value1", + "name": "value", + "nativeSrc": "3284:5:17", "nodeType": "YulTypedName", - "src": "3344:6:17", + "src": "3284:5:17", "type": "" }, { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3352:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", + "name": "pos", + "nativeSrc": "3291:3:17", "nodeType": "YulTypedName", - "src": "3363:4:17", + "src": "3291:3:17", "type": "" } ], - "src": "3234:348:17" + "src": "3231:118:17" }, { "body": { + "nativeSrc": "3481:206:17", "nodeType": "YulBlock", - "src": "3786:387:17", + "src": "3481:206:17", "statements": [ { + "nativeSrc": "3491:26:17", "nodeType": "YulAssignment", - "src": "3796:27:17", + "src": "3491:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "3503:9:17", "nodeType": "YulIdentifier", - "src": "3808:9:17" + "src": "3503:9:17" }, { "kind": "number", + "nativeSrc": "3514:2:17", "nodeType": "YulLiteral", - "src": "3819:3:17", + "src": "3514:2:17", "type": "", - "value": "128" + "value": "64" } ], "functionName": { "name": "add", + "nativeSrc": "3499:3:17", "nodeType": "YulIdentifier", - "src": "3804:3:17" + "src": "3499:3:17" }, + "nativeSrc": "3499:18:17", "nodeType": "YulFunctionCall", - "src": "3804:19:17" + "src": "3499:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "3491:4:17", "nodeType": "YulIdentifier", - "src": "3796:4:17" + "src": "3491:4:17" } ] }, @@ -2184,255 +2537,177 @@ "arguments": [ { "name": "value0", + "nativeSrc": "3571:6:17", "nodeType": "YulIdentifier", - "src": "3877:6:17" + "src": "3571:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "3584:9:17", "nodeType": "YulIdentifier", - "src": "3890:9:17" + "src": "3584:9:17" }, { "kind": "number", + "nativeSrc": "3595:1:17", "nodeType": "YulLiteral", - "src": "3901:1:17", + "src": "3595:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "3580:3:17", "nodeType": "YulIdentifier", - "src": "3886:3:17" + "src": "3580:3:17" }, + "nativeSrc": "3580:17:17", "nodeType": "YulFunctionCall", - "src": "3886:17:17" + "src": "3580:17:17" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3527:43:17", "nodeType": "YulIdentifier", - "src": "3833:43:17" + "src": "3527:43:17" }, + "nativeSrc": "3527:71:17", "nodeType": "YulFunctionCall", - "src": "3833:71:17" + "src": "3527:71:17" }, + "nativeSrc": "3527:71:17", "nodeType": "YulExpressionStatement", - "src": "3833:71:17" + "src": "3527:71:17" }, { "expression": { "arguments": [ { "name": "value1", + "nativeSrc": "3652:6:17", "nodeType": "YulIdentifier", - "src": "3974:6:17" + "src": "3652:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "3665:9:17", "nodeType": "YulIdentifier", - "src": "3987:9:17" + "src": "3665:9:17" }, { "kind": "number", + "nativeSrc": "3676:2:17", "nodeType": "YulLiteral", - "src": "3998:2:17", + "src": "3676:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "3661:3:17", "nodeType": "YulIdentifier", - "src": "3983:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3983:18:17" - } - ], - "functionName": { - "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", - "nodeType": "YulIdentifier", - "src": "3914:59:17" - }, - "nodeType": "YulFunctionCall", - "src": "3914:88:17" - }, - "nodeType": "YulExpressionStatement", - "src": "3914:88:17" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4056:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4069:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4080:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4065:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4065:18:17" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "4012:43:17" - }, - "nodeType": "YulFunctionCall", - "src": "4012:72:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4012:72:17" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "4138:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4151:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4162:2:17", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4147:3:17" + "src": "3661:3:17" }, + "nativeSrc": "3661:18:17", "nodeType": "YulFunctionCall", - "src": "4147:18:17" + "src": "3661:18:17" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "3608:43:17", "nodeType": "YulIdentifier", - "src": "4094:43:17" + "src": "3608:43:17" }, + "nativeSrc": "3608:72:17", "nodeType": "YulFunctionCall", - "src": "4094:72:17" + "src": "3608:72:17" }, + "nativeSrc": "3608:72:17", "nodeType": "YulExpressionStatement", - "src": "4094:72:17" + "src": "3608:72:17" } ] }, - "name": "abi_encode_tuple_t_address_t_address_payable_t_uint256_t_uint256__to_t_address_t_address_payable_t_uint256_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "3355:332:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "3445:9:17", "nodeType": "YulTypedName", - "src": "3734:9:17", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "3746:6:17", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "3754:6:17", + "src": "3445:9:17", "type": "" }, { "name": "value1", + "nativeSrc": "3457:6:17", "nodeType": "YulTypedName", - "src": "3762:6:17", + "src": "3457:6:17", "type": "" }, { "name": "value0", + "nativeSrc": "3465:6:17", "nodeType": "YulTypedName", - "src": "3770:6:17", + "src": "3465:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "3476:4:17", "nodeType": "YulTypedName", - "src": "3781:4:17", + "src": "3476:4:17", "type": "" } ], - "src": "3588:585:17" + "src": "3355:332:17" }, { "body": { + "nativeSrc": "3756:80:17", "nodeType": "YulBlock", - "src": "4305:206:17", + "src": "3756:80:17", "statements": [ { + "nativeSrc": "3766:22:17", "nodeType": "YulAssignment", - "src": "4315:26:17", + "src": "3766:22:17", "value": { "arguments": [ { - "name": "headStart", + "name": "offset", + "nativeSrc": "3781:6:17", "nodeType": "YulIdentifier", - "src": "4327:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4338:2:17", - "type": "", - "value": "64" + "src": "3781:6:17" } ], "functionName": { - "name": "add", + "name": "mload", + "nativeSrc": "3775:5:17", "nodeType": "YulIdentifier", - "src": "4323:3:17" + "src": "3775:5:17" }, + "nativeSrc": "3775:13:17", "nodeType": "YulFunctionCall", - "src": "4323:18:17" + "src": "3775:13:17" }, "variableNames": [ { - "name": "tail", + "name": "value", + "nativeSrc": "3766:5:17", "nodeType": "YulIdentifier", - "src": "4315:4:17" + "src": "3766:5:17" } ] }, @@ -2440,599 +2715,902 @@ "expression": { "arguments": [ { - "name": "value0", + "name": "value", + "nativeSrc": "3824:5:17", "nodeType": "YulIdentifier", - "src": "4395:6:17" - }, + "src": "3824:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3797:26:17", + "nodeType": "YulIdentifier", + "src": "3797:26:17" + }, + "nativeSrc": "3797:33:17", + "nodeType": "YulFunctionCall", + "src": "3797:33:17" + }, + "nativeSrc": "3797:33:17", + "nodeType": "YulExpressionStatement", + "src": "3797:33:17" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "3693:143:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3734:6:17", + "nodeType": "YulTypedName", + "src": "3734:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3742:3:17", + "nodeType": "YulTypedName", + "src": "3742:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3750:5:17", + "nodeType": "YulTypedName", + "src": "3750:5:17", + "type": "" + } + ], + "src": "3693:143:17" + }, + { + "body": { + "nativeSrc": "3919:274:17", + "nodeType": "YulBlock", + "src": "3919:274:17", + "statements": [ + { + "body": { + "nativeSrc": "3965:83:17", + "nodeType": "YulBlock", + "src": "3965:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3967:77:17", + "nodeType": "YulIdentifier", + "src": "3967:77:17" + }, + "nativeSrc": "3967:79:17", + "nodeType": "YulFunctionCall", + "src": "3967:79:17" + }, + "nativeSrc": "3967:79:17", + "nodeType": "YulExpressionStatement", + "src": "3967:79:17" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "dataEnd", + "nativeSrc": "3940:7:17", "nodeType": "YulIdentifier", - "src": "4408:9:17" + "src": "3940:7:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4419:1:17", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "3949:9:17", + "nodeType": "YulIdentifier", + "src": "3949:9:17" } ], "functionName": { - "name": "add", + "name": "sub", + "nativeSrc": "3936:3:17", "nodeType": "YulIdentifier", - "src": "4404:3:17" + "src": "3936:3:17" }, + "nativeSrc": "3936:23:17", "nodeType": "YulFunctionCall", - "src": "4404:17:17" + "src": "3936:23:17" + }, + { + "kind": "number", + "nativeSrc": "3961:2:17", + "nodeType": "YulLiteral", + "src": "3961:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", + "name": "slt", + "nativeSrc": "3932:3:17", "nodeType": "YulIdentifier", - "src": "4351:43:17" + "src": "3932:3:17" }, + "nativeSrc": "3932:32:17", "nodeType": "YulFunctionCall", - "src": "4351:71:17" + "src": "3932:32:17" }, - "nodeType": "YulExpressionStatement", - "src": "4351:71:17" + "nativeSrc": "3929:119:17", + "nodeType": "YulIf", + "src": "3929:119:17" }, { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4476:6:17" + "nativeSrc": "4058:128:17", + "nodeType": "YulBlock", + "src": "4058:128:17", + "statements": [ + { + "nativeSrc": "4073:15:17", + "nodeType": "YulVariableDeclaration", + "src": "4073:15:17", + "value": { + "kind": "number", + "nativeSrc": "4087:1:17", + "nodeType": "YulLiteral", + "src": "4087:1:17", + "type": "", + "value": "0" }, - { + "variables": [ + { + "name": "offset", + "nativeSrc": "4077:6:17", + "nodeType": "YulTypedName", + "src": "4077:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4102:74:17", + "nodeType": "YulAssignment", + "src": "4102:74:17", + "value": { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4489:9:17" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4148:9:17", + "nodeType": "YulIdentifier", + "src": "4148:9:17" + }, + { + "name": "offset", + "nativeSrc": "4159:6:17", + "nodeType": "YulIdentifier", + "src": "4159:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4144:3:17", + "nodeType": "YulIdentifier", + "src": "4144:3:17" + }, + "nativeSrc": "4144:22:17", + "nodeType": "YulFunctionCall", + "src": "4144:22:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4500:2:17", - "type": "", - "value": "32" + "name": "dataEnd", + "nativeSrc": "4168:7:17", + "nodeType": "YulIdentifier", + "src": "4168:7:17" } ], "functionName": { - "name": "add", + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "4112:31:17", "nodeType": "YulIdentifier", - "src": "4485:3:17" + "src": "4112:31:17" }, + "nativeSrc": "4112:64:17", "nodeType": "YulFunctionCall", - "src": "4485:18:17" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "4432:43:17" - }, - "nodeType": "YulFunctionCall", - "src": "4432:72:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4432:72:17" + "src": "4112:64:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4102:6:17", + "nodeType": "YulIdentifier", + "src": "4102:6:17" + } + ] + } + ] } ] }, - "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "3842:351:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "3889:9:17", "nodeType": "YulTypedName", - "src": "4269:9:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "4281:6:17", + "src": "3889:9:17", "type": "" }, { - "name": "value0", + "name": "dataEnd", + "nativeSrc": "3900:7:17", "nodeType": "YulTypedName", - "src": "4289:6:17", + "src": "3900:7:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "value0", + "nativeSrc": "3912:6:17", "nodeType": "YulTypedName", - "src": "4300:4:17", + "src": "3912:6:17", "type": "" } ], - "src": "4179:332:17" + "src": "3842:351:17" }, { "body": { + "nativeSrc": "4231:28:17", "nodeType": "YulBlock", - "src": "4562:51:17", + "src": "4231:28:17", "statements": [ { + "nativeSrc": "4241:12:17", "nodeType": "YulAssignment", - "src": "4572:35:17", + "src": "4241:12:17", "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4601:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "4583:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "4583:24:17" + "name": "value", + "nativeSrc": "4248:5:17", + "nodeType": "YulIdentifier", + "src": "4248:5:17" }, "variableNames": [ { - "name": "cleaned", + "name": "ret", + "nativeSrc": "4241:3:17", "nodeType": "YulIdentifier", - "src": "4572:7:17" + "src": "4241:3:17" } ] } ] }, - "name": "cleanup_t_address", + "name": "identity", + "nativeSrc": "4199:60:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "4217:5:17", "nodeType": "YulTypedName", - "src": "4544:5:17", + "src": "4217:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "ret", + "nativeSrc": "4227:3:17", "nodeType": "YulTypedName", - "src": "4554:7:17", + "src": "4227:3:17", "type": "" } ], - "src": "4517:96:17" + "src": "4199:60:17" }, { "body": { + "nativeSrc": "4325:82:17", "nodeType": "YulBlock", - "src": "4672:51:17", + "src": "4325:82:17", "statements": [ { + "nativeSrc": "4335:66:17", "nodeType": "YulAssignment", - "src": "4682:35:17", + "src": "4335:66:17", "value": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4711:5:17" + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4393:5:17", + "nodeType": "YulIdentifier", + "src": "4393:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "4375:17:17", + "nodeType": "YulIdentifier", + "src": "4375:17:17" + }, + "nativeSrc": "4375:24:17", + "nodeType": "YulFunctionCall", + "src": "4375:24:17" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4366:8:17", + "nodeType": "YulIdentifier", + "src": "4366:8:17" + }, + "nativeSrc": "4366:34:17", + "nodeType": "YulFunctionCall", + "src": "4366:34:17" } ], "functionName": { "name": "cleanup_t_uint160", + "nativeSrc": "4348:17:17", "nodeType": "YulIdentifier", - "src": "4693:17:17" + "src": "4348:17:17" }, + "nativeSrc": "4348:53:17", "nodeType": "YulFunctionCall", - "src": "4693:24:17" + "src": "4348:53:17" }, "variableNames": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "4335:9:17", "nodeType": "YulIdentifier", - "src": "4682:7:17" + "src": "4335:9:17" } ] } ] }, - "name": "cleanup_t_address_payable", + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "4265:142:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "4305:5:17", "nodeType": "YulTypedName", - "src": "4654:5:17", + "src": "4305:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "4315:9:17", "nodeType": "YulTypedName", - "src": "4664:7:17", + "src": "4315:9:17", "type": "" } ], - "src": "4619:104:17" + "src": "4265:142:17" }, { "body": { + "nativeSrc": "4473:66:17", "nodeType": "YulBlock", - "src": "4771:48:17", + "src": "4473:66:17", "statements": [ { + "nativeSrc": "4483:50:17", "nodeType": "YulAssignment", - "src": "4781:32:17", + "src": "4483:50:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "4806:5:17" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "4799:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "4799:13:17" + "name": "value", + "nativeSrc": "4527:5:17", + "nodeType": "YulIdentifier", + "src": "4527:5:17" } ], "functionName": { - "name": "iszero", + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "4496:30:17", "nodeType": "YulIdentifier", - "src": "4792:6:17" + "src": "4496:30:17" }, + "nativeSrc": "4496:37:17", "nodeType": "YulFunctionCall", - "src": "4792:21:17" + "src": "4496:37:17" }, "variableNames": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "4483:9:17", "nodeType": "YulIdentifier", - "src": "4781:7:17" + "src": "4483:9:17" } ] } ] }, - "name": "cleanup_t_bool", + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "4413:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "4453:5:17", "nodeType": "YulTypedName", - "src": "4753:5:17", + "src": "4453:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "4463:9:17", "nodeType": "YulTypedName", - "src": "4763:7:17", + "src": "4463:9:17", "type": "" } ], - "src": "4729:90:17" + "src": "4413:126:17" }, { "body": { + "nativeSrc": "4613:66:17", "nodeType": "YulBlock", - "src": "4870:81:17", + "src": "4613:66:17", "statements": [ { + "nativeSrc": "4623:50:17", "nodeType": "YulAssignment", - "src": "4880:65:17", + "src": "4623:50:17", "value": { "arguments": [ { "name": "value", + "nativeSrc": "4667:5:17", "nodeType": "YulIdentifier", - "src": "4895:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4902:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "src": "4667:5:17" } ], "functionName": { - "name": "and", + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "4636:30:17", "nodeType": "YulIdentifier", - "src": "4891:3:17" + "src": "4636:30:17" }, + "nativeSrc": "4636:37:17", "nodeType": "YulFunctionCall", - "src": "4891:54:17" + "src": "4636:37:17" }, "variableNames": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "4623:9:17", "nodeType": "YulIdentifier", - "src": "4880:7:17" + "src": "4623:9:17" } ] } ] }, - "name": "cleanup_t_uint160", + "name": "convert_t_address_payable_to_t_address", + "nativeSrc": "4545:134:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "4593:5:17", "nodeType": "YulTypedName", - "src": "4852:5:17", + "src": "4593:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "4603:9:17", "nodeType": "YulTypedName", - "src": "4862:7:17", + "src": "4603:9:17", "type": "" } ], - "src": "4825:126:17" + "src": "4545:134:17" }, { "body": { + "nativeSrc": "4758:74:17", "nodeType": "YulBlock", - "src": "5002:32:17", + "src": "4758:74:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "5012:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5023:5:17" - }, - "variableNames": [ - { - "name": "cleaned", + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4775:3:17", + "nodeType": "YulIdentifier", + "src": "4775:3:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4819:5:17", + "nodeType": "YulIdentifier", + "src": "4819:5:17" + } + ], + "functionName": { + "name": "convert_t_address_payable_to_t_address", + "nativeSrc": "4780:38:17", + "nodeType": "YulIdentifier", + "src": "4780:38:17" + }, + "nativeSrc": "4780:45:17", + "nodeType": "YulFunctionCall", + "src": "4780:45:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4768:6:17", "nodeType": "YulIdentifier", - "src": "5012:7:17" - } - ] + "src": "4768:6:17" + }, + "nativeSrc": "4768:58:17", + "nodeType": "YulFunctionCall", + "src": "4768:58:17" + }, + "nativeSrc": "4768:58:17", + "nodeType": "YulExpressionStatement", + "src": "4768:58:17" } ] }, - "name": "cleanup_t_uint256", + "name": "abi_encode_t_address_payable_to_t_address_fromStack", + "nativeSrc": "4685:147:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "4746:5:17", "nodeType": "YulTypedName", - "src": "4984:5:17", + "src": "4746:5:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "cleaned", + "name": "pos", + "nativeSrc": "4753:3:17", "nodeType": "YulTypedName", - "src": "4994:7:17", + "src": "4753:3:17", "type": "" } ], - "src": "4957:77:17" + "src": "4685:147:17" }, { "body": { + "nativeSrc": "4972:214:17", "nodeType": "YulBlock", - "src": "5108:66:17", + "src": "4972:214:17", "statements": [ { + "nativeSrc": "4982:26:17", "nodeType": "YulAssignment", - "src": "5118:50:17", + "src": "4982:26:17", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "4994:9:17", "nodeType": "YulIdentifier", - "src": "5162:5:17" + "src": "4994:9:17" + }, + { + "kind": "number", + "nativeSrc": "5005:2:17", + "nodeType": "YulLiteral", + "src": "5005:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "convert_t_uint160_to_t_address", + "name": "add", + "nativeSrc": "4990:3:17", "nodeType": "YulIdentifier", - "src": "5131:30:17" + "src": "4990:3:17" }, + "nativeSrc": "4990:18:17", "nodeType": "YulFunctionCall", - "src": "5131:37:17" + "src": "4990:18:17" }, "variableNames": [ { - "name": "converted", + "name": "tail", + "nativeSrc": "4982:4:17", "nodeType": "YulIdentifier", - "src": "5118:9:17" + "src": "4982:4:17" } ] - } - ] - }, - "name": "convert_t_address_payable_to_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5088:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nodeType": "YulTypedName", - "src": "5098:9:17", - "type": "" - } - ], - "src": "5040:134:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5240:66:17", - "statements": [ + }, { - "nodeType": "YulAssignment", - "src": "5250:50:17", - "value": { + "expression": { "arguments": [ { - "name": "value", + "name": "value0", + "nativeSrc": "5070:6:17", + "nodeType": "YulIdentifier", + "src": "5070:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5083:9:17", + "nodeType": "YulIdentifier", + "src": "5083:9:17" + }, + { + "kind": "number", + "nativeSrc": "5094:1:17", + "nodeType": "YulLiteral", + "src": "5094:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5079:3:17", + "nodeType": "YulIdentifier", + "src": "5079:3:17" + }, + "nativeSrc": "5079:17:17", + "nodeType": "YulFunctionCall", + "src": "5079:17:17" + } + ], + "functionName": { + "name": "abi_encode_t_address_payable_to_t_address_fromStack", + "nativeSrc": "5018:51:17", + "nodeType": "YulIdentifier", + "src": "5018:51:17" + }, + "nativeSrc": "5018:79:17", + "nodeType": "YulFunctionCall", + "src": "5018:79:17" + }, + "nativeSrc": "5018:79:17", + "nodeType": "YulExpressionStatement", + "src": "5018:79:17" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5151:6:17", "nodeType": "YulIdentifier", - "src": "5294:5:17" + "src": "5151:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5164:9:17", + "nodeType": "YulIdentifier", + "src": "5164:9:17" + }, + { + "kind": "number", + "nativeSrc": "5175:2:17", + "nodeType": "YulLiteral", + "src": "5175:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5160:3:17", + "nodeType": "YulIdentifier", + "src": "5160:3:17" + }, + "nativeSrc": "5160:18:17", + "nodeType": "YulFunctionCall", + "src": "5160:18:17" } ], "functionName": { - "name": "convert_t_uint160_to_t_uint160", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5107:43:17", "nodeType": "YulIdentifier", - "src": "5263:30:17" + "src": "5107:43:17" }, + "nativeSrc": "5107:72:17", "nodeType": "YulFunctionCall", - "src": "5263:37:17" + "src": "5107:72:17" }, - "variableNames": [ - { - "name": "converted", - "nodeType": "YulIdentifier", - "src": "5250:9:17" - } - ] + "nativeSrc": "5107:72:17", + "nodeType": "YulExpressionStatement", + "src": "5107:72:17" } ] }, - "name": "convert_t_uint160_to_t_address", + "name": "abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "4838:348:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "4936:9:17", + "nodeType": "YulTypedName", + "src": "4936:9:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4948:6:17", + "nodeType": "YulTypedName", + "src": "4948:6:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4956:6:17", "nodeType": "YulTypedName", - "src": "5220:5:17", + "src": "4956:6:17", "type": "" } ], "returnVariables": [ { - "name": "converted", + "name": "tail", + "nativeSrc": "4967:4:17", "nodeType": "YulTypedName", - "src": "5230:9:17", + "src": "4967:4:17", "type": "" } ], - "src": "5180:126:17" + "src": "4838:348:17" }, { "body": { + "nativeSrc": "5234:48:17", "nodeType": "YulBlock", - "src": "5372:53:17", + "src": "5234:48:17", "statements": [ { + "nativeSrc": "5244:32:17", "nodeType": "YulAssignment", - "src": "5382:37:17", + "src": "5244:32:17", "value": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5413:5:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "5269:5:17", + "nodeType": "YulIdentifier", + "src": "5269:5:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5262:6:17", + "nodeType": "YulIdentifier", + "src": "5262:6:17" + }, + "nativeSrc": "5262:13:17", + "nodeType": "YulFunctionCall", + "src": "5262:13:17" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "iszero", + "nativeSrc": "5255:6:17", "nodeType": "YulIdentifier", - "src": "5395:17:17" + "src": "5255:6:17" }, + "nativeSrc": "5255:21:17", "nodeType": "YulFunctionCall", - "src": "5395:24:17" + "src": "5255:21:17" }, "variableNames": [ { - "name": "converted", + "name": "cleaned", + "nativeSrc": "5244:7:17", "nodeType": "YulIdentifier", - "src": "5382:9:17" + "src": "5244:7:17" } ] } ] }, - "name": "convert_t_uint160_to_t_uint160", + "name": "cleanup_t_bool", + "nativeSrc": "5192:90:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "5216:5:17", "nodeType": "YulTypedName", - "src": "5352:5:17", + "src": "5216:5:17", "type": "" } ], "returnVariables": [ { - "name": "converted", + "name": "cleaned", + "nativeSrc": "5226:7:17", "nodeType": "YulTypedName", - "src": "5362:9:17", + "src": "5226:7:17", "type": "" } ], - "src": "5312:113:17" + "src": "5192:90:17" }, { "body": { + "nativeSrc": "5328:76:17", "nodeType": "YulBlock", - "src": "5474:79:17", + "src": "5328:76:17", "statements": [ { "body": { + "nativeSrc": "5382:16:17", "nodeType": "YulBlock", - "src": "5531:16:17", + "src": "5382:16:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "5391:1:17", "nodeType": "YulLiteral", - "src": "5540:1:17", + "src": "5391:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "5394:1:17", "nodeType": "YulLiteral", - "src": "5543:1:17", + "src": "5394:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "5384:6:17", "nodeType": "YulIdentifier", - "src": "5533:6:17" + "src": "5384:6:17" }, + "nativeSrc": "5384:12:17", "nodeType": "YulFunctionCall", - "src": "5533:12:17" + "src": "5384:12:17" }, + "nativeSrc": "5384:12:17", "nodeType": "YulExpressionStatement", - "src": "5533:12:17" + "src": "5384:12:17" } ] }, @@ -3042,98 +3620,193 @@ "arguments": [ { "name": "value", + "nativeSrc": "5351:5:17", "nodeType": "YulIdentifier", - "src": "5497:5:17" + "src": "5351:5:17" }, { "arguments": [ { "name": "value", + "nativeSrc": "5373:5:17", "nodeType": "YulIdentifier", - "src": "5522:5:17" + "src": "5373:5:17" } ], "functionName": { - "name": "cleanup_t_address", + "name": "cleanup_t_bool", + "nativeSrc": "5358:14:17", "nodeType": "YulIdentifier", - "src": "5504:17:17" + "src": "5358:14:17" }, + "nativeSrc": "5358:21:17", "nodeType": "YulFunctionCall", - "src": "5504:24:17" + "src": "5358:21:17" } ], "functionName": { "name": "eq", + "nativeSrc": "5348:2:17", "nodeType": "YulIdentifier", - "src": "5494:2:17" + "src": "5348:2:17" }, + "nativeSrc": "5348:32:17", "nodeType": "YulFunctionCall", - "src": "5494:35:17" + "src": "5348:32:17" } ], "functionName": { "name": "iszero", + "nativeSrc": "5341:6:17", "nodeType": "YulIdentifier", - "src": "5487:6:17" + "src": "5341:6:17" }, + "nativeSrc": "5341:40:17", "nodeType": "YulFunctionCall", - "src": "5487:43:17" + "src": "5341:40:17" }, + "nativeSrc": "5338:60:17", "nodeType": "YulIf", - "src": "5484:2:17" + "src": "5338:60:17" } ] }, - "name": "validator_revert_t_address", + "name": "validator_revert_t_bool", + "nativeSrc": "5288:116:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5321:5:17", + "nodeType": "YulTypedName", + "src": "5321:5:17", + "type": "" + } + ], + "src": "5288:116:17" + }, + { + "body": { + "nativeSrc": "5470:77:17", + "nodeType": "YulBlock", + "src": "5470:77:17", + "statements": [ + { + "nativeSrc": "5480:22:17", + "nodeType": "YulAssignment", + "src": "5480:22:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5495:6:17", + "nodeType": "YulIdentifier", + "src": "5495:6:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5489:5:17", + "nodeType": "YulIdentifier", + "src": "5489:5:17" + }, + "nativeSrc": "5489:13:17", + "nodeType": "YulFunctionCall", + "src": "5489:13:17" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5480:5:17", + "nodeType": "YulIdentifier", + "src": "5480:5:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5535:5:17", + "nodeType": "YulIdentifier", + "src": "5535:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "5511:23:17", + "nodeType": "YulIdentifier", + "src": "5511:23:17" + }, + "nativeSrc": "5511:30:17", + "nodeType": "YulFunctionCall", + "src": "5511:30:17" + }, + "nativeSrc": "5511:30:17", + "nodeType": "YulExpressionStatement", + "src": "5511:30:17" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nativeSrc": "5410:137:17", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "offset", + "nativeSrc": "5448:6:17", + "nodeType": "YulTypedName", + "src": "5448:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5456:3:17", + "nodeType": "YulTypedName", + "src": "5456:3:17", + "type": "" + } + ], + "returnVariables": [ { "name": "value", + "nativeSrc": "5464:5:17", "nodeType": "YulTypedName", - "src": "5467:5:17", + "src": "5464:5:17", "type": "" } ], - "src": "5431:122:17" + "src": "5410:137:17" }, { "body": { + "nativeSrc": "5627:271:17", "nodeType": "YulBlock", - "src": "5610:87:17", + "src": "5627:271:17", "statements": [ { "body": { + "nativeSrc": "5673:83:17", "nodeType": "YulBlock", - "src": "5675:16:17", + "src": "5673:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5684:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5687:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5675:77:17", "nodeType": "YulIdentifier", - "src": "5677:6:17" + "src": "5675:77:17" }, + "nativeSrc": "5675:79:17", "nodeType": "YulFunctionCall", - "src": "5677:12:17" + "src": "5675:79:17" }, + "nativeSrc": "5675:79:17", "nodeType": "YulExpressionStatement", - "src": "5677:12:17" + "src": "5675:79:17" } ] }, @@ -3142,266 +3815,547 @@ { "arguments": [ { - "name": "value", + "name": "dataEnd", + "nativeSrc": "5648:7:17", "nodeType": "YulIdentifier", - "src": "5633:5:17" + "src": "5648:7:17" }, + { + "name": "headStart", + "nativeSrc": "5657:9:17", + "nodeType": "YulIdentifier", + "src": "5657:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5644:3:17", + "nodeType": "YulIdentifier", + "src": "5644:3:17" + }, + "nativeSrc": "5644:23:17", + "nodeType": "YulFunctionCall", + "src": "5644:23:17" + }, + { + "kind": "number", + "nativeSrc": "5669:2:17", + "nodeType": "YulLiteral", + "src": "5669:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5640:3:17", + "nodeType": "YulIdentifier", + "src": "5640:3:17" + }, + "nativeSrc": "5640:32:17", + "nodeType": "YulFunctionCall", + "src": "5640:32:17" + }, + "nativeSrc": "5637:119:17", + "nodeType": "YulIf", + "src": "5637:119:17" + }, + { + "nativeSrc": "5766:125:17", + "nodeType": "YulBlock", + "src": "5766:125:17", + "statements": [ + { + "nativeSrc": "5781:15:17", + "nodeType": "YulVariableDeclaration", + "src": "5781:15:17", + "value": { + "kind": "number", + "nativeSrc": "5795:1:17", + "nodeType": "YulLiteral", + "src": "5795:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5785:6:17", + "nodeType": "YulTypedName", + "src": "5785:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "5810:71:17", + "nodeType": "YulAssignment", + "src": "5810:71:17", + "value": { + "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "5853:9:17", + "nodeType": "YulIdentifier", + "src": "5853:9:17" + }, + { + "name": "offset", + "nativeSrc": "5864:6:17", "nodeType": "YulIdentifier", - "src": "5666:5:17" + "src": "5864:6:17" } ], "functionName": { - "name": "cleanup_t_address_payable", + "name": "add", + "nativeSrc": "5849:3:17", "nodeType": "YulIdentifier", - "src": "5640:25:17" + "src": "5849:3:17" }, + "nativeSrc": "5849:22:17", "nodeType": "YulFunctionCall", - "src": "5640:32:17" + "src": "5849:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "5873:7:17", + "nodeType": "YulIdentifier", + "src": "5873:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nativeSrc": "5820:28:17", + "nodeType": "YulIdentifier", + "src": "5820:28:17" + }, + "nativeSrc": "5820:61:17", + "nodeType": "YulFunctionCall", + "src": "5820:61:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5810:6:17", + "nodeType": "YulIdentifier", + "src": "5810:6:17" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "5553:345:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5597:9:17", + "nodeType": "YulTypedName", + "src": "5597:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5608:7:17", + "nodeType": "YulTypedName", + "src": "5608:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5620:6:17", + "nodeType": "YulTypedName", + "src": "5620:6:17", + "type": "" + } + ], + "src": "5553:345:17" + }, + { + "body": { + "nativeSrc": "5985:61:17", + "nodeType": "YulBlock", + "src": "5985:61:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6002:3:17", + "nodeType": "YulIdentifier", + "src": "6002:3:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6033:5:17", + "nodeType": "YulIdentifier", + "src": "6033:5:17" } ], "functionName": { - "name": "eq", + "name": "cleanup_t_address_payable", + "nativeSrc": "6007:25:17", "nodeType": "YulIdentifier", - "src": "5630:2:17" + "src": "6007:25:17" }, + "nativeSrc": "6007:32:17", "nodeType": "YulFunctionCall", - "src": "5630:43:17" + "src": "6007:32:17" } ], "functionName": { - "name": "iszero", + "name": "mstore", + "nativeSrc": "5995:6:17", "nodeType": "YulIdentifier", - "src": "5623:6:17" + "src": "5995:6:17" }, + "nativeSrc": "5995:45:17", "nodeType": "YulFunctionCall", - "src": "5623:51:17" + "src": "5995:45:17" }, - "nodeType": "YulIf", - "src": "5620:2:17" + "nativeSrc": "5995:45:17", + "nodeType": "YulExpressionStatement", + "src": "5995:45:17" } ] }, - "name": "validator_revert_t_address_payable", + "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", + "nativeSrc": "5904:142:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "5973:5:17", + "nodeType": "YulTypedName", + "src": "5973:5:17", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5980:3:17", "nodeType": "YulTypedName", - "src": "5603:5:17", + "src": "5980:3:17", "type": "" } ], - "src": "5559:138:17" + "src": "5904:142:17" }, { "body": { + "nativeSrc": "6250:387:17", "nodeType": "YulBlock", - "src": "5743:76:17", + "src": "6250:387:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "5797:16:17", - "statements": [ + "nativeSrc": "6260:27:17", + "nodeType": "YulAssignment", + "src": "6260:27:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5806:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5809:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "name": "headStart", + "nativeSrc": "6272:9:17", + "nodeType": "YulIdentifier", + "src": "6272:9:17" + }, + { + "kind": "number", + "nativeSrc": "6283:3:17", + "nodeType": "YulLiteral", + "src": "6283:3:17", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6268:3:17", + "nodeType": "YulIdentifier", + "src": "6268:3:17" + }, + "nativeSrc": "6268:19:17", + "nodeType": "YulFunctionCall", + "src": "6268:19:17" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6260:4:17", + "nodeType": "YulIdentifier", + "src": "6260:4:17" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6341:6:17", + "nodeType": "YulIdentifier", + "src": "6341:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6354:9:17", "nodeType": "YulIdentifier", - "src": "5799:6:17" + "src": "6354:9:17" }, - "nodeType": "YulFunctionCall", - "src": "5799:12:17" + { + "kind": "number", + "nativeSrc": "6365:1:17", + "nodeType": "YulLiteral", + "src": "6365:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6350:3:17", + "nodeType": "YulIdentifier", + "src": "6350:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "5799:12:17" + "nativeSrc": "6350:17:17", + "nodeType": "YulFunctionCall", + "src": "6350:17:17" } - ] + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "6297:43:17", + "nodeType": "YulIdentifier", + "src": "6297:43:17" + }, + "nativeSrc": "6297:71:17", + "nodeType": "YulFunctionCall", + "src": "6297:71:17" }, - "condition": { + "nativeSrc": "6297:71:17", + "nodeType": "YulExpressionStatement", + "src": "6297:71:17" + }, + { + "expression": { "arguments": [ + { + "name": "value1", + "nativeSrc": "6438:6:17", + "nodeType": "YulIdentifier", + "src": "6438:6:17" + }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "6451:9:17", "nodeType": "YulIdentifier", - "src": "5766:5:17" + "src": "6451:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5788:5:17" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nodeType": "YulIdentifier", - "src": "5773:14:17" - }, - "nodeType": "YulFunctionCall", - "src": "5773:21:17" + "kind": "number", + "nativeSrc": "6462:2:17", + "nodeType": "YulLiteral", + "src": "6462:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "6447:3:17", "nodeType": "YulIdentifier", - "src": "5763:2:17" + "src": "6447:3:17" }, + "nativeSrc": "6447:18:17", "nodeType": "YulFunctionCall", - "src": "5763:32:17" + "src": "6447:18:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", + "nativeSrc": "6378:59:17", "nodeType": "YulIdentifier", - "src": "5756:6:17" + "src": "6378:59:17" }, + "nativeSrc": "6378:88:17", "nodeType": "YulFunctionCall", - "src": "5756:40:17" + "src": "6378:88:17" }, - "nodeType": "YulIf", - "src": "5753:2:17" - } - ] - }, - "name": "validator_revert_t_bool", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5736:5:17", - "type": "" - } - ], - "src": "5703:116:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5868:79:17", - "statements": [ + "nativeSrc": "6378:88:17", + "nodeType": "YulExpressionStatement", + "src": "6378:88:17" + }, { - "body": { - "nodeType": "YulBlock", - "src": "5925:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5934:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5937:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", + "name": "value2", + "nativeSrc": "6520:6:17", + "nodeType": "YulIdentifier", + "src": "6520:6:17" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6533:9:17", "nodeType": "YulIdentifier", - "src": "5927:6:17" + "src": "6533:9:17" }, - "nodeType": "YulFunctionCall", - "src": "5927:12:17" + { + "kind": "number", + "nativeSrc": "6544:2:17", + "nodeType": "YulLiteral", + "src": "6544:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6529:3:17", + "nodeType": "YulIdentifier", + "src": "6529:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "5927:12:17" + "nativeSrc": "6529:18:17", + "nodeType": "YulFunctionCall", + "src": "6529:18:17" } - ] + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "6476:43:17", + "nodeType": "YulIdentifier", + "src": "6476:43:17" + }, + "nativeSrc": "6476:72:17", + "nodeType": "YulFunctionCall", + "src": "6476:72:17" }, - "condition": { + "nativeSrc": "6476:72:17", + "nodeType": "YulExpressionStatement", + "src": "6476:72:17" + }, + { + "expression": { "arguments": [ + { + "name": "value3", + "nativeSrc": "6602:6:17", + "nodeType": "YulIdentifier", + "src": "6602:6:17" + }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "6615:9:17", "nodeType": "YulIdentifier", - "src": "5891:5:17" + "src": "6615:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5916:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "5898:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "5898:24:17" + "kind": "number", + "nativeSrc": "6626:2:17", + "nodeType": "YulLiteral", + "src": "6626:2:17", + "type": "", + "value": "96" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "6611:3:17", "nodeType": "YulIdentifier", - "src": "5888:2:17" + "src": "6611:3:17" }, + "nativeSrc": "6611:18:17", "nodeType": "YulFunctionCall", - "src": "5888:35:17" + "src": "6611:18:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "6558:43:17", "nodeType": "YulIdentifier", - "src": "5881:6:17" + "src": "6558:43:17" }, + "nativeSrc": "6558:72:17", "nodeType": "YulFunctionCall", - "src": "5881:43:17" + "src": "6558:72:17" }, - "nodeType": "YulIf", - "src": "5878:2:17" + "nativeSrc": "6558:72:17", + "nodeType": "YulExpressionStatement", + "src": "6558:72:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_address_t_address_payable_t_uint256_t_uint256__to_t_address_t_address_payable_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "6052:585:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "6198:9:17", + "nodeType": "YulTypedName", + "src": "6198:9:17", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "6210:6:17", + "nodeType": "YulTypedName", + "src": "6210:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6218:6:17", + "nodeType": "YulTypedName", + "src": "6218:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6226:6:17", + "nodeType": "YulTypedName", + "src": "6226:6:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6234:6:17", + "nodeType": "YulTypedName", + "src": "6234:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6245:4:17", "nodeType": "YulTypedName", - "src": "5861:5:17", + "src": "6245:4:17", "type": "" } ], - "src": "5825:122:17" + "src": "6052:585:17" } ] }, - "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_address_payablet_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_payable_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_address_payable_to_t_address(value))\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_payable_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_payable_t_uint256_t_uint256__to_t_address_t_address_payable_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_address_payable_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_addresst_address_payablet_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_address_payable_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_address_payable_to_t_address(value))\n }\n\n function abi_encode_tuple_t_address_payable_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_payable_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_address_t_address_payable_t_uint256_t_uint256__to_t_address_t_address_payable_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -3409,10 +4363,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100575760003560e01c806318ad37af1461005c57806324e229021461007a5780632fd7d1fd146100965780634a45d980146100b4578063c1342574146100d0575b600080fd5b6100646100ec565b60405161007191906105c9565b60405180910390f35b610094600480360381019061008f91906104ff565b6100fb565b005b61009e610138565b6040516100ab91906105c9565b60405180910390f35b6100ce60048036038101906100c991906104ff565b610147565b005b6100ea60048036038101906100e5919061049c565b610183565b005b6a010000000000000000008181565b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be74828260405161012c929190610652565b60405180910390a15050565b6a010000000000000000000181565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e188282604051610177929190610652565b60405180910390a15050565b806a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101c891906105c9565b60206040518083038186803b1580156101e057600080fd5b505afa1580156101f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102189190610564565b106102bb576a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016102639291906105e4565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b5919061053b565b506103f0565b806a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161030091906105c9565b60206040518083038186803b15801561031857600080fd5b505afa15801561032c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103509190610564565b106103ef576a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161039b9291906105e4565b602060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed919061053b565b505b5b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef97284848484604051610425949392919061060d565b60405180910390a150505050565b6000813590506104428161070b565b92915050565b60008135905061045781610722565b92915050565b60008151905061046c81610739565b92915050565b60008135905061048181610750565b92915050565b60008151905061049681610750565b92915050565b600080600080608085870312156104b257600080fd5b60006104c087828801610433565b94505060206104d187828801610448565b93505060406104e287828801610472565b92505060606104f387828801610472565b91505092959194509250565b6000806040838503121561051257600080fd5b600061052085828601610433565b925050602061053185828601610472565b9150509250929050565b60006020828403121561054d57600080fd5b600061055b8482850161045d565b91505092915050565b60006020828403121561057657600080fd5b600061058484828501610487565b91505092915050565b610596816106d5565b82525050565b6105a58161068d565b82525050565b6105b48161067b565b82525050565b6105c3816106cb565b82525050565b60006020820190506105de60008301846105ab565b92915050565b60006040820190506105f9600083018561058d565b61060660208301846105ba565b9392505050565b600060808201905061062260008301876105ab565b61062f602083018661059c565b61063c60408301856105ba565b61064960608301846105ba565b95945050505050565b600060408201905061066760008301856105ab565b61067460208301846105ba565b9392505050565b6000610686826106ab565b9050919050565b6000610698826106ab565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006106e0826106e7565b9050919050565b60006106f2826106f9565b9050919050565b6000610704826106ab565b9050919050565b6107148161067b565b811461071f57600080fd5b50565b61072b8161068d565b811461073657600080fd5b50565b6107428161069f565b811461074d57600080fd5b50565b610759816106cb565b811461076457600080fd5b5056fea26469706673582212201080b2662bf4242373a4a47f61124118ec2f5dd5e3284f1c829caf6f7c6d4f1464736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18AD37AF EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x24E22902 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x2FD7D1FD EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST PUSH2 0xFB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9E PUSH2 0x138 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x4FF JUMP JUMPDEST PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xEA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x49C JUMP JUMPDEST PUSH2 0x183 JUMP JUMPDEST STOP JUMPDEST PUSH11 0x100000000000000000081 DUP2 JUMP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x12C SWAP3 SWAP2 SWAP1 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH11 0x100000000000000000001 DUP2 JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x177 SWAP3 SWAP2 SWAP1 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x218 SWAP2 SWAP1 PUSH2 0x564 JUMP JUMPDEST LT PUSH2 0x2BB JUMPI PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x5E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST POP PUSH2 0x3F0 JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x32C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x350 SWAP2 SWAP1 PUSH2 0x564 JUMP JUMPDEST LT PUSH2 0x3EF JUMPI PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x39B SWAP3 SWAP2 SWAP1 PUSH2 0x5E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST POP JUMPDEST JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x425 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x60D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x442 DUP2 PUSH2 0x70B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x457 DUP2 PUSH2 0x722 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x46C DUP2 PUSH2 0x739 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x481 DUP2 PUSH2 0x750 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x496 DUP2 PUSH2 0x750 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4C0 DUP8 DUP3 DUP9 ADD PUSH2 0x433 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x4D1 DUP8 DUP3 DUP9 ADD PUSH2 0x448 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x4E2 DUP8 DUP3 DUP9 ADD PUSH2 0x472 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x4F3 DUP8 DUP3 DUP9 ADD PUSH2 0x472 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x520 DUP6 DUP3 DUP7 ADD PUSH2 0x433 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x531 DUP6 DUP3 DUP7 ADD PUSH2 0x472 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x54D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x55B DUP5 DUP3 DUP6 ADD PUSH2 0x45D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x584 DUP5 DUP3 DUP6 ADD PUSH2 0x487 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x596 DUP2 PUSH2 0x6D5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5A5 DUP2 PUSH2 0x68D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5B4 DUP2 PUSH2 0x67B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x5C3 DUP2 PUSH2 0x6CB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5DE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5F9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x58D JUMP JUMPDEST PUSH2 0x606 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x622 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x5AB JUMP JUMPDEST PUSH2 0x62F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x59C JUMP JUMPDEST PUSH2 0x63C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x5BA JUMP JUMPDEST PUSH2 0x649 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x5BA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x667 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5AB JUMP JUMPDEST PUSH2 0x674 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5BA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x686 DUP3 PUSH2 0x6AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x698 DUP3 PUSH2 0x6AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E0 DUP3 PUSH2 0x6E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F2 DUP3 PUSH2 0x6F9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x704 DUP3 PUSH2 0x6AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x714 DUP2 PUSH2 0x67B JUMP JUMPDEST DUP2 EQ PUSH2 0x71F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x72B DUP2 PUSH2 0x68D JUMP JUMPDEST DUP2 EQ PUSH2 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x742 DUP2 PUSH2 0x69F JUMP JUMPDEST DUP2 EQ PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x759 DUP2 PUSH2 0x6CB JUMP JUMPDEST DUP2 EQ PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT DUP1 0xB2 PUSH7 0x2BF4242373A4A4 PUSH32 0x61124118EC2F5DD5E3284F1C829CAF6F7C6D4F1464736F6C6343000802003300 ", - "sourceMap": "123:1147:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;396:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;999:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;475:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1139:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;559:435;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;396:73;427:42;396:73;:::o;999:135::-;1087:40;1108:10;1120:6;1087:40;;;;;;;:::i;:::-;;;;;;;;999:135;;:::o;475:73::-;506:42;475:73;:::o;1139:129::-;1224:37;1242:10;1254:6;1224:37;;;;;;;:::i;:::-;;;;;;;;1139:129;;:::o;559:435::-;718:6;427:42;677:22;;;708:4;677:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;674:242;;427:42;741:21;;;763:9;774:6;741:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;674:242;;;842:6;506:42;801:22;;;832:4;801:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;798:118;;506:42;865:21;;;887:9;898:6;865:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;798:118;674:242;939:48;949:10;961:9;972:6;980;939:48;;;;;;;;;:::i;:::-;;;;;;;;559:435;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:137::-;;398:6;392:13;383:22;;414:30;438:5;414:30;:::i;:::-;373:77;;;;:::o;456:139::-;;540:6;527:20;518:29;;556:33;583:5;556:33;:::i;:::-;508:87;;;;:::o;601:143::-;;689:6;683:13;674:22;;705:33;732:5;705:33;:::i;:::-;664:80;;;;:::o;750:714::-;;;;;917:3;905:9;896:7;892:23;888:33;885:2;;;934:1;931;924:12;885:2;977:1;1002:53;1047:7;1038:6;1027:9;1023:22;1002:53;:::i;:::-;992:63;;948:117;1104:2;1130:61;1183:7;1174:6;1163:9;1159:22;1130:61;:::i;:::-;1120:71;;1075:126;1240:2;1266:53;1311:7;1302:6;1291:9;1287:22;1266:53;:::i;:::-;1256:63;;1211:118;1368:2;1394:53;1439:7;1430:6;1419:9;1415:22;1394:53;:::i;:::-;1384:63;;1339:118;875:589;;;;;;;:::o;1470:407::-;;;1595:2;1583:9;1574:7;1570:23;1566:32;1563:2;;;1611:1;1608;1601:12;1563:2;1654:1;1679:53;1724:7;1715:6;1704:9;1700:22;1679:53;:::i;:::-;1669:63;;1625:117;1781:2;1807:53;1852:7;1843:6;1832:9;1828:22;1807:53;:::i;:::-;1797:63;;1752:118;1553:324;;;;;:::o;1883:278::-;;1999:2;1987:9;1978:7;1974:23;1970:32;1967:2;;;2015:1;2012;2005:12;1967:2;2058:1;2083:61;2136:7;2127:6;2116:9;2112:22;2083:61;:::i;:::-;2073:71;;2029:125;1957:204;;;;:::o;2167:284::-;;2286:2;2274:9;2265:7;2261:23;2257:32;2254:2;;;2302:1;2299;2292:12;2254:2;2345:1;2370:64;2426:7;2417:6;2406:9;2402:22;2370:64;:::i;:::-;2360:74;;2316:128;2244:207;;;;:::o;2457:147::-;2552:45;2591:5;2552:45;:::i;:::-;2547:3;2540:58;2530:74;;:::o;2610:142::-;2713:32;2739:5;2713:32;:::i;:::-;2708:3;2701:45;2691:61;;:::o;2758:118::-;2845:24;2863:5;2845:24;:::i;:::-;2840:3;2833:37;2823:53;;:::o;2882:118::-;2969:24;2987:5;2969:24;:::i;:::-;2964:3;2957:37;2947:53;;:::o;3006:222::-;;3137:2;3126:9;3122:18;3114:26;;3150:71;3218:1;3207:9;3203:17;3194:6;3150:71;:::i;:::-;3104:124;;;;:::o;3234:348::-;;3401:2;3390:9;3386:18;3378:26;;3414:79;3490:1;3479:9;3475:17;3466:6;3414:79;:::i;:::-;3503:72;3571:2;3560:9;3556:18;3547:6;3503:72;:::i;:::-;3368:214;;;;;:::o;3588:585::-;;3819:3;3808:9;3804:19;3796:27;;3833:71;3901:1;3890:9;3886:17;3877:6;3833:71;:::i;:::-;3914:88;3998:2;3987:9;3983:18;3974:6;3914:88;:::i;:::-;4012:72;4080:2;4069:9;4065:18;4056:6;4012:72;:::i;:::-;4094;4162:2;4151:9;4147:18;4138:6;4094:72;:::i;:::-;3786:387;;;;;;;:::o;4179:332::-;;4338:2;4327:9;4323:18;4315:26;;4351:71;4419:1;4408:9;4404:17;4395:6;4351:71;:::i;:::-;4432:72;4500:2;4489:9;4485:18;4476:6;4432:72;:::i;:::-;4305:206;;;;;:::o;4517:96::-;;4583:24;4601:5;4583:24;:::i;:::-;4572:35;;4562:51;;;:::o;4619:104::-;;4693:24;4711:5;4693:24;:::i;:::-;4682:35;;4672:51;;;:::o;4729:90::-;;4806:5;4799:13;4792:21;4781:32;;4771:48;;;:::o;4825:126::-;;4902:42;4895:5;4891:54;4880:65;;4870:81;;;:::o;4957:77::-;;5023:5;5012:16;;5002:32;;;:::o;5040:134::-;;5131:37;5162:5;5131:37;:::i;:::-;5118:50;;5108:66;;;:::o;5180:126::-;;5263:37;5294:5;5263:37;:::i;:::-;5250:50;;5240:66;;;:::o;5312:113::-;;5395:24;5413:5;5395:24;:::i;:::-;5382:37;;5372:53;;;:::o;5431:122::-;5504:24;5522:5;5504:24;:::i;:::-;5497:5;5494:35;5484:2;;5543:1;5540;5533:12;5484:2;5474:79;:::o;5559:138::-;5640:32;5666:5;5640:32;:::i;:::-;5633:5;5630:43;5620:2;;5687:1;5684;5677:12;5620:2;5610:87;:::o;5703:116::-;5773:21;5788:5;5773:21;:::i;:::-;5766:5;5763:32;5753:2;;5809:1;5806;5799:12;5753:2;5743:76;:::o;5825:122::-;5898:24;5916:5;5898:24;:::i;:::-;5891:5;5888:35;5878:2;;5937:1;5934;5927:12;5878:2;5868:79;:::o" + "object": "608060405234801561000f575f80fd5b5060043610610055575f3560e01c806318ad37af1461005957806324e22902146100775780632fd7d1fd146100935780634a45d980146100b1578063c1342574146100cd575b5f80fd5b6100616100e9565b60405161006e9190610429565b60405180910390f35b610091600480360381019061008c91906104a3565b6100f8565b005b61009b610135565b6040516100a89190610429565b60405180910390f35b6100cb60048036038101906100c691906104a3565b610144565b005b6100e760048036038101906100e2919061051c565b610180565b005b6a010000000000000000008181565b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be74828260405161012992919061058f565b60405180910390a15050565b6a010000000000000000000181565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e18828260405161017492919061058f565b60405180910390a15050565b806a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101c59190610429565b602060405180830381865afa1580156101e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020491906105ca565b10610295576a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161024f929190610650565b6020604051808303815f875af115801561026b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028f91906106ac565b506103a7565b806a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102da9190610429565b602060405180830381865afa1580156102f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031991906105ca565b106103a6576a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610364929190610650565b6020604051808303815f875af1158015610380573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a491906106ac565b505b5b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef972848484846040516103dc94939291906106e6565b60405180910390a150505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610413826103ea565b9050919050565b61042381610409565b82525050565b5f60208201905061043c5f83018461041a565b92915050565b5f80fd5b61044f81610409565b8114610459575f80fd5b50565b5f8135905061046a81610446565b92915050565b5f819050919050565b61048281610470565b811461048c575f80fd5b50565b5f8135905061049d81610479565b92915050565b5f80604083850312156104b9576104b8610442565b5b5f6104c68582860161045c565b92505060206104d78582860161048f565b9150509250929050565b5f6104eb826103ea565b9050919050565b6104fb816104e1565b8114610505575f80fd5b50565b5f81359050610516816104f2565b92915050565b5f805f806080858703121561053457610533610442565b5b5f6105418782880161045c565b945050602061055287828801610508565b93505060406105638782880161048f565b92505060606105748782880161048f565b91505092959194509250565b61058981610470565b82525050565b5f6040820190506105a25f83018561041a565b6105af6020830184610580565b9392505050565b5f815190506105c481610479565b92915050565b5f602082840312156105df576105de610442565b5b5f6105ec848285016105b6565b91505092915050565b5f819050919050565b5f61061861061361060e846103ea565b6105f5565b6103ea565b9050919050565b5f610629826105fe565b9050919050565b5f61063a8261061f565b9050919050565b61064a81610630565b82525050565b5f6040820190506106635f830185610641565b6106706020830184610580565b9392505050565b5f8115159050919050565b61068b81610677565b8114610695575f80fd5b50565b5f815190506106a681610682565b92915050565b5f602082840312156106c1576106c0610442565b5b5f6106ce84828501610698565b91505092915050565b6106e0816104e1565b82525050565b5f6080820190506106f95f83018761041a565b61070660208301866106d7565b6107136040830185610580565b6107206060830184610580565b9594505050505056fea26469706673582212209641de41cfb5748aa65c78726444eb72768e56977a8c6ee88c8b7eda3d7ddab364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18AD37AF EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x24E22902 EQ PUSH2 0x77 JUMPI DUP1 PUSH4 0x2FD7D1FD EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0x4A45D980 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xC1342574 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x61 PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x91 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0xF8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9B PUSH2 0x135 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x144 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x51C JUMP JUMPDEST PUSH2 0x180 JUMP JUMPDEST STOP JUMPDEST PUSH11 0x100000000000000000081 DUP2 JUMP JUMPDEST PUSH32 0xA5625C5568DDBA471A5E1190863744239495CA35883CE7F3E7D3BEEA2E89BE74 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x129 SWAP3 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH11 0x100000000000000000001 DUP2 JUMP JUMPDEST PUSH31 0x3D5A25FAF4A774379F05DE4F94D8967080F7E731902EB8F542B957A0712E18 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x174 SWAP3 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C5 SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E0 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST LT PUSH2 0x295 JUMPI PUSH11 0x100000000000000000081 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24F SWAP3 SWAP2 SWAP1 PUSH2 0x650 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST POP PUSH2 0x3A7 JUMP JUMPDEST DUP1 PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x429 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F5 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST LT PUSH2 0x3A6 JUMPI PUSH11 0x100000000000000000001 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP5 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x364 SWAP3 SWAP2 SWAP1 PUSH2 0x650 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x380 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A4 SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST POP JUMPDEST JUMPDEST PUSH32 0xF3FA0EAEE8F258C23B013654DF25D1527F98A5C7CCD5E951DD77CACA400EF972 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x3DC SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x413 DUP3 PUSH2 0x3EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x423 DUP2 PUSH2 0x409 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x43C PUSH0 DUP4 ADD DUP5 PUSH2 0x41A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x44F DUP2 PUSH2 0x409 JUMP JUMPDEST DUP2 EQ PUSH2 0x459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x46A DUP2 PUSH2 0x446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x470 JUMP JUMPDEST DUP2 EQ PUSH2 0x48C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49D DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B9 JUMPI PUSH2 0x4B8 PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x4C6 DUP6 DUP3 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x4D7 DUP6 DUP3 DUP7 ADD PUSH2 0x48F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x4EB DUP3 PUSH2 0x3EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4FB DUP2 PUSH2 0x4E1 JUMP JUMPDEST DUP2 EQ PUSH2 0x505 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x516 DUP2 PUSH2 0x4F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x534 JUMPI PUSH2 0x533 PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x541 DUP8 DUP3 DUP9 ADD PUSH2 0x45C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x552 DUP8 DUP3 DUP9 ADD PUSH2 0x508 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x563 DUP8 DUP3 DUP9 ADD PUSH2 0x48F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x574 DUP8 DUP3 DUP9 ADD PUSH2 0x48F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x589 DUP2 PUSH2 0x470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5A2 PUSH0 DUP4 ADD DUP6 PUSH2 0x41A JUMP JUMPDEST PUSH2 0x5AF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x580 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x5C4 DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DF JUMPI PUSH2 0x5DE PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x5EC DUP5 DUP3 DUP6 ADD PUSH2 0x5B6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x618 PUSH2 0x613 PUSH2 0x60E DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH2 0x5F5 JUMP JUMPDEST PUSH2 0x3EA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x629 DUP3 PUSH2 0x5FE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x63A DUP3 PUSH2 0x61F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x64A DUP2 PUSH2 0x630 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x663 PUSH0 DUP4 ADD DUP6 PUSH2 0x641 JUMP JUMPDEST PUSH2 0x670 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x580 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68B DUP2 PUSH2 0x677 JUMP JUMPDEST DUP2 EQ PUSH2 0x695 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x6A6 DUP2 PUSH2 0x682 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x442 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x6CE DUP5 DUP3 DUP6 ADD PUSH2 0x698 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6E0 DUP2 PUSH2 0x4E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x6F9 PUSH0 DUP4 ADD DUP8 PUSH2 0x41A JUMP JUMPDEST PUSH2 0x706 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x6D7 JUMP JUMPDEST PUSH2 0x713 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x580 JUMP JUMPDEST PUSH2 0x720 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x580 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 COINBASE 0xDE COINBASE 0xCF 0xB5 PUSH21 0x8AA65C78726444EB72768E56977A8C6EE88C8B7EDA RETURNDATASIZE PUSH30 0xDAB364736F6C634300081800330000000000000000000000000000000000 ", + "sourceMap": "123:1147:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;396:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;999:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;475:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1139:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;559:435;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;396:73;427:42;396:73;:::o;999:135::-;1087:40;1108:10;1120:6;1087:40;;;;;;;:::i;:::-;;;;;;;;999:135;;:::o;475:73::-;506:42;475:73;:::o;1139:129::-;1224:37;1242:10;1254:6;1224:37;;;;;;;:::i;:::-;;;;;;;;1139:129;;:::o;559:435::-;718:6;427:42;677:22;;;708:4;677:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;674:242;;427:42;741:21;;;763:9;774:6;741:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;674:242;;;842:6;506:42;801:22;;;832:4;801:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;798:118;;506:42;865:21;;;887:9;898:6;865:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;798:118;674:242;939:48;949:10;961:9;972:6;980;939:48;;;;;;;;;:::i;:::-;;;;;;;;559:435;;;;:::o;7:126:17:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:77::-;1230:7;1259:5;1248:16;;1193:77;;;:::o;1276:122::-;1349:24;1367:5;1349:24;:::i;:::-;1342:5;1339:35;1329:63;;1388:1;1385;1378:12;1329:63;1276:122;:::o;1404:139::-;1450:5;1488:6;1475:20;1466:29;;1504:33;1531:5;1504:33;:::i;:::-;1404:139;;;;:::o;1549:474::-;1617:6;1625;1674:2;1662:9;1653:7;1649:23;1645:32;1642:119;;;1680:79;;:::i;:::-;1642:119;1800:1;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1771:117;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1549:474;;;;;:::o;2029:104::-;2074:7;2103:24;2121:5;2103:24;:::i;:::-;2092:35;;2029:104;;;:::o;2139:138::-;2220:32;2246:5;2220:32;:::i;:::-;2213:5;2210:43;2200:71;;2267:1;2264;2257:12;2200:71;2139:138;:::o;2283:155::-;2337:5;2375:6;2362:20;2353:29;;2391:41;2426:5;2391:41;:::i;:::-;2283:155;;;;:::o;2444:781::-;2538:6;2546;2554;2562;2611:3;2599:9;2590:7;2586:23;2582:33;2579:120;;;2618:79;;:::i;:::-;2579:120;2738:1;2763:53;2808:7;2799:6;2788:9;2784:22;2763:53;:::i;:::-;2753:63;;2709:117;2865:2;2891:61;2944:7;2935:6;2924:9;2920:22;2891:61;:::i;:::-;2881:71;;2836:126;3001:2;3027:53;3072:7;3063:6;3052:9;3048:22;3027:53;:::i;:::-;3017:63;;2972:118;3129:2;3155:53;3200:7;3191:6;3180:9;3176:22;3155:53;:::i;:::-;3145:63;;3100:118;2444:781;;;;;;;:::o;3231:118::-;3318:24;3336:5;3318:24;:::i;:::-;3313:3;3306:37;3231:118;;:::o;3355:332::-;3476:4;3514:2;3503:9;3499:18;3491:26;;3527:71;3595:1;3584:9;3580:17;3571:6;3527:71;:::i;:::-;3608:72;3676:2;3665:9;3661:18;3652:6;3608:72;:::i;:::-;3355:332;;;;;:::o;3693:143::-;3750:5;3781:6;3775:13;3766:22;;3797:33;3824:5;3797:33;:::i;:::-;3693:143;;;;:::o;3842:351::-;3912:6;3961:2;3949:9;3940:7;3936:23;3932:32;3929:119;;;3967:79;;:::i;:::-;3929:119;4087:1;4112:64;4168:7;4159:6;4148:9;4144:22;4112:64;:::i;:::-;4102:74;;4058:128;3842:351;;;;:::o;4199:60::-;4227:3;4248:5;4241:12;;4199:60;;;:::o;4265:142::-;4315:9;4348:53;4366:34;4375:24;4393:5;4375:24;:::i;:::-;4366:34;:::i;:::-;4348:53;:::i;:::-;4335:66;;4265:142;;;:::o;4413:126::-;4463:9;4496:37;4527:5;4496:37;:::i;:::-;4483:50;;4413:126;;;:::o;4545:134::-;4603:9;4636:37;4667:5;4636:37;:::i;:::-;4623:50;;4545:134;;;:::o;4685:147::-;4780:45;4819:5;4780:45;:::i;:::-;4775:3;4768:58;4685:147;;:::o;4838:348::-;4967:4;5005:2;4994:9;4990:18;4982:26;;5018:79;5094:1;5083:9;5079:17;5070:6;5018:79;:::i;:::-;5107:72;5175:2;5164:9;5160:18;5151:6;5107:72;:::i;:::-;4838:348;;;;;:::o;5192:90::-;5226:7;5269:5;5262:13;5255:21;5244:32;;5192:90;;;:::o;5288:116::-;5358:21;5373:5;5358:21;:::i;:::-;5351:5;5348:32;5338:60;;5394:1;5391;5384:12;5338:60;5288:116;:::o;5410:137::-;5464:5;5495:6;5489:13;5480:22;;5511:30;5535:5;5511:30;:::i;:::-;5410:137;;;;:::o;5553:345::-;5620:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:119;;;5675:79;;:::i;:::-;5637:119;5795:1;5820:61;5873:7;5864:6;5853:9;5849:22;5820:61;:::i;:::-;5810:71;;5766:125;5553:345;;;;:::o;5904:142::-;6007:32;6033:5;6007:32;:::i;:::-;6002:3;5995:45;5904:142;;:::o;6052:585::-;6245:4;6283:3;6272:9;6268:19;6260:27;;6297:71;6365:1;6354:9;6350:17;6341:6;6297:71;:::i;:::-;6378:88;6462:2;6451:9;6447:18;6438:6;6378:88;:::i;:::-;6476:72;6544:2;6533:9;6529:18;6520:6;6476:72;:::i;:::-;6558;6626:2;6615:9;6611:18;6602:6;6558:72;:::i;:::-;6052:585;;;;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b5061079d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806318ad37af1461005c57806324e229021461007a5780632fd7d1fd146100965780634a45d980146100b4578063c1342574146100d0575b600080fd5b6100646100ec565b60405161007191906105c9565b60405180910390f35b610094600480360381019061008f91906104ff565b6100fb565b005b61009e610138565b6040516100ab91906105c9565b60405180910390f35b6100ce60048036038101906100c991906104ff565b610147565b005b6100ea60048036038101906100e5919061049c565b610183565b005b6a010000000000000000008181565b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be74828260405161012c929190610652565b60405180910390a15050565b6a010000000000000000000181565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e188282604051610177929190610652565b60405180910390a15050565b806a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101c891906105c9565b60206040518083038186803b1580156101e057600080fd5b505afa1580156101f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102189190610564565b106102bb576a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016102639291906105e4565b602060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b5919061053b565b506103f0565b806a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161030091906105c9565b60206040518083038186803b15801561031857600080fd5b505afa15801561032c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103509190610564565b106103ef576a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161039b9291906105e4565b602060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed919061053b565b505b5b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef97284848484604051610425949392919061060d565b60405180910390a150505050565b6000813590506104428161070b565b92915050565b60008135905061045781610722565b92915050565b60008151905061046c81610739565b92915050565b60008135905061048181610750565b92915050565b60008151905061049681610750565b92915050565b600080600080608085870312156104b257600080fd5b60006104c087828801610433565b94505060206104d187828801610448565b93505060406104e287828801610472565b92505060606104f387828801610472565b91505092959194509250565b6000806040838503121561051257600080fd5b600061052085828601610433565b925050602061053185828601610472565b9150509250929050565b60006020828403121561054d57600080fd5b600061055b8482850161045d565b91505092915050565b60006020828403121561057657600080fd5b600061058484828501610487565b91505092915050565b610596816106d5565b82525050565b6105a58161068d565b82525050565b6105b48161067b565b82525050565b6105c3816106cb565b82525050565b60006020820190506105de60008301846105ab565b92915050565b60006040820190506105f9600083018561058d565b61060660208301846105ba565b9392505050565b600060808201905061062260008301876105ab565b61062f602083018661059c565b61063c60408301856105ba565b61064960608301846105ba565b95945050505050565b600060408201905061066760008301856105ab565b61067460208301846105ba565b9392505050565b6000610686826106ab565b9050919050565b6000610698826106ab565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006106e0826106e7565b9050919050565b60006106f2826106f9565b9050919050565b6000610704826106ab565b9050919050565b6107148161067b565b811461071f57600080fd5b50565b61072b8161068d565b811461073657600080fd5b50565b6107428161069f565b811461074d57600080fd5b50565b610759816106cb565b811461076457600080fd5b5056fea26469706673582212201080b2662bf4242373a4a47f61124118ec2f5dd5e3284f1c829caf6f7c6d4f1464736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b5061075f8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806318ad37af1461005957806324e22902146100775780632fd7d1fd146100935780634a45d980146100b1578063c1342574146100cd575b5f80fd5b6100616100e9565b60405161006e9190610429565b60405180910390f35b610091600480360381019061008c91906104a3565b6100f8565b005b61009b610135565b6040516100a89190610429565b60405180910390f35b6100cb60048036038101906100c691906104a3565b610144565b005b6100e760048036038101906100e2919061051c565b610180565b005b6a010000000000000000008181565b7fa5625c5568ddba471a5e1190863744239495ca35883ce7f3e7d3beea2e89be74828260405161012992919061058f565b60405180910390a15050565b6a010000000000000000000181565b7e3d5a25faf4a774379f05de4f94d8967080f7e731902eb8f542b957a0712e18828260405161017492919061058f565b60405180910390a15050565b806a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101c59190610429565b602060405180830381865afa1580156101e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020491906105ca565b10610295576a010000000000000000008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161024f929190610650565b6020604051808303815f875af115801561026b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028f91906106ac565b506103a7565b806a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102da9190610429565b602060405180830381865afa1580156102f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031991906105ca565b106103a6576a010000000000000000000173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610364929190610650565b6020604051808303815f875af1158015610380573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a491906106ac565b505b5b7ff3fa0eaee8f258c23b013654df25d1527f98a5c7ccd5e951dd77caca400ef972848484846040516103dc94939291906106e6565b60405180910390a150505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610413826103ea565b9050919050565b61042381610409565b82525050565b5f60208201905061043c5f83018461041a565b92915050565b5f80fd5b61044f81610409565b8114610459575f80fd5b50565b5f8135905061046a81610446565b92915050565b5f819050919050565b61048281610470565b811461048c575f80fd5b50565b5f8135905061049d81610479565b92915050565b5f80604083850312156104b9576104b8610442565b5b5f6104c68582860161045c565b92505060206104d78582860161048f565b9150509250929050565b5f6104eb826103ea565b9050919050565b6104fb816104e1565b8114610505575f80fd5b50565b5f81359050610516816104f2565b92915050565b5f805f806080858703121561053457610533610442565b5b5f6105418782880161045c565b945050602061055287828801610508565b93505060406105638782880161048f565b92505060606105748782880161048f565b91505092959194509250565b61058981610470565b82525050565b5f6040820190506105a25f83018561041a565b6105af6020830184610580565b9392505050565b5f815190506105c481610479565b92915050565b5f602082840312156105df576105de610442565b5b5f6105ec848285016105b6565b91505092915050565b5f819050919050565b5f61061861061361060e846103ea565b6105f5565b6103ea565b9050919050565b5f610629826105fe565b9050919050565b5f61063a8261061f565b9050919050565b61064a81610630565b82525050565b5f6040820190506106635f830185610641565b6106706020830184610580565b9392505050565b5f8115159050919050565b61068b81610677565b8114610695575f80fd5b50565b5f815190506106a681610682565b92915050565b5f602082840312156106c1576106c0610442565b5b5f6106ce84828501610698565b91505092915050565b6106e0816104e1565b82525050565b5f6080820190506106f95f83018761041a565b61070660208301866106d7565b6107136040830185610580565b6107206060830184610580565b9594505050505056fea26469706673582212209641de41cfb5748aa65c78726444eb72768e56977a8c6ee88c8b7eda3d7ddab364736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/ParentContract.json b/ts-tests/build/ParentContract.json index fe8682e166..0a30dfd586 100644 --- a/ts-tests/build/ParentContract.json +++ b/ts-tests/build/ParentContract.json @@ -60,48 +60,486 @@ ], "evm": { "bytecode": { + "functionDebugData": { + "@_894": { + "entryPoint": null, + "id": 894, + "parameterSlots": 0, + "returnSlots": 0 + } + }, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405161001d906100e1565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100ed565b60d9806104bb83390190565b6103bf806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806395bc992814610046578063a3a4ba3114610076578063e626223a14610080575b600080fd5b610060600480360381019061005b91906101f8565b61009e565b60405161006d9190610230565b60405180910390f35b61007e6100dd565b005b6100886101b3565b6040516100959190610230565b60405180910390f35b600181815481106100ae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006040516100eb906101d7565b604051809103906000f080158015610107573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60d9806102b183390190565b6000813590506101f281610299565b92915050565b60006020828403121561020a57600080fd5b6000610218848285016101e3565b91505092915050565b61022a81610275565b82525050565b60006020820190506102456000830184610221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061028082610287565b9050919050565b60006102928261024b565b9050919050565b6102a28161026b565b81146102ad57600080fd5b5056fe608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a2646970667358221220f904ea606654d028fdb9d8a4952d536bfd0251804ad6c0861d3762fbd56dfb4d64736f6c63430008020033608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1D SWAP1 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xED JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x4BB DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3BF DUP1 PUSH2 0xFC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x1B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xEB SWAP1 PUSH2 0x1D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x107 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x2B1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F2 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP5 DUP3 DUP6 ADD PUSH2 0x1E3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22A DUP2 PUSH2 0x275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x245 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280 DUP3 PUSH2 0x287 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x292 DUP3 PUSH2 0x24B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A2 DUP2 PUSH2 0x26B JUMP JUMPDEST DUP2 EQ PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 DIV 0xEA PUSH1 0x66 SLOAD 0xD0 0x28 REVERT 0xB9 0xD8 LOG4 SWAP6 0x2D MSTORE8 PUSH12 0xFD0251804AD6C0861D3762FB 0xD5 PUSH14 0xFB4D64736F6C6343000802003360 DUP1 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER ", + "object": "608060405234801561000f575f80fd5b5060405161001c906100db565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100e7565b60ce806104c183390190565b6103cd806100f45f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806395bc992814610043578063a3a4ba3114610073578063e626223a1461007d575b5f80fd5b61005d6004803603810190610058919061020b565b61009b565b60405161006a91906102b0565b60405180910390f35b61007b6100d6565b005b6100856101a5565b60405161009291906102b0565b60405180910390f35b600181815481106100aa575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6040516100e3906101c8565b604051809103905ff0801580156100fc573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a2600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ce806102ca83390190565b5f80fd5b5f819050919050565b6101ea816101d8565b81146101f4575f80fd5b50565b5f81359050610205816101e1565b92915050565b5f602082840312156102205761021f6101d4565b5b5f61022d848285016101f7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61027861027361026e84610236565b610255565b610236565b9050919050565b5f6102898261025e565b9050919050565b5f61029a8261027f565b9050919050565b6102aa81610290565b82525050565b5f6020820190506102c35f8301846102a1565b9291505056fe608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a2646970667358221220c9c09a08caefd974beccc16baae32ae66423ea9926d141d7ebc4286d930707f964736f6c63430008180033608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C SWAP1 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x35 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xE7 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x4C1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x3CD DUP1 PUSH2 0xF4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x73 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x7D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x20B JUMP JUMPDEST PUSH2 0x9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7B PUSH2 0xD6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x85 PUSH2 0x1A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x92 SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP1 PUSH2 0x1C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xFC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x2CA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x1D8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x205 DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x220 JUMPI PUSH2 0x21F PUSH2 0x1D4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22D DUP5 DUP3 DUP6 ADD PUSH2 0x1F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x278 PUSH2 0x273 PUSH2 0x26E DUP5 PUSH2 0x236 JUMP JUMPDEST PUSH2 0x255 JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x289 DUP3 PUSH2 0x25E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x29A DUP3 PUSH2 0x27F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AA DUP2 PUSH2 0x290 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C3 PUSH0 DUP4 ADD DUP5 PUSH2 0x2A1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 0xC0 SWAP11 ADDMOD 0xCA 0xEF 0xD9 PUSH21 0xBECCC16BAAE32AE66423EA9926D141D7EBC4286D93 SMOD SMOD 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", "sourceMap": "562:505:5:-:0;;;739:121;;;;;;;;;;779:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;763:13;;:35;;;;;;;;;;;;;;;;;;838:13;;;;;;;;;;813:40;;;;;;;;;;;;562:505;;;;;;;;;;:::o;:::-;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@childContract_872": { + "entryPoint": 421, + "id": 872, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@childContracts_876": { + "entryPoint": 155, + "id": 876, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@createChild_919": { + "entryPoint": 214, + "id": 919, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_uint256": { + "entryPoint": 503, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 523, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_contract$_ChildContract_$932_to_t_address_fromStack": { + "entryPoint": 673, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_contract$_ChildContract_$932__to_t_address__fromStack_reversed": { + "entryPoint": 688, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 566, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 472, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_contract$_ChildContract_$932_to_t_address": { + "entryPoint": 656, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_address": { + "entryPoint": 639, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint160_to_t_uint160": { + "entryPoint": 606, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 597, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 468, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 481, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:2102:17", "nodeType": "YulBlock", - "src": "0:1523:17", + "src": "0:2102:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "57:19:17", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:17", + "nodeType": "YulIdentifier", + "src": "67:5:17" + }, + "nativeSrc": "67:9:17", + "nodeType": "YulFunctionCall", + "src": "67:9:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:17", + "nodeType": "YulIdentifier", + "src": "57:6:17" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:17", + "nodeType": "YulIdentifier", + "src": "187:6:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulFunctionCall", + "src": "187:12:17" + }, + "nativeSrc": "187:12:17", + "nodeType": "YulExpressionStatement", + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:32:17", + "nodeType": "YulBlock", + "src": "379:32:17", + "statements": [ + { + "nativeSrc": "389:16:17", + "nodeType": "YulAssignment", + "src": "389:16:17", + "value": { + "name": "value", + "nativeSrc": "400:5:17", + "nodeType": "YulIdentifier", + "src": "400:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:17", + "nodeType": "YulTypedName", + "src": "361:5:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:17", + "nodeType": "YulTypedName", + "src": "371:7:17", + "type": "" + } + ], + "src": "334:77:17" + }, + { + "body": { + "nativeSrc": "460:79:17", + "nodeType": "YulBlock", + "src": "460:79:17", + "statements": [ + { + "body": { + "nativeSrc": "517:16:17", + "nodeType": "YulBlock", + "src": "517:16:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:17", + "nodeType": "YulLiteral", + "src": "526:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:17", + "nodeType": "YulLiteral", + "src": "529:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:17", + "nodeType": "YulIdentifier", + "src": "519:6:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulFunctionCall", + "src": "519:12:17" + }, + "nativeSrc": "519:12:17", + "nodeType": "YulExpressionStatement", + "src": "519:12:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:17", + "nodeType": "YulIdentifier", + "src": "483:5:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:17", + "nodeType": "YulIdentifier", + "src": "508:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:17", + "nodeType": "YulIdentifier", + "src": "490:17:17" + }, + "nativeSrc": "490:24:17", + "nodeType": "YulFunctionCall", + "src": "490:24:17" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:17", + "nodeType": "YulIdentifier", + "src": "480:2:17" + }, + "nativeSrc": "480:35:17", + "nodeType": "YulFunctionCall", + "src": "480:35:17" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:17", + "nodeType": "YulIdentifier", + "src": "473:6:17" + }, + "nativeSrc": "473:43:17", + "nodeType": "YulFunctionCall", + "src": "473:43:17" + }, + "nativeSrc": "470:63:17", + "nodeType": "YulIf", + "src": "470:63:17" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:17", + "nodeType": "YulTypedName", + "src": "453:5:17", + "type": "" + } + ], + "src": "417:122:17" + }, + { + "body": { + "nativeSrc": "597:87:17", + "nodeType": "YulBlock", + "src": "597:87:17", + "statements": [ + { + "nativeSrc": "607:29:17", + "nodeType": "YulAssignment", + "src": "607:29:17", "value": { "arguments": [ { "name": "offset", + "nativeSrc": "629:6:17", "nodeType": "YulIdentifier", - "src": "91:6:17" + "src": "629:6:17" } ], "functionName": { "name": "calldataload", + "nativeSrc": "616:12:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "616:12:17" }, + "nativeSrc": "616:20:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "616:20:17" }, "variableNames": [ { "name": "value", + "nativeSrc": "607:5:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "607:5:17" } ] }, @@ -110,87 +548,85 @@ "arguments": [ { "name": "value", + "nativeSrc": "672:5:17", "nodeType": "YulIdentifier", - "src": "134:5:17" + "src": "672:5:17" } ], "functionName": { "name": "validator_revert_t_uint256", + "nativeSrc": "645:26:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "645:26:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "645:33:17" }, + "nativeSrc": "645:33:17", "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "src": "645:33:17" } ] }, "name": "abi_decode_t_uint256", + "nativeSrc": "545:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", + "nativeSrc": "575:6:17", "nodeType": "YulTypedName", - "src": "37:6:17", + "src": "575:6:17", "type": "" }, { "name": "end", + "nativeSrc": "583:3:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "583:3:17", "type": "" } ], "returnVariables": [ { "name": "value", + "nativeSrc": "591:5:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "591:5:17", "type": "" } ], - "src": "7:139:17" + "src": "545:139:17" }, { "body": { + "nativeSrc": "756:263:17", "nodeType": "YulBlock", - "src": "218:196:17", + "src": "756:263:17", "statements": [ { "body": { + "nativeSrc": "802:83:17", "nodeType": "YulBlock", - "src": "264:16:17", + "src": "802:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "273:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "276:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "804:77:17", "nodeType": "YulIdentifier", - "src": "266:6:17" + "src": "804:77:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulFunctionCall", - "src": "266:12:17" + "src": "804:79:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulExpressionStatement", - "src": "266:12:17" + "src": "804:79:17" } ] }, @@ -200,110 +636,131 @@ "arguments": [ { "name": "dataEnd", + "nativeSrc": "777:7:17", "nodeType": "YulIdentifier", - "src": "239:7:17" + "src": "777:7:17" }, { "name": "headStart", + "nativeSrc": "786:9:17", "nodeType": "YulIdentifier", - "src": "248:9:17" + "src": "786:9:17" } ], "functionName": { "name": "sub", + "nativeSrc": "773:3:17", "nodeType": "YulIdentifier", - "src": "235:3:17" + "src": "773:3:17" }, + "nativeSrc": "773:23:17", "nodeType": "YulFunctionCall", - "src": "235:23:17" + "src": "773:23:17" }, { "kind": "number", + "nativeSrc": "798:2:17", "nodeType": "YulLiteral", - "src": "260:2:17", + "src": "798:2:17", "type": "", "value": "32" } ], "functionName": { "name": "slt", + "nativeSrc": "769:3:17", "nodeType": "YulIdentifier", - "src": "231:3:17" + "src": "769:3:17" }, + "nativeSrc": "769:32:17", "nodeType": "YulFunctionCall", - "src": "231:32:17" + "src": "769:32:17" }, + "nativeSrc": "766:119:17", "nodeType": "YulIf", - "src": "228:2:17" + "src": "766:119:17" }, { + "nativeSrc": "895:117:17", "nodeType": "YulBlock", - "src": "290:117:17", + "src": "895:117:17", "statements": [ { + "nativeSrc": "910:15:17", "nodeType": "YulVariableDeclaration", - "src": "305:15:17", + "src": "910:15:17", "value": { "kind": "number", + "nativeSrc": "924:1:17", "nodeType": "YulLiteral", - "src": "319:1:17", + "src": "924:1:17", "type": "", "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "914:6:17", "nodeType": "YulTypedName", - "src": "309:6:17", + "src": "914:6:17", "type": "" } ] }, { + "nativeSrc": "939:63:17", "nodeType": "YulAssignment", - "src": "334:63:17", + "src": "939:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "974:9:17", "nodeType": "YulIdentifier", - "src": "369:9:17" + "src": "974:9:17" }, { "name": "offset", + "nativeSrc": "985:6:17", "nodeType": "YulIdentifier", - "src": "380:6:17" + "src": "985:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "970:3:17", "nodeType": "YulIdentifier", - "src": "365:3:17" + "src": "970:3:17" }, + "nativeSrc": "970:22:17", "nodeType": "YulFunctionCall", - "src": "365:22:17" + "src": "970:22:17" }, { "name": "dataEnd", + "nativeSrc": "994:7:17", "nodeType": "YulIdentifier", - "src": "389:7:17" + "src": "994:7:17" } ], "functionName": { "name": "abi_decode_t_uint256", + "nativeSrc": "949:20:17", "nodeType": "YulIdentifier", - "src": "344:20:17" + "src": "949:20:17" }, + "nativeSrc": "949:53:17", "nodeType": "YulFunctionCall", - "src": "344:53:17" + "src": "949:53:17" }, "variableNames": [ { "name": "value0", + "nativeSrc": "939:6:17", "nodeType": "YulIdentifier", - "src": "334:6:17" + "src": "939:6:17" } ] } @@ -312,518 +769,575 @@ ] }, "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "690:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "726:9:17", "nodeType": "YulTypedName", - "src": "188:9:17", + "src": "726:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "737:7:17", "nodeType": "YulTypedName", - "src": "199:7:17", + "src": "737:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "749:6:17", "nodeType": "YulTypedName", - "src": "211:6:17", + "src": "749:6:17", "type": "" } ], - "src": "152:262:17" + "src": "690:329:17" }, { "body": { + "nativeSrc": "1070:81:17", "nodeType": "YulBlock", - "src": "506:87:17", + "src": "1070:81:17", "statements": [ { - "expression": { + "nativeSrc": "1080:65:17", + "nodeType": "YulAssignment", + "src": "1080:65:17", + "value": { "arguments": [ { - "name": "pos", + "name": "value", + "nativeSrc": "1095:5:17", "nodeType": "YulIdentifier", - "src": "523:3:17" + "src": "1095:5:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "580:5:17" - } - ], - "functionName": { - "name": "convert_t_contract$_ChildContract_$906_to_t_address", - "nodeType": "YulIdentifier", - "src": "528:51:17" - }, - "nodeType": "YulFunctionCall", - "src": "528:58:17" + "kind": "number", + "nativeSrc": "1102:42:17", + "nodeType": "YulLiteral", + "src": "1102:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "mstore", + "name": "and", + "nativeSrc": "1091:3:17", "nodeType": "YulIdentifier", - "src": "516:6:17" + "src": "1091:3:17" }, + "nativeSrc": "1091:54:17", "nodeType": "YulFunctionCall", - "src": "516:71:17" + "src": "1091:54:17" }, - "nodeType": "YulExpressionStatement", - "src": "516:71:17" + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1080:7:17", + "nodeType": "YulIdentifier", + "src": "1080:7:17" + } + ] } ] }, - "name": "abi_encode_t_contract$_ChildContract_$906_to_t_address_fromStack", + "name": "cleanup_t_uint160", + "nativeSrc": "1025:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1052:5:17", "nodeType": "YulTypedName", - "src": "494:5:17", + "src": "1052:5:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", + "name": "cleaned", + "nativeSrc": "1062:7:17", "nodeType": "YulTypedName", - "src": "501:3:17", + "src": "1062:7:17", "type": "" } ], - "src": "420:173:17" + "src": "1025:126:17" }, { "body": { + "nativeSrc": "1189:28:17", "nodeType": "YulBlock", - "src": "718:145:17", + "src": "1189:28:17", "statements": [ { + "nativeSrc": "1199:12:17", "nodeType": "YulAssignment", - "src": "728:26:17", + "src": "1199:12:17", "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "740:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "751:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "736:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "736:18:17" + "name": "value", + "nativeSrc": "1206:5:17", + "nodeType": "YulIdentifier", + "src": "1206:5:17" }, "variableNames": [ { - "name": "tail", + "name": "ret", + "nativeSrc": "1199:3:17", "nodeType": "YulIdentifier", - "src": "728:4:17" + "src": "1199:3:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "829:6:17" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "842:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "853:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "838:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "838:17:17" - } - ], - "functionName": { - "name": "abi_encode_t_contract$_ChildContract_$906_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "764:64:17" - }, - "nodeType": "YulFunctionCall", - "src": "764:92:17" - }, - "nodeType": "YulExpressionStatement", - "src": "764:92:17" } ] }, - "name": "abi_encode_tuple_t_contract$_ChildContract_$906__to_t_address__fromStack_reversed", + "name": "identity", + "nativeSrc": "1157:60:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "690:9:17", - "type": "" - }, - { - "name": "value0", + "name": "value", + "nativeSrc": "1175:5:17", "nodeType": "YulTypedName", - "src": "702:6:17", + "src": "1175:5:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "ret", + "nativeSrc": "1185:3:17", "nodeType": "YulTypedName", - "src": "713:4:17", + "src": "1185:3:17", "type": "" } ], - "src": "599:264:17" + "src": "1157:60:17" }, { "body": { + "nativeSrc": "1283:82:17", "nodeType": "YulBlock", - "src": "914:81:17", + "src": "1283:82:17", "statements": [ { + "nativeSrc": "1293:66:17", "nodeType": "YulAssignment", - "src": "924:65:17", + "src": "1293:66:17", "value": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "939:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "946:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1351:5:17", + "nodeType": "YulIdentifier", + "src": "1351:5:17" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1333:17:17", + "nodeType": "YulIdentifier", + "src": "1333:17:17" + }, + "nativeSrc": "1333:24:17", + "nodeType": "YulFunctionCall", + "src": "1333:24:17" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "1324:8:17", + "nodeType": "YulIdentifier", + "src": "1324:8:17" + }, + "nativeSrc": "1324:34:17", + "nodeType": "YulFunctionCall", + "src": "1324:34:17" } ], "functionName": { - "name": "and", + "name": "cleanup_t_uint160", + "nativeSrc": "1306:17:17", "nodeType": "YulIdentifier", - "src": "935:3:17" + "src": "1306:17:17" }, + "nativeSrc": "1306:53:17", "nodeType": "YulFunctionCall", - "src": "935:54:17" + "src": "1306:53:17" }, "variableNames": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "1293:9:17", "nodeType": "YulIdentifier", - "src": "924:7:17" + "src": "1293:9:17" } ] } ] }, - "name": "cleanup_t_uint160", + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "1223:142:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1263:5:17", "nodeType": "YulTypedName", - "src": "896:5:17", + "src": "1263:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "1273:9:17", "nodeType": "YulTypedName", - "src": "906:7:17", + "src": "1273:9:17", "type": "" } ], - "src": "869:126:17" + "src": "1223:142:17" }, { "body": { + "nativeSrc": "1431:66:17", "nodeType": "YulBlock", - "src": "1046:32:17", + "src": "1431:66:17", "statements": [ { + "nativeSrc": "1441:50:17", "nodeType": "YulAssignment", - "src": "1056:16:17", + "src": "1441:50:17", "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1067:5:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "1485:5:17", + "nodeType": "YulIdentifier", + "src": "1485:5:17" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nativeSrc": "1454:30:17", + "nodeType": "YulIdentifier", + "src": "1454:30:17" + }, + "nativeSrc": "1454:37:17", + "nodeType": "YulFunctionCall", + "src": "1454:37:17" }, "variableNames": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "1441:9:17", "nodeType": "YulIdentifier", - "src": "1056:7:17" + "src": "1441:9:17" } ] } ] }, - "name": "cleanup_t_uint256", + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "1371:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1411:5:17", "nodeType": "YulTypedName", - "src": "1028:5:17", + "src": "1411:5:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "converted", + "nativeSrc": "1421:9:17", "nodeType": "YulTypedName", - "src": "1038:7:17", + "src": "1421:9:17", "type": "" } ], - "src": "1001:77:17" + "src": "1371:126:17" }, { "body": { + "nativeSrc": "1584:66:17", "nodeType": "YulBlock", - "src": "1165:87:17", + "src": "1584:66:17", "statements": [ { + "nativeSrc": "1594:50:17", "nodeType": "YulAssignment", - "src": "1175:71:17", + "src": "1594:50:17", "value": { "arguments": [ { "name": "value", + "nativeSrc": "1638:5:17", "nodeType": "YulIdentifier", - "src": "1240:5:17" + "src": "1638:5:17" } ], "functionName": { - "name": "convert_t_contract$_ChildContract_$906_to_t_uint160", + "name": "convert_t_uint160_to_t_address", + "nativeSrc": "1607:30:17", "nodeType": "YulIdentifier", - "src": "1188:51:17" + "src": "1607:30:17" }, + "nativeSrc": "1607:37:17", "nodeType": "YulFunctionCall", - "src": "1188:58:17" + "src": "1607:37:17" }, "variableNames": [ { "name": "converted", + "nativeSrc": "1594:9:17", "nodeType": "YulIdentifier", - "src": "1175:9:17" + "src": "1594:9:17" } ] } ] }, - "name": "convert_t_contract$_ChildContract_$906_to_t_address", + "name": "convert_t_contract$_ChildContract_$932_to_t_address", + "nativeSrc": "1503:147:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1564:5:17", "nodeType": "YulTypedName", - "src": "1145:5:17", + "src": "1564:5:17", "type": "" } ], "returnVariables": [ { "name": "converted", + "nativeSrc": "1574:9:17", "nodeType": "YulTypedName", - "src": "1155:9:17", + "src": "1574:9:17", "type": "" } ], - "src": "1084:168:17" + "src": "1503:147:17" }, { "body": { + "nativeSrc": "1742:87:17", "nodeType": "YulBlock", - "src": "1339:53:17", + "src": "1742:87:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "1349:37:17", - "value": { + "expression": { "arguments": [ { - "name": "value", + "name": "pos", + "nativeSrc": "1759:3:17", "nodeType": "YulIdentifier", - "src": "1380:5:17" + "src": "1759:3:17" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1816:5:17", + "nodeType": "YulIdentifier", + "src": "1816:5:17" + } + ], + "functionName": { + "name": "convert_t_contract$_ChildContract_$932_to_t_address", + "nativeSrc": "1764:51:17", + "nodeType": "YulIdentifier", + "src": "1764:51:17" + }, + "nativeSrc": "1764:58:17", + "nodeType": "YulFunctionCall", + "src": "1764:58:17" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "mstore", + "nativeSrc": "1752:6:17", "nodeType": "YulIdentifier", - "src": "1362:17:17" + "src": "1752:6:17" }, + "nativeSrc": "1752:71:17", "nodeType": "YulFunctionCall", - "src": "1362:24:17" + "src": "1752:71:17" }, - "variableNames": [ - { - "name": "converted", - "nodeType": "YulIdentifier", - "src": "1349:9:17" - } - ] + "nativeSrc": "1752:71:17", + "nodeType": "YulExpressionStatement", + "src": "1752:71:17" } ] }, - "name": "convert_t_contract$_ChildContract_$906_to_t_uint160", + "name": "abi_encode_t_contract$_ChildContract_$932_to_t_address_fromStack", + "nativeSrc": "1656:173:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1730:5:17", "nodeType": "YulTypedName", - "src": "1319:5:17", + "src": "1730:5:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "converted", + "name": "pos", + "nativeSrc": "1737:3:17", "nodeType": "YulTypedName", - "src": "1329:9:17", + "src": "1737:3:17", "type": "" } ], - "src": "1258:134:17" + "src": "1656:173:17" }, { "body": { + "nativeSrc": "1954:145:17", "nodeType": "YulBlock", - "src": "1441:79:17", + "src": "1954:145:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "1498:16:17", - "statements": [ + "nativeSrc": "1964:26:17", + "nodeType": "YulAssignment", + "src": "1964:26:17", + "value": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1507:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1510:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1500:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1500:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1500:12:17" + "name": "headStart", + "nativeSrc": "1976:9:17", + "nodeType": "YulIdentifier", + "src": "1976:9:17" + }, + { + "kind": "number", + "nativeSrc": "1987:2:17", + "nodeType": "YulLiteral", + "src": "1987:2:17", + "type": "", + "value": "32" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "1972:3:17", + "nodeType": "YulIdentifier", + "src": "1972:3:17" + }, + "nativeSrc": "1972:18:17", + "nodeType": "YulFunctionCall", + "src": "1972:18:17" }, - "condition": { + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1964:4:17", + "nodeType": "YulIdentifier", + "src": "1964:4:17" + } + ] + }, + { + "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "2065:6:17", + "nodeType": "YulIdentifier", + "src": "2065:6:17" + }, { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "2078:9:17", "nodeType": "YulIdentifier", - "src": "1464:5:17" + "src": "2078:9:17" }, { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1489:5:17" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "1471:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "1471:24:17" + "kind": "number", + "nativeSrc": "2089:1:17", + "nodeType": "YulLiteral", + "src": "2089:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "eq", + "name": "add", + "nativeSrc": "2074:3:17", "nodeType": "YulIdentifier", - "src": "1461:2:17" + "src": "2074:3:17" }, + "nativeSrc": "2074:17:17", "nodeType": "YulFunctionCall", - "src": "1461:35:17" + "src": "2074:17:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_contract$_ChildContract_$932_to_t_address_fromStack", + "nativeSrc": "2000:64:17", "nodeType": "YulIdentifier", - "src": "1454:6:17" + "src": "2000:64:17" }, + "nativeSrc": "2000:92:17", "nodeType": "YulFunctionCall", - "src": "1454:43:17" + "src": "2000:92:17" }, - "nodeType": "YulIf", - "src": "1451:2:17" + "nativeSrc": "2000:92:17", + "nodeType": "YulExpressionStatement", + "src": "2000:92:17" } ] }, - "name": "validator_revert_t_uint256", + "name": "abi_encode_tuple_t_contract$_ChildContract_$932__to_t_address__fromStack_reversed", + "nativeSrc": "1835:264:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "1926:9:17", + "nodeType": "YulTypedName", + "src": "1926:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1938:6:17", + "nodeType": "YulTypedName", + "src": "1938:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1949:4:17", "nodeType": "YulTypedName", - "src": "1434:5:17", + "src": "1949:4:17", "type": "" } ], - "src": "1398:122:17" + "src": "1835:264:17" } ] }, - "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_contract$_ChildContract_$906_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ChildContract_$906_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ChildContract_$906__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ChildContract_$906_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_contract$_ChildContract_$906_to_t_address(value) -> converted {\n converted := convert_t_contract$_ChildContract_$906_to_t_uint160(value)\n }\n\n function convert_t_contract$_ChildContract_$906_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_ChildContract_$932_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_ChildContract_$932_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_ChildContract_$932_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_ChildContract_$932__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_ChildContract_$932_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -831,10 +1345,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806395bc992814610046578063a3a4ba3114610076578063e626223a14610080575b600080fd5b610060600480360381019061005b91906101f8565b61009e565b60405161006d9190610230565b60405180910390f35b61007e6100dd565b005b6100886101b3565b6040516100959190610230565b60405180910390f35b600181815481106100ae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006040516100eb906101d7565b604051809103906000f080158015610107573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60d9806102b183390190565b6000813590506101f281610299565b92915050565b60006020828403121561020a57600080fd5b6000610218848285016101e3565b91505092915050565b61022a81610275565b82525050565b60006020820190506102456000830184610221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061028082610287565b9050919050565b60006102928261024b565b9050919050565b6102a28161026b565b81146102ad57600080fd5b5056fe608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a2646970667358221220f904ea606654d028fdb9d8a4952d536bfd0251804ad6c0861d3762fbd56dfb4d64736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1F8 JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x88 PUSH2 0x1B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95 SWAP2 SWAP1 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xEB SWAP1 PUSH2 0x1D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x107 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD9 DUP1 PUSH2 0x2B1 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F2 DUP2 PUSH2 0x299 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x218 DUP5 DUP3 DUP6 ADD PUSH2 0x1E3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22A DUP2 PUSH2 0x275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x245 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280 DUP3 PUSH2 0x287 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x292 DUP3 PUSH2 0x24B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A2 DUP2 PUSH2 0x26B JUMP JUMPDEST DUP2 EQ PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH1 0xB3 DUP1 PUSH2 0x26 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC 0xCB 0xC SLOAD DELEGATECALL MOD 0xC5 0xF9 0x4C LOG0 PUSH28 0xBE9C717145DA8FE82B37B3EE37A813E73D8BE65C0564736F6C634300 ADDMOD MUL STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 DIV 0xEA PUSH1 0x66 SLOAD 0xD0 0x28 REVERT 0xB9 0xD8 LOG4 SWAP6 0x2D MSTORE8 PUSH12 0xFD0251804AD6C0861D3762FB 0xD5 PUSH14 0xFB4D64736F6C6343000802003300 ", - "sourceMap": "562:505:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;866:199;;;:::i;:::-;;655:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;695:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;866:199::-;906:28;937:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;906:50;;996:14;971:41;;;;;;;;;;;;1023:14;1043;1023:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;866:199;:::o;655:34::-;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:173::-;528:58;580:5;528:58;:::i;:::-;523:3;516:71;506:87;;:::o;599:264::-;;751:2;740:9;736:18;728:26;;764:92;853:1;842:9;838:17;829:6;764:92;:::i;:::-;718:145;;;;:::o;869:126::-;;946:42;939:5;935:54;924:65;;914:81;;;:::o;1001:77::-;;1067:5;1056:16;;1046:32;;;:::o;1084:168::-;;1188:58;1240:5;1188:58;:::i;:::-;1175:71;;1165:87;;;:::o;1258:134::-;;1362:24;1380:5;1362:24;:::i;:::-;1349:37;;1339:53;;;:::o;1398:122::-;1471:24;1489:5;1471:24;:::i;:::-;1464:5;1461:35;1451:2;;1510:1;1507;1500:12;1451:2;1441:79;:::o" + "object": "608060405234801561000f575f80fd5b506004361061003f575f3560e01c806395bc992814610043578063a3a4ba3114610073578063e626223a1461007d575b5f80fd5b61005d6004803603810190610058919061020b565b61009b565b60405161006a91906102b0565b60405180910390f35b61007b6100d6565b005b6100856101a5565b60405161009291906102b0565b60405180910390f35b600181815481106100aa575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6040516100e3906101c8565b604051809103905ff0801580156100fc573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a2600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ce806102ca83390190565b5f80fd5b5f819050919050565b6101ea816101d8565b81146101f4575f80fd5b50565b5f81359050610205816101e1565b92915050565b5f602082840312156102205761021f6101d4565b5b5f61022d848285016101f7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61027861027361026e84610236565b610255565b610236565b9050919050565b5f6102898261025e565b9050919050565b5f61029a8261027f565b9050919050565b6102aa81610290565b82525050565b5f6020820190506102c35f8301846102a1565b9291505056fe608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a2646970667358221220c9c09a08caefd974beccc16baae32ae66423ea9926d141d7ebc4286d930707f964736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95BC9928 EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0xA3A4BA31 EQ PUSH2 0x73 JUMPI DUP1 PUSH4 0xE626223A EQ PUSH2 0x7D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x20B JUMP JUMPDEST PUSH2 0x9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7B PUSH2 0xD6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x85 PUSH2 0x1A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x92 SWAP2 SWAP1 PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xAA JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP1 PUSH2 0x1C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xFC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xB0199510A4D57FAC89F9B613861450AE948394F2ABE3BF9918EB3C6890243F00 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xCE DUP1 PUSH2 0x2CA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EA DUP2 PUSH2 0x1D8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x205 DUP2 PUSH2 0x1E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x220 JUMPI PUSH2 0x21F PUSH2 0x1D4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x22D DUP5 DUP3 DUP6 ADD PUSH2 0x1F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x278 PUSH2 0x273 PUSH2 0x26E DUP5 PUSH2 0x236 JUMP JUMPDEST PUSH2 0x255 JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x289 DUP3 PUSH2 0x25E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x29A DUP3 PUSH2 0x27F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AA DUP2 PUSH2 0x290 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C3 PUSH0 DUP4 ADD DUP5 PUSH2 0x2A1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP TIMESTAMP PUSH0 DUP2 SWAP1 SSTORE POP PUSH1 0xAC DUP1 PUSH2 0x22 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x16ADA547 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x44 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3B SWAP2 SWAP1 PUSH1 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x59 DUP2 PUSH1 0x49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH0 DUP4 ADD DUP5 PUSH1 0x52 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 COINBASE MLOAD DUP3 STATICCALL MSIZE 0xE9 RETURNDATACOPY 0xE5 0xCA TIMESTAMP 0xE2 0x2D 0xDA PUSH9 0xCA5BFF537D5812FFE4 0x2E 0xD1 0x22 0xAA BASEFEE 0xE7 SWAP12 0xEE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 0xC0 SWAP11 ADDMOD 0xCA 0xEF 0xD9 PUSH21 0xBECCC16BAAE32AE66423EA9926D141D7EBC4286D93 SMOD SMOD 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "562:505:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;866:199;;;:::i;:::-;;655:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;695:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;866:199::-;906:28;937:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;906:50;;996:14;971:41;;;;;;;;;;;;1023:14;1043;1023:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:169;866:199::o;655:34::-;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;88:117:17:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:60::-;1185:3;1206:5;1199:12;;1157:60;;;:::o;1223:142::-;1273:9;1306:53;1324:34;1333:24;1351:5;1333:24;:::i;:::-;1324:34;:::i;:::-;1306:53;:::i;:::-;1293:66;;1223:142;;;:::o;1371:126::-;1421:9;1454:37;1485:5;1454:37;:::i;:::-;1441:50;;1371:126;;;:::o;1503:147::-;1574:9;1607:37;1638:5;1607:37;:::i;:::-;1594:50;;1503:147;;;:::o;1656:173::-;1764:58;1816:5;1764:58;:::i;:::-;1759:3;1752:71;1656:173;;:::o;1835:264::-;1949:4;1987:2;1976:9;1972:18;1964:26;;2000:92;2089:1;2078:9;2074:17;2065:6;2000:92;:::i;:::-;1835:264;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b5060405161001d906100e1565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100ed565b60d9806104bb83390190565b6103bf806100fc6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806395bc992814610046578063a3a4ba3114610076578063e626223a14610080575b600080fd5b610060600480360381019061005b91906101f8565b61009e565b60405161006d9190610230565b60405180910390f35b61007e6100dd565b005b6100886101b3565b6040516100959190610230565b60405180910390f35b600181815481106100ae57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006040516100eb906101d7565b604051809103906000f080158015610107573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60d9806102b183390190565b6000813590506101f281610299565b92915050565b60006020828403121561020a57600080fd5b6000610218848285016101e3565b91505092915050565b61022a81610275565b82525050565b60006020820190506102456000830184610221565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061028082610287565b9050919050565b60006102928261024b565b9050919050565b6102a28161026b565b81146102ad57600080fd5b5056fe608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033a2646970667358221220f904ea606654d028fdb9d8a4952d536bfd0251804ad6c0861d3762fbd56dfb4d64736f6c63430008020033608060405234801561001057600080fd5b504260008190555060b3806100266000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806316ada54714602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea26469706673582212200ccb0c54f406c5f94ca07bbe9c717145da8fe82b37b3ee37a813e73d8be65c0564736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b5060405161001c906100db565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a26100e7565b60ce806104c183390190565b6103cd806100f45f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806395bc992814610043578063a3a4ba3114610073578063e626223a1461007d575b5f80fd5b61005d6004803603810190610058919061020b565b61009b565b60405161006a91906102b0565b60405180910390f35b61007b6100d6565b005b6100856101a5565b60405161009291906102b0565b60405180910390f35b600181815481106100aa575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6040516100e3906101c8565b604051809103905ff0801580156100fc573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff167fb0199510a4d57fac89f9b613861450ae948394f2abe3bf9918eb3c6890243f0060405160405180910390a2600181908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ce806102ca83390190565b5f80fd5b5f819050919050565b6101ea816101d8565b81146101f4575f80fd5b50565b5f81359050610205816101e1565b92915050565b5f602082840312156102205761021f6101d4565b5b5f61022d848285016101f7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61027861027361026e84610236565b610255565b610236565b9050919050565b5f6102898261025e565b9050919050565b5f61029a8261027f565b9050919050565b6102aa81610290565b82525050565b5f6020820190506102c35f8301846102a1565b9291505056fe608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033a2646970667358221220c9c09a08caefd974beccc16baae32ae66423ea9926d141d7ebc4286d930707f964736f6c63430008180033608060405234801561000f575f80fd5b50425f8190555060ac806100225f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806316ada54714602a575b5f80fd5b60306044565b604051603b9190605f565b60405180910390f35b5f5481565b5f819050919050565b6059816049565b82525050565b5f60208201905060705f8301846052565b9291505056fea2646970667358221220b6415182fa59e93ee5ca42e22dda68ca5bff537d5812ffe42ed122aa48e79bee64736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/Storage.json b/ts-tests/build/Storage.json index 14f401f2af..40f4f87f12 100644 --- a/ts-tests/build/Storage.json +++ b/ts-tests/build/Storage.json @@ -40,137 +40,340 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610194806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634ba664e71461003b5780639b0b0fda1461006b575b600080fd5b610055600480360381019061005091906100ae565b610087565b6040516100629190610122565b60405180910390f35b610085600480360381019061008091906100d7565b610092565b005b600081549050919050565b8082555050565b6000813590506100a881610147565b92915050565b6000602082840312156100c057600080fd5b60006100ce84828501610099565b91505092915050565b600080604083850312156100ea57600080fd5b60006100f885828601610099565b925050602061010985828601610099565b9150509250929050565b61011c8161013d565b82525050565b60006020820190506101376000830184610113565b92915050565b6000819050919050565b6101508161013d565b811461015b57600080fd5b5056fea2646970667358221220b4694c5b81670f7d1046e45fd39b5979ce5b2364e47a9dd92a1550c422c816d064736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x194 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BA664E7 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x9B0B0FDA EQ PUSH2 0x6B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xAE JUMP JUMPDEST PUSH2 0x87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x62 SWAP2 SWAP1 PUSH2 0x122 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x85 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0xD7 JUMP JUMPDEST PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8 DUP2 PUSH2 0x147 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCE DUP5 DUP3 DUP6 ADD PUSH2 0x99 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF8 DUP6 DUP3 DUP7 ADD PUSH2 0x99 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x109 DUP6 DUP3 DUP7 ADD PUSH2 0x99 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x11C DUP2 PUSH2 0x13D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x137 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x113 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x150 DUP2 PUSH2 0x13D JUMP JUMPDEST DUP2 EQ PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 PUSH10 0x4C5B81670F7D1046E45F 0xD3 SWAP12 MSIZE PUSH26 0xCE5B2364E47A9DD92A1550C422C816D064736F6C634300080200 CALLER ", + "object": "608060405234801561000f575f80fd5b506101938061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80634ba664e7146100385780639b0b0fda14610068575b5f80fd5b610052600480360381019061004d91906100cc565b610084565b60405161005f9190610106565b60405180910390f35b610082600480360381019061007d919061011f565b61008e565b005b5f81549050919050565b8082555050565b5f80fd5b5f819050919050565b6100ab81610099565b81146100b5575f80fd5b50565b5f813590506100c6816100a2565b92915050565b5f602082840312156100e1576100e0610095565b5b5f6100ee848285016100b8565b91505092915050565b61010081610099565b82525050565b5f6020820190506101195f8301846100f7565b92915050565b5f806040838503121561013557610134610095565b5b5f610142858286016100b8565b9250506020610153858286016100b8565b915050925092905056fea26469706673582212201adb7e3d85f2efa34a40c80cc3fd3356e95210fd9eb1bbf435c53def9332b39164736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BA664E7 EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0x9B0B0FDA EQ PUSH2 0x68 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x52 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D SWAP2 SWAP1 PUSH2 0xCC JUMP JUMPDEST PUSH2 0x84 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F SWAP2 SWAP1 PUSH2 0x106 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7D SWAP2 SWAP1 PUSH2 0x11F JUMP JUMPDEST PUSH2 0x8E JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP2 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAB DUP2 PUSH2 0x99 JUMP JUMPDEST DUP2 EQ PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC6 DUP2 PUSH2 0xA2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE1 JUMPI PUSH2 0xE0 PUSH2 0x95 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEE DUP5 DUP3 DUP6 ADD PUSH2 0xB8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x100 DUP2 PUSH2 0x99 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x119 PUSH0 DUP4 ADD DUP5 PUSH2 0xF7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x135 JUMPI PUSH2 0x134 PUSH2 0x95 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x142 DUP6 DUP3 DUP7 ADD PUSH2 0xB8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x153 DUP6 DUP3 DUP7 ADD PUSH2 0xB8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xDB PUSH31 0x3D85F2EFA34A40C80CC3FD3356E95210FD9EB1BBF435C53DEF9332B3916473 PUSH16 0x6C634300081800330000000000000000 ", "sourceMap": "71:269:15:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@getStorage_1356": { + "entryPoint": 132, + "id": 1356, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@setStorage_1365": { + "entryPoint": 142, + "id": 1365, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_t_bytes32": { + "entryPoint": 184, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 204, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_bytes32": { + "entryPoint": 287, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 247, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 262, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 149, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 162, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:1854:17", "nodeType": "YulBlock", - "src": "0:1393:17", + "src": "0:1854:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "59:87:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "69:29:17", + "src": "57:19:17", "value": { "arguments": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "91:6:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "calldataload", + "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "78:12:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "78:20:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "value", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "69:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ { "expression": { "arguments": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "134:5:17" + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "validator_revert_t_bytes32", + "name": "revert", + "nativeSrc": "187:6:17", "nodeType": "YulIdentifier", - "src": "107:26:17" + "src": "187:6:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulFunctionCall", - "src": "107:33:17" + "src": "187:12:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulExpressionStatement", - "src": "107:33:17" + "src": "187:12:17" } ] }, - "name": "abi_decode_t_bytes32", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:17", + "nodeType": "YulLiteral", + "src": "317:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:17", + "nodeType": "YulIdentifier", + "src": "310:6:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulFunctionCall", + "src": "310:12:17" + }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:32:17", + "nodeType": "YulBlock", + "src": "379:32:17", + "statements": [ + { + "nativeSrc": "389:16:17", + "nodeType": "YulAssignment", + "src": "389:16:17", + "value": { + "name": "value", + "nativeSrc": "400:5:17", + "nodeType": "YulIdentifier", + "src": "400:5:17" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "334:77:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "37:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "361:5:17", "nodeType": "YulTypedName", - "src": "45:3:17", + "src": "361:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "371:7:17", "nodeType": "YulTypedName", - "src": "53:5:17", + "src": "371:7:17", "type": "" } ], - "src": "7:139:17" + "src": "334:77:17" }, { "body": { + "nativeSrc": "460:79:17", "nodeType": "YulBlock", - "src": "218:196:17", + "src": "460:79:17", "statements": [ { "body": { + "nativeSrc": "517:16:17", "nodeType": "YulBlock", - "src": "264:16:17", + "src": "517:16:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "526:1:17", "nodeType": "YulLiteral", - "src": "273:1:17", + "src": "526:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "529:1:17", "nodeType": "YulLiteral", - "src": "276:1:17", + "src": "529:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "519:6:17", "nodeType": "YulIdentifier", - "src": "266:6:17" + "src": "519:6:17" }, + "nativeSrc": "519:12:17", "nodeType": "YulFunctionCall", - "src": "266:12:17" + "src": "519:12:17" }, + "nativeSrc": "519:12:17", "nodeType": "YulExpressionStatement", - "src": "266:12:17" + "src": "519:12:17" } ] }, @@ -179,368 +382,328 @@ { "arguments": [ { - "name": "dataEnd", + "name": "value", + "nativeSrc": "483:5:17", "nodeType": "YulIdentifier", - "src": "239:7:17" + "src": "483:5:17" }, { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "248:9:17" + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:17", + "nodeType": "YulIdentifier", + "src": "508:5:17" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "490:17:17", + "nodeType": "YulIdentifier", + "src": "490:17:17" + }, + "nativeSrc": "490:24:17", + "nodeType": "YulFunctionCall", + "src": "490:24:17" } ], "functionName": { - "name": "sub", + "name": "eq", + "nativeSrc": "480:2:17", "nodeType": "YulIdentifier", - "src": "235:3:17" + "src": "480:2:17" }, + "nativeSrc": "480:35:17", "nodeType": "YulFunctionCall", - "src": "235:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "260:2:17", - "type": "", - "value": "32" + "src": "480:35:17" } ], "functionName": { - "name": "slt", + "name": "iszero", + "nativeSrc": "473:6:17", "nodeType": "YulIdentifier", - "src": "231:3:17" + "src": "473:6:17" }, + "nativeSrc": "473:43:17", "nodeType": "YulFunctionCall", - "src": "231:32:17" + "src": "473:43:17" }, + "nativeSrc": "470:63:17", "nodeType": "YulIf", - "src": "228:2:17" - }, + "src": "470:63:17" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "417:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:17", + "nodeType": "YulTypedName", + "src": "453:5:17", + "type": "" + } + ], + "src": "417:122:17" + }, + { + "body": { + "nativeSrc": "597:87:17", + "nodeType": "YulBlock", + "src": "597:87:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "290:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "305:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "319:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "309:6:17", - "type": "" - } - ] + "nativeSrc": "607:29:17", + "nodeType": "YulAssignment", + "src": "607:29:17", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "629:6:17", + "nodeType": "YulIdentifier", + "src": "629:6:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "616:12:17", + "nodeType": "YulIdentifier", + "src": "616:12:17" }, + "nativeSrc": "616:20:17", + "nodeType": "YulFunctionCall", + "src": "616:20:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "334:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "369:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "380:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "365:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "365:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "389:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "344:20:17" - }, - "nodeType": "YulFunctionCall", - "src": "344:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "334:6:17" - } - ] + "name": "value", + "nativeSrc": "607:5:17", + "nodeType": "YulIdentifier", + "src": "607:5:17" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "672:5:17", + "nodeType": "YulIdentifier", + "src": "672:5:17" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "645:26:17", + "nodeType": "YulIdentifier", + "src": "645:26:17" + }, + "nativeSrc": "645:33:17", + "nodeType": "YulFunctionCall", + "src": "645:33:17" + }, + "nativeSrc": "645:33:17", + "nodeType": "YulExpressionStatement", + "src": "645:33:17" } ] }, - "name": "abi_decode_tuple_t_bytes32", + "name": "abi_decode_t_bytes32", + "nativeSrc": "545:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "offset", + "nativeSrc": "575:6:17", "nodeType": "YulTypedName", - "src": "188:9:17", + "src": "575:6:17", "type": "" }, { - "name": "dataEnd", + "name": "end", + "nativeSrc": "583:3:17", "nodeType": "YulTypedName", - "src": "199:7:17", + "src": "583:3:17", "type": "" } ], "returnVariables": [ { - "name": "value0", + "name": "value", + "nativeSrc": "591:5:17", "nodeType": "YulTypedName", - "src": "211:6:17", + "src": "591:5:17", "type": "" } ], - "src": "152:262:17" + "src": "545:139:17" }, { "body": { + "nativeSrc": "756:263:17", "nodeType": "YulBlock", - "src": "503:324:17", + "src": "756:263:17", "statements": [ { "body": { + "nativeSrc": "802:83:17", "nodeType": "YulBlock", - "src": "549:16:17", + "src": "802:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "558:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "561:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "804:77:17", "nodeType": "YulIdentifier", - "src": "551:6:17" + "src": "804:77:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulFunctionCall", - "src": "551:12:17" + "src": "804:79:17" }, + "nativeSrc": "804:79:17", "nodeType": "YulExpressionStatement", - "src": "551:12:17" + "src": "804:79:17" } ] }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "524:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "533:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "520:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "520:23:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "545:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "516:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "516:32:17" - }, - "nodeType": "YulIf", - "src": "513:2:17" - }, - { - "nodeType": "YulBlock", - "src": "575:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "590:15:17", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "604:1:17", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "594:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "619:63:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "654:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "665:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "650:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "650:22:17" - }, + "condition": { + "arguments": [ + { + "arguments": [ { "name": "dataEnd", + "nativeSrc": "777:7:17", + "nodeType": "YulIdentifier", + "src": "777:7:17" + }, + { + "name": "headStart", + "nativeSrc": "786:9:17", "nodeType": "YulIdentifier", - "src": "674:7:17" + "src": "786:9:17" } ], "functionName": { - "name": "abi_decode_t_bytes32", + "name": "sub", + "nativeSrc": "773:3:17", "nodeType": "YulIdentifier", - "src": "629:20:17" + "src": "773:3:17" }, + "nativeSrc": "773:23:17", "nodeType": "YulFunctionCall", - "src": "629:53:17" + "src": "773:23:17" }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "619:6:17" - } - ] - } - ] + { + "kind": "number", + "nativeSrc": "798:2:17", + "nodeType": "YulLiteral", + "src": "798:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "769:3:17", + "nodeType": "YulIdentifier", + "src": "769:3:17" + }, + "nativeSrc": "769:32:17", + "nodeType": "YulFunctionCall", + "src": "769:32:17" + }, + "nativeSrc": "766:119:17", + "nodeType": "YulIf", + "src": "766:119:17" }, { + "nativeSrc": "895:117:17", "nodeType": "YulBlock", - "src": "702:118:17", + "src": "895:117:17", "statements": [ { + "nativeSrc": "910:15:17", "nodeType": "YulVariableDeclaration", - "src": "717:16:17", + "src": "910:15:17", "value": { "kind": "number", + "nativeSrc": "924:1:17", "nodeType": "YulLiteral", - "src": "731:2:17", + "src": "924:1:17", "type": "", - "value": "32" + "value": "0" }, "variables": [ { "name": "offset", + "nativeSrc": "914:6:17", "nodeType": "YulTypedName", - "src": "721:6:17", + "src": "914:6:17", "type": "" } ] }, { + "nativeSrc": "939:63:17", "nodeType": "YulAssignment", - "src": "747:63:17", + "src": "939:63:17", "value": { "arguments": [ { "arguments": [ { "name": "headStart", + "nativeSrc": "974:9:17", "nodeType": "YulIdentifier", - "src": "782:9:17" + "src": "974:9:17" }, { "name": "offset", + "nativeSrc": "985:6:17", "nodeType": "YulIdentifier", - "src": "793:6:17" + "src": "985:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "970:3:17", "nodeType": "YulIdentifier", - "src": "778:3:17" + "src": "970:3:17" }, + "nativeSrc": "970:22:17", "nodeType": "YulFunctionCall", - "src": "778:22:17" + "src": "970:22:17" }, { "name": "dataEnd", + "nativeSrc": "994:7:17", "nodeType": "YulIdentifier", - "src": "802:7:17" + "src": "994:7:17" } ], "functionName": { "name": "abi_decode_t_bytes32", + "nativeSrc": "949:20:17", "nodeType": "YulIdentifier", - "src": "757:20:17" + "src": "949:20:17" }, + "nativeSrc": "949:53:17", "nodeType": "YulFunctionCall", - "src": "757:53:17" + "src": "949:53:17" }, "variableNames": [ { - "name": "value1", + "name": "value0", + "nativeSrc": "939:6:17", "nodeType": "YulIdentifier", - "src": "747:6:17" + "src": "939:6:17" } ] } @@ -548,135 +711,151 @@ } ] }, - "name": "abi_decode_tuple_t_bytes32t_bytes32", + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "690:329:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "726:9:17", "nodeType": "YulTypedName", - "src": "465:9:17", + "src": "726:9:17", "type": "" }, { "name": "dataEnd", + "nativeSrc": "737:7:17", "nodeType": "YulTypedName", - "src": "476:7:17", + "src": "737:7:17", "type": "" } ], "returnVariables": [ { "name": "value0", + "nativeSrc": "749:6:17", "nodeType": "YulTypedName", - "src": "488:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "496:6:17", + "src": "749:6:17", "type": "" } ], - "src": "420:407:17" + "src": "690:329:17" }, { "body": { + "nativeSrc": "1090:53:17", "nodeType": "YulBlock", - "src": "898:53:17", + "src": "1090:53:17", "statements": [ { "expression": { "arguments": [ { "name": "pos", + "nativeSrc": "1107:3:17", "nodeType": "YulIdentifier", - "src": "915:3:17" + "src": "1107:3:17" }, { "arguments": [ { "name": "value", + "nativeSrc": "1130:5:17", "nodeType": "YulIdentifier", - "src": "938:5:17" + "src": "1130:5:17" } ], "functionName": { "name": "cleanup_t_bytes32", + "nativeSrc": "1112:17:17", "nodeType": "YulIdentifier", - "src": "920:17:17" + "src": "1112:17:17" }, + "nativeSrc": "1112:24:17", "nodeType": "YulFunctionCall", - "src": "920:24:17" + "src": "1112:24:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "1100:6:17", "nodeType": "YulIdentifier", - "src": "908:6:17" + "src": "1100:6:17" }, + "nativeSrc": "1100:37:17", "nodeType": "YulFunctionCall", - "src": "908:37:17" + "src": "1100:37:17" }, + "nativeSrc": "1100:37:17", "nodeType": "YulExpressionStatement", - "src": "908:37:17" + "src": "1100:37:17" } ] }, "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "1025:118:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", + "nativeSrc": "1078:5:17", "nodeType": "YulTypedName", - "src": "886:5:17", + "src": "1078:5:17", "type": "" }, { "name": "pos", + "nativeSrc": "1085:3:17", "nodeType": "YulTypedName", - "src": "893:3:17", + "src": "1085:3:17", "type": "" } ], - "src": "833:118:17" + "src": "1025:118:17" }, { "body": { + "nativeSrc": "1247:124:17", "nodeType": "YulBlock", - "src": "1055:124:17", + "src": "1247:124:17", "statements": [ { + "nativeSrc": "1257:26:17", "nodeType": "YulAssignment", - "src": "1065:26:17", + "src": "1257:26:17", "value": { "arguments": [ { "name": "headStart", + "nativeSrc": "1269:9:17", "nodeType": "YulIdentifier", - "src": "1077:9:17" + "src": "1269:9:17" }, { "kind": "number", + "nativeSrc": "1280:2:17", "nodeType": "YulLiteral", - "src": "1088:2:17", + "src": "1280:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", + "nativeSrc": "1265:3:17", "nodeType": "YulIdentifier", - "src": "1073:3:17" + "src": "1265:3:17" }, + "nativeSrc": "1265:18:17", "nodeType": "YulFunctionCall", - "src": "1073:18:17" + "src": "1265:18:17" }, "variableNames": [ { "name": "tail", + "nativeSrc": "1257:4:17", "nodeType": "YulIdentifier", - "src": "1065:4:17" + "src": "1257:4:17" } ] }, @@ -685,153 +864,112 @@ "arguments": [ { "name": "value0", + "nativeSrc": "1337:6:17", "nodeType": "YulIdentifier", - "src": "1145:6:17" + "src": "1337:6:17" }, { "arguments": [ { "name": "headStart", + "nativeSrc": "1350:9:17", "nodeType": "YulIdentifier", - "src": "1158:9:17" + "src": "1350:9:17" }, { "kind": "number", + "nativeSrc": "1361:1:17", "nodeType": "YulLiteral", - "src": "1169:1:17", + "src": "1361:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "1346:3:17", "nodeType": "YulIdentifier", - "src": "1154:3:17" + "src": "1346:3:17" }, + "nativeSrc": "1346:17:17", "nodeType": "YulFunctionCall", - "src": "1154:17:17" + "src": "1346:17:17" } ], "functionName": { "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "1293:43:17", "nodeType": "YulIdentifier", - "src": "1101:43:17" + "src": "1293:43:17" }, + "nativeSrc": "1293:71:17", "nodeType": "YulFunctionCall", - "src": "1101:71:17" + "src": "1293:71:17" }, + "nativeSrc": "1293:71:17", "nodeType": "YulExpressionStatement", - "src": "1101:71:17" + "src": "1293:71:17" } ] }, "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "1149:222:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", + "nativeSrc": "1219:9:17", "nodeType": "YulTypedName", - "src": "1027:9:17", + "src": "1219:9:17", "type": "" }, { "name": "value0", + "nativeSrc": "1231:6:17", "nodeType": "YulTypedName", - "src": "1039:6:17", + "src": "1231:6:17", "type": "" } ], "returnVariables": [ { "name": "tail", + "nativeSrc": "1242:4:17", "nodeType": "YulTypedName", - "src": "1050:4:17", - "type": "" - } - ], - "src": "957:222:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1230:32:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1240:16:17", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1251:5:17" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "1240:7:17" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1212:5:17", + "src": "1242:4:17", "type": "" } ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "1222:7:17", - "type": "" - } - ], - "src": "1185:77:17" + "src": "1149:222:17" }, { "body": { + "nativeSrc": "1460:391:17", "nodeType": "YulBlock", - "src": "1311:79:17", + "src": "1460:391:17", "statements": [ { "body": { + "nativeSrc": "1506:83:17", "nodeType": "YulBlock", - "src": "1368:16:17", + "src": "1506:83:17", "statements": [ { "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1377:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1380:1:17", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1508:77:17", "nodeType": "YulIdentifier", - "src": "1370:6:17" + "src": "1508:77:17" }, + "nativeSrc": "1508:79:17", "nodeType": "YulFunctionCall", - "src": "1370:12:17" + "src": "1508:79:17" }, + "nativeSrc": "1508:79:17", "nodeType": "YulExpressionStatement", - "src": "1370:12:17" + "src": "1508:79:17" } ] }, @@ -840,64 +978,265 @@ { "arguments": [ { - "name": "value", + "name": "dataEnd", + "nativeSrc": "1481:7:17", "nodeType": "YulIdentifier", - "src": "1334:5:17" + "src": "1481:7:17" }, + { + "name": "headStart", + "nativeSrc": "1490:9:17", + "nodeType": "YulIdentifier", + "src": "1490:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1477:3:17", + "nodeType": "YulIdentifier", + "src": "1477:3:17" + }, + "nativeSrc": "1477:23:17", + "nodeType": "YulFunctionCall", + "src": "1477:23:17" + }, + { + "kind": "number", + "nativeSrc": "1502:2:17", + "nodeType": "YulLiteral", + "src": "1502:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1473:3:17", + "nodeType": "YulIdentifier", + "src": "1473:3:17" + }, + "nativeSrc": "1473:32:17", + "nodeType": "YulFunctionCall", + "src": "1473:32:17" + }, + "nativeSrc": "1470:119:17", + "nodeType": "YulIf", + "src": "1470:119:17" + }, + { + "nativeSrc": "1599:117:17", + "nodeType": "YulBlock", + "src": "1599:117:17", + "statements": [ + { + "nativeSrc": "1614:15:17", + "nodeType": "YulVariableDeclaration", + "src": "1614:15:17", + "value": { + "kind": "number", + "nativeSrc": "1628:1:17", + "nodeType": "YulLiteral", + "src": "1628:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1618:6:17", + "nodeType": "YulTypedName", + "src": "1618:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "1643:63:17", + "nodeType": "YulAssignment", + "src": "1643:63:17", + "value": { + "arguments": [ { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "1678:9:17", + "nodeType": "YulIdentifier", + "src": "1678:9:17" + }, + { + "name": "offset", + "nativeSrc": "1689:6:17", "nodeType": "YulIdentifier", - "src": "1359:5:17" + "src": "1689:6:17" } ], "functionName": { - "name": "cleanup_t_bytes32", + "name": "add", + "nativeSrc": "1674:3:17", "nodeType": "YulIdentifier", - "src": "1341:17:17" + "src": "1674:3:17" }, + "nativeSrc": "1674:22:17", "nodeType": "YulFunctionCall", - "src": "1341:24:17" + "src": "1674:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "1698:7:17", + "nodeType": "YulIdentifier", + "src": "1698:7:17" } ], "functionName": { - "name": "eq", + "name": "abi_decode_t_bytes32", + "nativeSrc": "1653:20:17", "nodeType": "YulIdentifier", - "src": "1331:2:17" + "src": "1653:20:17" }, + "nativeSrc": "1653:53:17", "nodeType": "YulFunctionCall", - "src": "1331:35:17" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1324:6:17" + "src": "1653:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1643:6:17", + "nodeType": "YulIdentifier", + "src": "1643:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "1726:118:17", + "nodeType": "YulBlock", + "src": "1726:118:17", + "statements": [ + { + "nativeSrc": "1741:16:17", + "nodeType": "YulVariableDeclaration", + "src": "1741:16:17", + "value": { + "kind": "number", + "nativeSrc": "1755:2:17", + "nodeType": "YulLiteral", + "src": "1755:2:17", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1745:6:17", + "nodeType": "YulTypedName", + "src": "1745:6:17", + "type": "" + } + ] }, - "nodeType": "YulFunctionCall", - "src": "1324:43:17" - }, - "nodeType": "YulIf", - "src": "1321:2:17" + { + "nativeSrc": "1771:63:17", + "nodeType": "YulAssignment", + "src": "1771:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1806:9:17", + "nodeType": "YulIdentifier", + "src": "1806:9:17" + }, + { + "name": "offset", + "nativeSrc": "1817:6:17", + "nodeType": "YulIdentifier", + "src": "1817:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1802:3:17", + "nodeType": "YulIdentifier", + "src": "1802:3:17" + }, + "nativeSrc": "1802:22:17", + "nodeType": "YulFunctionCall", + "src": "1802:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "1826:7:17", + "nodeType": "YulIdentifier", + "src": "1826:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "1781:20:17", + "nodeType": "YulIdentifier", + "src": "1781:20:17" + }, + "nativeSrc": "1781:53:17", + "nodeType": "YulFunctionCall", + "src": "1781:53:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1771:6:17", + "nodeType": "YulIdentifier", + "src": "1771:6:17" + } + ] + } + ] } ] }, - "name": "validator_revert_t_bytes32", + "name": "abi_decode_tuple_t_bytes32t_bytes32", + "nativeSrc": "1377:474:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "1422:9:17", + "nodeType": "YulTypedName", + "src": "1422:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1433:7:17", + "nodeType": "YulTypedName", + "src": "1433:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1445:6:17", + "nodeType": "YulTypedName", + "src": "1445:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1453:6:17", "nodeType": "YulTypedName", - "src": "1304:5:17", + "src": "1453:6:17", "type": "" } ], - "src": "1268:122:17" + "src": "1377:474:17" } ] }, - "contents": "{\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -905,10 +1244,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80634ba664e71461003b5780639b0b0fda1461006b575b600080fd5b610055600480360381019061005091906100ae565b610087565b6040516100629190610122565b60405180910390f35b610085600480360381019061008091906100d7565b610092565b005b600081549050919050565b8082555050565b6000813590506100a881610147565b92915050565b6000602082840312156100c057600080fd5b60006100ce84828501610099565b91505092915050565b600080604083850312156100ea57600080fd5b60006100f885828601610099565b925050602061010985828601610099565b9150509250929050565b61011c8161013d565b82525050565b60006020820190506101376000830184610113565b92915050565b6000819050919050565b6101508161013d565b811461015b57600080fd5b5056fea2646970667358221220b4694c5b81670f7d1046e45fd39b5979ce5b2364e47a9dd92a1550c422c816d064736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BA664E7 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x9B0B0FDA EQ PUSH2 0x6B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xAE JUMP JUMPDEST PUSH2 0x87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x62 SWAP2 SWAP1 PUSH2 0x122 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x85 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0xD7 JUMP JUMPDEST PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA8 DUP2 PUSH2 0x147 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCE DUP5 DUP3 DUP6 ADD PUSH2 0x99 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF8 DUP6 DUP3 DUP7 ADD PUSH2 0x99 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x109 DUP6 DUP3 DUP7 ADD PUSH2 0x99 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x11C DUP2 PUSH2 0x13D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x137 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x113 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x150 DUP2 PUSH2 0x13D JUMP JUMPDEST DUP2 EQ PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 PUSH10 0x4C5B81670F7D1046E45F 0xD3 SWAP12 MSIZE PUSH26 0xCE5B2364E47A9DD92A1550C422C816D064736F6C634300080200 CALLER ", - "sourceMap": "71:269:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;92:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;224:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;92:129;146:13;205:3;199:10;190:19;;178:39;;;:::o;224:114::-;320:5;315:3;308:18;296:38;;:::o;7:139:17:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:407::-;;;545:2;533:9;524:7;520:23;516:32;513:2;;;561:1;558;551:12;513:2;604:1;629:53;674:7;665:6;654:9;650:22;629:53;:::i;:::-;619:63;;575:117;731:2;757:53;802:7;793:6;782:9;778:22;757:53;:::i;:::-;747:63;;702:118;503:324;;;;;:::o;833:118::-;920:24;938:5;920:24;:::i;:::-;915:3;908:37;898:53;;:::o;957:222::-;;1088:2;1077:9;1073:18;1065:26;;1101:71;1169:1;1158:9;1154:17;1145:6;1101:71;:::i;:::-;1055:124;;;;:::o;1185:77::-;;1251:5;1240:16;;1230:32;;;:::o;1268:122::-;1341:24;1359:5;1341:24;:::i;:::-;1334:5;1331:35;1321:2;;1380:1;1377;1370:12;1321:2;1311:79;:::o" + "object": "608060405234801561000f575f80fd5b5060043610610034575f3560e01c80634ba664e7146100385780639b0b0fda14610068575b5f80fd5b610052600480360381019061004d91906100cc565b610084565b60405161005f9190610106565b60405180910390f35b610082600480360381019061007d919061011f565b61008e565b005b5f81549050919050565b8082555050565b5f80fd5b5f819050919050565b6100ab81610099565b81146100b5575f80fd5b50565b5f813590506100c6816100a2565b92915050565b5f602082840312156100e1576100e0610095565b5b5f6100ee848285016100b8565b91505092915050565b61010081610099565b82525050565b5f6020820190506101195f8301846100f7565b92915050565b5f806040838503121561013557610134610095565b5b5f610142858286016100b8565b9250506020610153858286016100b8565b915050925092905056fea26469706673582212201adb7e3d85f2efa34a40c80cc3fd3356e95210fd9eb1bbf435c53def9332b39164736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4BA664E7 EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0x9B0B0FDA EQ PUSH2 0x68 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x52 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D SWAP2 SWAP1 PUSH2 0xCC JUMP JUMPDEST PUSH2 0x84 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F SWAP2 SWAP1 PUSH2 0x106 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x7D SWAP2 SWAP1 PUSH2 0x11F JUMP JUMPDEST PUSH2 0x8E JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP2 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 SSTORE POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAB DUP2 PUSH2 0x99 JUMP JUMPDEST DUP2 EQ PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC6 DUP2 PUSH2 0xA2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE1 JUMPI PUSH2 0xE0 PUSH2 0x95 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEE DUP5 DUP3 DUP6 ADD PUSH2 0xB8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x100 DUP2 PUSH2 0x99 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x119 PUSH0 DUP4 ADD DUP5 PUSH2 0xF7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x135 JUMPI PUSH2 0x134 PUSH2 0x95 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x142 DUP6 DUP3 DUP7 ADD PUSH2 0xB8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x153 DUP6 DUP3 DUP7 ADD PUSH2 0xB8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xDB PUSH31 0x3D85F2EFA34A40C80CC3FD3356E95210FD9EB1BBF435C53DEF9332B3916473 PUSH16 0x6C634300081800330000000000000000 ", + "sourceMap": "71:269:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;92:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;224:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;92:129;146:13;205:3;199:10;190:19;;92:129;;;:::o;224:114::-;320:5;315:3;308:18;224:114;;:::o;88:117:17:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:474::-;1445:6;1453;1502:2;1490:9;1481:7;1477:23;1473:32;1470:119;;;1508:79;;:::i;:::-;1470:119;1628:1;1653:53;1698:7;1689:6;1678:9;1674:22;1653:53;:::i;:::-;1643:63;;1599:117;1755:2;1781:53;1826:7;1817:6;1806:9;1802:22;1781:53;:::i;:::-;1771:63;;1726:118;1377:474;;;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b50610194806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634ba664e71461003b5780639b0b0fda1461006b575b600080fd5b610055600480360381019061005091906100ae565b610087565b6040516100629190610122565b60405180910390f35b610085600480360381019061008091906100d7565b610092565b005b600081549050919050565b8082555050565b6000813590506100a881610147565b92915050565b6000602082840312156100c057600080fd5b60006100ce84828501610099565b91505092915050565b600080604083850312156100ea57600080fd5b60006100f885828601610099565b925050602061010985828601610099565b9150509250929050565b61011c8161013d565b82525050565b60006020820190506101376000830184610113565b92915050565b6000819050919050565b6101508161013d565b811461015b57600080fd5b5056fea2646970667358221220b4694c5b81670f7d1046e45fd39b5979ce5b2364e47a9dd92a1550c422c816d064736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506101938061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80634ba664e7146100385780639b0b0fda14610068575b5f80fd5b610052600480360381019061004d91906100cc565b610084565b60405161005f9190610106565b60405180910390f35b610082600480360381019061007d919061011f565b61008e565b005b5f81549050919050565b8082555050565b5f80fd5b5f819050919050565b6100ab81610099565b81146100b5575f80fd5b50565b5f813590506100c6816100a2565b92915050565b5f602082840312156100e1576100e0610095565b5b5f6100ee848285016100b8565b91505092915050565b61010081610099565b82525050565b5f6020820190506101195f8301846100f7565b92915050565b5f806040838503121561013557610134610095565b5b5f610142858286016100b8565b9250506020610153858286016100b8565b915050925092905056fea26469706673582212201adb7e3d85f2efa34a40c80cc3fd3356e95210fd9eb1bbf435c53def9332b39164736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/build/TestCalls.json b/ts-tests/build/TestCalls.json index 3c877e2b1b..63880fa285 100644 --- a/ts-tests/build/TestCalls.json +++ b/ts-tests/build/TestCalls.json @@ -73,380 +73,556 @@ ], "evm": { "bytecode": { + "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5061077d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063038c634a14610046578063b4e6936014610062578063c1ccba5a1461007e575b600080fd5b610060600480360381019061005b919061042f565b6100ae565b005b61007c6004803603810190610077919061042f565b6101c2565b005b610098600480360381019061009391906103db565b6102d4565b6040516100a59190610552565b60405180910390f35b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516100d6919061053b565b6000604051808303816000865af19150503d8060008114610113576040519150601f19603f3d011682016040523d82523d6000602084013e610118565b606091505b5091509150600082141561012d573d60208201fd5b8260405160200161013e919061053b565b6040516020818303038152906040528051906020012081604051602001610165919061053b565b60405160208183030381529060405280519060200120146101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610574565b60405180910390fd5b5050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516101ea919061053b565b600060405180830381855af49150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b5091509150600082141561023f573d60208201fd5b82604051602001610250919061053b565b6040516020818303038152906040528051906020012081604051602001610277919061053b565b60405160208183030381529060405280519060200120146102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610574565b60405180910390fd5b5050505050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102fe919061053b565b600060405180830381855afa9150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50915091506000821415610353573d60208201fd5b809250505092915050565b600061037161036c846105b9565b610594565b90508281526020810184848401111561038957600080fd5b610394848285610654565b509392505050565b6000813590506103ab81610730565b92915050565b600082601f8301126103c257600080fd5b81356103d284826020860161035e565b91505092915050565b600080604083850312156103ee57600080fd5b60006103fc8582860161039c565b925050602083013567ffffffffffffffff81111561041957600080fd5b610425858286016103b1565b9150509250929050565b60008060006060848603121561044457600080fd5b60006104528682870161039c565b935050602084013567ffffffffffffffff81111561046f57600080fd5b61047b868287016103b1565b925050604084013567ffffffffffffffff81111561049857600080fd5b6104a4868287016103b1565b9150509250925092565b60006104b9826105ea565b6104c381856105f5565b93506104d3818560208601610663565b6104dc816106f6565b840191505092915050565b60006104f2826105ea565b6104fc8185610606565b935061050c818560208601610663565b80840191505092915050565b6000610525600d83610611565b915061053082610707565b602082019050919050565b600061054782846104e7565b915081905092915050565b6000602082019050818103600083015261056c81846104ae565b905092915050565b6000602082019050818103600083015261058d81610518565b9050919050565b600061059e6105af565b90506105aa8282610696565b919050565b6000604051905090565b600067ffffffffffffffff8211156105d4576105d36106c7565b5b6105dd826106f6565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061062d82610634565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015610681578082015181840152602081019050610666565b83811115610690576000848401525b50505050565b61069f826106f6565b810181811067ffffffffffffffff821117156106be576106bd6106c7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c20726576657274656400000000000000000000000000000000000000600082015250565b61073981610622565b811461074457600080fd5b5056fea2646970667358221220dcf900451b35643863982d1bb376e370669714da69a65daf8cfad55ca519421564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38C634A EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xB4E69360 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC1CCBA5A EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x42F JUMP JUMPDEST PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x42F JUMP JUMPDEST PUSH2 0x1C2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST PUSH2 0x2D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x113 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x118 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x12D JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x165 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B2 SWAP1 PUSH2 0x574 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x23F JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x2CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C4 SWAP1 PUSH2 0x574 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2FE SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x339 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x353 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x371 PUSH2 0x36C DUP5 PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x594 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x394 DUP5 DUP3 DUP6 PUSH2 0x654 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3AB DUP2 PUSH2 0x730 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3D2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x35E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FC DUP6 DUP3 DUP7 ADD PUSH2 0x39C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x425 DUP6 DUP3 DUP7 ADD PUSH2 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x452 DUP7 DUP3 DUP8 ADD PUSH2 0x39C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47B DUP7 DUP3 DUP8 ADD PUSH2 0x3B1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x498 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A4 DUP7 DUP3 DUP8 ADD PUSH2 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9 DUP3 PUSH2 0x5EA JUMP JUMPDEST PUSH2 0x4C3 DUP2 DUP6 PUSH2 0x5F5 JUMP JUMPDEST SWAP4 POP PUSH2 0x4D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x663 JUMP JUMPDEST PUSH2 0x4DC DUP2 PUSH2 0x6F6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F2 DUP3 PUSH2 0x5EA JUMP JUMPDEST PUSH2 0x4FC DUP2 DUP6 PUSH2 0x606 JUMP JUMPDEST SWAP4 POP PUSH2 0x50C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x663 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x525 PUSH1 0xD DUP4 PUSH2 0x611 JUMP JUMPDEST SWAP2 POP PUSH2 0x530 DUP3 PUSH2 0x707 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x547 DUP3 DUP5 PUSH2 0x4E7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x56C DUP2 DUP5 PUSH2 0x4AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x58D DUP2 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59E PUSH2 0x5AF JUMP JUMPDEST SWAP1 POP PUSH2 0x5AA DUP3 DUP3 PUSH2 0x696 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x6C7 JUMP JUMPDEST JUMPDEST PUSH2 0x5DD DUP3 PUSH2 0x6F6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62D DUP3 PUSH2 0x634 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x681 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x666 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x690 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x69F DUP3 PUSH2 0x6F6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x6BE JUMPI PUSH2 0x6BD PUSH2 0x6C7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x63616C6C20726576657274656400000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x739 DUP2 PUSH2 0x622 JUMP JUMPDEST DUP2 EQ PUSH2 0x744 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xF9 STOP GASLIMIT SHL CALLDATALOAD PUSH5 0x3863982D1B 0xB3 PUSH23 0xE370669714DA69A65DAF8CFAD55CA519421564736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "70:1225:16:-:0;;;;;;;;;;;;;;;;;;;" + "object": "608060405234801561000f575f80fd5b506107698061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063038c634a14610043578063b4e693601461005f578063c1ccba5a1461007b575b5f80fd5b61005d600480360381019061005891906104ef565b6100ab565b005b610079600480360381019061007491906104ef565b6101b8565b005b61009560048036038101906100909190610577565b6102c4565b6040516100a2919061064b565b60405180910390f35b5f808473ffffffffffffffffffffffffffffffffffffffff16846040516100d291906106a5565b5f604051808303815f865af19150503d805f811461010b576040519150601f19603f3d011682016040523d82523d5f602084013e610110565b606091505b50915091505f8203610123573d60208201fd5b8260405160200161013491906106a5565b604051602081830303815290604052805190602001208160405160200161015b91906106a5565b60405160208183030381529060405280519060200120146101b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890610715565b60405180910390fd5b5050505050565b5f808473ffffffffffffffffffffffffffffffffffffffff16846040516101df91906106a5565b5f60405180830381855af49150503d805f8114610217576040519150601f19603f3d011682016040523d82523d5f602084013e61021c565b606091505b50915091505f820361022f573d60208201fd5b8260405160200161024091906106a5565b604051602081830303815290604052805190602001208160405160200161026791906106a5565b60405160208183030381529060405280519060200120146102bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610715565b60405180910390fd5b5050505050565b60605f808473ffffffffffffffffffffffffffffffffffffffff16846040516102ed91906106a5565b5f60405180830381855afa9150503d805f8114610325576040519150601f19603f3d011682016040523d82523d5f602084013e61032a565b606091505b50915091505f820361033d573d60208201fd5b809250505092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f80fd5b50565b5f813590506103ad81610389565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610401826103bb565b810181811067ffffffffffffffff821117156104205761041f6103cb565b5b80604052505050565b5f610432610348565b905061043e82826103f8565b919050565b5f67ffffffffffffffff82111561045d5761045c6103cb565b5b610466826103bb565b9050602081019050919050565b828183375f83830152505050565b5f61049361048e84610443565b610429565b9050828152602081018484840111156104af576104ae6103b7565b5b6104ba848285610473565b509392505050565b5f82601f8301126104d6576104d56103b3565b5b81356104e6848260208601610481565b91505092915050565b5f805f6060848603121561050657610505610351565b5b5f6105138682870161039f565b935050602084013567ffffffffffffffff81111561053457610533610355565b5b610540868287016104c2565b925050604084013567ffffffffffffffff81111561056157610560610355565b5b61056d868287016104c2565b9150509250925092565b5f806040838503121561058d5761058c610351565b5b5f61059a8582860161039f565b925050602083013567ffffffffffffffff8111156105bb576105ba610355565b5b6105c7858286016104c2565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156106085780820151818401526020810190506105ed565b5f8484015250505050565b5f61061d826105d1565b61062781856105db565b93506106378185602086016105eb565b610640816103bb565b840191505092915050565b5f6020820190508181035f8301526106638184610613565b905092915050565b5f81905092915050565b5f61067f826105d1565b610689818561066b565b93506106998185602086016105eb565b80840191505092915050565b5f6106b08284610675565b915081905092915050565b5f82825260208201905092915050565b7f63616c6c207265766572746564000000000000000000000000000000000000005f82015250565b5f6106ff600d836106bb565b915061070a826106cb565b602082019050919050565b5f6020820190508181035f83015261072c816106f3565b905091905056fea2646970667358221220548e36f6d223fe3be799dc0a3b703081c59da0108f40af18a6b6ee988c1e0a9664736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x769 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38C634A EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0xB4E69360 EQ PUSH2 0x5F JUMPI DUP1 PUSH4 0xC1CCBA5A EQ PUSH2 0x7B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x4EF JUMP JUMPDEST PUSH2 0xAB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x79 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x4EF JUMP JUMPDEST PUSH2 0x1B8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x577 JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x10B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x110 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH0 DUP3 SUB PUSH2 0x123 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15B SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x1B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8 SWAP1 PUSH2 0x715 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x217 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x21C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH0 DUP3 SUB PUSH2 0x22F JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x267 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x2BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B4 SWAP1 PUSH2 0x715 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x32A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH0 DUP3 SUB PUSH2 0x33D JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x382 DUP3 PUSH2 0x359 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x392 DUP2 PUSH2 0x378 JUMP JUMPDEST DUP2 EQ PUSH2 0x39C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3AD DUP2 PUSH2 0x389 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x401 DUP3 PUSH2 0x3BB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x420 JUMPI PUSH2 0x41F PUSH2 0x3CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x432 PUSH2 0x348 JUMP JUMPDEST SWAP1 POP PUSH2 0x43E DUP3 DUP3 PUSH2 0x3F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x45D JUMPI PUSH2 0x45C PUSH2 0x3CB JUMP JUMPDEST JUMPDEST PUSH2 0x466 DUP3 PUSH2 0x3BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x493 PUSH2 0x48E DUP5 PUSH2 0x443 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4AF JUMPI PUSH2 0x4AE PUSH2 0x3B7 JUMP JUMPDEST JUMPDEST PUSH2 0x4BA DUP5 DUP3 DUP6 PUSH2 0x473 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D6 JUMPI PUSH2 0x4D5 PUSH2 0x3B3 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E6 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x481 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x506 JUMPI PUSH2 0x505 PUSH2 0x351 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x513 DUP7 DUP3 DUP8 ADD PUSH2 0x39F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x534 JUMPI PUSH2 0x533 PUSH2 0x355 JUMP JUMPDEST JUMPDEST PUSH2 0x540 DUP7 DUP3 DUP8 ADD PUSH2 0x4C2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x355 JUMP JUMPDEST JUMPDEST PUSH2 0x56D DUP7 DUP3 DUP8 ADD PUSH2 0x4C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x58D JUMPI PUSH2 0x58C PUSH2 0x351 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x59A DUP6 DUP3 DUP7 ADD PUSH2 0x39F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5BB JUMPI PUSH2 0x5BA PUSH2 0x355 JUMP JUMPDEST JUMPDEST PUSH2 0x5C7 DUP6 DUP3 DUP7 ADD PUSH2 0x4C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x608 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5ED JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x61D DUP3 PUSH2 0x5D1 JUMP JUMPDEST PUSH2 0x627 DUP2 DUP6 PUSH2 0x5DB JUMP JUMPDEST SWAP4 POP PUSH2 0x637 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x640 DUP2 PUSH2 0x3BB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x663 DUP2 DUP5 PUSH2 0x613 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x67F DUP3 PUSH2 0x5D1 JUMP JUMPDEST PUSH2 0x689 DUP2 DUP6 PUSH2 0x66B JUMP JUMPDEST SWAP4 POP PUSH2 0x699 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EB JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x675 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x63616C6C20726576657274656400000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x6FF PUSH1 0xD DUP4 PUSH2 0x6BB JUMP JUMPDEST SWAP2 POP PUSH2 0x70A DUP3 PUSH2 0x6CB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x72C DUP2 PUSH2 0x6F3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD DUP15 CALLDATASIZE 0xF6 0xD2 0x23 INVALID EXTCODESIZE 0xE7 SWAP10 0xDC EXP EXTCODESIZE PUSH17 0x3081C59DA0108F40AF18A6B6EE988C1E0A SWAP7 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "71:1225:16:-:0;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { + "functionDebugData": { + "@test_call_1405": { + "entryPoint": 171, + "id": 1405, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@test_delegate_call_1464": { + "entryPoint": 440, + "id": 1464, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@test_static_call_1427": { + "entryPoint": 708, + "id": 1427, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 1153, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 927, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 1218, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes_memory_ptr": { + "entryPoint": 1399, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 1263, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 1555, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1653, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1779, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 1701, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 1611, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1813, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 1065, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 840, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 1091, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 1489, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 1499, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 1643, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1723, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 888, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 857, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 1139, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 1515, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 1016, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 971, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 947, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 951, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 853, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 849, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 955, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4": { + "entryPoint": 1739, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 905, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, "generatedSources": [ { "ast": { + "nativeSrc": "0:7877:17", "nodeType": "YulBlock", - "src": "0:6946:17", + "src": "0:7877:17", "statements": [ { "body": { + "nativeSrc": "47:35:17", "nodeType": "YulBlock", - "src": "90:260:17", + "src": "47:35:17", "statements": [ { + "nativeSrc": "57:19:17", "nodeType": "YulAssignment", - "src": "100:74:17", + "src": "57:19:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "166:6:17" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "125:40:17" - }, - "nodeType": "YulFunctionCall", - "src": "125:48:17" + "kind": "number", + "nativeSrc": "73:2:17", + "nodeType": "YulLiteral", + "src": "73:2:17", + "type": "", + "value": "64" } ], "functionName": { - "name": "allocate_memory", + "name": "mload", + "nativeSrc": "67:5:17", "nodeType": "YulIdentifier", - "src": "109:15:17" + "src": "67:5:17" }, + "nativeSrc": "67:9:17", "nodeType": "YulFunctionCall", - "src": "109:65:17" + "src": "67:9:17" }, "variableNames": [ { - "name": "array", + "name": "memPtr", + "nativeSrc": "57:6:17", "nodeType": "YulIdentifier", - "src": "100:5:17" + "src": "57:6:17" } ] - }, + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:17", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:17", + "nodeType": "YulTypedName", + "src": "40:6:17", + "type": "" + } + ], + "src": "7:75:17" + }, + { + "body": { + "nativeSrc": "177:28:17", + "nodeType": "YulBlock", + "src": "177:28:17", + "statements": [ { "expression": { "arguments": [ { - "name": "array", - "nodeType": "YulIdentifier", - "src": "190:5:17" + "kind": "number", + "nativeSrc": "194:1:17", + "nodeType": "YulLiteral", + "src": "194:1:17", + "type": "", + "value": "0" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "197:6:17" + "kind": "number", + "nativeSrc": "197:1:17", + "nodeType": "YulLiteral", + "src": "197:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", + "name": "revert", + "nativeSrc": "187:6:17", "nodeType": "YulIdentifier", - "src": "183:6:17" + "src": "187:6:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulFunctionCall", - "src": "183:21:17" + "src": "187:12:17" }, + "nativeSrc": "187:12:17", "nodeType": "YulExpressionStatement", - "src": "183:21:17" - }, + "src": "187:12:17" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:17", + "nodeType": "YulFunctionDefinition", + "src": "88:117:17" + }, + { + "body": { + "nativeSrc": "300:28:17", + "nodeType": "YulBlock", + "src": "300:28:17", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "213:27:17", - "value": { + "expression": { "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "228:5:17" - }, { "kind": "number", + "nativeSrc": "317:1:17", "nodeType": "YulLiteral", - "src": "235:4:17", + "src": "317:1:17", "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "224:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "224:16:17" - }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "217:3:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "278:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "287:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "290:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "280:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "280:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "280:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "259:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "264:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "255:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "255:16:17" + "value": "0" }, { - "name": "end", - "nodeType": "YulIdentifier", - "src": "273:3:17" + "kind": "number", + "nativeSrc": "320:1:17", + "nodeType": "YulLiteral", + "src": "320:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "gt", + "name": "revert", + "nativeSrc": "310:6:17", "nodeType": "YulIdentifier", - "src": "252:2:17" + "src": "310:6:17" }, + "nativeSrc": "310:12:17", "nodeType": "YulFunctionCall", - "src": "252:25:17" + "src": "310:12:17" }, - "nodeType": "YulIf", - "src": "249:2:17" - }, + "nativeSrc": "310:12:17", + "nodeType": "YulExpressionStatement", + "src": "310:12:17" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:17", + "nodeType": "YulFunctionDefinition", + "src": "211:117:17" + }, + { + "body": { + "nativeSrc": "379:81:17", + "nodeType": "YulBlock", + "src": "379:81:17", + "statements": [ { - "expression": { + "nativeSrc": "389:65:17", + "nodeType": "YulAssignment", + "src": "389:65:17", + "value": { "arguments": [ { - "name": "src", - "nodeType": "YulIdentifier", - "src": "327:3:17" - }, - { - "name": "dst", + "name": "value", + "nativeSrc": "404:5:17", "nodeType": "YulIdentifier", - "src": "332:3:17" + "src": "404:5:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "337:6:17" + "kind": "number", + "nativeSrc": "411:42:17", + "nodeType": "YulLiteral", + "src": "411:42:17", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "copy_calldata_to_memory", + "name": "and", + "nativeSrc": "400:3:17", "nodeType": "YulIdentifier", - "src": "303:23:17" + "src": "400:3:17" }, + "nativeSrc": "400:54:17", "nodeType": "YulFunctionCall", - "src": "303:41:17" + "src": "400:54:17" }, - "nodeType": "YulExpressionStatement", - "src": "303:41:17" + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:17", + "nodeType": "YulIdentifier", + "src": "389:7:17" + } + ] } ] }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nodeType": "YulTypedName", - "src": "63:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "68:6:17", - "type": "" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "361:5:17", "nodeType": "YulTypedName", - "src": "76:3:17", + "src": "361:5:17", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "cleaned", + "nativeSrc": "371:7:17", "nodeType": "YulTypedName", - "src": "84:5:17", + "src": "371:7:17", "type": "" } ], - "src": "7:343:17" + "src": "334:126:17" }, { "body": { + "nativeSrc": "511:51:17", "nodeType": "YulBlock", - "src": "408:87:17", + "src": "511:51:17", "statements": [ { + "nativeSrc": "521:35:17", "nodeType": "YulAssignment", - "src": "418:29:17", + "src": "521:35:17", "value": { "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "550:5:17", "nodeType": "YulIdentifier", - "src": "440:6:17" + "src": "550:5:17" } ], "functionName": { - "name": "calldataload", + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:17", "nodeType": "YulIdentifier", - "src": "427:12:17" + "src": "532:17:17" }, + "nativeSrc": "532:24:17", "nodeType": "YulFunctionCall", - "src": "427:20:17" + "src": "532:24:17" }, "variableNames": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "521:7:17", "nodeType": "YulIdentifier", - "src": "418:5:17" + "src": "521:7:17" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "483:5:17" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "456:26:17" - }, - "nodeType": "YulFunctionCall", - "src": "456:33:17" - }, - "nodeType": "YulExpressionStatement", - "src": "456:33:17" } ] }, - "name": "abi_decode_t_address", + "name": "cleanup_t_address", + "nativeSrc": "466:96:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", + "name": "value", + "nativeSrc": "493:5:17", "nodeType": "YulTypedName", - "src": "386:6:17", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "394:3:17", + "src": "493:5:17", "type": "" } ], "returnVariables": [ { - "name": "value", + "name": "cleaned", + "nativeSrc": "503:7:17", "nodeType": "YulTypedName", - "src": "402:5:17", + "src": "503:7:17", "type": "" } ], - "src": "356:139:17" + "src": "466:96:17" }, { "body": { + "nativeSrc": "611:79:17", "nodeType": "YulBlock", - "src": "575:210:17", + "src": "611:79:17", "statements": [ { "body": { + "nativeSrc": "668:16:17", "nodeType": "YulBlock", - "src": "624:16:17", + "src": "668:16:17", "statements": [ { "expression": { "arguments": [ { "kind": "number", + "nativeSrc": "677:1:17", "nodeType": "YulLiteral", - "src": "633:1:17", + "src": "677:1:17", "type": "", "value": "0" }, { "kind": "number", + "nativeSrc": "680:1:17", "nodeType": "YulLiteral", - "src": "636:1:17", + "src": "680:1:17", "type": "", "value": "0" } ], "functionName": { "name": "revert", + "nativeSrc": "670:6:17", "nodeType": "YulIdentifier", - "src": "626:6:17" + "src": "670:6:17" }, + "nativeSrc": "670:12:17", "nodeType": "YulFunctionCall", - "src": "626:12:17" + "src": "670:12:17" }, + "nativeSrc": "670:12:17", "nodeType": "YulExpressionStatement", - "src": "626:12:17" + "src": "670:12:17" } ] }, @@ -454,1286 +630,974 @@ "arguments": [ { "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:17", + "nodeType": "YulIdentifier", + "src": "634:5:17" + }, { "arguments": [ { - "name": "offset", + "name": "value", + "nativeSrc": "659:5:17", "nodeType": "YulIdentifier", - "src": "603:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "611:4:17", - "type": "", - "value": "0x1f" + "src": "659:5:17" } ], "functionName": { - "name": "add", + "name": "cleanup_t_address", + "nativeSrc": "641:17:17", "nodeType": "YulIdentifier", - "src": "599:3:17" + "src": "641:17:17" }, + "nativeSrc": "641:24:17", "nodeType": "YulFunctionCall", - "src": "599:17:17" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "618:3:17" + "src": "641:24:17" } ], "functionName": { - "name": "slt", + "name": "eq", + "nativeSrc": "631:2:17", "nodeType": "YulIdentifier", - "src": "595:3:17" + "src": "631:2:17" }, + "nativeSrc": "631:35:17", "nodeType": "YulFunctionCall", - "src": "595:27:17" + "src": "631:35:17" } ], "functionName": { "name": "iszero", + "nativeSrc": "624:6:17", "nodeType": "YulIdentifier", - "src": "588:6:17" + "src": "624:6:17" }, + "nativeSrc": "624:43:17", "nodeType": "YulFunctionCall", - "src": "588:35:17" + "src": "624:43:17" }, + "nativeSrc": "621:63:17", "nodeType": "YulIf", - "src": "585:2:17" - }, + "src": "621:63:17" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:17", + "nodeType": "YulTypedName", + "src": "604:5:17", + "type": "" + } + ], + "src": "568:122:17" + }, + { + "body": { + "nativeSrc": "748:87:17", + "nodeType": "YulBlock", + "src": "748:87:17", + "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "649:34:17", + "nativeSrc": "758:29:17", + "nodeType": "YulAssignment", + "src": "758:29:17", "value": { "arguments": [ { "name": "offset", + "nativeSrc": "780:6:17", "nodeType": "YulIdentifier", - "src": "676:6:17" + "src": "780:6:17" } ], "functionName": { "name": "calldataload", + "nativeSrc": "767:12:17", "nodeType": "YulIdentifier", - "src": "663:12:17" + "src": "767:12:17" }, + "nativeSrc": "767:20:17", "nodeType": "YulFunctionCall", - "src": "663:20:17" + "src": "767:20:17" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nodeType": "YulTypedName", - "src": "653:6:17", - "type": "" + "name": "value", + "nativeSrc": "758:5:17", + "nodeType": "YulIdentifier", + "src": "758:5:17" } ] }, { - "nodeType": "YulAssignment", - "src": "692:87:17", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "752:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "760:4:17", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "748:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "748:17:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "767:6:17" - }, - { - "name": "end", + "name": "value", + "nativeSrc": "823:5:17", "nodeType": "YulIdentifier", - "src": "775:3:17" + "src": "823:5:17" } ], "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", + "name": "validator_revert_t_address", + "nativeSrc": "796:26:17", "nodeType": "YulIdentifier", - "src": "701:46:17" + "src": "796:26:17" }, + "nativeSrc": "796:33:17", "nodeType": "YulFunctionCall", - "src": "701:78:17" + "src": "796:33:17" }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "692:5:17" - } - ] + "nativeSrc": "796:33:17", + "nodeType": "YulExpressionStatement", + "src": "796:33:17" } ] }, - "name": "abi_decode_t_bytes_memory_ptr", + "name": "abi_decode_t_address", + "nativeSrc": "696:139:17", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", + "nativeSrc": "726:6:17", "nodeType": "YulTypedName", - "src": "553:6:17", + "src": "726:6:17", "type": "" }, { "name": "end", + "nativeSrc": "734:3:17", "nodeType": "YulTypedName", - "src": "561:3:17", + "src": "734:3:17", "type": "" } ], "returnVariables": [ { - "name": "array", + "name": "value", + "nativeSrc": "742:5:17", "nodeType": "YulTypedName", - "src": "569:5:17", + "src": "742:5:17", "type": "" } ], - "src": "514:271:17" + "src": "696:139:17" }, { "body": { + "nativeSrc": "930:28:17", "nodeType": "YulBlock", - "src": "883:426:17", + "src": "930:28:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "929:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "938:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "941:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "931:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "931:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "931:12:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "904:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "913:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "900:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "900:23:17" + "kind": "number", + "nativeSrc": "947:1:17", + "nodeType": "YulLiteral", + "src": "947:1:17", + "type": "", + "value": "0" }, { "kind": "number", + "nativeSrc": "950:1:17", "nodeType": "YulLiteral", - "src": "925:2:17", + "src": "950:1:17", "type": "", - "value": "64" + "value": "0" } ], "functionName": { - "name": "slt", + "name": "revert", + "nativeSrc": "940:6:17", "nodeType": "YulIdentifier", - "src": "896:3:17" + "src": "940:6:17" }, + "nativeSrc": "940:12:17", "nodeType": "YulFunctionCall", - "src": "896:32:17" + "src": "940:12:17" }, - "nodeType": "YulIf", - "src": "893:2:17" - }, + "nativeSrc": "940:12:17", + "nodeType": "YulExpressionStatement", + "src": "940:12:17" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "841:117:17", + "nodeType": "YulFunctionDefinition", + "src": "841:117:17" + }, + { + "body": { + "nativeSrc": "1053:28:17", + "nodeType": "YulBlock", + "src": "1053:28:17", + "statements": [ { - "nodeType": "YulBlock", - "src": "955:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "970:15:17", - "value": { + "expression": { + "arguments": [ + { "kind": "number", + "nativeSrc": "1070:1:17", "nodeType": "YulLiteral", - "src": "984:1:17", + "src": "1070:1:17", "type": "", "value": "0" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "974:6:17", - "type": "" - } - ] + { + "kind": "number", + "nativeSrc": "1073:1:17", + "nodeType": "YulLiteral", + "src": "1073:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1063:6:17", + "nodeType": "YulIdentifier", + "src": "1063:6:17" }, - { - "nodeType": "YulAssignment", - "src": "999:63:17", - "value": { + "nativeSrc": "1063:12:17", + "nodeType": "YulFunctionCall", + "src": "1063:12:17" + }, + "nativeSrc": "1063:12:17", + "nodeType": "YulExpressionStatement", + "src": "1063:12:17" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "964:117:17", + "nodeType": "YulFunctionDefinition", + "src": "964:117:17" + }, + { + "body": { + "nativeSrc": "1135:54:17", + "nodeType": "YulBlock", + "src": "1135:54:17", + "statements": [ + { + "nativeSrc": "1145:38:17", + "nodeType": "YulAssignment", + "src": "1145:38:17", + "value": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1034:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1045:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1030:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1030:22:17" + "name": "value", + "nativeSrc": "1163:5:17", + "nodeType": "YulIdentifier", + "src": "1163:5:17" }, { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1054:7:17" + "kind": "number", + "nativeSrc": "1170:2:17", + "nodeType": "YulLiteral", + "src": "1170:2:17", + "type": "", + "value": "31" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "add", + "nativeSrc": "1159:3:17", "nodeType": "YulIdentifier", - "src": "1009:20:17" + "src": "1159:3:17" }, + "nativeSrc": "1159:14:17", "nodeType": "YulFunctionCall", - "src": "1009:53:17" + "src": "1159:14:17" }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "999:6:17" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1082:220:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1097:46:17", - "value": { + { "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1128:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1139:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1124:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1124:18:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1111:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "1111:32:17" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1101:6:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1190:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1199:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1202:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1192:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1192:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1192:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1162:6:17" - }, { "kind": "number", + "nativeSrc": "1179:2:17", "nodeType": "YulLiteral", - "src": "1170:18:17", + "src": "1179:2:17", "type": "", - "value": "0xffffffffffffffff" + "value": "31" } ], "functionName": { - "name": "gt", + "name": "not", + "nativeSrc": "1175:3:17", "nodeType": "YulIdentifier", - "src": "1159:2:17" + "src": "1175:3:17" }, + "nativeSrc": "1175:7:17", "nodeType": "YulFunctionCall", - "src": "1159:30:17" - }, - "nodeType": "YulIf", - "src": "1156:2:17" + "src": "1175:7:17" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1155:3:17", + "nodeType": "YulIdentifier", + "src": "1155:3:17" }, + "nativeSrc": "1155:28:17", + "nodeType": "YulFunctionCall", + "src": "1155:28:17" + }, + "variableNames": [ { - "nodeType": "YulAssignment", - "src": "1220:72:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1264:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1275:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1260:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1260:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1284:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "1230:29:17" - }, - "nodeType": "YulFunctionCall", - "src": "1230:62:17" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1220:6:17" - } - ] + "name": "result", + "nativeSrc": "1145:6:17", + "nodeType": "YulIdentifier", + "src": "1145:6:17" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr", + "name": "round_up_to_mul_of_32", + "nativeSrc": "1087:102:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "845:9:17", - "type": "" - }, - { - "name": "dataEnd", + "name": "value", + "nativeSrc": "1118:5:17", "nodeType": "YulTypedName", - "src": "856:7:17", + "src": "1118:5:17", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "868:6:17", - "type": "" - }, - { - "name": "value1", + "name": "result", + "nativeSrc": "1128:6:17", "nodeType": "YulTypedName", - "src": "876:6:17", + "src": "1128:6:17", "type": "" } ], - "src": "791:518:17" + "src": "1087:102:17" }, { "body": { + "nativeSrc": "1223:152:17", "nodeType": "YulBlock", - "src": "1433:656:17", + "src": "1223:152:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "1479:16:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1488:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1491:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1481:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1481:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1481:12:17" + "kind": "number", + "nativeSrc": "1240:1:17", + "nodeType": "YulLiteral", + "src": "1240:1:17", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1243:77:17", + "nodeType": "YulLiteral", + "src": "1243:77:17", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } - ] + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1233:6:17", + "nodeType": "YulIdentifier", + "src": "1233:6:17" + }, + "nativeSrc": "1233:88:17", + "nodeType": "YulFunctionCall", + "src": "1233:88:17" }, - "condition": { + "nativeSrc": "1233:88:17", + "nodeType": "YulExpressionStatement", + "src": "1233:88:17" + }, + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1454:7:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1463:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1450:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1450:23:17" + "kind": "number", + "nativeSrc": "1337:1:17", + "nodeType": "YulLiteral", + "src": "1337:1:17", + "type": "", + "value": "4" }, { "kind": "number", + "nativeSrc": "1340:4:17", "nodeType": "YulLiteral", - "src": "1475:2:17", + "src": "1340:4:17", "type": "", - "value": "96" + "value": "0x41" } ], "functionName": { - "name": "slt", + "name": "mstore", + "nativeSrc": "1330:6:17", "nodeType": "YulIdentifier", - "src": "1446:3:17" + "src": "1330:6:17" }, + "nativeSrc": "1330:15:17", "nodeType": "YulFunctionCall", - "src": "1446:32:17" + "src": "1330:15:17" }, - "nodeType": "YulIf", - "src": "1443:2:17" + "nativeSrc": "1330:15:17", + "nodeType": "YulExpressionStatement", + "src": "1330:15:17" }, { - "nodeType": "YulBlock", - "src": "1505:117:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1520:15:17", - "value": { + "expression": { + "arguments": [ + { "kind": "number", + "nativeSrc": "1361:1:17", "nodeType": "YulLiteral", - "src": "1534:1:17", + "src": "1361:1:17", "type": "", "value": "0" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1524:6:17", - "type": "" - } - ] + { + "kind": "number", + "nativeSrc": "1364:4:17", + "nodeType": "YulLiteral", + "src": "1364:4:17", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1354:6:17", + "nodeType": "YulIdentifier", + "src": "1354:6:17" }, - { - "nodeType": "YulAssignment", - "src": "1549:63:17", - "value": { + "nativeSrc": "1354:15:17", + "nodeType": "YulFunctionCall", + "src": "1354:15:17" + }, + "nativeSrc": "1354:15:17", + "nodeType": "YulExpressionStatement", + "src": "1354:15:17" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "1195:180:17", + "nodeType": "YulFunctionDefinition", + "src": "1195:180:17" + }, + { + "body": { + "nativeSrc": "1424:238:17", + "nodeType": "YulBlock", + "src": "1424:238:17", + "statements": [ + { + "nativeSrc": "1434:58:17", + "nodeType": "YulVariableDeclaration", + "src": "1434:58:17", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1456:6:17", + "nodeType": "YulIdentifier", + "src": "1456:6:17" + }, + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1584:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1595:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1580:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1580:22:17" - }, - { - "name": "dataEnd", + "name": "size", + "nativeSrc": "1486:4:17", "nodeType": "YulIdentifier", - "src": "1604:7:17" + "src": "1486:4:17" } ], "functionName": { - "name": "abi_decode_t_address", + "name": "round_up_to_mul_of_32", + "nativeSrc": "1464:21:17", "nodeType": "YulIdentifier", - "src": "1559:20:17" + "src": "1464:21:17" }, + "nativeSrc": "1464:27:17", "nodeType": "YulFunctionCall", - "src": "1559:53:17" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1549:6:17" - } - ] + "src": "1464:27:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1452:3:17", + "nodeType": "YulIdentifier", + "src": "1452:3:17" + }, + "nativeSrc": "1452:40:17", + "nodeType": "YulFunctionCall", + "src": "1452:40:17" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1438:10:17", + "nodeType": "YulTypedName", + "src": "1438:10:17", + "type": "" } ] }, { - "nodeType": "YulBlock", - "src": "1632:220:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1647:46:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1678:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1689:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1674:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1674:18:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1661:12:17" + "body": { + "nativeSrc": "1603:22:17", + "nodeType": "YulBlock", + "src": "1603:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1605:16:17", + "nodeType": "YulIdentifier", + "src": "1605:16:17" + }, + "nativeSrc": "1605:18:17", + "nodeType": "YulFunctionCall", + "src": "1605:18:17" }, - "nodeType": "YulFunctionCall", - "src": "1661:32:17" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1651:6:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1740:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1749:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1752:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1742:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1742:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1742:12:17" - } - ] - }, - "condition": { + "nativeSrc": "1605:18:17", + "nodeType": "YulExpressionStatement", + "src": "1605:18:17" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ { - "name": "offset", + "name": "newFreePtr", + "nativeSrc": "1546:10:17", "nodeType": "YulIdentifier", - "src": "1712:6:17" + "src": "1546:10:17" }, { "kind": "number", + "nativeSrc": "1558:18:17", "nodeType": "YulLiteral", - "src": "1720:18:17", + "src": "1558:18:17", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", + "nativeSrc": "1543:2:17", "nodeType": "YulIdentifier", - "src": "1709:2:17" + "src": "1543:2:17" }, + "nativeSrc": "1543:34:17", "nodeType": "YulFunctionCall", - "src": "1709:30:17" + "src": "1543:34:17" }, - "nodeType": "YulIf", - "src": "1706:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "1770:72:17", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1814:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1825:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1810:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1810:22:17" + "name": "newFreePtr", + "nativeSrc": "1582:10:17", + "nodeType": "YulIdentifier", + "src": "1582:10:17" }, { - "name": "dataEnd", + "name": "memPtr", + "nativeSrc": "1594:6:17", "nodeType": "YulIdentifier", - "src": "1834:7:17" + "src": "1594:6:17" } ], "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", + "name": "lt", + "nativeSrc": "1579:2:17", "nodeType": "YulIdentifier", - "src": "1780:29:17" + "src": "1579:2:17" }, + "nativeSrc": "1579:22:17", "nodeType": "YulFunctionCall", - "src": "1780:62:17" + "src": "1579:22:17" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1540:2:17", + "nodeType": "YulIdentifier", + "src": "1540:2:17" + }, + "nativeSrc": "1540:62:17", + "nodeType": "YulFunctionCall", + "src": "1540:62:17" + }, + "nativeSrc": "1537:88:17", + "nodeType": "YulIf", + "src": "1537:88:17" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1641:2:17", + "nodeType": "YulLiteral", + "src": "1641:2:17", + "type": "", + "value": "64" }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1770:6:17" - } - ] + { + "name": "newFreePtr", + "nativeSrc": "1645:10:17", + "nodeType": "YulIdentifier", + "src": "1645:10:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1634:6:17", + "nodeType": "YulIdentifier", + "src": "1634:6:17" + }, + "nativeSrc": "1634:22:17", + "nodeType": "YulFunctionCall", + "src": "1634:22:17" + }, + "nativeSrc": "1634:22:17", + "nodeType": "YulExpressionStatement", + "src": "1634:22:17" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "1381:281:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "1410:6:17", + "nodeType": "YulTypedName", + "src": "1410:6:17", + "type": "" + }, + { + "name": "size", + "nativeSrc": "1418:4:17", + "nodeType": "YulTypedName", + "src": "1418:4:17", + "type": "" + } + ], + "src": "1381:281:17" + }, + { + "body": { + "nativeSrc": "1709:88:17", + "nodeType": "YulBlock", + "src": "1709:88:17", + "statements": [ + { + "nativeSrc": "1719:30:17", + "nodeType": "YulAssignment", + "src": "1719:30:17", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1729:18:17", + "nodeType": "YulIdentifier", + "src": "1729:18:17" + }, + "nativeSrc": "1729:20:17", + "nodeType": "YulFunctionCall", + "src": "1729:20:17" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1719:6:17", + "nodeType": "YulIdentifier", + "src": "1719:6:17" } ] }, { - "nodeType": "YulBlock", - "src": "1862:220:17", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1877:46:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1908:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1919:2:17", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1904:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "1904:18:17" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1891:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "1891:32:17" + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1778:6:17", + "nodeType": "YulIdentifier", + "src": "1778:6:17" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1881:6:17", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1970:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1979:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1982:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1972:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "1972:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "1972:12:17" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1942:6:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1950:18:17", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1939:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "1939:30:17" - }, - "nodeType": "YulIf", - "src": "1936:2:17" + { + "name": "size", + "nativeSrc": "1786:4:17", + "nodeType": "YulIdentifier", + "src": "1786:4:17" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1758:19:17", + "nodeType": "YulIdentifier", + "src": "1758:19:17" }, - { - "nodeType": "YulAssignment", - "src": "2000:72:17", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2044:9:17" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2055:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2040:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2040:22:17" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2064:7:17" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2010:29:17" - }, - "nodeType": "YulFunctionCall", - "src": "2010:62:17" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "2000:6:17" - } - ] - } - ] + "nativeSrc": "1758:33:17", + "nodeType": "YulFunctionCall", + "src": "1758:33:17" + }, + "nativeSrc": "1758:33:17", + "nodeType": "YulExpressionStatement", + "src": "1758:33:17" } ] }, - "name": "abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes_memory_ptr", + "name": "allocate_memory", + "nativeSrc": "1668:129:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1387:9:17", - "type": "" - }, - { - "name": "dataEnd", + "name": "size", + "nativeSrc": "1693:4:17", "nodeType": "YulTypedName", - "src": "1398:7:17", + "src": "1693:4:17", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1410:6:17", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1418:6:17", - "type": "" - }, - { - "name": "value2", + "name": "memPtr", + "nativeSrc": "1702:6:17", "nodeType": "YulTypedName", - "src": "1426:6:17", + "src": "1702:6:17", "type": "" } ], - "src": "1315:774:17" + "src": "1668:129:17" }, { "body": { + "nativeSrc": "1869:241:17", "nodeType": "YulBlock", - "src": "2185:270:17", + "src": "1869:241:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "2195:52:17", - "value": { + "body": { + "nativeSrc": "1974:22:17", + "nodeType": "YulBlock", + "src": "1974:22:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1976:16:17", + "nodeType": "YulIdentifier", + "src": "1976:16:17" + }, + "nativeSrc": "1976:18:17", + "nodeType": "YulFunctionCall", + "src": "1976:18:17" + }, + "nativeSrc": "1976:18:17", + "nodeType": "YulExpressionStatement", + "src": "1976:18:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value", + "name": "length", + "nativeSrc": "1946:6:17", "nodeType": "YulIdentifier", - "src": "2241:5:17" + "src": "1946:6:17" + }, + { + "kind": "number", + "nativeSrc": "1954:18:17", + "nodeType": "YulLiteral", + "src": "1954:18:17", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "array_length_t_bytes_memory_ptr", + "name": "gt", + "nativeSrc": "1943:2:17", "nodeType": "YulIdentifier", - "src": "2209:31:17" + "src": "1943:2:17" }, + "nativeSrc": "1943:30:17", "nodeType": "YulFunctionCall", - "src": "2209:38:17" + "src": "1943:30:17" }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2199:6:17", - "type": "" - } - ] + "nativeSrc": "1940:56:17", + "nodeType": "YulIf", + "src": "1940:56:17" }, { + "nativeSrc": "2006:37:17", "nodeType": "YulAssignment", - "src": "2256:77:17", + "src": "2006:37:17", "value": { "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2321:3:17" - }, { "name": "length", + "nativeSrc": "2036:6:17", "nodeType": "YulIdentifier", - "src": "2326:6:17" + "src": "2036:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "name": "round_up_to_mul_of_32", + "nativeSrc": "2014:21:17", "nodeType": "YulIdentifier", - "src": "2263:57:17" + "src": "2014:21:17" }, + "nativeSrc": "2014:29:17", "nodeType": "YulFunctionCall", - "src": "2263:70:17" + "src": "2014:29:17" }, "variableNames": [ { - "name": "pos", + "name": "size", + "nativeSrc": "2006:4:17", "nodeType": "YulIdentifier", - "src": "2256:3:17" + "src": "2006:4:17" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2368:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2375:4:17", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2364:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2364:16:17" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2382:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2387:6:17" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "2342:21:17" - }, - "nodeType": "YulFunctionCall", - "src": "2342:52:17" - }, - "nodeType": "YulExpressionStatement", - "src": "2342:52:17" - }, - { + "nativeSrc": "2080:23:17", "nodeType": "YulAssignment", - "src": "2403:46:17", + "src": "2080:23:17", "value": { "arguments": [ { - "name": "pos", + "name": "size", + "nativeSrc": "2092:4:17", "nodeType": "YulIdentifier", - "src": "2414:3:17" + "src": "2092:4:17" }, { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2441:6:17" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "2419:21:17" - }, - "nodeType": "YulFunctionCall", - "src": "2419:29:17" + "kind": "number", + "nativeSrc": "2098:4:17", + "nodeType": "YulLiteral", + "src": "2098:4:17", + "type": "", + "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "2088:3:17", "nodeType": "YulIdentifier", - "src": "2410:3:17" + "src": "2088:3:17" }, + "nativeSrc": "2088:15:17", "nodeType": "YulFunctionCall", - "src": "2410:39:17" + "src": "2088:15:17" }, "variableNames": [ { - "name": "end", + "name": "size", + "nativeSrc": "2080:4:17", "nodeType": "YulIdentifier", - "src": "2403:3:17" + "src": "2080:4:17" } ] } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "1803:307:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "2166:5:17", - "type": "" - }, - { - "name": "pos", + "name": "length", + "nativeSrc": "1853:6:17", "nodeType": "YulTypedName", - "src": "2173:3:17", + "src": "1853:6:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "size", + "nativeSrc": "1864:4:17", "nodeType": "YulTypedName", - "src": "2181:3:17", + "src": "1864:4:17", "type": "" } ], - "src": "2095:360:17" + "src": "1803:307:17" }, { "body": { + "nativeSrc": "2180:82:17", "nodeType": "YulBlock", - "src": "2569:265:17", + "src": "2180:82:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "2579:52:17", - "value": { + "expression": { "arguments": [ { - "name": "value", + "name": "dst", + "nativeSrc": "2203:3:17", "nodeType": "YulIdentifier", - "src": "2625:5:17" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2593:31:17" - }, - "nodeType": "YulFunctionCall", - "src": "2593:38:17" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2583:6:17", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2640:95:17", - "value": { - "arguments": [ + "src": "2203:3:17" + }, { - "name": "pos", + "name": "src", + "nativeSrc": "2208:3:17", "nodeType": "YulIdentifier", - "src": "2723:3:17" + "src": "2208:3:17" }, { "name": "length", + "nativeSrc": "2213:6:17", "nodeType": "YulIdentifier", - "src": "2728:6:17" + "src": "2213:6:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "calldatacopy", + "nativeSrc": "2190:12:17", "nodeType": "YulIdentifier", - "src": "2647:75:17" + "src": "2190:12:17" }, + "nativeSrc": "2190:30:17", "nodeType": "YulFunctionCall", - "src": "2647:88:17" + "src": "2190:30:17" }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2640:3:17" - } - ] + "nativeSrc": "2190:30:17", + "nodeType": "YulExpressionStatement", + "src": "2190:30:17" }, { "expression": { @@ -1741,144 +1605,129 @@ { "arguments": [ { - "name": "value", + "name": "dst", + "nativeSrc": "2240:3:17", "nodeType": "YulIdentifier", - "src": "2770:5:17" + "src": "2240:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2777:4:17", - "type": "", - "value": "0x20" + "name": "length", + "nativeSrc": "2245:6:17", + "nodeType": "YulIdentifier", + "src": "2245:6:17" } ], "functionName": { "name": "add", + "nativeSrc": "2236:3:17", "nodeType": "YulIdentifier", - "src": "2766:3:17" + "src": "2236:3:17" }, + "nativeSrc": "2236:16:17", "nodeType": "YulFunctionCall", - "src": "2766:16:17" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2784:3:17" + "src": "2236:16:17" }, { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2789:6:17" + "kind": "number", + "nativeSrc": "2254:1:17", + "nodeType": "YulLiteral", + "src": "2254:1:17", + "type": "", + "value": "0" } ], "functionName": { - "name": "copy_memory_to_memory", + "name": "mstore", + "nativeSrc": "2229:6:17", "nodeType": "YulIdentifier", - "src": "2744:21:17" + "src": "2229:6:17" }, + "nativeSrc": "2229:27:17", "nodeType": "YulFunctionCall", - "src": "2744:52:17" + "src": "2229:27:17" }, + "nativeSrc": "2229:27:17", "nodeType": "YulExpressionStatement", - "src": "2744:52:17" - }, - { - "nodeType": "YulAssignment", - "src": "2805:23:17", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2816:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2821:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2812:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "2812:16:17" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2805:3:17" - } - ] + "src": "2229:27:17" } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "2116:146:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "src", + "nativeSrc": "2162:3:17", "nodeType": "YulTypedName", - "src": "2550:5:17", + "src": "2162:3:17", "type": "" }, { - "name": "pos", + "name": "dst", + "nativeSrc": "2167:3:17", "nodeType": "YulTypedName", - "src": "2557:3:17", + "src": "2167:3:17", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "end", + "name": "length", + "nativeSrc": "2172:6:17", "nodeType": "YulTypedName", - "src": "2565:3:17", + "src": "2172:6:17", "type": "" } ], - "src": "2461:373:17" + "src": "2116:146:17" }, { "body": { + "nativeSrc": "2351:340:17", "nodeType": "YulBlock", - "src": "2986:220:17", + "src": "2351:340:17", "statements": [ { + "nativeSrc": "2361:74:17", "nodeType": "YulAssignment", - "src": "2996:74:17", + "src": "2361:74:17", "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3062:3:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3067:2:17", - "type": "", - "value": "13" + "arguments": [ + { + "name": "length", + "nativeSrc": "2427:6:17", + "nodeType": "YulIdentifier", + "src": "2427:6:17" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "2386:40:17", + "nodeType": "YulIdentifier", + "src": "2386:40:17" + }, + "nativeSrc": "2386:48:17", + "nodeType": "YulFunctionCall", + "src": "2386:48:17" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "allocate_memory", + "nativeSrc": "2370:15:17", "nodeType": "YulIdentifier", - "src": "3003:58:17" + "src": "2370:15:17" }, + "nativeSrc": "2370:65:17", "nodeType": "YulFunctionCall", - "src": "3003:67:17" + "src": "2370:65:17" }, "variableNames": [ { - "name": "pos", + "name": "array", + "nativeSrc": "2361:5:17", "nodeType": "YulIdentifier", - "src": "2996:3:17" + "src": "2361:5:17" } ] }, @@ -1886,2025 +1735,3091 @@ "expression": { "arguments": [ { - "name": "pos", + "name": "array", + "nativeSrc": "2451:5:17", + "nodeType": "YulIdentifier", + "src": "2451:5:17" + }, + { + "name": "length", + "nativeSrc": "2458:6:17", "nodeType": "YulIdentifier", - "src": "3168:3:17" + "src": "2458:6:17" } ], "functionName": { - "name": "store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4", + "name": "mstore", + "nativeSrc": "2444:6:17", "nodeType": "YulIdentifier", - "src": "3079:88:17" + "src": "2444:6:17" }, + "nativeSrc": "2444:21:17", "nodeType": "YulFunctionCall", - "src": "3079:93:17" + "src": "2444:21:17" }, + "nativeSrc": "2444:21:17", "nodeType": "YulExpressionStatement", - "src": "3079:93:17" + "src": "2444:21:17" }, { - "nodeType": "YulAssignment", - "src": "3181:19:17", + "nativeSrc": "2474:27:17", + "nodeType": "YulVariableDeclaration", + "src": "2474:27:17", "value": { "arguments": [ { - "name": "pos", + "name": "array", + "nativeSrc": "2489:5:17", "nodeType": "YulIdentifier", - "src": "3192:3:17" + "src": "2489:5:17" }, { "kind": "number", + "nativeSrc": "2496:4:17", "nodeType": "YulLiteral", - "src": "3197:2:17", + "src": "2496:4:17", "type": "", - "value": "32" + "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "2485:3:17", "nodeType": "YulIdentifier", - "src": "3188:3:17" + "src": "2485:3:17" }, + "nativeSrc": "2485:16:17", "nodeType": "YulFunctionCall", - "src": "3188:12:17" + "src": "2485:16:17" }, - "variableNames": [ + "variables": [ { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3181:3:17" + "name": "dst", + "nativeSrc": "2478:3:17", + "nodeType": "YulTypedName", + "src": "2478:3:17", + "type": "" } ] - } - ] - }, - "name": "abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2974:3:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2982:3:17", - "type": "" - } - ], - "src": "2840:366:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3346:137:17", - "statements": [ + }, { - "nodeType": "YulAssignment", - "src": "3357:100:17", - "value": { + "body": { + "nativeSrc": "2539:83:17", + "nodeType": "YulBlock", + "src": "2539:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2541:77:17", + "nodeType": "YulIdentifier", + "src": "2541:77:17" + }, + "nativeSrc": "2541:79:17", + "nodeType": "YulFunctionCall", + "src": "2541:79:17" + }, + "nativeSrc": "2541:79:17", + "nodeType": "YulExpressionStatement", + "src": "2541:79:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3444:6:17" + "arguments": [ + { + "name": "src", + "nativeSrc": "2520:3:17", + "nodeType": "YulIdentifier", + "src": "2520:3:17" + }, + { + "name": "length", + "nativeSrc": "2525:6:17", + "nodeType": "YulIdentifier", + "src": "2525:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2516:3:17", + "nodeType": "YulIdentifier", + "src": "2516:3:17" + }, + "nativeSrc": "2516:16:17", + "nodeType": "YulFunctionCall", + "src": "2516:16:17" }, { - "name": "pos", + "name": "end", + "nativeSrc": "2534:3:17", "nodeType": "YulIdentifier", - "src": "3453:3:17" + "src": "2534:3:17" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "name": "gt", + "nativeSrc": "2513:2:17", "nodeType": "YulIdentifier", - "src": "3364:79:17" + "src": "2513:2:17" }, + "nativeSrc": "2513:25:17", "nodeType": "YulFunctionCall", - "src": "3364:93:17" + "src": "2513:25:17" }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3357:3:17" - } - ] + "nativeSrc": "2510:112:17", + "nodeType": "YulIf", + "src": "2510:112:17" }, { - "nodeType": "YulAssignment", - "src": "3467:10:17", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3474:3:17" - }, - "variableNames": [ - { - "name": "end", + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2668:3:17", + "nodeType": "YulIdentifier", + "src": "2668:3:17" + }, + { + "name": "dst", + "nativeSrc": "2673:3:17", + "nodeType": "YulIdentifier", + "src": "2673:3:17" + }, + { + "name": "length", + "nativeSrc": "2678:6:17", + "nodeType": "YulIdentifier", + "src": "2678:6:17" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "2631:36:17", "nodeType": "YulIdentifier", - "src": "3467:3:17" - } - ] + "src": "2631:36:17" + }, + "nativeSrc": "2631:54:17", + "nodeType": "YulFunctionCall", + "src": "2631:54:17" + }, + "nativeSrc": "2631:54:17", + "nodeType": "YulExpressionStatement", + "src": "2631:54:17" } ] }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "2268:423:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "src", + "nativeSrc": "2324:3:17", "nodeType": "YulTypedName", - "src": "3325:3:17", + "src": "2324:3:17", "type": "" }, { - "name": "value0", + "name": "length", + "nativeSrc": "2329:6:17", + "nodeType": "YulTypedName", + "src": "2329:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2337:3:17", "nodeType": "YulTypedName", - "src": "3331:6:17", + "src": "2337:3:17", "type": "" } ], "returnVariables": [ { - "name": "end", + "name": "array", + "nativeSrc": "2345:5:17", "nodeType": "YulTypedName", - "src": "3342:3:17", + "src": "2345:5:17", "type": "" } ], - "src": "3212:271:17" + "src": "2268:423:17" }, { "body": { + "nativeSrc": "2771:277:17", "nodeType": "YulBlock", - "src": "3605:193:17", + "src": "2771:277:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "3615:26:17", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3627:9:17" - }, + "body": { + "nativeSrc": "2820:83:17", + "nodeType": "YulBlock", + "src": "2820:83:17", + "statements": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3638:2:17", - "type": "", - "value": "32" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2822:77:17", + "nodeType": "YulIdentifier", + "src": "2822:77:17" + }, + "nativeSrc": "2822:79:17", + "nodeType": "YulFunctionCall", + "src": "2822:79:17" + }, + "nativeSrc": "2822:79:17", + "nodeType": "YulExpressionStatement", + "src": "2822:79:17" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3623:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3623:18:17" + ] }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3615:4:17" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3662:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3673:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3658:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3658:17:17" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3681:4:17" + "arguments": [ + { + "name": "offset", + "nativeSrc": "2799:6:17", + "nodeType": "YulIdentifier", + "src": "2799:6:17" + }, + { + "kind": "number", + "nativeSrc": "2807:4:17", + "nodeType": "YulLiteral", + "src": "2807:4:17", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2795:3:17", + "nodeType": "YulIdentifier", + "src": "2795:3:17" + }, + "nativeSrc": "2795:17:17", + "nodeType": "YulFunctionCall", + "src": "2795:17:17" }, { - "name": "headStart", + "name": "end", + "nativeSrc": "2814:3:17", "nodeType": "YulIdentifier", - "src": "3687:9:17" + "src": "2814:3:17" } ], "functionName": { - "name": "sub", + "name": "slt", + "nativeSrc": "2791:3:17", "nodeType": "YulIdentifier", - "src": "3677:3:17" + "src": "2791:3:17" }, + "nativeSrc": "2791:27:17", "nodeType": "YulFunctionCall", - "src": "3677:20:17" + "src": "2791:27:17" } ], "functionName": { - "name": "mstore", + "name": "iszero", + "nativeSrc": "2784:6:17", "nodeType": "YulIdentifier", - "src": "3651:6:17" + "src": "2784:6:17" }, + "nativeSrc": "2784:35:17", "nodeType": "YulFunctionCall", - "src": "3651:47:17" + "src": "2784:35:17" }, - "nodeType": "YulExpressionStatement", - "src": "3651:47:17" + "nativeSrc": "2781:122:17", + "nodeType": "YulIf", + "src": "2781:122:17" }, { - "nodeType": "YulAssignment", - "src": "3707:84:17", + "nativeSrc": "2912:34:17", + "nodeType": "YulVariableDeclaration", + "src": "2912:34:17", "value": { "arguments": [ { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3777:6:17" - }, - { - "name": "tail", + "name": "offset", + "nativeSrc": "2939:6:17", "nodeType": "YulIdentifier", - "src": "3786:4:17" + "src": "2939:6:17" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "name": "calldataload", + "nativeSrc": "2926:12:17", "nodeType": "YulIdentifier", - "src": "3715:61:17" + "src": "2926:12:17" }, + "nativeSrc": "2926:20:17", "nodeType": "YulFunctionCall", - "src": "3715:76:17" + "src": "2926:20:17" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3707:4:17" + "name": "length", + "nativeSrc": "2916:6:17", + "nodeType": "YulTypedName", + "src": "2916:6:17", + "type": "" } ] - } - ] - }, - "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3577:9:17", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3589:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3600:4:17", - "type": "" - } - ], - "src": "3489:309:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3975:248:17", - "statements": [ + }, { + "nativeSrc": "2955:87:17", "nodeType": "YulAssignment", - "src": "3985:26:17", + "src": "2955:87:17", "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3997:9:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4008:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3993:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "3993:18:17" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3985:4:17" - } - ] - }, - { - "expression": { "arguments": [ { "arguments": [ { - "name": "headStart", + "name": "offset", + "nativeSrc": "3015:6:17", "nodeType": "YulIdentifier", - "src": "4032:9:17" + "src": "3015:6:17" }, { "kind": "number", + "nativeSrc": "3023:4:17", "nodeType": "YulLiteral", - "src": "4043:1:17", + "src": "3023:4:17", "type": "", - "value": "0" + "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "3011:3:17", "nodeType": "YulIdentifier", - "src": "4028:3:17" + "src": "3011:3:17" }, + "nativeSrc": "3011:17:17", "nodeType": "YulFunctionCall", - "src": "4028:17:17" + "src": "3011:17:17" }, { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4051:4:17" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4057:9:17" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "4047:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "4047:20:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "4021:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "4021:47:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4021:47:17" - }, - { - "nodeType": "YulAssignment", - "src": "4077:139:17", - "value": { - "arguments": [ + "name": "length", + "nativeSrc": "3030:6:17", + "nodeType": "YulIdentifier", + "src": "3030:6:17" + }, { - "name": "tail", + "name": "end", + "nativeSrc": "3038:3:17", "nodeType": "YulIdentifier", - "src": "4211:4:17" + "src": "3038:3:17" } ], "functionName": { - "name": "abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "2964:46:17", "nodeType": "YulIdentifier", - "src": "4085:124:17" + "src": "2964:46:17" }, + "nativeSrc": "2964:78:17", "nodeType": "YulFunctionCall", - "src": "4085:131:17" + "src": "2964:78:17" }, "variableNames": [ { - "name": "tail", + "name": "array", + "nativeSrc": "2955:5:17", "nodeType": "YulIdentifier", - "src": "4077:4:17" + "src": "2955:5:17" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "2710:338:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "offset", + "nativeSrc": "2749:6:17", + "nodeType": "YulTypedName", + "src": "2749:6:17", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2757:3:17", "nodeType": "YulTypedName", - "src": "3955:9:17", + "src": "2757:3:17", "type": "" } ], "returnVariables": [ { - "name": "tail", + "name": "array", + "nativeSrc": "2765:5:17", "nodeType": "YulTypedName", - "src": "3970:4:17", + "src": "2765:5:17", "type": "" } ], - "src": "3804:419:17" + "src": "2710:338:17" }, { "body": { + "nativeSrc": "3172:857:17", "nodeType": "YulBlock", - "src": "4270:88:17", + "src": "3172:857:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4280:30:17", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nodeType": "YulIdentifier", - "src": "4290:18:17" - }, - "nodeType": "YulFunctionCall", - "src": "4290:20:17" + "body": { + "nativeSrc": "3218:83:17", + "nodeType": "YulBlock", + "src": "3218:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3220:77:17", + "nodeType": "YulIdentifier", + "src": "3220:77:17" + }, + "nativeSrc": "3220:79:17", + "nodeType": "YulFunctionCall", + "src": "3220:79:17" + }, + "nativeSrc": "3220:79:17", + "nodeType": "YulExpressionStatement", + "src": "3220:79:17" + } + ] }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4280:6:17" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "4339:6:17" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3193:7:17", + "nodeType": "YulIdentifier", + "src": "3193:7:17" + }, + { + "name": "headStart", + "nativeSrc": "3202:9:17", + "nodeType": "YulIdentifier", + "src": "3202:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3189:3:17", + "nodeType": "YulIdentifier", + "src": "3189:3:17" + }, + "nativeSrc": "3189:23:17", + "nodeType": "YulFunctionCall", + "src": "3189:23:17" }, { - "name": "size", - "nodeType": "YulIdentifier", - "src": "4347:4:17" + "kind": "number", + "nativeSrc": "3214:2:17", + "nodeType": "YulLiteral", + "src": "3214:2:17", + "type": "", + "value": "96" } ], "functionName": { - "name": "finalize_allocation", + "name": "slt", + "nativeSrc": "3185:3:17", "nodeType": "YulIdentifier", - "src": "4319:19:17" + "src": "3185:3:17" }, + "nativeSrc": "3185:32:17", "nodeType": "YulFunctionCall", - "src": "4319:33:17" + "src": "3185:32:17" }, - "nodeType": "YulExpressionStatement", - "src": "4319:33:17" + "nativeSrc": "3182:119:17", + "nodeType": "YulIf", + "src": "3182:119:17" + }, + { + "nativeSrc": "3311:117:17", + "nodeType": "YulBlock", + "src": "3311:117:17", + "statements": [ + { + "nativeSrc": "3326:15:17", + "nodeType": "YulVariableDeclaration", + "src": "3326:15:17", + "value": { + "kind": "number", + "nativeSrc": "3340:1:17", + "nodeType": "YulLiteral", + "src": "3340:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3330:6:17", + "nodeType": "YulTypedName", + "src": "3330:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "3355:63:17", + "nodeType": "YulAssignment", + "src": "3355:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3390:9:17", + "nodeType": "YulIdentifier", + "src": "3390:9:17" + }, + { + "name": "offset", + "nativeSrc": "3401:6:17", + "nodeType": "YulIdentifier", + "src": "3401:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3386:3:17", + "nodeType": "YulIdentifier", + "src": "3386:3:17" + }, + "nativeSrc": "3386:22:17", + "nodeType": "YulFunctionCall", + "src": "3386:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "3410:7:17", + "nodeType": "YulIdentifier", + "src": "3410:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "3365:20:17", + "nodeType": "YulIdentifier", + "src": "3365:20:17" + }, + "nativeSrc": "3365:53:17", + "nodeType": "YulFunctionCall", + "src": "3365:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3355:6:17", + "nodeType": "YulIdentifier", + "src": "3355:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "3438:287:17", + "nodeType": "YulBlock", + "src": "3438:287:17", + "statements": [ + { + "nativeSrc": "3453:46:17", + "nodeType": "YulVariableDeclaration", + "src": "3453:46:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3484:9:17", + "nodeType": "YulIdentifier", + "src": "3484:9:17" + }, + { + "kind": "number", + "nativeSrc": "3495:2:17", + "nodeType": "YulLiteral", + "src": "3495:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3480:3:17", + "nodeType": "YulIdentifier", + "src": "3480:3:17" + }, + "nativeSrc": "3480:18:17", + "nodeType": "YulFunctionCall", + "src": "3480:18:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3467:12:17", + "nodeType": "YulIdentifier", + "src": "3467:12:17" + }, + "nativeSrc": "3467:32:17", + "nodeType": "YulFunctionCall", + "src": "3467:32:17" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3457:6:17", + "nodeType": "YulTypedName", + "src": "3457:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3546:83:17", + "nodeType": "YulBlock", + "src": "3546:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3548:77:17", + "nodeType": "YulIdentifier", + "src": "3548:77:17" + }, + "nativeSrc": "3548:79:17", + "nodeType": "YulFunctionCall", + "src": "3548:79:17" + }, + "nativeSrc": "3548:79:17", + "nodeType": "YulExpressionStatement", + "src": "3548:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3518:6:17", + "nodeType": "YulIdentifier", + "src": "3518:6:17" + }, + { + "kind": "number", + "nativeSrc": "3526:18:17", + "nodeType": "YulLiteral", + "src": "3526:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3515:2:17", + "nodeType": "YulIdentifier", + "src": "3515:2:17" + }, + "nativeSrc": "3515:30:17", + "nodeType": "YulFunctionCall", + "src": "3515:30:17" + }, + "nativeSrc": "3512:117:17", + "nodeType": "YulIf", + "src": "3512:117:17" + }, + { + "nativeSrc": "3643:72:17", + "nodeType": "YulAssignment", + "src": "3643:72:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3687:9:17", + "nodeType": "YulIdentifier", + "src": "3687:9:17" + }, + { + "name": "offset", + "nativeSrc": "3698:6:17", + "nodeType": "YulIdentifier", + "src": "3698:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3683:3:17", + "nodeType": "YulIdentifier", + "src": "3683:3:17" + }, + "nativeSrc": "3683:22:17", + "nodeType": "YulFunctionCall", + "src": "3683:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "3707:7:17", + "nodeType": "YulIdentifier", + "src": "3707:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "3653:29:17", + "nodeType": "YulIdentifier", + "src": "3653:29:17" + }, + "nativeSrc": "3653:62:17", + "nodeType": "YulFunctionCall", + "src": "3653:62:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3643:6:17", + "nodeType": "YulIdentifier", + "src": "3643:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "3735:287:17", + "nodeType": "YulBlock", + "src": "3735:287:17", + "statements": [ + { + "nativeSrc": "3750:46:17", + "nodeType": "YulVariableDeclaration", + "src": "3750:46:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3781:9:17", + "nodeType": "YulIdentifier", + "src": "3781:9:17" + }, + { + "kind": "number", + "nativeSrc": "3792:2:17", + "nodeType": "YulLiteral", + "src": "3792:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3777:3:17", + "nodeType": "YulIdentifier", + "src": "3777:3:17" + }, + "nativeSrc": "3777:18:17", + "nodeType": "YulFunctionCall", + "src": "3777:18:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3764:12:17", + "nodeType": "YulIdentifier", + "src": "3764:12:17" + }, + "nativeSrc": "3764:32:17", + "nodeType": "YulFunctionCall", + "src": "3764:32:17" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3754:6:17", + "nodeType": "YulTypedName", + "src": "3754:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3843:83:17", + "nodeType": "YulBlock", + "src": "3843:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3845:77:17", + "nodeType": "YulIdentifier", + "src": "3845:77:17" + }, + "nativeSrc": "3845:79:17", + "nodeType": "YulFunctionCall", + "src": "3845:79:17" + }, + "nativeSrc": "3845:79:17", + "nodeType": "YulExpressionStatement", + "src": "3845:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3815:6:17", + "nodeType": "YulIdentifier", + "src": "3815:6:17" + }, + { + "kind": "number", + "nativeSrc": "3823:18:17", + "nodeType": "YulLiteral", + "src": "3823:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3812:2:17", + "nodeType": "YulIdentifier", + "src": "3812:2:17" + }, + "nativeSrc": "3812:30:17", + "nodeType": "YulFunctionCall", + "src": "3812:30:17" + }, + "nativeSrc": "3809:117:17", + "nodeType": "YulIf", + "src": "3809:117:17" + }, + { + "nativeSrc": "3940:72:17", + "nodeType": "YulAssignment", + "src": "3940:72:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3984:9:17", + "nodeType": "YulIdentifier", + "src": "3984:9:17" + }, + { + "name": "offset", + "nativeSrc": "3995:6:17", + "nodeType": "YulIdentifier", + "src": "3995:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3980:3:17", + "nodeType": "YulIdentifier", + "src": "3980:3:17" + }, + "nativeSrc": "3980:22:17", + "nodeType": "YulFunctionCall", + "src": "3980:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4004:7:17", + "nodeType": "YulIdentifier", + "src": "4004:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "3950:29:17", + "nodeType": "YulIdentifier", + "src": "3950:29:17" + }, + "nativeSrc": "3950:62:17", + "nodeType": "YulFunctionCall", + "src": "3950:62:17" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "3940:6:17", + "nodeType": "YulIdentifier", + "src": "3940:6:17" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "3054:975:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3126:9:17", + "nodeType": "YulTypedName", + "src": "3126:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3137:7:17", + "nodeType": "YulTypedName", + "src": "3137:7:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3149:6:17", + "nodeType": "YulTypedName", + "src": "3149:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3157:6:17", + "nodeType": "YulTypedName", + "src": "3157:6:17", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3165:6:17", + "nodeType": "YulTypedName", + "src": "3165:6:17", + "type": "" + } + ], + "src": "3054:975:17" + }, + { + "body": { + "nativeSrc": "4127:560:17", + "nodeType": "YulBlock", + "src": "4127:560:17", + "statements": [ + { + "body": { + "nativeSrc": "4173:83:17", + "nodeType": "YulBlock", + "src": "4173:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4175:77:17", + "nodeType": "YulIdentifier", + "src": "4175:77:17" + }, + "nativeSrc": "4175:79:17", + "nodeType": "YulFunctionCall", + "src": "4175:79:17" + }, + "nativeSrc": "4175:79:17", + "nodeType": "YulExpressionStatement", + "src": "4175:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4148:7:17", + "nodeType": "YulIdentifier", + "src": "4148:7:17" + }, + { + "name": "headStart", + "nativeSrc": "4157:9:17", + "nodeType": "YulIdentifier", + "src": "4157:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4144:3:17", + "nodeType": "YulIdentifier", + "src": "4144:3:17" + }, + "nativeSrc": "4144:23:17", + "nodeType": "YulFunctionCall", + "src": "4144:23:17" + }, + { + "kind": "number", + "nativeSrc": "4169:2:17", + "nodeType": "YulLiteral", + "src": "4169:2:17", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4140:3:17", + "nodeType": "YulIdentifier", + "src": "4140:3:17" + }, + "nativeSrc": "4140:32:17", + "nodeType": "YulFunctionCall", + "src": "4140:32:17" + }, + "nativeSrc": "4137:119:17", + "nodeType": "YulIf", + "src": "4137:119:17" + }, + { + "nativeSrc": "4266:117:17", + "nodeType": "YulBlock", + "src": "4266:117:17", + "statements": [ + { + "nativeSrc": "4281:15:17", + "nodeType": "YulVariableDeclaration", + "src": "4281:15:17", + "value": { + "kind": "number", + "nativeSrc": "4295:1:17", + "nodeType": "YulLiteral", + "src": "4295:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4285:6:17", + "nodeType": "YulTypedName", + "src": "4285:6:17", + "type": "" + } + ] + }, + { + "nativeSrc": "4310:63:17", + "nodeType": "YulAssignment", + "src": "4310:63:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4345:9:17", + "nodeType": "YulIdentifier", + "src": "4345:9:17" + }, + { + "name": "offset", + "nativeSrc": "4356:6:17", + "nodeType": "YulIdentifier", + "src": "4356:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4341:3:17", + "nodeType": "YulIdentifier", + "src": "4341:3:17" + }, + "nativeSrc": "4341:22:17", + "nodeType": "YulFunctionCall", + "src": "4341:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4365:7:17", + "nodeType": "YulIdentifier", + "src": "4365:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4320:20:17", + "nodeType": "YulIdentifier", + "src": "4320:20:17" + }, + "nativeSrc": "4320:53:17", + "nodeType": "YulFunctionCall", + "src": "4320:53:17" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4310:6:17", + "nodeType": "YulIdentifier", + "src": "4310:6:17" + } + ] + } + ] + }, + { + "nativeSrc": "4393:287:17", + "nodeType": "YulBlock", + "src": "4393:287:17", + "statements": [ + { + "nativeSrc": "4408:46:17", + "nodeType": "YulVariableDeclaration", + "src": "4408:46:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4439:9:17", + "nodeType": "YulIdentifier", + "src": "4439:9:17" + }, + { + "kind": "number", + "nativeSrc": "4450:2:17", + "nodeType": "YulLiteral", + "src": "4450:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4435:3:17", + "nodeType": "YulIdentifier", + "src": "4435:3:17" + }, + "nativeSrc": "4435:18:17", + "nodeType": "YulFunctionCall", + "src": "4435:18:17" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4422:12:17", + "nodeType": "YulIdentifier", + "src": "4422:12:17" + }, + "nativeSrc": "4422:32:17", + "nodeType": "YulFunctionCall", + "src": "4422:32:17" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4412:6:17", + "nodeType": "YulTypedName", + "src": "4412:6:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4501:83:17", + "nodeType": "YulBlock", + "src": "4501:83:17", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "4503:77:17", + "nodeType": "YulIdentifier", + "src": "4503:77:17" + }, + "nativeSrc": "4503:79:17", + "nodeType": "YulFunctionCall", + "src": "4503:79:17" + }, + "nativeSrc": "4503:79:17", + "nodeType": "YulExpressionStatement", + "src": "4503:79:17" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4473:6:17", + "nodeType": "YulIdentifier", + "src": "4473:6:17" + }, + { + "kind": "number", + "nativeSrc": "4481:18:17", + "nodeType": "YulLiteral", + "src": "4481:18:17", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4470:2:17", + "nodeType": "YulIdentifier", + "src": "4470:2:17" + }, + "nativeSrc": "4470:30:17", + "nodeType": "YulFunctionCall", + "src": "4470:30:17" + }, + "nativeSrc": "4467:117:17", + "nodeType": "YulIf", + "src": "4467:117:17" + }, + { + "nativeSrc": "4598:72:17", + "nodeType": "YulAssignment", + "src": "4598:72:17", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4642:9:17", + "nodeType": "YulIdentifier", + "src": "4642:9:17" + }, + { + "name": "offset", + "nativeSrc": "4653:6:17", + "nodeType": "YulIdentifier", + "src": "4653:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4638:3:17", + "nodeType": "YulIdentifier", + "src": "4638:3:17" + }, + "nativeSrc": "4638:22:17", + "nodeType": "YulFunctionCall", + "src": "4638:22:17" + }, + { + "name": "dataEnd", + "nativeSrc": "4662:7:17", + "nodeType": "YulIdentifier", + "src": "4662:7:17" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "4608:29:17", + "nodeType": "YulIdentifier", + "src": "4608:29:17" + }, + "nativeSrc": "4608:62:17", + "nodeType": "YulFunctionCall", + "src": "4608:62:17" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4598:6:17", + "nodeType": "YulIdentifier", + "src": "4598:6:17" + } + ] + } + ] } ] }, - "name": "allocate_memory", + "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr", + "nativeSrc": "4035:652:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "size", + "name": "headStart", + "nativeSrc": "4089:9:17", + "nodeType": "YulTypedName", + "src": "4089:9:17", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4100:7:17", "nodeType": "YulTypedName", - "src": "4254:4:17", + "src": "4100:7:17", "type": "" } ], "returnVariables": [ { - "name": "memPtr", + "name": "value0", + "nativeSrc": "4112:6:17", + "nodeType": "YulTypedName", + "src": "4112:6:17", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4120:6:17", "nodeType": "YulTypedName", - "src": "4263:6:17", + "src": "4120:6:17", "type": "" } ], - "src": "4229:129:17" + "src": "4035:652:17" }, { "body": { + "nativeSrc": "4751:40:17", "nodeType": "YulBlock", - "src": "4404:35:17", + "src": "4751:40:17", "statements": [ { + "nativeSrc": "4762:22:17", "nodeType": "YulAssignment", - "src": "4414:19:17", + "src": "4762:22:17", "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4430:2:17", - "type": "", - "value": "64" + "name": "value", + "nativeSrc": "4778:5:17", + "nodeType": "YulIdentifier", + "src": "4778:5:17" } ], "functionName": { "name": "mload", + "nativeSrc": "4772:5:17", "nodeType": "YulIdentifier", - "src": "4424:5:17" + "src": "4772:5:17" }, + "nativeSrc": "4772:12:17", "nodeType": "YulFunctionCall", - "src": "4424:9:17" + "src": "4772:12:17" }, "variableNames": [ { - "name": "memPtr", + "name": "length", + "nativeSrc": "4762:6:17", "nodeType": "YulIdentifier", - "src": "4414:6:17" + "src": "4762:6:17" } ] } ] }, - "name": "allocate_unbounded", + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4693:98:17", "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4734:5:17", + "nodeType": "YulTypedName", + "src": "4734:5:17", + "type": "" + } + ], "returnVariables": [ { - "name": "memPtr", + "name": "length", + "nativeSrc": "4744:6:17", "nodeType": "YulTypedName", - "src": "4397:6:17", + "src": "4744:6:17", "type": "" } ], - "src": "4364:75:17" + "src": "4693:98:17" }, { "body": { + "nativeSrc": "4892:73:17", "nodeType": "YulBlock", - "src": "4511:241:17", + "src": "4892:73:17", "statements": [ { - "body": { - "nodeType": "YulBlock", - "src": "4616:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "4618:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "4618:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "4618:18:17" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "length", + "name": "pos", + "nativeSrc": "4909:3:17", "nodeType": "YulIdentifier", - "src": "4588:6:17" + "src": "4909:3:17" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4596:18:17", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4585:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "4585:30:17" - }, - "nodeType": "YulIf", - "src": "4582:2:17" - }, - { - "nodeType": "YulAssignment", - "src": "4648:37:17", - "value": { - "arguments": [ { "name": "length", + "nativeSrc": "4914:6:17", "nodeType": "YulIdentifier", - "src": "4678:6:17" + "src": "4914:6:17" } ], "functionName": { - "name": "round_up_to_mul_of_32", + "name": "mstore", + "nativeSrc": "4902:6:17", "nodeType": "YulIdentifier", - "src": "4656:21:17" + "src": "4902:6:17" }, + "nativeSrc": "4902:19:17", "nodeType": "YulFunctionCall", - "src": "4656:29:17" + "src": "4902:19:17" }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "4648:4:17" - } - ] + "nativeSrc": "4902:19:17", + "nodeType": "YulExpressionStatement", + "src": "4902:19:17" }, { + "nativeSrc": "4930:29:17", "nodeType": "YulAssignment", - "src": "4722:23:17", + "src": "4930:29:17", "value": { "arguments": [ { - "name": "size", + "name": "pos", + "nativeSrc": "4949:3:17", "nodeType": "YulIdentifier", - "src": "4734:4:17" + "src": "4949:3:17" }, { "kind": "number", + "nativeSrc": "4954:4:17", "nodeType": "YulLiteral", - "src": "4740:4:17", + "src": "4954:4:17", "type": "", "value": "0x20" } ], "functionName": { "name": "add", + "nativeSrc": "4945:3:17", "nodeType": "YulIdentifier", - "src": "4730:3:17" + "src": "4945:3:17" }, + "nativeSrc": "4945:14:17", "nodeType": "YulFunctionCall", - "src": "4730:15:17" + "src": "4945:14:17" }, "variableNames": [ { - "name": "size", + "name": "updated_pos", + "nativeSrc": "4930:11:17", "nodeType": "YulIdentifier", - "src": "4722:4:17" + "src": "4930:11:17" } ] } ] }, - "name": "array_allocation_size_t_bytes_memory_ptr", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "4797:168:17", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "pos", + "nativeSrc": "4864:3:17", + "nodeType": "YulTypedName", + "src": "4864:3:17", + "type": "" + }, { "name": "length", + "nativeSrc": "4869:6:17", "nodeType": "YulTypedName", - "src": "4495:6:17", + "src": "4869:6:17", "type": "" } ], "returnVariables": [ { - "name": "size", + "name": "updated_pos", + "nativeSrc": "4880:11:17", "nodeType": "YulTypedName", - "src": "4506:4:17", + "src": "4880:11:17", "type": "" } ], - "src": "4445:307:17" + "src": "4797:168:17" }, { "body": { + "nativeSrc": "5033:184:17", "nodeType": "YulBlock", - "src": "4816:40:17", + "src": "5033:184:17", "statements": [ { - "nodeType": "YulAssignment", - "src": "4827:22:17", + "nativeSrc": "5043:10:17", + "nodeType": "YulVariableDeclaration", + "src": "5043:10:17", "value": { + "kind": "number", + "nativeSrc": "5052:1:17", + "nodeType": "YulLiteral", + "src": "5052:1:17", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "5047:1:17", + "nodeType": "YulTypedName", + "src": "5047:1:17", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5112:63:17", + "nodeType": "YulBlock", + "src": "5112:63:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5137:3:17", + "nodeType": "YulIdentifier", + "src": "5137:3:17" + }, + { + "name": "i", + "nativeSrc": "5142:1:17", + "nodeType": "YulIdentifier", + "src": "5142:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5133:3:17", + "nodeType": "YulIdentifier", + "src": "5133:3:17" + }, + "nativeSrc": "5133:11:17", + "nodeType": "YulFunctionCall", + "src": "5133:11:17" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5156:3:17", + "nodeType": "YulIdentifier", + "src": "5156:3:17" + }, + { + "name": "i", + "nativeSrc": "5161:1:17", + "nodeType": "YulIdentifier", + "src": "5161:1:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5152:3:17", + "nodeType": "YulIdentifier", + "src": "5152:3:17" + }, + "nativeSrc": "5152:11:17", + "nodeType": "YulFunctionCall", + "src": "5152:11:17" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5146:5:17", + "nodeType": "YulIdentifier", + "src": "5146:5:17" + }, + "nativeSrc": "5146:18:17", + "nodeType": "YulFunctionCall", + "src": "5146:18:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5126:6:17", + "nodeType": "YulIdentifier", + "src": "5126:6:17" + }, + "nativeSrc": "5126:39:17", + "nodeType": "YulFunctionCall", + "src": "5126:39:17" + }, + "nativeSrc": "5126:39:17", + "nodeType": "YulExpressionStatement", + "src": "5126:39:17" + } + ] + }, + "condition": { "arguments": [ { - "name": "value", + "name": "i", + "nativeSrc": "5073:1:17", "nodeType": "YulIdentifier", - "src": "4843:5:17" + "src": "5073:1:17" + }, + { + "name": "length", + "nativeSrc": "5076:6:17", + "nodeType": "YulIdentifier", + "src": "5076:6:17" } ], "functionName": { - "name": "mload", + "name": "lt", + "nativeSrc": "5070:2:17", "nodeType": "YulIdentifier", - "src": "4837:5:17" + "src": "5070:2:17" }, + "nativeSrc": "5070:13:17", "nodeType": "YulFunctionCall", - "src": "4837:12:17" + "src": "5070:13:17" }, - "variableNames": [ - { - "name": "length", + "nativeSrc": "5062:113:17", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5084:19:17", + "nodeType": "YulBlock", + "src": "5084:19:17", + "statements": [ + { + "nativeSrc": "5086:15:17", + "nodeType": "YulAssignment", + "src": "5086:15:17", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5095:1:17", + "nodeType": "YulIdentifier", + "src": "5095:1:17" + }, + { + "kind": "number", + "nativeSrc": "5098:2:17", + "nodeType": "YulLiteral", + "src": "5098:2:17", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5091:3:17", + "nodeType": "YulIdentifier", + "src": "5091:3:17" + }, + "nativeSrc": "5091:10:17", + "nodeType": "YulFunctionCall", + "src": "5091:10:17" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "5086:1:17", + "nodeType": "YulIdentifier", + "src": "5086:1:17" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5066:3:17", + "nodeType": "YulBlock", + "src": "5066:3:17", + "statements": [] + }, + "src": "5062:113:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5195:3:17", + "nodeType": "YulIdentifier", + "src": "5195:3:17" + }, + { + "name": "length", + "nativeSrc": "5200:6:17", + "nodeType": "YulIdentifier", + "src": "5200:6:17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5191:3:17", + "nodeType": "YulIdentifier", + "src": "5191:3:17" + }, + "nativeSrc": "5191:16:17", + "nodeType": "YulFunctionCall", + "src": "5191:16:17" + }, + { + "kind": "number", + "nativeSrc": "5209:1:17", + "nodeType": "YulLiteral", + "src": "5209:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5184:6:17", "nodeType": "YulIdentifier", - "src": "4827:6:17" - } - ] + "src": "5184:6:17" + }, + "nativeSrc": "5184:27:17", + "nodeType": "YulFunctionCall", + "src": "5184:27:17" + }, + "nativeSrc": "5184:27:17", + "nodeType": "YulExpressionStatement", + "src": "5184:27:17" } ] }, - "name": "array_length_t_bytes_memory_ptr", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4971:246:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "src", + "nativeSrc": "5015:3:17", "nodeType": "YulTypedName", - "src": "4799:5:17", + "src": "5015:3:17", "type": "" - } - ], - "returnVariables": [ + }, + { + "name": "dst", + "nativeSrc": "5020:3:17", + "nodeType": "YulTypedName", + "src": "5020:3:17", + "type": "" + }, { "name": "length", + "nativeSrc": "5025:6:17", "nodeType": "YulTypedName", - "src": "4809:6:17", + "src": "5025:6:17", "type": "" } ], - "src": "4758:98:17" + "src": "4971:246:17" }, { "body": { + "nativeSrc": "5313:283:17", "nodeType": "YulBlock", - "src": "4957:73:17", + "src": "5313:283:17", "statements": [ { - "expression": { + "nativeSrc": "5323:52:17", + "nodeType": "YulVariableDeclaration", + "src": "5323:52:17", + "value": { "arguments": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4974:3:17" - }, - { - "name": "length", + "name": "value", + "nativeSrc": "5369:5:17", "nodeType": "YulIdentifier", - "src": "4979:6:17" + "src": "5369:5:17" } ], "functionName": { - "name": "mstore", + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "5337:31:17", "nodeType": "YulIdentifier", - "src": "4967:6:17" + "src": "5337:31:17" }, + "nativeSrc": "5337:38:17", "nodeType": "YulFunctionCall", - "src": "4967:19:17" + "src": "5337:38:17" }, - "nodeType": "YulExpressionStatement", - "src": "4967:19:17" + "variables": [ + { + "name": "length", + "nativeSrc": "5327:6:17", + "nodeType": "YulTypedName", + "src": "5327:6:17", + "type": "" + } + ] }, { + "nativeSrc": "5384:77:17", "nodeType": "YulAssignment", - "src": "4995:29:17", + "src": "5384:77:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "5449:3:17", "nodeType": "YulIdentifier", - "src": "5014:3:17" + "src": "5449:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5019:4:17", - "type": "", - "value": "0x20" + "name": "length", + "nativeSrc": "5454:6:17", + "nodeType": "YulIdentifier", + "src": "5454:6:17" } ], "functionName": { - "name": "add", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "5391:57:17", "nodeType": "YulIdentifier", - "src": "5010:3:17" + "src": "5391:57:17" }, + "nativeSrc": "5391:70:17", "nodeType": "YulFunctionCall", - "src": "5010:14:17" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "4995:11:17" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4929:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "4934:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "4945:11:17", - "type": "" - } - ], - "src": "4862:168:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5149:34:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5159:18:17", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5174:3:17" + "src": "5391:70:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "pos", + "nativeSrc": "5384:3:17", "nodeType": "YulIdentifier", - "src": "5159:11:17" + "src": "5384:3:17" } ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5121:3:17", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5126:6:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "5137:11:17", - "type": "" - } - ], - "src": "5036:147:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5285:73:17", - "statements": [ + }, { "expression": { "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5509:5:17", + "nodeType": "YulIdentifier", + "src": "5509:5:17" + }, + { + "kind": "number", + "nativeSrc": "5516:4:17", + "nodeType": "YulLiteral", + "src": "5516:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5505:3:17", + "nodeType": "YulIdentifier", + "src": "5505:3:17" + }, + "nativeSrc": "5505:16:17", + "nodeType": "YulFunctionCall", + "src": "5505:16:17" + }, { "name": "pos", + "nativeSrc": "5523:3:17", "nodeType": "YulIdentifier", - "src": "5302:3:17" + "src": "5523:3:17" }, { "name": "length", + "nativeSrc": "5528:6:17", "nodeType": "YulIdentifier", - "src": "5307:6:17" + "src": "5528:6:17" } ], "functionName": { - "name": "mstore", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5470:34:17", "nodeType": "YulIdentifier", - "src": "5295:6:17" + "src": "5470:34:17" }, + "nativeSrc": "5470:65:17", "nodeType": "YulFunctionCall", - "src": "5295:19:17" + "src": "5470:65:17" }, + "nativeSrc": "5470:65:17", "nodeType": "YulExpressionStatement", - "src": "5295:19:17" + "src": "5470:65:17" }, { + "nativeSrc": "5544:46:17", "nodeType": "YulAssignment", - "src": "5323:29:17", + "src": "5544:46:17", "value": { "arguments": [ { "name": "pos", + "nativeSrc": "5555:3:17", "nodeType": "YulIdentifier", - "src": "5342:3:17" + "src": "5555:3:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5347:4:17", - "type": "", - "value": "0x20" + "arguments": [ + { + "name": "length", + "nativeSrc": "5582:6:17", + "nodeType": "YulIdentifier", + "src": "5582:6:17" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "5560:21:17", + "nodeType": "YulIdentifier", + "src": "5560:21:17" + }, + "nativeSrc": "5560:29:17", + "nodeType": "YulFunctionCall", + "src": "5560:29:17" } ], "functionName": { "name": "add", + "nativeSrc": "5551:3:17", "nodeType": "YulIdentifier", - "src": "5338:3:17" + "src": "5551:3:17" }, + "nativeSrc": "5551:39:17", "nodeType": "YulFunctionCall", - "src": "5338:14:17" + "src": "5551:39:17" }, "variableNames": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "5544:3:17", "nodeType": "YulIdentifier", - "src": "5323:11:17" + "src": "5544:3:17" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "5223:373:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", + "name": "value", + "nativeSrc": "5294:5:17", "nodeType": "YulTypedName", - "src": "5257:3:17", + "src": "5294:5:17", "type": "" }, { - "name": "length", + "name": "pos", + "nativeSrc": "5301:3:17", "nodeType": "YulTypedName", - "src": "5262:6:17", + "src": "5301:3:17", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", + "name": "end", + "nativeSrc": "5309:3:17", "nodeType": "YulTypedName", - "src": "5273:11:17", + "src": "5309:3:17", "type": "" } ], - "src": "5189:169:17" + "src": "5223:373:17" }, { "body": { + "nativeSrc": "5718:193:17", "nodeType": "YulBlock", - "src": "5409:51:17", + "src": "5718:193:17", "statements": [ { + "nativeSrc": "5728:26:17", "nodeType": "YulAssignment", - "src": "5419:35:17", + "src": "5728:26:17", "value": { "arguments": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "5740:9:17", "nodeType": "YulIdentifier", - "src": "5448:5:17" + "src": "5740:9:17" + }, + { + "kind": "number", + "nativeSrc": "5751:2:17", + "nodeType": "YulLiteral", + "src": "5751:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "cleanup_t_uint160", + "name": "add", + "nativeSrc": "5736:3:17", "nodeType": "YulIdentifier", - "src": "5430:17:17" + "src": "5736:3:17" }, + "nativeSrc": "5736:18:17", "nodeType": "YulFunctionCall", - "src": "5430:24:17" + "src": "5736:18:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "5728:4:17", "nodeType": "YulIdentifier", - "src": "5419:7:17" + "src": "5728:4:17" } ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5391:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "5401:7:17", - "type": "" - } - ], - "src": "5364:96:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5511:81:17", - "statements": [ + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5775:9:17", + "nodeType": "YulIdentifier", + "src": "5775:9:17" + }, + { + "kind": "number", + "nativeSrc": "5786:1:17", + "nodeType": "YulLiteral", + "src": "5786:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5771:3:17", + "nodeType": "YulIdentifier", + "src": "5771:3:17" + }, + "nativeSrc": "5771:17:17", + "nodeType": "YulFunctionCall", + "src": "5771:17:17" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "5794:4:17", + "nodeType": "YulIdentifier", + "src": "5794:4:17" + }, + { + "name": "headStart", + "nativeSrc": "5800:9:17", + "nodeType": "YulIdentifier", + "src": "5800:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5790:3:17", + "nodeType": "YulIdentifier", + "src": "5790:3:17" + }, + "nativeSrc": "5790:20:17", + "nodeType": "YulFunctionCall", + "src": "5790:20:17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5764:6:17", + "nodeType": "YulIdentifier", + "src": "5764:6:17" + }, + "nativeSrc": "5764:47:17", + "nodeType": "YulFunctionCall", + "src": "5764:47:17" + }, + "nativeSrc": "5764:47:17", + "nodeType": "YulExpressionStatement", + "src": "5764:47:17" + }, { + "nativeSrc": "5820:84:17", "nodeType": "YulAssignment", - "src": "5521:65:17", + "src": "5820:84:17", "value": { "arguments": [ { - "name": "value", + "name": "value0", + "nativeSrc": "5890:6:17", "nodeType": "YulIdentifier", - "src": "5536:5:17" + "src": "5890:6:17" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5543:42:17", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "name": "tail", + "nativeSrc": "5899:4:17", + "nodeType": "YulIdentifier", + "src": "5899:4:17" } ], "functionName": { - "name": "and", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "5828:61:17", "nodeType": "YulIdentifier", - "src": "5532:3:17" + "src": "5828:61:17" }, + "nativeSrc": "5828:76:17", "nodeType": "YulFunctionCall", - "src": "5532:54:17" + "src": "5828:76:17" }, "variableNames": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "5820:4:17", "nodeType": "YulIdentifier", - "src": "5521:7:17" + "src": "5820:4:17" } ] } ] }, - "name": "cleanup_t_uint160", + "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "5602:309:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "5690:9:17", + "nodeType": "YulTypedName", + "src": "5690:9:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5702:6:17", "nodeType": "YulTypedName", - "src": "5493:5:17", + "src": "5702:6:17", "type": "" } ], "returnVariables": [ { - "name": "cleaned", + "name": "tail", + "nativeSrc": "5713:4:17", "nodeType": "YulTypedName", - "src": "5503:7:17", + "src": "5713:4:17", "type": "" } ], - "src": "5466:126:17" + "src": "5602:309:17" }, { "body": { + "nativeSrc": "6030:34:17", "nodeType": "YulBlock", - "src": "5649:103:17", + "src": "6030:34:17", "statements": [ { - "expression": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "5672:3:17" - }, - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "5677:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5682:6:17" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "5659:12:17" - }, - "nodeType": "YulFunctionCall", - "src": "5659:30:17" + "nativeSrc": "6040:18:17", + "nodeType": "YulAssignment", + "src": "6040:18:17", + "value": { + "name": "pos", + "nativeSrc": "6055:3:17", + "nodeType": "YulIdentifier", + "src": "6055:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "5659:30:17" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "5730:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5735:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5726:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5726:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5744:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "6040:11:17", "nodeType": "YulIdentifier", - "src": "5719:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "5719:27:17" - }, - "nodeType": "YulExpressionStatement", - "src": "5719:27:17" + "src": "6040:11:17" + } + ] } ] }, - "name": "copy_calldata_to_memory", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "5917:147:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", + "name": "pos", + "nativeSrc": "6002:3:17", "nodeType": "YulTypedName", - "src": "5631:3:17", + "src": "6002:3:17", "type": "" }, { - "name": "dst", + "name": "length", + "nativeSrc": "6007:6:17", "nodeType": "YulTypedName", - "src": "5636:3:17", + "src": "6007:6:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", + "name": "updated_pos", + "nativeSrc": "6018:11:17", "nodeType": "YulTypedName", - "src": "5641:6:17", + "src": "6018:11:17", "type": "" } ], - "src": "5598:154:17" + "src": "5917:147:17" }, { "body": { + "nativeSrc": "6178:278:17", "nodeType": "YulBlock", - "src": "5807:258:17", + "src": "6178:278:17", "statements": [ { + "nativeSrc": "6188:52:17", "nodeType": "YulVariableDeclaration", - "src": "5817:10:17", + "src": "6188:52:17", "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5826:1:17", - "type": "", - "value": "0" + "arguments": [ + { + "name": "value", + "nativeSrc": "6234:5:17", + "nodeType": "YulIdentifier", + "src": "6234:5:17" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "6202:31:17", + "nodeType": "YulIdentifier", + "src": "6202:31:17" + }, + "nativeSrc": "6202:38:17", + "nodeType": "YulFunctionCall", + "src": "6202:38:17" }, "variables": [ { - "name": "i", + "name": "length", + "nativeSrc": "6192:6:17", "nodeType": "YulTypedName", - "src": "5821:1:17", + "src": "6192:6:17", "type": "" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "5886:63:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "5911:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5916:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5907:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5907:11:17" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "5930:3:17" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5935:1:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5926:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5926:11:17" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5920:5:17" - }, - "nodeType": "YulFunctionCall", - "src": "5920:18:17" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5900:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "5900:39:17" - }, - "nodeType": "YulExpressionStatement", - "src": "5900:39:17" - } - ] - }, - "condition": { + "nativeSrc": "6249:95:17", + "nodeType": "YulAssignment", + "src": "6249:95:17", + "value": { "arguments": [ { - "name": "i", + "name": "pos", + "nativeSrc": "6332:3:17", "nodeType": "YulIdentifier", - "src": "5847:1:17" + "src": "6332:3:17" }, { "name": "length", + "nativeSrc": "6337:6:17", "nodeType": "YulIdentifier", - "src": "5850:6:17" + "src": "6337:6:17" } ], "functionName": { - "name": "lt", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "6256:75:17", "nodeType": "YulIdentifier", - "src": "5844:2:17" + "src": "6256:75:17" }, + "nativeSrc": "6256:88:17", "nodeType": "YulFunctionCall", - "src": "5844:13:17" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "5858:19:17", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5860:15:17", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5869:1:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5872:2:17", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5865:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "5865:10:17" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "5860:1:17" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "5840:3:17", - "statements": [] + "src": "6256:88:17" }, - "src": "5836:113:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "6249:3:17", + "nodeType": "YulIdentifier", + "src": "6249:3:17" + } + ] }, { - "body": { - "nodeType": "YulBlock", - "src": "5983:76:17", - "statements": [ + "expression": { + "arguments": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6033:3:17" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6038:6:17" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6029:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6029:16:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6047:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", + "arguments": [ + { + "name": "value", + "nativeSrc": "6392:5:17", "nodeType": "YulIdentifier", - "src": "6022:6:17" + "src": "6392:5:17" }, - "nodeType": "YulFunctionCall", - "src": "6022:27:17" + { + "kind": "number", + "nativeSrc": "6399:4:17", + "nodeType": "YulLiteral", + "src": "6399:4:17", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6388:3:17", + "nodeType": "YulIdentifier", + "src": "6388:3:17" }, - "nodeType": "YulExpressionStatement", - "src": "6022:27:17" + "nativeSrc": "6388:16:17", + "nodeType": "YulFunctionCall", + "src": "6388:16:17" + }, + { + "name": "pos", + "nativeSrc": "6406:3:17", + "nodeType": "YulIdentifier", + "src": "6406:3:17" + }, + { + "name": "length", + "nativeSrc": "6411:6:17", + "nodeType": "YulIdentifier", + "src": "6411:6:17" } - ] + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6353:34:17", + "nodeType": "YulIdentifier", + "src": "6353:34:17" + }, + "nativeSrc": "6353:65:17", + "nodeType": "YulFunctionCall", + "src": "6353:65:17" }, - "condition": { + "nativeSrc": "6353:65:17", + "nodeType": "YulExpressionStatement", + "src": "6353:65:17" + }, + { + "nativeSrc": "6427:23:17", + "nodeType": "YulAssignment", + "src": "6427:23:17", + "value": { "arguments": [ { - "name": "i", + "name": "pos", + "nativeSrc": "6438:3:17", "nodeType": "YulIdentifier", - "src": "5964:1:17" + "src": "6438:3:17" }, { "name": "length", + "nativeSrc": "6443:6:17", "nodeType": "YulIdentifier", - "src": "5967:6:17" + "src": "6443:6:17" } ], "functionName": { - "name": "gt", + "name": "add", + "nativeSrc": "6434:3:17", "nodeType": "YulIdentifier", - "src": "5961:2:17" + "src": "6434:3:17" }, + "nativeSrc": "6434:16:17", "nodeType": "YulFunctionCall", - "src": "5961:13:17" + "src": "6434:16:17" }, - "nodeType": "YulIf", - "src": "5958:2:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "6427:3:17", + "nodeType": "YulIdentifier", + "src": "6427:3:17" + } + ] } ] }, - "name": "copy_memory_to_memory", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "6070:386:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", + "name": "value", + "nativeSrc": "6159:5:17", "nodeType": "YulTypedName", - "src": "5789:3:17", + "src": "6159:5:17", "type": "" }, { - "name": "dst", + "name": "pos", + "nativeSrc": "6166:3:17", "nodeType": "YulTypedName", - "src": "5794:3:17", + "src": "6166:3:17", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", + "name": "end", + "nativeSrc": "6174:3:17", "nodeType": "YulTypedName", - "src": "5799:6:17", + "src": "6174:3:17", "type": "" } ], - "src": "5758:307:17" + "src": "6070:386:17" }, { "body": { + "nativeSrc": "6596:137:17", "nodeType": "YulBlock", - "src": "6114:238:17", + "src": "6596:137:17", "statements": [ { - "nodeType": "YulVariableDeclaration", - "src": "6124:58:17", + "nativeSrc": "6607:100:17", + "nodeType": "YulAssignment", + "src": "6607:100:17", "value": { "arguments": [ { - "name": "memPtr", + "name": "value0", + "nativeSrc": "6694:6:17", "nodeType": "YulIdentifier", - "src": "6146:6:17" + "src": "6694:6:17" }, { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "6176:4:17" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "6154:21:17" - }, - "nodeType": "YulFunctionCall", - "src": "6154:27:17" + "name": "pos", + "nativeSrc": "6703:3:17", + "nodeType": "YulIdentifier", + "src": "6703:3:17" } ], "functionName": { - "name": "add", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "6614:79:17", "nodeType": "YulIdentifier", - "src": "6142:3:17" + "src": "6614:79:17" }, + "nativeSrc": "6614:93:17", "nodeType": "YulFunctionCall", - "src": "6142:40:17" + "src": "6614:93:17" }, - "variables": [ + "variableNames": [ { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "6128:10:17", - "type": "" + "name": "pos", + "nativeSrc": "6607:3:17", + "nodeType": "YulIdentifier", + "src": "6607:3:17" } ] }, { - "body": { - "nodeType": "YulBlock", - "src": "6293:22:17", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "6295:16:17" - }, - "nodeType": "YulFunctionCall", - "src": "6295:18:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6295:18:17" - } - ] + "nativeSrc": "6717:10:17", + "nodeType": "YulAssignment", + "src": "6717:10:17", + "value": { + "name": "pos", + "nativeSrc": "6724:3:17", + "nodeType": "YulIdentifier", + "src": "6724:3:17" }, - "condition": { + "variableNames": [ + { + "name": "end", + "nativeSrc": "6717:3:17", + "nodeType": "YulIdentifier", + "src": "6717:3:17" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "6462:271:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6575:3:17", + "nodeType": "YulTypedName", + "src": "6575:3:17", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6581:6:17", + "nodeType": "YulTypedName", + "src": "6581:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6592:3:17", + "nodeType": "YulTypedName", + "src": "6592:3:17", + "type": "" + } + ], + "src": "6462:271:17" + }, + { + "body": { + "nativeSrc": "6835:73:17", + "nodeType": "YulBlock", + "src": "6835:73:17", + "statements": [ + { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "6236:10:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6248:18:17", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6233:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "6233:34:17" + "name": "pos", + "nativeSrc": "6852:3:17", + "nodeType": "YulIdentifier", + "src": "6852:3:17" }, { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "6272:10:17" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "6284:6:17" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6269:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "6269:22:17" + "name": "length", + "nativeSrc": "6857:6:17", + "nodeType": "YulIdentifier", + "src": "6857:6:17" } ], "functionName": { - "name": "or", + "name": "mstore", + "nativeSrc": "6845:6:17", "nodeType": "YulIdentifier", - "src": "6230:2:17" + "src": "6845:6:17" }, + "nativeSrc": "6845:19:17", "nodeType": "YulFunctionCall", - "src": "6230:62:17" + "src": "6845:19:17" }, - "nodeType": "YulIf", - "src": "6227:2:17" + "nativeSrc": "6845:19:17", + "nodeType": "YulExpressionStatement", + "src": "6845:19:17" }, { - "expression": { + "nativeSrc": "6873:29:17", + "nodeType": "YulAssignment", + "src": "6873:29:17", + "value": { "arguments": [ + { + "name": "pos", + "nativeSrc": "6892:3:17", + "nodeType": "YulIdentifier", + "src": "6892:3:17" + }, { "kind": "number", + "nativeSrc": "6897:4:17", "nodeType": "YulLiteral", - "src": "6331:2:17", + "src": "6897:4:17", "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "6335:10:17" + "value": "0x20" } ], "functionName": { - "name": "mstore", + "name": "add", + "nativeSrc": "6888:3:17", "nodeType": "YulIdentifier", - "src": "6324:6:17" + "src": "6888:3:17" }, + "nativeSrc": "6888:14:17", "nodeType": "YulFunctionCall", - "src": "6324:22:17" + "src": "6888:14:17" }, - "nodeType": "YulExpressionStatement", - "src": "6324:22:17" + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "6873:11:17", + "nodeType": "YulIdentifier", + "src": "6873:11:17" + } + ] } ] }, - "name": "finalize_allocation", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "6739:169:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", + "name": "pos", + "nativeSrc": "6807:3:17", "nodeType": "YulTypedName", - "src": "6100:6:17", + "src": "6807:3:17", "type": "" }, { - "name": "size", + "name": "length", + "nativeSrc": "6812:6:17", + "nodeType": "YulTypedName", + "src": "6812:6:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "6823:11:17", + "nodeType": "YulTypedName", + "src": "6823:11:17", + "type": "" + } + ], + "src": "6739:169:17" + }, + { + "body": { + "nativeSrc": "7020:57:17", + "nodeType": "YulBlock", + "src": "7020:57:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7042:6:17", + "nodeType": "YulIdentifier", + "src": "7042:6:17" + }, + { + "kind": "number", + "nativeSrc": "7050:1:17", + "nodeType": "YulLiteral", + "src": "7050:1:17", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7038:3:17", + "nodeType": "YulIdentifier", + "src": "7038:3:17" + }, + "nativeSrc": "7038:14:17", + "nodeType": "YulFunctionCall", + "src": "7038:14:17" + }, + { + "hexValue": "63616c6c207265766572746564", + "kind": "string", + "nativeSrc": "7054:15:17", + "nodeType": "YulLiteral", + "src": "7054:15:17", + "type": "", + "value": "call reverted" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7031:6:17", + "nodeType": "YulIdentifier", + "src": "7031:6:17" + }, + "nativeSrc": "7031:39:17", + "nodeType": "YulFunctionCall", + "src": "7031:39:17" + }, + "nativeSrc": "7031:39:17", + "nodeType": "YulExpressionStatement", + "src": "7031:39:17" + } + ] + }, + "name": "store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4", + "nativeSrc": "6914:163:17", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "7012:6:17", "nodeType": "YulTypedName", - "src": "6108:4:17", + "src": "7012:6:17", "type": "" } ], - "src": "6071:281:17" + "src": "6914:163:17" }, { "body": { + "nativeSrc": "7229:220:17", "nodeType": "YulBlock", - "src": "6386:152:17", + "src": "7229:220:17", "statements": [ { - "expression": { + "nativeSrc": "7239:74:17", + "nodeType": "YulAssignment", + "src": "7239:74:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6403:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "7305:3:17", + "nodeType": "YulIdentifier", + "src": "7305:3:17" }, { "kind": "number", + "nativeSrc": "7310:2:17", "nodeType": "YulLiteral", - "src": "6406:77:17", + "src": "7310:2:17", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "13" } ], "functionName": { - "name": "mstore", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "7246:58:17", "nodeType": "YulIdentifier", - "src": "6396:6:17" + "src": "7246:58:17" }, + "nativeSrc": "7246:67:17", "nodeType": "YulFunctionCall", - "src": "6396:88:17" + "src": "7246:67:17" }, - "nodeType": "YulExpressionStatement", - "src": "6396:88:17" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "7239:3:17", + "nodeType": "YulIdentifier", + "src": "7239:3:17" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6500:1:17", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6503:4:17", - "type": "", - "value": "0x41" + "name": "pos", + "nativeSrc": "7411:3:17", + "nodeType": "YulIdentifier", + "src": "7411:3:17" } ], "functionName": { - "name": "mstore", + "name": "store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4", + "nativeSrc": "7322:88:17", "nodeType": "YulIdentifier", - "src": "6493:6:17" + "src": "7322:88:17" }, + "nativeSrc": "7322:93:17", "nodeType": "YulFunctionCall", - "src": "6493:15:17" + "src": "7322:93:17" }, + "nativeSrc": "7322:93:17", "nodeType": "YulExpressionStatement", - "src": "6493:15:17" + "src": "7322:93:17" }, { - "expression": { + "nativeSrc": "7424:19:17", + "nodeType": "YulAssignment", + "src": "7424:19:17", + "value": { "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6524:1:17", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "7435:3:17", + "nodeType": "YulIdentifier", + "src": "7435:3:17" }, { "kind": "number", + "nativeSrc": "7440:2:17", "nodeType": "YulLiteral", - "src": "6527:4:17", + "src": "7440:2:17", "type": "", - "value": "0x24" + "value": "32" } ], "functionName": { - "name": "revert", + "name": "add", + "nativeSrc": "7431:3:17", "nodeType": "YulIdentifier", - "src": "6517:6:17" + "src": "7431:3:17" }, + "nativeSrc": "7431:12:17", "nodeType": "YulFunctionCall", - "src": "6517:15:17" + "src": "7431:12:17" }, - "nodeType": "YulExpressionStatement", - "src": "6517:15:17" + "variableNames": [ + { + "name": "end", + "nativeSrc": "7424:3:17", + "nodeType": "YulIdentifier", + "src": "7424:3:17" + } + ] } ] }, - "name": "panic_error_0x41", + "name": "abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7083:366:17", "nodeType": "YulFunctionDefinition", - "src": "6358:180:17" + "parameters": [ + { + "name": "pos", + "nativeSrc": "7217:3:17", + "nodeType": "YulTypedName", + "src": "7217:3:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "7225:3:17", + "nodeType": "YulTypedName", + "src": "7225:3:17", + "type": "" + } + ], + "src": "7083:366:17" }, { "body": { + "nativeSrc": "7626:248:17", "nodeType": "YulBlock", - "src": "6592:54:17", + "src": "7626:248:17", "statements": [ { + "nativeSrc": "7636:26:17", "nodeType": "YulAssignment", - "src": "6602:38:17", + "src": "7636:26:17", "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6620:5:17" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6627:2:17", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6616:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6616:14:17" + "name": "headStart", + "nativeSrc": "7648:9:17", + "nodeType": "YulIdentifier", + "src": "7648:9:17" }, { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6636:2:17", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "6632:3:17" - }, - "nodeType": "YulFunctionCall", - "src": "6632:7:17" + "kind": "number", + "nativeSrc": "7659:2:17", + "nodeType": "YulLiteral", + "src": "7659:2:17", + "type": "", + "value": "32" } ], "functionName": { - "name": "and", + "name": "add", + "nativeSrc": "7644:3:17", "nodeType": "YulIdentifier", - "src": "6612:3:17" + "src": "7644:3:17" }, + "nativeSrc": "7644:18:17", "nodeType": "YulFunctionCall", - "src": "6612:28:17" + "src": "7644:18:17" }, "variableNames": [ { - "name": "result", + "name": "tail", + "nativeSrc": "7636:4:17", "nodeType": "YulIdentifier", - "src": "6602:6:17" + "src": "7636:4:17" } ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6575:5:17", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nodeType": "YulTypedName", - "src": "6585:6:17", - "type": "" - } - ], - "src": "6544:102:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6758:57:17", - "statements": [ + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", + "name": "headStart", + "nativeSrc": "7683:9:17", "nodeType": "YulIdentifier", - "src": "6780:6:17" + "src": "7683:9:17" }, { "kind": "number", + "nativeSrc": "7694:1:17", "nodeType": "YulLiteral", - "src": "6788:1:17", + "src": "7694:1:17", "type": "", "value": "0" } ], "functionName": { "name": "add", + "nativeSrc": "7679:3:17", "nodeType": "YulIdentifier", - "src": "6776:3:17" + "src": "7679:3:17" }, + "nativeSrc": "7679:17:17", "nodeType": "YulFunctionCall", - "src": "6776:14:17" + "src": "7679:17:17" }, { - "kind": "string", - "nodeType": "YulLiteral", - "src": "6792:15:17", - "type": "", - "value": "call reverted" + "arguments": [ + { + "name": "tail", + "nativeSrc": "7702:4:17", + "nodeType": "YulIdentifier", + "src": "7702:4:17" + }, + { + "name": "headStart", + "nativeSrc": "7708:9:17", + "nodeType": "YulIdentifier", + "src": "7708:9:17" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7698:3:17", + "nodeType": "YulIdentifier", + "src": "7698:3:17" + }, + "nativeSrc": "7698:20:17", + "nodeType": "YulFunctionCall", + "src": "7698:20:17" } ], "functionName": { "name": "mstore", + "nativeSrc": "7672:6:17", "nodeType": "YulIdentifier", - "src": "6769:6:17" + "src": "7672:6:17" }, + "nativeSrc": "7672:47:17", "nodeType": "YulFunctionCall", - "src": "6769:39:17" + "src": "7672:47:17" }, + "nativeSrc": "7672:47:17", "nodeType": "YulExpressionStatement", - "src": "6769:39:17" - } - ] - }, - "name": "store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "6750:6:17", - "type": "" - } - ], - "src": "6652:163:17" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6864:79:17", - "statements": [ + "src": "7672:47:17" + }, { - "body": { - "nodeType": "YulBlock", - "src": "6921:16:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6930:1:17", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6933:1:17", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "6923:6:17" - }, - "nodeType": "YulFunctionCall", - "src": "6923:12:17" - }, - "nodeType": "YulExpressionStatement", - "src": "6923:12:17" - } - ] - }, - "condition": { + "nativeSrc": "7728:139:17", + "nodeType": "YulAssignment", + "src": "7728:139:17", + "value": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6887:5:17" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6912:5:17" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "6894:17:17" - }, - "nodeType": "YulFunctionCall", - "src": "6894:24:17" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "6884:2:17" - }, - "nodeType": "YulFunctionCall", - "src": "6884:35:17" + "name": "tail", + "nativeSrc": "7862:4:17", + "nodeType": "YulIdentifier", + "src": "7862:4:17" } ], "functionName": { - "name": "iszero", + "name": "abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7736:124:17", "nodeType": "YulIdentifier", - "src": "6877:6:17" + "src": "7736:124:17" }, + "nativeSrc": "7736:131:17", "nodeType": "YulFunctionCall", - "src": "6877:43:17" + "src": "7736:131:17" }, - "nodeType": "YulIf", - "src": "6874:2:17" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7728:4:17", + "nodeType": "YulIdentifier", + "src": "7728:4:17" + } + ] } ] }, - "name": "validator_revert_t_address", + "name": "abi_encode_tuple_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7455:419:17", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", + "name": "headStart", + "nativeSrc": "7606:9:17", + "nodeType": "YulTypedName", + "src": "7606:9:17", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7621:4:17", "nodeType": "YulTypedName", - "src": "6857:5:17", + "src": "7621:4:17", "type": "" } ], - "src": "6821:122:17" + "src": "7455:419:17" } ] }, - "contents": "{\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4(memPtr) {\n\n mstore(add(memPtr, 0), \"call reverted\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4(memPtr) {\n\n mstore(add(memPtr, 0), \"call reverted\")\n\n }\n\n function abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n store_literal_in_memory_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_80c2bb020802711e9645e27abcdf2edde70f50a227cb727256608d691f5289d4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 17, "language": "Yul", "name": "#utility.yul" @@ -3912,10 +4827,10 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063038c634a14610046578063b4e6936014610062578063c1ccba5a1461007e575b600080fd5b610060600480360381019061005b919061042f565b6100ae565b005b61007c6004803603810190610077919061042f565b6101c2565b005b610098600480360381019061009391906103db565b6102d4565b6040516100a59190610552565b60405180910390f35b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516100d6919061053b565b6000604051808303816000865af19150503d8060008114610113576040519150601f19603f3d011682016040523d82523d6000602084013e610118565b606091505b5091509150600082141561012d573d60208201fd5b8260405160200161013e919061053b565b6040516020818303038152906040528051906020012081604051602001610165919061053b565b60405160208183030381529060405280519060200120146101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610574565b60405180910390fd5b5050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516101ea919061053b565b600060405180830381855af49150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b5091509150600082141561023f573d60208201fd5b82604051602001610250919061053b565b6040516020818303038152906040528051906020012081604051602001610277919061053b565b60405160208183030381529060405280519060200120146102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610574565b60405180910390fd5b5050505050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102fe919061053b565b600060405180830381855afa9150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50915091506000821415610353573d60208201fd5b809250505092915050565b600061037161036c846105b9565b610594565b90508281526020810184848401111561038957600080fd5b610394848285610654565b509392505050565b6000813590506103ab81610730565b92915050565b600082601f8301126103c257600080fd5b81356103d284826020860161035e565b91505092915050565b600080604083850312156103ee57600080fd5b60006103fc8582860161039c565b925050602083013567ffffffffffffffff81111561041957600080fd5b610425858286016103b1565b9150509250929050565b60008060006060848603121561044457600080fd5b60006104528682870161039c565b935050602084013567ffffffffffffffff81111561046f57600080fd5b61047b868287016103b1565b925050604084013567ffffffffffffffff81111561049857600080fd5b6104a4868287016103b1565b9150509250925092565b60006104b9826105ea565b6104c381856105f5565b93506104d3818560208601610663565b6104dc816106f6565b840191505092915050565b60006104f2826105ea565b6104fc8185610606565b935061050c818560208601610663565b80840191505092915050565b6000610525600d83610611565b915061053082610707565b602082019050919050565b600061054782846104e7565b915081905092915050565b6000602082019050818103600083015261056c81846104ae565b905092915050565b6000602082019050818103600083015261058d81610518565b9050919050565b600061059e6105af565b90506105aa8282610696565b919050565b6000604051905090565b600067ffffffffffffffff8211156105d4576105d36106c7565b5b6105dd826106f6565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061062d82610634565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015610681578082015181840152602081019050610666565b83811115610690576000848401525b50505050565b61069f826106f6565b810181811067ffffffffffffffff821117156106be576106bd6106c7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c20726576657274656400000000000000000000000000000000000000600082015250565b61073981610622565b811461074457600080fd5b5056fea2646970667358221220dcf900451b35643863982d1bb376e370669714da69a65daf8cfad55ca519421564736f6c63430008020033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38C634A EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xB4E69360 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC1CCBA5A EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x42F JUMP JUMPDEST PUSH2 0xAE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x77 SWAP2 SWAP1 PUSH2 0x42F JUMP JUMPDEST PUSH2 0x1C2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x98 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST PUSH2 0x2D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x113 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x118 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x12D JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x13E SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x165 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B2 SWAP1 PUSH2 0x574 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x23F JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x2CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C4 SWAP1 PUSH2 0x574 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2FE SWAP2 SWAP1 PUSH2 0x53B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x339 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x353 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x371 PUSH2 0x36C DUP5 PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x594 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x394 DUP5 DUP3 DUP6 PUSH2 0x654 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3AB DUP2 PUSH2 0x730 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3D2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x35E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FC DUP6 DUP3 DUP7 ADD PUSH2 0x39C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x425 DUP6 DUP3 DUP7 ADD PUSH2 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x452 DUP7 DUP3 DUP8 ADD PUSH2 0x39C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47B DUP7 DUP3 DUP8 ADD PUSH2 0x3B1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x498 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A4 DUP7 DUP3 DUP8 ADD PUSH2 0x3B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9 DUP3 PUSH2 0x5EA JUMP JUMPDEST PUSH2 0x4C3 DUP2 DUP6 PUSH2 0x5F5 JUMP JUMPDEST SWAP4 POP PUSH2 0x4D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x663 JUMP JUMPDEST PUSH2 0x4DC DUP2 PUSH2 0x6F6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F2 DUP3 PUSH2 0x5EA JUMP JUMPDEST PUSH2 0x4FC DUP2 DUP6 PUSH2 0x606 JUMP JUMPDEST SWAP4 POP PUSH2 0x50C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x663 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x525 PUSH1 0xD DUP4 PUSH2 0x611 JUMP JUMPDEST SWAP2 POP PUSH2 0x530 DUP3 PUSH2 0x707 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x547 DUP3 DUP5 PUSH2 0x4E7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x56C DUP2 DUP5 PUSH2 0x4AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x58D DUP2 PUSH2 0x518 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x59E PUSH2 0x5AF JUMP JUMPDEST SWAP1 POP PUSH2 0x5AA DUP3 DUP3 PUSH2 0x696 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x6C7 JUMP JUMPDEST JUMPDEST PUSH2 0x5DD DUP3 PUSH2 0x6F6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62D DUP3 PUSH2 0x634 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x681 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x666 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x690 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x69F DUP3 PUSH2 0x6F6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x6BE JUMPI PUSH2 0x6BD PUSH2 0x6C7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x63616C6C20726576657274656400000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x739 DUP2 PUSH2 0x622 JUMP JUMPDEST DUP2 EQ PUSH2 0x744 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xF9 STOP GASLIMIT SHL CALLDATALOAD PUSH5 0x3863982D1B 0xB3 PUSH23 0xE370669714DA69A65DAF8CFAD55CA519421564736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ", - "sourceMap": "70:1225:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;95:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;864:429;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;514:344;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;95:413;189:12;203:23;230:6;:11;;242:5;230:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188:60;;;;296:1;287:7;284:14;281:2;;;347:16;340:4;328:10;324:21;317:47;281:2;475:6;458:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;448:35;;;;;;432:10;415:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;405:39;;;;;;:78;397:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;95:413;;;;;:::o;864:429::-;967:12;981:23;1008:6;:19;;1028:5;1008:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:68;;;;1081:1;1072:7;1069:14;1066:2;;;1132:16;1125:4;1113:10;1109:21;1102:47;1066:2;1260:6;1243:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;1233:35;;;;;;1217:10;1200:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;1190:39;;;;;;:78;1182:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;864:429;;;;;:::o;514:344::-;596:12;621;635:23;662:6;:17;;680:5;662:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;620:66;;;;733:1;724:7;721:14;718:2;;;784:16;777:4;765:10;761:21;754:47;718:2;841:10;834:17;;;;514:344;;;;:::o;7:343:17:-;;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:2;;;290:1;287;280:12;249:2;303:41;337:6;332:3;327;303:41;:::i;:::-;90:260;;;;;;:::o;356:139::-;;440:6;427:20;418:29;;456:33;483:5;456:33;:::i;:::-;408:87;;;;:::o;514:271::-;;618:3;611:4;603:6;599:17;595:27;585:2;;636:1;633;626:12;585:2;676:6;663:20;701:78;775:3;767:6;760:4;752:6;748:17;701:78;:::i;:::-;692:87;;575:210;;;;;:::o;791:518::-;;;925:2;913:9;904:7;900:23;896:32;893:2;;;941:1;938;931:12;893:2;984:1;1009:53;1054:7;1045:6;1034:9;1030:22;1009:53;:::i;:::-;999:63;;955:117;1139:2;1128:9;1124:18;1111:32;1170:18;1162:6;1159:30;1156:2;;;1202:1;1199;1192:12;1156:2;1230:62;1284:7;1275:6;1264:9;1260:22;1230:62;:::i;:::-;1220:72;;1082:220;883:426;;;;;:::o;1315:774::-;;;;1475:2;1463:9;1454:7;1450:23;1446:32;1443:2;;;1491:1;1488;1481:12;1443:2;1534:1;1559:53;1604:7;1595:6;1584:9;1580:22;1559:53;:::i;:::-;1549:63;;1505:117;1689:2;1678:9;1674:18;1661:32;1720:18;1712:6;1709:30;1706:2;;;1752:1;1749;1742:12;1706:2;1780:62;1834:7;1825:6;1814:9;1810:22;1780:62;:::i;:::-;1770:72;;1632:220;1919:2;1908:9;1904:18;1891:32;1950:18;1942:6;1939:30;1936:2;;;1982:1;1979;1972:12;1936:2;2010:62;2064:7;2055:6;2044:9;2040:22;2010:62;:::i;:::-;2000:72;;1862:220;1433:656;;;;;:::o;2095:360::-;;2209:38;2241:5;2209:38;:::i;:::-;2263:70;2326:6;2321:3;2263:70;:::i;:::-;2256:77;;2342:52;2387:6;2382:3;2375:4;2368:5;2364:16;2342:52;:::i;:::-;2419:29;2441:6;2419:29;:::i;:::-;2414:3;2410:39;2403:46;;2185:270;;;;;:::o;2461:373::-;;2593:38;2625:5;2593:38;:::i;:::-;2647:88;2728:6;2723:3;2647:88;:::i;:::-;2640:95;;2744:52;2789:6;2784:3;2777:4;2770:5;2766:16;2744:52;:::i;:::-;2821:6;2816:3;2812:16;2805:23;;2569:265;;;;;:::o;2840:366::-;;3003:67;3067:2;3062:3;3003:67;:::i;:::-;2996:74;;3079:93;3168:3;3079:93;:::i;:::-;3197:2;3192:3;3188:12;3181:19;;2986:220;;;:::o;3212:271::-;;3364:93;3453:3;3444:6;3364:93;:::i;:::-;3357:100;;3474:3;3467:10;;3346:137;;;;:::o;3489:309::-;;3638:2;3627:9;3623:18;3615:26;;3687:9;3681:4;3677:20;3673:1;3662:9;3658:17;3651:47;3715:76;3786:4;3777:6;3715:76;:::i;:::-;3707:84;;3605:193;;;;:::o;3804:419::-;;4008:2;3997:9;3993:18;3985:26;;4057:9;4051:4;4047:20;4043:1;4032:9;4028:17;4021:47;4085:131;4211:4;4085:131;:::i;:::-;4077:139;;3975:248;;;:::o;4229:129::-;;4290:20;;:::i;:::-;4280:30;;4319:33;4347:4;4339:6;4319:33;:::i;:::-;4270:88;;;:::o;4364:75::-;;4430:2;4424:9;4414:19;;4404:35;:::o;4445:307::-;;4596:18;4588:6;4585:30;4582:2;;;4618:18;;:::i;:::-;4582:2;4656:29;4678:6;4656:29;:::i;:::-;4648:37;;4740:4;4734;4730:15;4722:23;;4511:241;;;:::o;4758:98::-;;4843:5;4837:12;4827:22;;4816:40;;;:::o;4862:168::-;;4979:6;4974:3;4967:19;5019:4;5014:3;5010:14;4995:29;;4957:73;;;;:::o;5036:147::-;;5174:3;5159:18;;5149:34;;;;:::o;5189:169::-;;5307:6;5302:3;5295:19;5347:4;5342:3;5338:14;5323:29;;5285:73;;;;:::o;5364:96::-;;5430:24;5448:5;5430:24;:::i;:::-;5419:35;;5409:51;;;:::o;5466:126::-;;5543:42;5536:5;5532:54;5521:65;;5511:81;;;:::o;5598:154::-;5682:6;5677:3;5672;5659:30;5744:1;5735:6;5730:3;5726:16;5719:27;5649:103;;;:::o;5758:307::-;5826:1;5836:113;5850:6;5847:1;5844:13;5836:113;;;5935:1;5930:3;5926:11;5920:18;5916:1;5911:3;5907:11;5900:39;5872:2;5869:1;5865:10;5860:15;;5836:113;;;5967:6;5964:1;5961:13;5958:2;;;6047:1;6038:6;6033:3;6029:16;6022:27;5958:2;5807:258;;;;:::o;6071:281::-;6154:27;6176:4;6154:27;:::i;:::-;6146:6;6142:40;6284:6;6272:10;6269:22;6248:18;6236:10;6233:34;6230:62;6227:2;;;6295:18;;:::i;:::-;6227:2;6335:10;6331:2;6324:22;6114:238;;;:::o;6358:180::-;6406:77;6403:1;6396:88;6503:4;6500:1;6493:15;6527:4;6524:1;6517:15;6544:102;;6636:2;6632:7;6627:2;6620:5;6616:14;6612:28;6602:38;;6592:54;;;:::o;6652:163::-;6792:15;6788:1;6780:6;6776:14;6769:39;6758:57;:::o;6821:122::-;6894:24;6912:5;6894:24;:::i;:::-;6887:5;6884:35;6874:2;;6933:1;6930;6923:12;6874:2;6864:79;:::o" + "object": "608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063038c634a14610043578063b4e693601461005f578063c1ccba5a1461007b575b5f80fd5b61005d600480360381019061005891906104ef565b6100ab565b005b610079600480360381019061007491906104ef565b6101b8565b005b61009560048036038101906100909190610577565b6102c4565b6040516100a2919061064b565b60405180910390f35b5f808473ffffffffffffffffffffffffffffffffffffffff16846040516100d291906106a5565b5f604051808303815f865af19150503d805f811461010b576040519150601f19603f3d011682016040523d82523d5f602084013e610110565b606091505b50915091505f8203610123573d60208201fd5b8260405160200161013491906106a5565b604051602081830303815290604052805190602001208160405160200161015b91906106a5565b60405160208183030381529060405280519060200120146101b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890610715565b60405180910390fd5b5050505050565b5f808473ffffffffffffffffffffffffffffffffffffffff16846040516101df91906106a5565b5f60405180830381855af49150503d805f8114610217576040519150601f19603f3d011682016040523d82523d5f602084013e61021c565b606091505b50915091505f820361022f573d60208201fd5b8260405160200161024091906106a5565b604051602081830303815290604052805190602001208160405160200161026791906106a5565b60405160208183030381529060405280519060200120146102bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610715565b60405180910390fd5b5050505050565b60605f808473ffffffffffffffffffffffffffffffffffffffff16846040516102ed91906106a5565b5f60405180830381855afa9150503d805f8114610325576040519150601f19603f3d011682016040523d82523d5f602084013e61032a565b606091505b50915091505f820361033d573d60208201fd5b809250505092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f80fd5b50565b5f813590506103ad81610389565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610401826103bb565b810181811067ffffffffffffffff821117156104205761041f6103cb565b5b80604052505050565b5f610432610348565b905061043e82826103f8565b919050565b5f67ffffffffffffffff82111561045d5761045c6103cb565b5b610466826103bb565b9050602081019050919050565b828183375f83830152505050565b5f61049361048e84610443565b610429565b9050828152602081018484840111156104af576104ae6103b7565b5b6104ba848285610473565b509392505050565b5f82601f8301126104d6576104d56103b3565b5b81356104e6848260208601610481565b91505092915050565b5f805f6060848603121561050657610505610351565b5b5f6105138682870161039f565b935050602084013567ffffffffffffffff81111561053457610533610355565b5b610540868287016104c2565b925050604084013567ffffffffffffffff81111561056157610560610355565b5b61056d868287016104c2565b9150509250925092565b5f806040838503121561058d5761058c610351565b5b5f61059a8582860161039f565b925050602083013567ffffffffffffffff8111156105bb576105ba610355565b5b6105c7858286016104c2565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156106085780820151818401526020810190506105ed565b5f8484015250505050565b5f61061d826105d1565b61062781856105db565b93506106378185602086016105eb565b610640816103bb565b840191505092915050565b5f6020820190508181035f8301526106638184610613565b905092915050565b5f81905092915050565b5f61067f826105d1565b610689818561066b565b93506106998185602086016105eb565b80840191505092915050565b5f6106b08284610675565b915081905092915050565b5f82825260208201905092915050565b7f63616c6c207265766572746564000000000000000000000000000000000000005f82015250565b5f6106ff600d836106bb565b915061070a826106cb565b602082019050919050565b5f6020820190508181035f83015261072c816106f3565b905091905056fea2646970667358221220548e36f6d223fe3be799dc0a3b703081c59da0108f40af18a6b6ee988c1e0a9664736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38C634A EQ PUSH2 0x43 JUMPI DUP1 PUSH4 0xB4E69360 EQ PUSH2 0x5F JUMPI DUP1 PUSH4 0xC1CCBA5A EQ PUSH2 0x7B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x5D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58 SWAP2 SWAP1 PUSH2 0x4EF JUMP JUMPDEST PUSH2 0xAB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x79 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x74 SWAP2 SWAP1 PUSH2 0x4EF JUMP JUMPDEST PUSH2 0x1B8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x577 JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x64B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x10B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x110 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH0 DUP3 SUB PUSH2 0x123 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x15B SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x1B1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8 SWAP1 PUSH2 0x715 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1DF SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x217 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x21C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH0 DUP3 SUB PUSH2 0x22F JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x267 SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x2BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B4 SWAP1 PUSH2 0x715 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x6A5 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x32A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH0 DUP3 SUB PUSH2 0x33D JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x382 DUP3 PUSH2 0x359 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x392 DUP2 PUSH2 0x378 JUMP JUMPDEST DUP2 EQ PUSH2 0x39C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3AD DUP2 PUSH2 0x389 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x401 DUP3 PUSH2 0x3BB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x420 JUMPI PUSH2 0x41F PUSH2 0x3CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x432 PUSH2 0x348 JUMP JUMPDEST SWAP1 POP PUSH2 0x43E DUP3 DUP3 PUSH2 0x3F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x45D JUMPI PUSH2 0x45C PUSH2 0x3CB JUMP JUMPDEST JUMPDEST PUSH2 0x466 DUP3 PUSH2 0x3BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x493 PUSH2 0x48E DUP5 PUSH2 0x443 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4AF JUMPI PUSH2 0x4AE PUSH2 0x3B7 JUMP JUMPDEST JUMPDEST PUSH2 0x4BA DUP5 DUP3 DUP6 PUSH2 0x473 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D6 JUMPI PUSH2 0x4D5 PUSH2 0x3B3 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E6 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x481 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x506 JUMPI PUSH2 0x505 PUSH2 0x351 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x513 DUP7 DUP3 DUP8 ADD PUSH2 0x39F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x534 JUMPI PUSH2 0x533 PUSH2 0x355 JUMP JUMPDEST JUMPDEST PUSH2 0x540 DUP7 DUP3 DUP8 ADD PUSH2 0x4C2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x561 JUMPI PUSH2 0x560 PUSH2 0x355 JUMP JUMPDEST JUMPDEST PUSH2 0x56D DUP7 DUP3 DUP8 ADD PUSH2 0x4C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x58D JUMPI PUSH2 0x58C PUSH2 0x351 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x59A DUP6 DUP3 DUP7 ADD PUSH2 0x39F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5BB JUMPI PUSH2 0x5BA PUSH2 0x355 JUMP JUMPDEST JUMPDEST PUSH2 0x5C7 DUP6 DUP3 DUP7 ADD PUSH2 0x4C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x608 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5ED JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x61D DUP3 PUSH2 0x5D1 JUMP JUMPDEST PUSH2 0x627 DUP2 DUP6 PUSH2 0x5DB JUMP JUMPDEST SWAP4 POP PUSH2 0x637 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x640 DUP2 PUSH2 0x3BB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x663 DUP2 DUP5 PUSH2 0x613 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x67F DUP3 PUSH2 0x5D1 JUMP JUMPDEST PUSH2 0x689 DUP2 DUP6 PUSH2 0x66B JUMP JUMPDEST SWAP4 POP PUSH2 0x699 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EB JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x675 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x63616C6C20726576657274656400000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x6FF PUSH1 0xD DUP4 PUSH2 0x6BB JUMP JUMPDEST SWAP2 POP PUSH2 0x70A DUP3 PUSH2 0x6CB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x72C DUP2 PUSH2 0x6F3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD DUP15 CALLDATASIZE 0xF6 0xD2 0x23 INVALID EXTCODESIZE 0xE7 SWAP10 0xDC EXP EXTCODESIZE PUSH17 0x3081C59DA0108F40AF18A6B6EE988C1E0A SWAP7 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "71:1225:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;96:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;865:429;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;515:344;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;96:413;190:12;204:23;231:6;:11;;243:5;231:18;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;189:60;;;;297:1;288:7;285:14;282:97;;348:16;341:4;329:10;325:21;318:47;282:97;476:6;459:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;449:35;;;;;;433:10;416:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;406:39;;;;;;:78;398:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;179:330;;96:413;;;:::o;865:429::-;968:12;982:23;1009:6;:19;;1029:5;1009:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;967:68;;;;1082:1;1073:7;1070:14;1067:97;;1133:16;1126:4;1114:10;1110:21;1103:47;1067:97;1261:6;1244:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;1234:35;;;;;;1218:10;1201:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;1191:39;;;;;;:78;1183:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;957:337;;865:429;;;:::o;515:344::-;597:12;622;636:23;663:6;:17;;681:5;663:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;621:66;;;;734:1;725:7;722:14;719:97;;785:16;778:4;766:10;762:21;755:47;719:97;842:10;835:17;;;;515:344;;;;:::o;7:75:17:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:117::-;950:1;947;940:12;964:117;1073:1;1070;1063:12;1087:102;1128:6;1179:2;1175:7;1170:2;1163:5;1159:14;1155:28;1145:38;;1087:102;;;:::o;1195:180::-;1243:77;1240:1;1233:88;1340:4;1337:1;1330:15;1364:4;1361:1;1354:15;1381:281;1464:27;1486:4;1464:27;:::i;:::-;1456:6;1452:40;1594:6;1582:10;1579:22;1558:18;1546:10;1543:34;1540:62;1537:88;;;1605:18;;:::i;:::-;1537:88;1645:10;1641:2;1634:22;1424:238;1381:281;;:::o;1668:129::-;1702:6;1729:20;;:::i;:::-;1719:30;;1758:33;1786:4;1778:6;1758:33;:::i;:::-;1668:129;;;:::o;1803:307::-;1864:4;1954:18;1946:6;1943:30;1940:56;;;1976:18;;:::i;:::-;1940:56;2014:29;2036:6;2014:29;:::i;:::-;2006:37;;2098:4;2092;2088:15;2080:23;;1803:307;;;:::o;2116:146::-;2213:6;2208:3;2203;2190:30;2254:1;2245:6;2240:3;2236:16;2229:27;2116:146;;;:::o;2268:423::-;2345:5;2370:65;2386:48;2427:6;2386:48;:::i;:::-;2370:65;:::i;:::-;2361:74;;2458:6;2451:5;2444:21;2496:4;2489:5;2485:16;2534:3;2525:6;2520:3;2516:16;2513:25;2510:112;;;2541:79;;:::i;:::-;2510:112;2631:54;2678:6;2673:3;2668;2631:54;:::i;:::-;2351:340;2268:423;;;;;:::o;2710:338::-;2765:5;2814:3;2807:4;2799:6;2795:17;2791:27;2781:122;;2822:79;;:::i;:::-;2781:122;2939:6;2926:20;2964:78;3038:3;3030:6;3023:4;3015:6;3011:17;2964:78;:::i;:::-;2955:87;;2771:277;2710:338;;;;:::o;3054:975::-;3149:6;3157;3165;3214:2;3202:9;3193:7;3189:23;3185:32;3182:119;;;3220:79;;:::i;:::-;3182:119;3340:1;3365:53;3410:7;3401:6;3390:9;3386:22;3365:53;:::i;:::-;3355:63;;3311:117;3495:2;3484:9;3480:18;3467:32;3526:18;3518:6;3515:30;3512:117;;;3548:79;;:::i;:::-;3512:117;3653:62;3707:7;3698:6;3687:9;3683:22;3653:62;:::i;:::-;3643:72;;3438:287;3792:2;3781:9;3777:18;3764:32;3823:18;3815:6;3812:30;3809:117;;;3845:79;;:::i;:::-;3809:117;3950:62;4004:7;3995:6;3984:9;3980:22;3950:62;:::i;:::-;3940:72;;3735:287;3054:975;;;;;:::o;4035:652::-;4112:6;4120;4169:2;4157:9;4148:7;4144:23;4140:32;4137:119;;;4175:79;;:::i;:::-;4137:119;4295:1;4320:53;4365:7;4356:6;4345:9;4341:22;4320:53;:::i;:::-;4310:63;;4266:117;4450:2;4439:9;4435:18;4422:32;4481:18;4473:6;4470:30;4467:117;;;4503:79;;:::i;:::-;4467:117;4608:62;4662:7;4653:6;4642:9;4638:22;4608:62;:::i;:::-;4598:72;;4393:287;4035:652;;;;;:::o;4693:98::-;4744:6;4778:5;4772:12;4762:22;;4693:98;;;:::o;4797:168::-;4880:11;4914:6;4909:3;4902:19;4954:4;4949:3;4945:14;4930:29;;4797:168;;;;:::o;4971:246::-;5052:1;5062:113;5076:6;5073:1;5070:13;5062:113;;;5161:1;5156:3;5152:11;5146:18;5142:1;5137:3;5133:11;5126:39;5098:2;5095:1;5091:10;5086:15;;5062:113;;;5209:1;5200:6;5195:3;5191:16;5184:27;5033:184;4971:246;;;:::o;5223:373::-;5309:3;5337:38;5369:5;5337:38;:::i;:::-;5391:70;5454:6;5449:3;5391:70;:::i;:::-;5384:77;;5470:65;5528:6;5523:3;5516:4;5509:5;5505:16;5470:65;:::i;:::-;5560:29;5582:6;5560:29;:::i;:::-;5555:3;5551:39;5544:46;;5313:283;5223:373;;;;:::o;5602:309::-;5713:4;5751:2;5740:9;5736:18;5728:26;;5800:9;5794:4;5790:20;5786:1;5775:9;5771:17;5764:47;5828:76;5899:4;5890:6;5828:76;:::i;:::-;5820:84;;5602:309;;;;:::o;5917:147::-;6018:11;6055:3;6040:18;;5917:147;;;;:::o;6070:386::-;6174:3;6202:38;6234:5;6202:38;:::i;:::-;6256:88;6337:6;6332:3;6256:88;:::i;:::-;6249:95;;6353:65;6411:6;6406:3;6399:4;6392:5;6388:16;6353:65;:::i;:::-;6443:6;6438:3;6434:16;6427:23;;6178:278;6070:386;;;;:::o;6462:271::-;6592:3;6614:93;6703:3;6694:6;6614:93;:::i;:::-;6607:100;;6724:3;6717:10;;6462:271;;;;:::o;6739:169::-;6823:11;6857:6;6852:3;6845:19;6897:4;6892:3;6888:14;6873:29;;6739:169;;;;:::o;6914:163::-;7054:15;7050:1;7042:6;7038:14;7031:39;6914:163;:::o;7083:366::-;7225:3;7246:67;7310:2;7305:3;7246:67;:::i;:::-;7239:74;;7322:93;7411:3;7322:93;:::i;:::-;7440:2;7435:3;7431:12;7424:19;;7083:366;;;:::o;7455:419::-;7621:4;7659:2;7648:9;7644:18;7636:26;;7708:9;7702:4;7698:20;7694:1;7683:9;7679:17;7672:47;7736:131;7862:4;7736:131;:::i;:::-;7728:139;;7455:419;;;:::o" } }, - "bytecode": "608060405234801561001057600080fd5b5061077d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063038c634a14610046578063b4e6936014610062578063c1ccba5a1461007e575b600080fd5b610060600480360381019061005b919061042f565b6100ae565b005b61007c6004803603810190610077919061042f565b6101c2565b005b610098600480360381019061009391906103db565b6102d4565b6040516100a59190610552565b60405180910390f35b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516100d6919061053b565b6000604051808303816000865af19150503d8060008114610113576040519150601f19603f3d011682016040523d82523d6000602084013e610118565b606091505b5091509150600082141561012d573d60208201fd5b8260405160200161013e919061053b565b6040516020818303038152906040528051906020012081604051602001610165919061053b565b60405160208183030381529060405280519060200120146101bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b290610574565b60405180910390fd5b5050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516101ea919061053b565b600060405180830381855af49150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b5091509150600082141561023f573d60208201fd5b82604051602001610250919061053b565b6040516020818303038152906040528051906020012081604051602001610277919061053b565b60405160208183030381529060405280519060200120146102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610574565b60405180910390fd5b5050505050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102fe919061053b565b600060405180830381855afa9150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50915091506000821415610353573d60208201fd5b809250505092915050565b600061037161036c846105b9565b610594565b90508281526020810184848401111561038957600080fd5b610394848285610654565b509392505050565b6000813590506103ab81610730565b92915050565b600082601f8301126103c257600080fd5b81356103d284826020860161035e565b91505092915050565b600080604083850312156103ee57600080fd5b60006103fc8582860161039c565b925050602083013567ffffffffffffffff81111561041957600080fd5b610425858286016103b1565b9150509250929050565b60008060006060848603121561044457600080fd5b60006104528682870161039c565b935050602084013567ffffffffffffffff81111561046f57600080fd5b61047b868287016103b1565b925050604084013567ffffffffffffffff81111561049857600080fd5b6104a4868287016103b1565b9150509250925092565b60006104b9826105ea565b6104c381856105f5565b93506104d3818560208601610663565b6104dc816106f6565b840191505092915050565b60006104f2826105ea565b6104fc8185610606565b935061050c818560208601610663565b80840191505092915050565b6000610525600d83610611565b915061053082610707565b602082019050919050565b600061054782846104e7565b915081905092915050565b6000602082019050818103600083015261056c81846104ae565b905092915050565b6000602082019050818103600083015261058d81610518565b9050919050565b600061059e6105af565b90506105aa8282610696565b919050565b6000604051905090565b600067ffffffffffffffff8211156105d4576105d36106c7565b5b6105dd826106f6565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061062d82610634565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015610681578082015181840152602081019050610666565b83811115610690576000848401525b50505050565b61069f826106f6565b810181811067ffffffffffffffff821117156106be576106bd6106c7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c20726576657274656400000000000000000000000000000000000000600082015250565b61073981610622565b811461074457600080fd5b5056fea2646970667358221220dcf900451b35643863982d1bb376e370669714da69a65daf8cfad55ca519421564736f6c63430008020033" + "bytecode": "608060405234801561000f575f80fd5b506107698061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063038c634a14610043578063b4e693601461005f578063c1ccba5a1461007b575b5f80fd5b61005d600480360381019061005891906104ef565b6100ab565b005b610079600480360381019061007491906104ef565b6101b8565b005b61009560048036038101906100909190610577565b6102c4565b6040516100a2919061064b565b60405180910390f35b5f808473ffffffffffffffffffffffffffffffffffffffff16846040516100d291906106a5565b5f604051808303815f865af19150503d805f811461010b576040519150601f19603f3d011682016040523d82523d5f602084013e610110565b606091505b50915091505f8203610123573d60208201fd5b8260405160200161013491906106a5565b604051602081830303815290604052805190602001208160405160200161015b91906106a5565b60405160208183030381529060405280519060200120146101b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890610715565b60405180910390fd5b5050505050565b5f808473ffffffffffffffffffffffffffffffffffffffff16846040516101df91906106a5565b5f60405180830381855af49150503d805f8114610217576040519150601f19603f3d011682016040523d82523d5f602084013e61021c565b606091505b50915091505f820361022f573d60208201fd5b8260405160200161024091906106a5565b604051602081830303815290604052805190602001208160405160200161026791906106a5565b60405160208183030381529060405280519060200120146102bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610715565b60405180910390fd5b5050505050565b60605f808473ffffffffffffffffffffffffffffffffffffffff16846040516102ed91906106a5565b5f60405180830381855afa9150503d805f8114610325576040519150601f19603f3d011682016040523d82523d5f602084013e61032a565b606091505b50915091505f820361033d573d60208201fd5b809250505092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f80fd5b50565b5f813590506103ad81610389565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610401826103bb565b810181811067ffffffffffffffff821117156104205761041f6103cb565b5b80604052505050565b5f610432610348565b905061043e82826103f8565b919050565b5f67ffffffffffffffff82111561045d5761045c6103cb565b5b610466826103bb565b9050602081019050919050565b828183375f83830152505050565b5f61049361048e84610443565b610429565b9050828152602081018484840111156104af576104ae6103b7565b5b6104ba848285610473565b509392505050565b5f82601f8301126104d6576104d56103b3565b5b81356104e6848260208601610481565b91505092915050565b5f805f6060848603121561050657610505610351565b5b5f6105138682870161039f565b935050602084013567ffffffffffffffff81111561053457610533610355565b5b610540868287016104c2565b925050604084013567ffffffffffffffff81111561056157610560610355565b5b61056d868287016104c2565b9150509250925092565b5f806040838503121561058d5761058c610351565b5b5f61059a8582860161039f565b925050602083013567ffffffffffffffff8111156105bb576105ba610355565b5b6105c7858286016104c2565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156106085780820151818401526020810190506105ed565b5f8484015250505050565b5f61061d826105d1565b61062781856105db565b93506106378185602086016105eb565b610640816103bb565b840191505092915050565b5f6020820190508181035f8301526106638184610613565b905092915050565b5f81905092915050565b5f61067f826105d1565b610689818561066b565b93506106998185602086016105eb565b80840191505092915050565b5f6106b08284610675565b915081905092915050565b5f82825260208201905092915050565b7f63616c6c207265766572746564000000000000000000000000000000000000005f82015250565b5f6106ff600d836106bb565b915061070a826106cb565b602082019050919050565b5f6020820190508181035f83015261072c816106f3565b905091905056fea2646970667358221220548e36f6d223fe3be799dc0a3b703081c59da0108f40af18a6b6ee988c1e0a9664736f6c63430008180033" } \ No newline at end of file diff --git a/ts-tests/contracts/Block.sol b/ts-tests/contracts/Block.sol index 0bd38fb265..461c83352f 100644 --- a/ts-tests/contracts/Block.sol +++ b/ts-tests/contracts/Block.sol @@ -1,19 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity 0.8.2; +pragma solidity ^0.8.2; contract Block { function multiply(uint a) public pure returns(uint d) { return a * 7; } - function gasLimit() public view returns(uint) { - return block.gaslimit; - } - function currentBlock() public view returns(uint) { - return block.number; - } - function blockHash(uint number) public view returns(bytes32) { - return blockhash(number); + + function baseFee() public view returns(uint) { + return block.basefee; } function chainId() public view returns(uint) { return block.chainid; @@ -21,7 +16,19 @@ contract Block { function coinbase() public view returns(address) { return block.coinbase; } + function prevrandao() public view returns(uint) { + return block.prevrandao; + } + function gasLimit() public view returns(uint) { + return block.gaslimit; + } + function blockNumber() public view returns(uint) { + return block.number; + } function timestamp() public view returns(uint) { return block.timestamp; } + function blockHash(uint number) public view returns(bytes32) { + return blockhash(number); + } } diff --git a/ts-tests/contracts/ECRecoverTests.sol b/ts-tests/contracts/ECRecoverTests.sol index 118d63a178..99dc889746 100644 --- a/ts-tests/contracts/ECRecoverTests.sol +++ b/ts-tests/contracts/ECRecoverTests.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity 0.8.2; +pragma solidity ^0.8.2; contract ECRecoverTests { function ecrecoverTest(bytes memory input) public returns(bytes memory) { diff --git a/ts-tests/contracts/ExplicitRevertReason.sol b/ts-tests/contracts/ExplicitRevertReason.sol index d81d37a62a..28f443fca3 100644 --- a/ts-tests/contracts/ExplicitRevertReason.sol +++ b/ts-tests/contracts/ExplicitRevertReason.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity 0.8.2; +pragma solidity ^0.8.2; contract ExplicitRevertReason { function max10(uint256 a) public pure returns (uint256) { diff --git a/ts-tests/contracts/TestCalls.sol b/ts-tests/contracts/TestCalls.sol index 68e116d5f0..65adac0a8d 100644 --- a/ts-tests/contracts/TestCalls.sol +++ b/ts-tests/contracts/TestCalls.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity 0.8.2; +pragma solidity ^0.8.2; contract TestCalls { function test_call(address target, bytes memory input, bytes memory output) public { diff --git a/ts-tests/tests/test-block.ts b/ts-tests/tests/test-block.ts index 5397f55722..d9db04a307 100644 --- a/ts-tests/tests/test-block.ts +++ b/ts-tests/tests/test-block.ts @@ -1,13 +1,17 @@ import { expect } from "chai"; +import { deployContract } from "ethereum-waffle"; import { step } from "mocha-steps"; import { describeWithAcala } from "./util"; +import Block from "../build/Block.json"; +import { Contract } from "ethers"; +import { BodhiSigner } from "@acala-network/bodhi"; describeWithAcala("Acala RPC (Block)", (context) => { step("should be at block 0 at genesis", async function () { expect(await context.provider.getBlockNumber()).to.equal(0); }); - it("should return genesis block by number", async function () { + step("should return genesis block by number", async function () { expect(await context.provider.getBlockNumber()).to.equal(0); }); }); diff --git a/ts-tests/tests/test-bodhi.ts b/ts-tests/tests/test-bodhi.ts index a5a5812388..9504d6d9df 100644 --- a/ts-tests/tests/test-bodhi.ts +++ b/ts-tests/tests/test-bodhi.ts @@ -48,7 +48,7 @@ describeWithAcala("Acala RPC (bodhi.js)", (context) => { step("should get code", async function () { const code = await context.provider.getCode(contract.address); - expect(code.length).to.be.equal(1844); + expect(code.length).to.be.equal(1950); }); step("should storage at", async function () { @@ -91,7 +91,7 @@ describeWithAcala("Acala RPC (bodhi.js)", (context) => { await contract.populateTransaction.multiply(3) ); - expect(data.usedGas.toNumber()).to.be.eq(22038); + expect(data.usedGas.toNumber()).to.be.eq(22111); expect(data.usedStorage.toNumber()).to.be.eq(0); expect(data.gasLimit.toNumber()).to.closeTo(26445, 1000); }); diff --git a/ts-tests/tests/test-contract-methods.ts b/ts-tests/tests/test-contract-methods.ts index 1a4df173a5..1ac029a1bf 100644 --- a/ts-tests/tests/test-contract-methods.ts +++ b/ts-tests/tests/test-contract-methods.ts @@ -20,9 +20,34 @@ describeWithAcala("Acala RPC (Contract Methods)", (context) => { expect((await contract.multiply(3)).toString()).to.equal("21"); }); + it("should get correct environmental baseFee", async function () { + expect((await contract.baseFee()).toString()).to.eq('1'); + }); + + it("should get correct environmental chainId", async function () { + expect((await contract.chainId()).toString()).to.eq('595'); + }); + + it("should get correct environmental coinbase", async function () { + expect((await contract.coinbase()).toString()).to.eq('0x0000000000000000000000000000000000000000'); + }); + + // it doesn't work with mandala + // it("should get correct environmental prevrandao", async function () { + // expect((await contract.prevrandao()).toString()).to.eq('0x0000000000000000000000000000000000000000'); + // }); + + it("should get correct environmental block gaslimit", async function () { + expect((await contract.gasLimit()).toString()).to.eq('0'); + }); + + it("should get correct environmental block timestamp", async function () { + expect((await contract.timestamp()).toString()).to.eq((parseInt(await context.provider.api.query.timestamp.now() / 1000)).toString()); + }); + it("should get correct environmental block number", async function () { // Solidity `block.number` is expected to return the same height at which the runtime call was made. - let height = await contract.currentBlock(); + let height = await contract.blockNumber(); let current_block_number = await context.provider.api.query.system.number(); expect(await height.toString()).to.eq(current_block_number.toString()); @@ -59,22 +84,6 @@ describeWithAcala("Acala RPC (Contract Methods)", (context) => { //); }); - it("should get correct environmental chainId", async function () { - expect((await contract.chainId()).toString()).to.eq('595'); - }); - - it("should get correct environmental coinbase", async function () { - expect((await contract.coinbase()).toString()).to.eq('0x0000000000000000000000000000000000000000'); - }); - - it("should get correct environmental block timestamp", async function () { - expect((await contract.timestamp()).toString()).to.eq((parseInt(await context.provider.api.query.timestamp.now() / 1000)).toString()); - }); - - it("should get correct environmental block gaslimit", async function () { - expect((await contract.gasLimit()).toString()).to.eq('0'); - }); - // Requires error handling it("should fail for missing parameters", async function () { const mock = new Contract(contract.address, [ diff --git a/ts-tests/tests/test-gas-limit.ts b/ts-tests/tests/test-gas-limit.ts index 1c69302b91..b3f575d4c7 100644 --- a/ts-tests/tests/test-gas-limit.ts +++ b/ts-tests/tests/test-gas-limit.ts @@ -19,10 +19,10 @@ describeWithAcala("Acala RPC (GasLimit)", (context) => { const contract = await deployContract(alice, Factory); // limited by used_storage const result = await contract.createContractLoop(350); - expect(result.gasLimit.toNumber()).to.be.eq(3570298622); + expect(result.gasLimit.toNumber()).to.be.eq(3569798122); const result2 = await contract.incrementLoop(8130); - expect(result2.gasLimit.toNumber()).to.be.eq(29010806); + expect(result2.gasLimit.toNumber()).to.be.eq(27906506); const storages = await context.provider.api.query.evm.accountStorages.entries(contract.address); // 350 array items diff --git a/ts-tests/tests/test-gas.ts b/ts-tests/tests/test-gas.ts index e3281b84f6..c0ab6eeeff 100644 --- a/ts-tests/tests/test-gas.ts +++ b/ts-tests/tests/test-gas.ts @@ -18,7 +18,7 @@ describeWithAcala("Acala RPC (Gas)", (context) => { from: alice.getAddress(), data: "0x" + Block.bytecode, }); - expect(gas.toNumber()).to.closeTo(11301014, 1000); + expect(gas.toNumber()).to.closeTo(11401114, 1000); }); it("eth_estimateResources for contract creation", async function () { @@ -27,9 +27,9 @@ describeWithAcala("Acala RPC (Gas)", (context) => { data: "0x" + Block.bytecode, }); - expect(data.usedGas.toNumber()).to.be.eq(251786); - expect(data.gasLimit.toNumber()).closeTo(302071, 1000); - expect(data.usedStorage.toNumber()).to.be.eq(10921); + expect(data.usedGas.toNumber()).to.be.eq(263596); + expect(data.gasLimit.toNumber()).closeTo(316315, 1000); + expect(data.usedStorage.toNumber()).to.be.eq(10974); }); it("eth_estimateGas for contract call", async function () { @@ -45,7 +45,7 @@ describeWithAcala("Acala RPC (Gas)", (context) => { await contract.populateTransaction.multiply(3) ); - expect(data.usedGas.toNumber()).to.be.eq(22038); + expect(data.usedGas.toNumber()).to.be.eq(22111); expect(data.gasLimit.toNumber()).to.closeTo(26445, 1000); expect(data.usedStorage.toNumber()).to.be.eq(0); }); diff --git a/ts-tests/waffle.json b/ts-tests/waffle.json index 89bac340fd..a73455c7b8 100644 --- a/ts-tests/waffle.json +++ b/ts-tests/waffle.json @@ -1,6 +1,6 @@ { "compilerType": "solcjs", - "compilerVersion": "0.8.2", + "compilerVersion": "0.8.24", "sourceDirectory": "./contracts", "outputDirectory": "./build" }