Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 143 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Execute | 13028579 | 1265 days ago | IN | 0 ETH | 0.05674845 | ||||
Execute | 13022175 | 1266 days ago | IN | 0 ETH | 0.04807444 | ||||
Execute | 12804513 | 1300 days ago | IN | 0 ETH | 0.00044779 | ||||
Execute | 12780946 | 1304 days ago | IN | 0 ETH | 0.00167417 | ||||
Execute | 12753308 | 1308 days ago | IN | 0 ETH | 0.00055805 | ||||
Execute | 12746910 | 1309 days ago | IN | 0 ETH | 0.00033618 | ||||
Execute | 12740504 | 1310 days ago | IN | 0 ETH | 0.02378832 | ||||
Execute | 12734097 | 1311 days ago | IN | 0 ETH | 0.02733008 | ||||
Execute | 12727696 | 1312 days ago | IN | 0 ETH | 0.012844 | ||||
Execute | 12721288 | 1313 days ago | IN | 0 ETH | 0.00077349 | ||||
Execute | 12721288 | 1313 days ago | IN | 0 ETH | 0.0195404 | ||||
Execute | 12702071 | 1316 days ago | IN | 0 ETH | 0.00036993 | ||||
Execute | 12702070 | 1316 days ago | IN | 0 ETH | 0.00931284 | ||||
Execute | 12695643 | 1317 days ago | IN | 0 ETH | 0.00036979 | ||||
Execute | 12689200 | 1318 days ago | IN | 0 ETH | 0.03738165 | ||||
Execute | 12682789 | 1319 days ago | IN | 0 ETH | 0.02455203 | ||||
Execute | 12676378 | 1320 days ago | IN | 0 ETH | 0.0618034 | ||||
Execute | 12669949 | 1321 days ago | IN | 0 ETH | 0.01028445 | ||||
Execute | 12663508 | 1322 days ago | IN | 0 ETH | 0.00043703 | ||||
Execute | 12657102 | 1323 days ago | IN | 0 ETH | 0.01019499 | ||||
Execute | 12650671 | 1324 days ago | IN | 0 ETH | 0.01104457 | ||||
Execute | 12644227 | 1325 days ago | IN | 0 ETH | 0.00040341 | ||||
Execute | 12637798 | 1326 days ago | IN | 0 ETH | 0.01114149 | ||||
Execute | 12631394 | 1327 days ago | IN | 0 ETH | 0.01019499 | ||||
Execute | 12624989 | 1328 days ago | IN | 0 ETH | 0.00849583 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
13041381 | 1263 days ago | 0.80233907 ETH | ||||
13041381 | 1263 days ago | 0.05495473 ETH | ||||
13041381 | 1263 days ago | 0.24180081 ETH | ||||
13041381 | 1263 days ago | 1.09909462 ETH | ||||
13034981 | 1264 days ago | 0.84418224 ETH | ||||
13034981 | 1264 days ago | 0.0578207 ETH | ||||
13034981 | 1264 days ago | 0.25441108 ETH | ||||
13034981 | 1264 days ago | 1.15641403 ETH | ||||
13028579 | 1265 days ago | 0.82116471 ETH | ||||
13028579 | 1265 days ago | 0.05624415 ETH | ||||
13028579 | 1265 days ago | 0.24747429 ETH | ||||
13028579 | 1265 days ago | 1.12488317 ETH | ||||
13022175 | 1266 days ago | 0.84764356 ETH | ||||
13022175 | 1266 days ago | 0.05805777 ETH | ||||
13022175 | 1266 days ago | 0.25545422 ETH | ||||
13022175 | 1266 days ago | 0.02369705 ETH | ||||
13022175 | 1266 days ago | 1.18485262 ETH | ||||
13022168 | 1266 days ago | 0.84879519 ETH | ||||
13022168 | 1266 days ago | 0.05813665 ETH | ||||
13022168 | 1266 days ago | 0.25580129 ETH | ||||
13022168 | 1266 days ago | 1.16273313 ETH | ||||
13015768 | 1267 days ago | 0.92003036 ETH | ||||
13015768 | 1267 days ago | 0.06301577 ETH | ||||
13015768 | 1267 days ago | 0.27726942 ETH | ||||
13015768 | 1267 days ago | 1.26031556 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x0da367ac...7De9Bf2cf The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
FixedInflation
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-22 */ // File: contracts\fixed-inflation\FixedInflationData.sol //SPDX-License-Identifier: MIT pragma solidity ^0.7.6; struct FixedInflationEntry { string name; uint256 blockInterval; uint256 lastBlock; uint256 callerRewardPercentage; } struct FixedInflationOperation { address inputTokenAddress; uint256 inputTokenAmount; bool inputTokenAmountIsPercentage; bool inputTokenAmountIsByMint; address ammPlugin; address[] liquidityPoolAddresses; address[] swapPath; bool enterInETH; bool exitInETH; address[] receivers; uint256[] receiversPercentages; } // File: contracts\fixed-inflation\IFixedInflationExtension.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; pragma abicoder v2; interface IFixedInflationExtension { function init(address host) external; function setHost(address host) external; function data() external view returns(address fixedInflationContract, address host); function receiveTokens(address[] memory tokenAddresses, uint256[] memory transferAmounts, uint256[] memory amountsToMint) external; function flushBack(address[] memory tokenAddresses) external; function deactivationByFailure() external; function setEntry(FixedInflationEntry memory entryData, FixedInflationOperation[] memory operations) external; function active() external view returns(bool); function setActive(bool _active) external; } // File: contracts\fixed-inflation\util\IERC20.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; interface IERC20 { function totalSupply() external view returns(uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function decimals() external view returns (uint8); } // File: contracts\amm-aggregator\common\AMMData.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; struct LiquidityPoolData { address liquidityPoolAddress; uint256 amount; address tokenAddress; bool amountIsLiquidityPool; bool involvingETH; address receiver; } struct SwapData { bool enterInETH; bool exitInETH; address[] liquidityPoolAddresses; address[] path; address inputToken; uint256 amount; address receiver; } // File: contracts\amm-aggregator\common\IAMM.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; //pragma abicoder v2; interface IAMM { event NewLiquidityPoolAddress(address indexed); function info() external view returns(string memory name, uint256 version); function data() external view returns(address ethereumAddress, uint256 maxTokensPerLiquidityPool, bool hasUniqueLiquidityPools); function balanceOf(address liquidityPoolAddress, address owner) external view returns(uint256, uint256[] memory, address[] memory); function byLiquidityPool(address liquidityPoolAddress) external view returns(uint256, uint256[] memory, address[] memory); function byTokens(address[] calldata liquidityPoolTokens) external view returns(uint256, uint256[] memory, address, address[] memory); function byPercentage(address liquidityPoolAddress, uint256 numerator, uint256 denominator) external view returns (uint256, uint256[] memory, address[] memory); function byLiquidityPoolAmount(address liquidityPoolAddress, uint256 liquidityPoolAmount) external view returns(uint256[] memory, address[] memory); function byTokenAmount(address liquidityPoolAddress, address tokenAddress, uint256 tokenAmount) external view returns(uint256, uint256[] memory, address[] memory); function createLiquidityPoolAndAddLiquidity(address[] calldata tokenAddresses, uint256[] calldata amounts, bool involvingETH, address receiver) external payable returns(uint256, uint256[] memory, address, address[] memory); function addLiquidity(LiquidityPoolData calldata data) external payable returns(uint256, uint256[] memory, address[] memory); function addLiquidityBatch(LiquidityPoolData[] calldata data) external payable returns(uint256[] memory, uint256[][] memory, address[][] memory); function removeLiquidity(LiquidityPoolData calldata data) external returns(uint256, uint256[] memory, address[] memory); function removeLiquidityBatch(LiquidityPoolData[] calldata data) external returns(uint256[] memory, uint256[][] memory, address[][] memory); function getSwapOutput(address tokenAddress, uint256 tokenAmount, address[] calldata, address[] calldata path) view external returns(uint256[] memory); function swapLiquidity(SwapData calldata data) external payable returns(uint256); function swapLiquidityBatch(SwapData[] calldata data) external payable returns(uint256[] memory); } // File: contracts\fixed-inflation\IFixedInflationFactory.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; interface IFixedInflationFactory { event ExtensionCloned(address indexed); function fixedInflationDefaultExtension() external view returns (address); function feePercentageInfo() external view returns (uint256, address); function cloneFixedInflationDefaultExtension() external returns(address clonedExtension); } // File: contracts\fixed-inflation\IFixedInflation.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; //pragma abicoder v2; interface IFixedInflation { function setEntry(FixedInflationEntry memory entryData, FixedInflationOperation[] memory operations) external; function flushBack(address[] memory tokenAddresses) external; } // File: contracts\fixed-inflation\FixedInflation.sol //SPDX_License_Identifier: MIT pragma solidity ^0.7.6; //pragma abicoder v2; contract FixedInflation is IFixedInflation { event Executed(bool); uint256 public constant ONE_HUNDRED = 1e18; address public _factory; mapping(address => uint256) private _tokenIndex; address[] private _tokensToTransfer; uint256[] private _tokenTotalSupply; uint256[] private _tokenAmounts; uint256[] private _tokenMintAmounts; uint256[] private _tokenBalanceOfBefore; address public extension; FixedInflationEntry private _entry; FixedInflationOperation[] private _operations; function init(address _extension, bytes memory extensionPayload, FixedInflationEntry memory newEntry, FixedInflationOperation[] memory newOperations) public returns(bytes memory extensionInitResult) { require(_factory == address(0), "Already init"); require(_extension != address(0), "Blank extension"); _factory = msg.sender; extension = _extension; if(_extension == address(0)) { _extension = _clone(IFixedInflationFactory(_factory).fixedInflationDefaultExtension()); } if(keccak256(extensionPayload) != keccak256("")) { extensionInitResult = _call(_extension, extensionPayload); } _set(newEntry, newOperations); } receive() external payable { } modifier extensionOnly() { require(msg.sender == extension, "Unauthorized"); _; } modifier activeExtensionOnly() { require(IFixedInflationExtension(extension).active(), "not active extension"); _; } function entry() public view returns(FixedInflationEntry memory, FixedInflationOperation[] memory) { return (_entry, _operations); } function setEntry(FixedInflationEntry memory newEntry, FixedInflationOperation[] memory newOperations) public override extensionOnly { _set(newEntry, newOperations); } function nextBlock() public view returns(uint256) { return _entry.lastBlock == 0 ? block.number : (_entry.lastBlock + _entry.blockInterval); } function flushBack(address[] memory tokenAddresses) public override extensionOnly { for(uint256 i = 0; i < tokenAddresses.length; i++) { _transferTo(tokenAddresses[i], extension, _balanceOf(tokenAddresses[i])); } } function execute(bool earnByAmounts) public activeExtensionOnly returns(bool executed) { require(block.number >= nextBlock(), "Too early to execute"); require(_operations.length > 0, "No operations"); emit Executed(executed = _ensureExecute()); if(executed) { _entry.lastBlock = block.number; _execute(earnByAmounts, msg.sender); } else { try IFixedInflationExtension(extension).deactivationByFailure() { } catch { } } _clearVars(); } function _ensureExecute() private returns(bool) { _collectFixedInflationOperationsTokens(); try IFixedInflationExtension(extension).receiveTokens(_tokensToTransfer, _tokenAmounts, _tokenMintAmounts) { } catch { return false; } for(uint256 i = 0; i < _tokensToTransfer.length; i++) { if(_balanceOf(_tokensToTransfer[i]) != (_tokenBalanceOfBefore[i] + _tokenAmounts[i] + _tokenMintAmounts[i])) { return false; } } return true; } function _collectFixedInflationOperationsTokens() private { for(uint256 i = 0; i < _operations.length; i++) { FixedInflationOperation memory operation = _operations[i]; _collectTokenData(operation.ammPlugin != address(0) && operation.enterInETH ? address(0) : operation.inputTokenAddress, operation.inputTokenAmount, operation.inputTokenAmountIsPercentage, operation.inputTokenAmountIsByMint); } } function _collectTokenData(address inputTokenAddress, uint256 inputTokenAmount, bool inputTokenAmountIsPercentage, bool inputTokenAmountIsByMint) private { if(inputTokenAmount == 0) { return; } uint256 position = _tokenIndex[inputTokenAddress]; if(_tokensToTransfer.length == 0 || _tokensToTransfer[position] != inputTokenAddress) { _tokenIndex[inputTokenAddress] = (position = _tokensToTransfer.length); _tokensToTransfer.push(inputTokenAddress); _tokenAmounts.push(0); _tokenMintAmounts.push(0); _tokenBalanceOfBefore.push(_balanceOf(inputTokenAddress)); _tokenTotalSupply.push(0); } uint256 amount = _calculateTokenAmount(inputTokenAddress, inputTokenAmount, inputTokenAmountIsPercentage); if(inputTokenAmountIsByMint) { _tokenMintAmounts[position] = _tokenMintAmounts[position] + amount; } else { _tokenAmounts[position] = _tokenAmounts[position] + amount; } } function _balanceOf(address tokenAddress) private view returns (uint256) { if(tokenAddress == address(0)) { return address(this).balance; } return IERC20(tokenAddress).balanceOf(address(this)); } function _calculateTokenAmount(address tokenAddress, uint256 tokenAmount, bool tokenAmountIsPercentage) private returns(uint256) { if(!tokenAmountIsPercentage) { return tokenAmount; } uint256 tokenIndex = _tokenIndex[tokenAddress]; _tokenTotalSupply[tokenIndex] = _tokenTotalSupply[tokenIndex] != 0 ? _tokenTotalSupply[tokenIndex] : IERC20(tokenAddress).totalSupply(); return (_tokenTotalSupply[tokenIndex] * ((tokenAmount * 1e18) / ONE_HUNDRED)) / 1e18; } function _clearVars() private { for(uint256 i = 0; i < _tokensToTransfer.length; i++) { delete _tokenIndex[_tokensToTransfer[i]]; } delete _tokensToTransfer; delete _tokenTotalSupply; delete _tokenAmounts; delete _tokenMintAmounts; delete _tokenBalanceOfBefore; } function _execute(bool earnByInput, address rewardReceiver) private { for(uint256 i = 0 ; i < _operations.length; i++) { FixedInflationOperation memory operation = _operations[i]; uint256 amountIn = _calculateTokenAmount(operation.inputTokenAddress, operation.inputTokenAmount, operation.inputTokenAmountIsPercentage); if(operation.ammPlugin == address(0)) { _transferTo(operation.inputTokenAddress, amountIn, rewardReceiver, _entry.callerRewardPercentage, operation.receivers, operation.receiversPercentages); } else { _swap(operation, amountIn, rewardReceiver, _entry.callerRewardPercentage, earnByInput); } } } function _swap(FixedInflationOperation memory operation, uint256 amountIn, address rewardReceiver, uint256 callerRewardPercentage, bool earnByInput) private { uint256 inputReward = earnByInput ? _calculateRewardPercentage(amountIn, callerRewardPercentage) : 0; (address ethereumAddress,,) = IAMM(operation.ammPlugin).data(); if(operation.exitInETH) { operation.swapPath[operation.swapPath.length - 1] = ethereumAddress; } address outputToken = operation.swapPath[operation.swapPath.length - 1]; SwapData memory swapData = SwapData( operation.enterInETH, operation.exitInETH, operation.liquidityPoolAddresses, operation.swapPath, operation.enterInETH ? ethereumAddress : operation.inputTokenAddress, amountIn - inputReward, address(this) ); if(swapData.inputToken != address(0) && !swapData.enterInETH) { _safeApprove(swapData.inputToken, operation.ammPlugin, swapData.amount); } uint256 amountOut; if(swapData.enterInETH) { amountOut = IAMM(operation.ammPlugin).swapLiquidity{value : amountIn}(swapData); } else { amountOut = IAMM(operation.ammPlugin).swapLiquidity(swapData); } if(earnByInput) { _transferTo(operation.enterInETH ? address(0) : operation.inputTokenAddress, rewardReceiver, inputReward); } _transferTo(operation.exitInETH ? address(0) : outputToken, amountOut, earnByInput ? address(0) : rewardReceiver, earnByInput ? 0 : callerRewardPercentage, operation.receivers, operation.receiversPercentages); } function _calculateRewardPercentage(uint256 totalAmount, uint256 rewardPercentage) private pure returns (uint256) { return (totalAmount * ((rewardPercentage * 1e18) / ONE_HUNDRED)) / 1e18; } function _transferTo(address erc20TokenAddress, uint256 totalAmount, address rewardReceiver, uint256 callerRewardPercentage, address[] memory receivers, uint256[] memory receiversPercentages) private { uint256 availableAmount = totalAmount; uint256 currentPartialAmount = rewardReceiver == address(0) ? 0 : _calculateRewardPercentage(availableAmount, callerRewardPercentage); _transferTo(erc20TokenAddress, rewardReceiver, currentPartialAmount); availableAmount -= currentPartialAmount; (uint256 dfoFeePercentage, address dfoWallet) = IFixedInflationFactory(_factory).feePercentageInfo(); currentPartialAmount = dfoFeePercentage == 0 || dfoWallet == address(0) ? 0 : _calculateRewardPercentage(availableAmount, dfoFeePercentage); _transferTo(erc20TokenAddress, dfoWallet, currentPartialAmount); availableAmount -= currentPartialAmount; uint256 stillAvailableAmount = availableAmount; for(uint256 i = 0; i < receivers.length - 1; i++) { _transferTo(erc20TokenAddress, receivers[i], currentPartialAmount = _calculateRewardPercentage(stillAvailableAmount, receiversPercentages[i])); availableAmount -= currentPartialAmount; } _transferTo(erc20TokenAddress, receivers[receivers.length - 1], availableAmount); } function _transferTo(address erc20TokenAddress, address to, uint256 value) private { if(value == 0) { return; } if(erc20TokenAddress == address(0)) { (bool result,) = to.call{value:value}(""); require(result, "ETH transfer failed"); return; } _safeTransfer(erc20TokenAddress, to, value); } function _safeApprove(address erc20TokenAddress, address to, uint256 value) internal { bytes memory returnData = _call(erc20TokenAddress, abi.encodeWithSelector(IERC20(erc20TokenAddress).approve.selector, to, value)); require(returnData.length == 0 || abi.decode(returnData, (bool)), 'APPROVE_FAILED'); } function _safeTransfer(address erc20TokenAddress, address to, uint256 value) private { bytes memory returnData = _call(erc20TokenAddress, abi.encodeWithSelector(IERC20(erc20TokenAddress).transfer.selector, to, value)); require(returnData.length == 0 || abi.decode(returnData, (bool)), 'TRANSFER_FAILED'); } function _call(address location, bytes memory payload) private returns(bytes memory returnData) { assembly { let result := call(gas(), location, 0, add(payload, 0x20), mload(payload), 0, 0) let size := returndatasize() returnData := mload(0x40) mstore(returnData, size) let returnDataPayloadStart := add(returnData, 0x20) returndatacopy(returnDataPayloadStart, 0, size) mstore(0x40, add(returnDataPayloadStart, size)) switch result case 0 {revert(returnDataPayloadStart, size)} } } function _set(FixedInflationEntry memory fixedInflationEntry, FixedInflationOperation[] memory operations) private { require(keccak256(bytes(fixedInflationEntry.name)) != keccak256(""), "Name"); require(fixedInflationEntry.blockInterval > 0, "Interval"); require(fixedInflationEntry.callerRewardPercentage < ONE_HUNDRED, "Percentage"); _entry = fixedInflationEntry; _setOperations(operations); } function _setOperations(FixedInflationOperation[] memory operations) private { delete _operations; for(uint256 i = 0; i < operations.length; i++) { FixedInflationOperation memory operation = operations[i]; require(operation.receivers.length > 0, "No receivers"); require(operation.receiversPercentages.length == (operation.receivers.length - 1), "Last receiver percentage is calculated automatically"); uint256 percentage = 0; for(uint256 j = 0; j < operation.receivers.length - 1; j++) { percentage += operation.receiversPercentages[j]; require(operation.receivers[j] != address(0), "Void receiver"); } require(operation.receivers[operation.receivers.length - 1] != address(0), "Void receiver"); require(percentage < ONE_HUNDRED, "More than one hundred"); _operations.push(operation); } } /** @dev clones the input contract address and returns the copied contract address. * @param original address of the original contract. * @return copy copied contract address. */ function _clone(address original) private returns (address copy) { assembly { mstore( 0, or( 0x5880730000000000000000000000000000000000000000803b80938091923cF3, mul(original, 0x1000000000000000000) ) ) copy := create(0, 0, 32) switch extcodesize(copy) case 0 { invalid() } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"Executed","type":"event"},{"inputs":[],"name":"ONE_HUNDRED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"entry","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"blockInterval","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"callerRewardPercentage","type":"uint256"}],"internalType":"struct FixedInflationEntry","name":"","type":"tuple"},{"components":[{"internalType":"address","name":"inputTokenAddress","type":"address"},{"internalType":"uint256","name":"inputTokenAmount","type":"uint256"},{"internalType":"bool","name":"inputTokenAmountIsPercentage","type":"bool"},{"internalType":"bool","name":"inputTokenAmountIsByMint","type":"bool"},{"internalType":"address","name":"ammPlugin","type":"address"},{"internalType":"address[]","name":"liquidityPoolAddresses","type":"address[]"},{"internalType":"address[]","name":"swapPath","type":"address[]"},{"internalType":"bool","name":"enterInETH","type":"bool"},{"internalType":"bool","name":"exitInETH","type":"bool"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"receiversPercentages","type":"uint256[]"}],"internalType":"struct FixedInflationOperation[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"earnByAmounts","type":"bool"}],"name":"execute","outputs":[{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extension","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]"}],"name":"flushBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_extension","type":"address"},{"internalType":"bytes","name":"extensionPayload","type":"bytes"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"blockInterval","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"callerRewardPercentage","type":"uint256"}],"internalType":"struct FixedInflationEntry","name":"newEntry","type":"tuple"},{"components":[{"internalType":"address","name":"inputTokenAddress","type":"address"},{"internalType":"uint256","name":"inputTokenAmount","type":"uint256"},{"internalType":"bool","name":"inputTokenAmountIsPercentage","type":"bool"},{"internalType":"bool","name":"inputTokenAmountIsByMint","type":"bool"},{"internalType":"address","name":"ammPlugin","type":"address"},{"internalType":"address[]","name":"liquidityPoolAddresses","type":"address[]"},{"internalType":"address[]","name":"swapPath","type":"address[]"},{"internalType":"bool","name":"enterInETH","type":"bool"},{"internalType":"bool","name":"exitInETH","type":"bool"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"receiversPercentages","type":"uint256[]"}],"internalType":"struct FixedInflationOperation[]","name":"newOperations","type":"tuple[]"}],"name":"init","outputs":[{"internalType":"bytes","name":"extensionInitResult","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"blockInterval","type":"uint256"},{"internalType":"uint256","name":"lastBlock","type":"uint256"},{"internalType":"uint256","name":"callerRewardPercentage","type":"uint256"}],"internalType":"struct FixedInflationEntry","name":"newEntry","type":"tuple"},{"components":[{"internalType":"address","name":"inputTokenAddress","type":"address"},{"internalType":"uint256","name":"inputTokenAmount","type":"uint256"},{"internalType":"bool","name":"inputTokenAmountIsPercentage","type":"bool"},{"internalType":"bool","name":"inputTokenAmountIsByMint","type":"bool"},{"internalType":"address","name":"ammPlugin","type":"address"},{"internalType":"address[]","name":"liquidityPoolAddresses","type":"address[]"},{"internalType":"address[]","name":"swapPath","type":"address[]"},{"internalType":"bool","name":"enterInETH","type":"bool"},{"internalType":"bool","name":"exitInETH","type":"bool"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"receiversPercentages","type":"uint256[]"}],"internalType":"struct FixedInflationOperation[]","name":"newOperations","type":"tuple[]"}],"name":"setEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x60806040526004361061008a5760003560e01c80639b8c7c22116100595780639b8c7c2214610133578063bfaa8cca14610155578063c5cc6b6a1461016a578063c854862b1461017f578063f811a30b1461019f57610091565b80632d5537b01461009657806367f239dd146100c157806383788fce146100e4578063972213ad1461010657610091565b3661009157005b600080fd5b3480156100a257600080fd5b506100ab6101cc565b6040516100b891906126e0565b60405180910390f35b3480156100cd57600080fd5b506100d66101db565b6040516100b8929190612a4f565b3480156100f057600080fd5b506100f96104ef565b6040516100b89190612c50565b34801561011257600080fd5b506101266101213660046124fe565b61050e565b6040516100b89190612787565b34801561013f57600080fd5b5061015361014e366004612536565b6106c0565b005b34801561016157600080fd5b506100f96106f8565b34801561017657600080fd5b506100ab610704565b34801561018b57600080fd5b5061015361019a3660046124cb565b610713565b3480156101ab57600080fd5b506101bf6101ba3660046123dc565b61079f565b6040516100b89190612792565b6007546001600160a01b031681565b6101e3611e6b565b604080516008805460a06020601f600260001961010060018716150201909416939093049283018190040284018101909452608083018181526060949293600c939092859284929091849184018282801561027f5780601f106102545761010080835404028352916020019161027f565b820191906000526020600020905b81548152906001019060200180831161026257829003601f168201915b505050505081526020016001820154815260200160028201548152602001600382015481525050915080805480602002602001604051908101604052809291908181526020016000905b828210156104e157600084815260209081902060408051610160810182526008860290920180546001600160a01b039081168452600182015484860152600282015460ff808216151586860152610100820416151560608601526201000090041660808401526003810180548351818702810187019094528084529394919360a08601939283018282801561038757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610369575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156103e957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103cb575b5050509183525050600582015460ff8082161515602080850191909152610100909204161515604080840191909152600684018054825181850281018501909352808352606090940193919290919083018282801561047157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610453575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156104c957602002820191906000526020600020905b8154815260200190600101908083116104b5575b505050505081525050815260200190600101906102c9565b505050509050915091509091565b600a546000901561050657600954600a5401610508565b435b90505b90565b6007546040805163017d862f60e11b815290516000926001600160a01b0316916302fb0c5e916004808301926020929190829003018186803b15801561055357600080fd5b505afa158015610567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058b919061251a565b6105b05760405162461bcd60e51b81526004016105a7906127a5565b60405180910390fd5b6105b86104ef565b4310156105d75760405162461bcd60e51b81526004016105a790612a21565b600c546105f65760405162461bcd60e51b81526004016105a7906128f0565b7f80e57eda879f13a99b66f28d0393488a683e123e369db82e85ccc3dcb2fd6cb261061f6108f0565b91508160405161062f9190612787565b60405180910390a180156106505743600a5561064b8233610a07565b6106b3565b600760009054906101000a90046001600160a01b03166001600160a01b031663a65b99086040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a057600080fd5b505af19250505080156106b1575060015b505b6106bb610c9c565b919050565b6007546001600160a01b031633146106ea5760405162461bcd60e51b81526004016105a7906127d3565b6106f48282610d26565b5050565b670de0b6b3a764000081565b6000546001600160a01b031681565b6007546001600160a01b0316331461073d5760405162461bcd60e51b81526004016105a7906127d3565b60005b81518110156106f45761079782828151811061075857fe5b6020026020010151600760009054906101000a90046001600160a01b031661079285858151811061078557fe5b6020026020010151610e02565b610e9b565b600101610740565b6000546060906001600160a01b0316156107cb5760405162461bcd60e51b81526004016105a7906129a6565b6001600160a01b0385166107f15760405162461bcd60e51b81526004016105a7906128a3565b600080546001600160a01b03199081163317909155600780546001600160a01b0388169216821790556108a457600054604080516354c05cef60e11b815290516108a1926001600160a01b03169163a980b9de916004808301926020929190829003018186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c91906123c0565b610f40565b94505b835160208501207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470146108de576108db8585610f82565b90505b6108e88383610d26565b949350505050565b60006108fa610fc4565b60075460405163eb26061960e01b81526001600160a01b039091169063eb2606199061093090600290600490600590820161270d565b600060405180830381600087803b15801561094a57600080fd5b505af192505050801561095b575060015b6109675750600061050b565b60005b6002548110156109ff576005818154811061098157fe5b90600052602060002001546004828154811061099957fe5b9060005260206000200154600683815481106109b157fe5b906000526020600020015401016109e8600283815481106109ce57fe5b6000918252602090912001546001600160a01b0316610e02565b146109f757600091505061050b565b60010161096a565b506001905090565b60005b600c54811015610c97576000600c8281548110610a2357fe5b60009182526020918290206040805161016081018252600890930290910180546001600160a01b039081168452600182015484860152600282015460ff808216151586860152610100820416151560608601526201000090041660808401526003810180548351818702810187019094528084529394919360a086019392830182828015610ada57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610abc575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020018280548015610b3c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b1e575b5050509183525050600582015460ff80821615156020808501919091526101009092041615156040808401919091526006840180548251818502810185019093528083526060909401939192909190830182828015610bc457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ba6575b5050505050815260200160078201805480602002602001604051908101604052809291908181526020018280548015610c1c57602002820191906000526020600020905b815481526020019060010190808311610c08575b50505050508152505090506000610c4082600001518360200151846040015161123d565b60808301519091506001600160a01b0316610c7b57610c7682600001518286600860030154866101200151876101400151611367565b610c8d565b610c8d828286600860030154896114e2565b5050600101610a0a565b505050565b60005b600254811015610ce7576001600060028381548110610cba57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001812055600101610c9f565b50610cf460026000611e93565b610d0060036000611e93565b610d0c60046000611e93565b610d1860056000611e93565b610d2460066000611e93565b565b815180516020909101207fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4701415610d6f5760405162461bcd60e51b81526004016105a790612917565b6000826020015111610d935760405162461bcd60e51b81526004016105a790612984565b670de0b6b3a7640000826060015110610dbe5760405162461bcd60e51b81526004016105a7906128cc565b815180518391600891610dd8918391602090910190611eb1565b5060208201516001820155604082015160028201556060909101516003909101556106f48161181d565b60006001600160a01b038216610e195750476106bb565b6040516370a0823160e01b81526001600160a01b038316906370a0823190610e459030906004016126e0565b60206040518083038186803b158015610e5d57600080fd5b505afa158015610e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e959190612597565b92915050565b80610ea557610c97565b6001600160a01b038316610f35576000826001600160a01b031682604051610ecc9061050b565b60006040518083038185875af1925050503d8060008114610f09576040519150601f19603f3d011682016040523d82523d6000602084013e610f0e565b606091505b5050905080610f2f5760405162461bcd60e51b81526004016105a7906129cc565b50610c97565b610c97838383611b55565b60006901000000000000000000820268803b80938091923cf36258807360e81b01176000526020600080f09050803b8015610f7a57610f7c565bfe5b50919050565b60606000808351602085016000875af13d604051925080835260208301816000823e808201604052828015610fb657610fba565b8282fd5b5050505092915050565b60005b600c5481101561123a576000600c8281548110610fe057fe5b60009182526020918290206040805161016081018252600890930290910180546001600160a01b039081168452600182015484860152600282015460ff808216151586860152610100820416151560608601526201000090041660808401526003810180548351818702810187019094528084529394919360a08601939283018282801561109757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611079575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156110f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110db575b5050509183525050600582015460ff8082161515602080850191909152610100909204161515604080840191909152600684018054825181850281018501909352808352606090940193919290919083018282801561118157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611163575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156111d957602002820191906000526020600020905b8154815260200190600101908083116111c5575b505050505081525050905061123160006001600160a01b031682608001516001600160a01b03161415801561120f57508160e001515b61121a57815161121d565b60005b826020015183604001518460600151611bf0565b50600101610fc7565b50565b60008161124b575081611360565b6001600160a01b038416600090815260016020526040902054600380548290811061127257fe5b9060005260206000200154600014156112fb57846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f69190612597565b611314565b6003818154811061130857fe5b90600052602060002001545b6003828154811061132157fe5b600091825260209091200155670de0b6b3a764000080858102046003838154811061134857fe5b9060005260206000200154028161135b57fe5b049150505b9392505050565b8460006001600160a01b03861615611388576113838286611dec565b61138b565b60005b9050611398888783610e9b565b6000805460408051631f9de8b560e21b81528151958590039584936001600160a01b031692637e77a2d49260048082019391829003018186803b1580156113de57600080fd5b505afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141691906125af565b91509150816000148061143057506001600160a01b038116155b6114435761143e8483611dec565b611446565b60005b92506114538a8285610e9b565b92829003928360005b60018851038110156114b2576114a58c89838151811061147857fe5b602002602001015161149d858b868151811061149057fe5b6020026020010151611dec565b975087610e9b565b948490039460010161145c565b506114d58b8860018a5103815181106114c757fe5b602002602001015187610e9b565b5050505050505050505050565b6000816114f05760006114fa565b6114fa8584611dec565b9050600086608001516001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040160606040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190612489565b50509050866101000151156115bb5760c08701518051829190600019810190811061159a57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b60c087015180516000919060001981019081106115d457fe5b6020026020010151905060006040518060e001604052808a60e00151151581526020018a6101000151151581526020018a60a0015181526020018a60c0015181526020018a60e00151611628578a5161162a565b845b6001600160a01b03168152602001858a038152602001306001600160a01b0316815250905060006001600160a01b031681608001516001600160a01b03161415801561167557508051155b156116915761169181608001518a608001518360a00151611e0d565b8051600090156117255789608001516001600160a01b0316635ff94cbf8a846040518363ffffffff1660e01b81526004016116cc9190612bc5565b6020604051808303818588803b1580156116e557600080fd5b505af11580156116f9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061171e9190612597565b90506117aa565b89608001516001600160a01b0316635ff94cbf836040518263ffffffff1660e01b81526004016117559190612bc5565b602060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a79190612597565b90505b85156117cd576117cd8a60e001516117c3578a516117c6565b60005b8987610e9b565b6118118a61010001516117e057836117e3565b60005b82886117ef578a6117f2565b60005b896117fd578a611800565b60005b8e61012001518f6101400151611367565b50505050505050505050565b611829600c6000611f3d565b60005b81518110156106f457600082828151811061184357fe5b60200260200101519050600081610120015151116118735760405162461bcd60e51b81526004016105a79061295e565b6001816101200151510381610140015151146118a15760405162461bcd60e51b81526004016105a79061284f565b6000805b600183610120015151038110156119265782610140015181815181106118c757fe5b60200260200101518201915060006001600160a01b031683610120015182815181106118ef57fe5b60200260200101516001600160a01b0316141561191e5760405162461bcd60e51b81526004016105a7906127f9565b6001016118a5565b50610120820151805160009190600019810190811061194157fe5b60200260200101516001600160a01b031614156119705760405162461bcd60e51b81526004016105a7906127f9565b670de0b6b3a764000081106119975760405162461bcd60e51b81526004016105a790612820565b600c8054600181018255600091909152825160089091027fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7810180546001600160a01b039384166001600160a01b03199091161781556020808601517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c884015560408601517fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c984018054606089015160808a0151909716620100000262010000600160b01b03199715156101000261ff001994151560ff19909316929092179390931617959095161790935560a0850151805186949293611abe937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8ca909101920190611f5e565b5060c08201518051611ada916004840191602090910190611f5e565b5060e08201516005820180546101008086015115150261ff001993151560ff1990921691909117929092169190911790556101208201518051611b27916006840191602090910190611f5e565b506101408201518051611b44916007840191602090910190611fb3565b50506001909301925061182c915050565b6000611bad8463a9059cbb60e01b8585604051602401611b769291906126f4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610f82565b9050805160001480611bce575080806020019051810190611bce919061251a565b611bea5760405162461bcd60e51b81526004016105a790612935565b50505050565b82611bfa57611bea565b6001600160a01b0384166000908152600160205260409020546002541580611c4c5750846001600160a01b031660028281548110611c3457fe5b6000918252602090912001546001600160a01b031614155b15611d635750600280546001600160a01b038616600081815260016020819052604082208490558084019094557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace830180546001600160a01b031916909217909155600480548085019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0181905560058054938401815581527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909201919091556006611d1b86610e02565b8154600181810184556000938452602084209091019190915560038054918201815582527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01555b6000611d7086868661123d565b90508215611db0578060058381548110611d8657fe5b90600052602060002001540160058381548110611d9f57fe5b600091825260209091200155611de4565b8060048381548110611dbe57fe5b90600052602060002001540160048381548110611dd757fe5b6000918252602090912001555b505050505050565b6000670de0b6b3a76400008083810204840281611e0557fe5b049392505050565b6000611e2e8463095ea7b360e01b8585604051602401611b769291906126f4565b9050805160001480611e4f575080806020019051810190611e4f919061251a565b611bea5760405162461bcd60e51b81526004016105a7906129f9565b6040518060800160405280606081526020016000815260200160008152602001600081525090565b508054600082559060005260206000209081019061123a9190611fed565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611ee75760008555611f2d565b82601f10611f0057805160ff1916838001178555611f2d565b82800160010185558215611f2d579182015b82811115611f2d578251825591602001919060010190611f12565b50611f39929150611fed565b5090565b508054600082556008029060005260206000209081019061123a9190612002565b828054828255906000526020600020908101928215611f2d579160200282015b82811115611f2d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611f7e565b828054828255906000526020600020908101928215611f2d5791602002820182811115611f2d578251825591602001919060010190611f12565b5b80821115611f395760008155600101611fee565b80821115611f395780546001600160a01b03191681556000600182018190556002820180546001600160b01b03191690556120406003830182611e93565b61204e600483016000611e93565b60058201805461ffff19169055612069600683016000611e93565b612077600783016000611e93565b50600801612002565b600067ffffffffffffffff83111561209457fe5b6120a7601f8401601f1916602001612c59565b90508281528383830111156120bb57600080fd5b828260208301376000602084830101529392505050565b80356106bb81612c9b565b600082601f8301126120ed578081fd5b813560206121026120fd83612c7d565b612c59565b828152818101908583018385028701840188101561211e578586fd5b855b8581101561214557813561213381612c9b565b84529284019290840190600101612120565b5090979650505050505050565b600082601f830112612162578081fd5b813560206121726120fd83612c7d565b82815281810190858301855b85811015612145578135880161016080601f19838d0301121561219f578889fd5b6121a881612c59565b6121b38884016120d2565b81526040830135888201526121ca60608401612325565b60408201526121db60808401612325565b60608201526121ec60a084016120d2565b608082015260c083013567ffffffffffffffff8082111561220b578b8cfd5b6122198e8b848801016120dd565b60a084015260e0850135915080821115612231578b8cfd5b61223f8e8b848801016120dd565b60c08401526122516101008601612325565b60e08401526122636101208601612325565b6101008401526101409150818501358181111561227e578c8dfd5b61228c8f8c838901016120dd565b610120850152509284013592808411156122a4578b8cfd5b506122b38d8a858701016122cb565b9082015286525050928401929084019060010161217e565b600082601f8301126122db578081fd5b813560206122eb6120fd83612c7d565b8281528181019085830183850287018401881015612307578586fd5b855b8581101561214557813584529284019290840190600101612309565b80356106bb81612cb0565b600060808284031215612341578081fd5b6040516080810167ffffffffffffffff828210818311171561235f57fe5b81604052829350843591508082111561237757600080fd5b508301601f8101851361238957600080fd5b61239885823560208401612080565b8252506020830135602082015260408301356040820152606083013560608201525092915050565b6000602082840312156123d1578081fd5b815161136081612c9b565b600080600080608085870312156123f1578283fd5b84356123fc81612c9b565b9350602085013567ffffffffffffffff80821115612418578485fd5b818701915087601f83011261242b578485fd5b61243a88833560208501612080565b9450604087013591508082111561244f578384fd5b61245b88838901612330565b93506060870135915080821115612470578283fd5b5061247d87828801612152565b91505092959194509250565b60008060006060848603121561249d578283fd5b83516124a881612c9b565b6020850151604086015191945092506124c081612cb0565b809150509250925092565b6000602082840312156124dc578081fd5b813567ffffffffffffffff8111156124f2578182fd5b6108e8848285016120dd565b60006020828403121561250f578081fd5b813561136081612cb0565b60006020828403121561252b578081fd5b815161136081612cb0565b60008060408385031215612548578182fd5b823567ffffffffffffffff8082111561255f578384fd5b61256b86838701612330565b93506020850135915080821115612580578283fd5b5061258d85828601612152565b9150509250929050565b6000602082840312156125a8578081fd5b5051919050565b600080604083850312156125c1578182fd5b8251915060208301516125d381612c9b565b809150509250929050565b6001600160a01b03169052565b6000815180845260208085019450808401835b838110156126235781516001600160a01b0316875295820195908201906001016125fe565b509495945050505050565b6000815180845260208085019450808401835b8381101561262357815187529582019590820190600101612641565b6000815480845260208085019450838352808320835b8381101561262357815487529582019560019182019101612673565b15159052565b60008151808452815b818110156126ba5760208185018101518683018201520161269e565b818111156126cb5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6000606082016060835280865480835260808501915087845260209250828420845b828110156127545781546001600160a01b03168452928401926001918201910161272f565b50505083810382850152612768818761265d565b915050828103604084015261277d818561265d565b9695505050505050565b901515815260200190565b6000602082526113606020830184612695565b6020808252601490820152733737ba1030b1ba34bb329032bc3a32b739b4b7b760611b604082015260600190565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b6020808252600d908201526c2b37b4b2103932b1b2b4bb32b960991b604082015260600190565b602080825260159082015274135bdc99481d1a185b881bdb99481a1d5b991c9959605a1b604082015260600190565b60208082526034908201527f4c6173742072656365697665722070657263656e746167652069732063616c63604082015273756c61746564206175746f6d61746963616c6c7960601b606082015260800190565b6020808252600f908201526e213630b7359032bc3a32b739b4b7b760891b604082015260600190565b6020808252600a908201526950657263656e7461676560b01b604082015260600190565b6020808252600d908201526c4e6f206f7065726174696f6e7360981b604082015260600190565b6020808252600490820152634e616d6560e01b604082015260600190565b6020808252600f908201526e1514905394d1915497d19052531151608a1b604082015260600190565b6020808252600c908201526b4e6f2072656365697665727360a01b604082015260600190565b602080825260089082015267125b9d195c9d985b60c21b604082015260600190565b6020808252600c908201526b105b1c9958591e481a5b9a5d60a21b604082015260600190565b602080825260139082015272115512081d1c985b9cd9995c8819985a5b1959606a1b604082015260600190565b6020808252600e908201526d1054141493d59157d1905253115160921b604082015260600190565b602080825260149082015273546f6f206561726c7920746f206578656375746560601b604082015260600190565b6000604080835260c0855160808084870152612a6d83870183612695565b9150602080890151606081818a0152868b0151848a0152808b0151915060a082818b0152898603848b01528592508a51808752848701935084858202880101858d018b5b83811015612bb157601f198a84030187528151610160612ad28583516125de565b898201518a8601528d820151612aea8f87018261268f565b5087820151612afb8987018261268f565b508a820151612b0c8c8701826125de565b50868201518188870152612b22828701826125eb565b9150508c8201518582038e870152612b3a82826125eb565b91505060e080830151612b4f8288018261268f565b505061010080830151612b648288018261268f565b50506101208083015186830382880152612b7e83826125eb565b925050506101408083015192508582038187015250612b9d818361262e565b988a01989450505090870190600101612ab1565b50909e9d5050505050505050505050505050565b600060208252825115156020830152602083015115156040830152604083015160e06060840152612bfa6101008401826125eb565b90506060840151601f19848303016080850152612c1782826125eb565b91505060018060a01b0360808501511660a084015260a084015160c084015260c0840151612c4860e08501826125de565b509392505050565b90815260200190565b60405181810167ffffffffffffffff81118282101715612c7557fe5b604052919050565b600067ffffffffffffffff821115612c9157fe5b5060209081020190565b6001600160a01b038116811461123a57600080fd5b801515811461123a57600080fdfea2646970667358221220be5f2d438a85e1c4931bd09dace6f37e3da1cdcbbed2808ff1ac0b6fe72e25cf64736f6c63430007060033
Deployed Bytecode Sourcemap
6152:14042:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6582:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7748:146;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;8091:156::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8513:567::-;;;;;;;;;;-1:-1:-1;8513:567:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7902:181::-;;;;;;;;;;-1:-1:-1;7902:181:0;;;;;:::i;:::-;;:::i;:::-;;6233:42;;;;;;;;;;;;;:::i;6284:23::-;;;;;;;;;;;;;:::i;8255:250::-;;;;;;;;;;-1:-1:-1;8255:250:0;;;;;:::i;:::-;;:::i;6710:728::-;;;;;;;;;;-1:-1:-1;6710:728:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6582:24::-;;;-1:-1:-1;;;;;6582:24:0;;:::o;7748:146::-;7785:26;;:::i;:::-;7858:28;;;7866:6;7858:28;;;;;;-1:-1:-1;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7813:32;;7866:6;;7874:11;;7858:28;;7866:6;;7858:28;;;;7866:6;;7858:28;;7866:6;7858:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;-1:-1:-1;;;7858:28:0;;;-1:-1:-1;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7858:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7748:146;;:::o;8091:156::-;8159:16;;8132:7;;8159:21;:80;;8218:20;;8199:16;;:39;8159:80;;;8183:12;8159:80;8152:87;;8091:156;;:::o;8513:567::-;7676:9;;7651:44;;;-1:-1:-1;;;7651:44:0;;;;8585:13;;-1:-1:-1;;;;;7676:9:0;;7651:42;;:44;;;;;;;;;;;;;;7676:9;7651:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7643:77;;;;-1:-1:-1;;;7643:77:0;;;;;;;:::i;:::-;;;;;;;;;8635:11:::1;:9;:11::i;:::-;8619:12;:27;;8611:60;;;;-1:-1:-1::0;;;8611:60:0::1;;;;;;;:::i;:::-;8690:11;:18:::0;8682:48:::1;;;;-1:-1:-1::0;;;8682:48:0::1;;;;;;;:::i;:::-;8746:37;8766:16;:14;:16::i;:::-;8755:27;;;8746:37;;;;;;:::i;:::-;;;;;;;;8797:8;8794:256;;;8841:12;8822:16:::0;:31;8868:35:::1;8877:13:::0;8892:10:::1;8868:8;:35::i;:::-;8794:256;;;8965:9;;;;;;;;;-1:-1:-1::0;;;;;8965:9:0::1;-1:-1:-1::0;;;;;8940:57:0::1;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8936:103:::0;::::1;9060:12;:10;:12::i;:::-;8513:567:::0;;;:::o;7902:181::-;7547:9;;-1:-1:-1;;;;;7547:9:0;7533:10;:23;7525:48;;;;-1:-1:-1;;;7525:48:0;;;;;;;:::i;:::-;8046:29:::1;8051:8;8061:13;8046:4;:29::i;:::-;7902:181:::0;;:::o;6233:42::-;6271:4;6233:42;:::o;6284:23::-;;;-1:-1:-1;;;;;6284:23:0;;:::o;8255:250::-;7547:9;;-1:-1:-1;;;;;7547:9:0;7533:10;:23;7525:48;;;;-1:-1:-1;;;7525:48:0;;;;;;;:::i;:::-;8352:9:::1;8348:150;8371:14;:21;8367:1;:25;8348:150;;;8414:72;8426:14;8441:1;8426:17;;;;;;;;;;;;;;8445:9;;;;;;;;;-1:-1:-1::0;;;;;8445:9:0::1;8456:29;8467:14;8482:1;8467:17;;;;;;;;;;;;;;8456:10;:29::i;:::-;8414:11;:72::i;:::-;8394:3;;8348:150;;6710:728:::0;6948:1;6928:8;6875:32;;-1:-1:-1;;;;;6928:8:0;:22;6920:47;;;;-1:-1:-1;;;6920:47:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6986:24:0;;6978:52;;;;-1:-1:-1;;;6978:52:0;;;;;;;:::i;:::-;7041:8;:21;;-1:-1:-1;;;;;;7041:21:0;;;7052:10;7041:21;;;;7073:9;:22;;-1:-1:-1;;;;;7073:22:0;;;;;;;;7106:142;;7193:8;;7170:65;;;-1:-1:-1;;;7170:65:0;;;;7163:73;;-1:-1:-1;;;;;7193:8:0;;7170:63;;:65;;;;;;;;;;;;;;7193:8;7170:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7163:6;:73::i;:::-;7150:86;;7106:142;7261:27;;;;;;7292:13;7261:44;7258:133;;7344:35;7350:10;7362:16;7344:5;:35::i;:::-;7322:57;;7258:133;7401:29;7406:8;7416:13;7401:4;:29::i;:::-;6710:728;;;;;;:::o;9088:550::-;9130:4;9147:40;:38;:40::i;:::-;9227:9;;9202:102;;-1:-1:-1;;;9202:102:0;;-1:-1:-1;;;;;9227:9:0;;;;9202:49;;:102;;9252:17;;9271:13;;9286:17;;9202:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9198:165;;-1:-1:-1;9346:5:0;9339:12;;9198:165;9377:9;9373:236;9396:17;:24;9392:28;;9373:236;;;9528:17;9546:1;9528:20;;;;;;;;;;;;;;;;9509:13;9523:1;9509:16;;;;;;;;;;;;;;;;9482:21;9504:1;9482:24;;;;;;;;;;;;;;;;:43;:66;9445:32;9456:17;9474:1;9456:20;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9456:20:0;9445:10;:32::i;:::-;:104;9442:156;;9577:5;9570:12;;;;;9442:156;9422:3;;9373:236;;;;9626:4;9619:11;;9088:550;:::o;12306:735::-;12389:9;12385:649;12409:11;:18;12405:22;;12385:649;;;12449:40;12492:11;12504:1;12492:14;;;;;;;;;;;;;;;;;12449:57;;;;;;;;12492:14;;;;;;;12449:57;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12492:14;;12449:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;-1:-1:-1;;;12449:57:0;;;-1:-1:-1;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12449:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12521:16;12540:118;12562:9;:27;;;12591:9;:26;;;12619:9;:38;;;12540:21;:118::i;:::-;12676:19;;;;12521:137;;-1:-1:-1;;;;;;12676:33:0;12673:350;;12730:150;12742:9;:27;;;12771:8;12781:14;12797:6;:29;;;12828:9;:19;;;12849:9;:30;;;12730:11;:150::i;:::-;12673:350;;;12921:86;12927:9;12938:8;12948:14;12964:6;:29;;;12995:11;12921:5;:86::i;:::-;-1:-1:-1;;12429:3:0;;12385:649;;;;12306:735;;:::o;11954:344::-;11999:9;11995:121;12018:17;:24;12014:28;;11995:121;;;12071:11;:33;12083:17;12101:1;12083:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12083:20:0;12071:33;;;;;;;;;;;;12064:40;12083:20;12044:3;11995:121;;;-1:-1:-1;12126:24:0;12133:17;;12126:24;:::i;:::-;12161;12168:17;;12161:24;:::i;:::-;12196:20;12203:13;;12196:20;:::i;:::-;12227:24;12234:17;;12227:24;:::i;:::-;12262:28;12269:21;;12262:28;:::i;:::-;11954:344::o;18057:445::-;18207:24;;18191:42;;;;;;;18237:13;18191:59;;18183:76;;;;-1:-1:-1;;;18183:76:0;;;;;;;:::i;:::-;18314:1;18278:19;:33;;;:37;18270:58;;;;-1:-1:-1;;;18270:58:0;;;;;;;:::i;:::-;6271:4;18347:19;:42;;;:56;18339:79;;;;-1:-1:-1;;;18339:79:0;;;;;;;:::i;:::-;18429:28;;;;18438:19;;18429:6;;:28;;:6;;:28;;;;;;:::i;:::-;-1:-1:-1;18429:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;18468:26;18483:10;18468:14;:26::i;11179:240::-;11243:7;-1:-1:-1;;;;;11266:26:0;;11263:86;;-1:-1:-1;11316:21:0;11309:28;;11263:86;11366:45;;-1:-1:-1;;;11366:45:0;;-1:-1:-1;;;;;11366:30:0;;;;;:45;;11405:4;;11366:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11359:52;11179:240;-1:-1:-1;;11179:240:0:o;16370:391::-;16467:10;16464:48;;16494:7;;16464:48;-1:-1:-1;;;;;16525:31:0;;16522:178;;16574:11;16590:2;-1:-1:-1;;;;;16590:7:0;16604:5;16590:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16573:41;;;16637:6;16629:38;;;;-1:-1:-1;;;16629:38:0;;;;;;;:::i;:::-;16682:7;;;16522:178;16710:43;16724:17;16743:2;16747:5;16710:13;:43::i;19692:499::-;19743:12;19965:21;19955:8;19951:36;-1:-1:-1;;;;;19837:169:0;19817:1;19792:229;20056:2;20053:1;20050;20043:16;20035:24;-1:-1:-1;20080:17:0;;20115:58;;;;20073:100;;20115:58;20145:9;20073:100;;19777:407;;;:::o;17441:608::-;17512:23;17650:1;17647;17637:7;17631:14;17624:4;17615:7;17611:18;17608:1;17598:8;17591:5;17586:66;17678:16;17728:4;17722:11;17708:25;;17766:4;17754:10;17747:24;17831:4;17819:10;17815:21;17892:4;17889:1;17865:22;17850:47;17924:33;;;17918:4;17911:47;17979:6;17986:45;;;;17972:59;;17986:45;18025:4;18001:22;17994:36;17972:59;;;;;17557:485;;;;:::o;9646:446::-;9719:9;9715:370;9738:11;:18;9734:22;;9715:370;;;9778:40;9821:11;9833:1;9821:14;;;;;;;;;;;;;;;;;9778:57;;;;;;;;9821:14;;;;;;;9778:57;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9821:14;;9778:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;-1:-1:-1;;;9778:57:0;;;-1:-1:-1;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9778:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9850:223;9899:1;-1:-1:-1;;;;;9868:33:0;:9;:19;;;-1:-1:-1;;;;;9868:33:0;;;:57;;;;;9905:9;:20;;;9868:57;:100;;9941:27;;9868:100;;;9936:1;9868:100;9970:9;:26;;;9998:9;:38;;;10038:9;:34;;;9850:17;:223::i;:::-;-1:-1:-1;9758:3:0;;9715:370;;;;9646:446::o;11427:519::-;11547:7;11571:23;11567:74;;-1:-1:-1;11618:11:0;11611:18;;11567:74;-1:-1:-1;;;;;11672:25:0;;11651:18;11672:25;;;:11;:25;;;;;;11740:17;:29;;11672:25;;11740:29;;;;;;;;;;;;;;11773:1;11740:34;;:103;;11816:12;-1:-1:-1;;;;;11809:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11740:103;;;11777:17;11795:10;11777:29;;;;;;;;;;;;;;;;11740:103;11708:17;11726:10;11708:29;;;;;;;;;;;;;;;;;:135;11934:4;;11896:18;;;11895:34;11862:17;11880:10;11862:29;;;;;;;;;;;;;;;;:68;11861:77;;;;;;11854:84;;;11427:519;;;;;;:::o;15007:1355::-;15244:11;15218:23;-1:-1:-1;;;;;15299:28:0;;;:102;;15334:67;15361:15;15378:22;15334:26;:67::i;:::-;15299:102;;;15330:1;15299:102;15268:133;;15412:68;15424:17;15443:14;15459:20;15412:11;:68::i;:::-;15544:24;15614:8;;15591:52;;;-1:-1:-1;;;15591:52:0;;;;15491:39;;;;;15544:24;;-1:-1:-1;;;;;15614:8:0;;15591:50;;:52;;;;;;;;;;;15614:8;15591:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15543:100;;;;15677:16;15697:1;15677:21;:48;;;-1:-1:-1;;;;;;15702:23:0;;;15677:48;:116;;15732:61;15759:15;15776:16;15732:26;:61::i;:::-;15677:116;;;15728:1;15677:116;15654:139;;15804:63;15816:17;15835:9;15846:20;15804:11;:63::i;:::-;15878:39;;;;;;15930:28;15989:273;16031:1;16012:9;:16;:20;16008:1;:24;15989:273;;;16054:142;16066:17;16085:9;16095:1;16085:12;;;;;;;;;;;;;;16122:73;16149:20;16171;16192:1;16171:23;;;;;;;;;;;;;;16122:26;:73::i;:::-;16099:96;;;16054:11;:142::i;:::-;16211:39;;;;;16034:3;;15989:273;;;;16274:80;16286:17;16305:9;16334:1;16315:9;:16;:20;16305:31;;;;;;;;;;;;;;16338:15;16274:11;:80::i;:::-;15007:1355;;;;;;;;;;;:::o;13049:1738::-;13219:19;13241:11;:78;;13318:1;13241:78;;;13255:60;13282:8;13292:22;13255:26;:60::i;:::-;13219:100;;13333:23;13367:9;:19;;;-1:-1:-1;;;;;13362:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13332:62;;;;13410:9;:19;;;13407:118;;;13446:18;;;;13465:25;;13498:15;;13446:18;-1:-1:-1;;13465:29:0;;;13446:49;;;;;;;;;;;:67;-1:-1:-1;;;;;13446:67:0;;;-1:-1:-1;;;;;13446:67:0;;;;;13407:118;13559:18;;;;13578:25;;13537:19;;13559:18;-1:-1:-1;;13578:29:0;;;13559:49;;;;;;;;;;;;13537:71;;13621:24;13648:316;;;;;;;;13671:9;:20;;;13648:316;;;;;;13706:9;:19;;;13648:316;;;;;;13740:9;:32;;;13648:316;;;;13787:9;:18;;;13648:316;;;;13820:9;:20;;;:68;;13861:27;;13820:68;;;13843:15;13820:68;-1:-1:-1;;;;;13648:316:0;;;;;13914:11;13903:8;:22;13648:316;;;;13948:4;-1:-1:-1;;;;;13648:316:0;;;;13621:343;;14011:1;-1:-1:-1;;;;;13980:33:0;:8;:19;;;-1:-1:-1;;;;;13980:33:0;;;:57;;;;-1:-1:-1;14018:19:0;;14017:20;13980:57;13977:160;;;14054:71;14067:8;:19;;;14088:9;:19;;;14109:8;:15;;;14054:12;:71::i;:::-;14180:19;;14149:17;;14177:224;;;14233:9;:19;;;-1:-1:-1;;;;;14228:39:0;;14276:8;14286;14228:67;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14216:79;;14177:224;;;14345:9;:19;;;-1:-1:-1;;;;;14340:39:0;;14380:8;14340:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14328:61;;14177:224;14416:11;14413:148;;;14444:105;14456:9;:20;;;:63;;14492:27;;14456:63;;;14487:1;14456:63;14521:14;14537:11;14444;:105::i;:::-;14571:208;14583:9;:19;;;:46;;14618:11;14583:46;;;14613:1;14583:46;14631:9;14642:11;:41;;14669:14;14642:41;;;14664:1;14642:41;14685:11;:40;;14703:22;14685:40;;;14699:1;14685:40;14727:9;:19;;;14748:9;:30;;;14571:11;:208::i;:::-;13049:1738;;;;;;;;;;:::o;18510:972::-;18598:18;18605:11;;18598:18;:::i;:::-;18631:9;18627:848;18650:10;:17;18646:1;:21;18627:848;;;18689:40;18732:10;18743:1;18732:13;;;;;;;;;;;;;;18689:56;;18797:1;18768:9;:19;;;:26;:30;18760:55;;;;-1:-1:-1;;;18760:55:0;;;;;;;:::i;:::-;18909:1;18880:9;:19;;;:26;:30;18838:9;:30;;;:37;:73;18830:138;;;;-1:-1:-1;;;18830:138:0;;;;;;;:::i;:::-;18983:18;19024:9;19020:223;19072:1;19043:9;:19;;;:26;:30;19039:1;:34;19020:223;;;19113:9;:30;;;19144:1;19113:33;;;;;;;;;;;;;;19099:47;;;;19207:1;-1:-1:-1;;;;;19173:36:0;:9;:19;;;19193:1;19173:22;;;;;;;;;;;;;;-1:-1:-1;;;;;19173:36:0;;;19165:62;;;;-1:-1:-1;;;19165:62:0;;;;;;;:::i;:::-;19075:3;;19020:223;;;-1:-1:-1;19265:19:0;;;;19285:26;;19328:1;;19265:19;-1:-1:-1;;19285:30:0;;;19265:51;;;;;;;;;;;;-1:-1:-1;;;;;19265:65:0;;;19257:91;;;;-1:-1:-1;;;19257:91:0;;;;;;;:::i;:::-;6271:4;19371:10;:24;19363:58;;;;-1:-1:-1;;;19363:58:0;;;;;;;:::i;:::-;19436:11;:27;;;;;;;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;19436:27:0;;;-1:-1:-1;;;;;;19436:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19436:27:0;;;;;-1:-1:-1;;19436:27:0;;;-1:-1:-1;;19436:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;19453:9;;19436:27;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;;;-1:-1:-1;;19436:27:0;;;-1:-1:-1;;19436:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19436:27:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;18669:3:0;;;;;-1:-1:-1;18627:848:0;;-1:-1:-1;;18627:848:0;17104:329;17200:23;17226:104;17232:17;17274:43;;;17319:2;17323:5;17251:78;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;17251:78:0;;;;;;;;;;;;;;-1:-1:-1;;;;;17251:78:0;-1:-1:-1;;;;;;17251:78:0;;;;;;;;;;17226:5;:104::i;:::-;17200:130;;17349:10;:17;17370:1;17349:22;:56;;;;17386:10;17375:30;;;;;;;;;;;;:::i;:::-;17341:84;;;;-1:-1:-1;;;17341:84:0;;;;;;;:::i;:::-;17104:329;;;;:::o;10100:1071::-;10268:21;10265:59;;10306:7;;10265:59;-1:-1:-1;;;;;10355:30:0;;10336:16;10355:30;;;:11;:30;;;;;;10401:17;:24;:29;;:81;;;10465:17;-1:-1:-1;;;;;10434:48:0;:17;10452:8;10434:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10434:27:0;:48;;10401:81;10398:427;;;-1:-1:-1;10544:17:0;:24;;-1:-1:-1;;;;;10499:30:0;;;;;;:11;:30;;;;;;;:70;;;10584:41;;;;;;;;;;;-1:-1:-1;;;;;;10584:41:0;;;;;;;10640:13;:21;;;;;;;;;;;;;10676:17;:25;;;;;;;;;;;;;;;;;10716:21;10743:29;10511:17;10743:10;:29::i;:::-;10716:57;;;;;;;;-1:-1:-1;10716:57:0;;;;;;;;;;;;;10788:17;:25;;;;;;;;;;;;10398:427;10835:14;10852:88;10874:17;10893:16;10911:28;10852:21;:88::i;:::-;10835:105;;10954:24;10951:213;;;11055:6;11025:17;11043:8;11025:27;;;;;;;;;;;;;;;;:36;10995:17;11013:8;10995:27;;;;;;;;;;;;;;;;;:66;10951:213;;;11146:6;11120:13;11134:8;11120:23;;;;;;;;;;;;;;;;:32;11094:13;11108:8;11094:23;;;;;;;;;;;;;;;;;:58;10951:213;10100:1071;;;;;;:::o;14795:204::-;14900:7;14987:4;;14944:23;;;14943:39;14928:11;:55;14927:64;;;;;;;14795:204;-1:-1:-1;;;14795:204:0:o;16769:327::-;16865:23;16891:103;16897:17;16939:42;;;16983:2;16987:5;16916:77;;;;;;;;;:::i;16891:103::-;16865:129;;17013:10;:17;17034:1;17013:22;:56;;;;17050:10;17039:30;;;;;;;;;;;;:::i;:::-;17005:83;;;;-1:-1:-1;;;17005:83:0;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;14:400:1;;114:18;106:6;103:30;100:2;;;136:9;100:2;165:58;211:2;188:17;;-1:-1:-1;;184:31:1;217:4;180:42;165:58;:::i;:::-;156:67;;246:6;239:5;232:21;286:3;277:6;272:3;268:16;265:25;262:2;;;303:1;300;293:12;262:2;352:6;347:3;340:4;333:5;329:16;316:43;406:1;399:4;390:6;383:5;379:18;375:29;368:40;90:324;;;;;:::o;419:138::-;489:20;;518:33;489:20;518:33;:::i;562:782::-;;675:3;668:4;660:6;656:17;652:27;642:2;;697:5;690;683:20;642:2;737:6;724:20;763:4;787:65;802:49;848:2;802:49;:::i;:::-;787:65;:::i;:::-;886:15;;;917:12;;;;949:15;;;995:11;;;983:24;;979:33;;976:42;-1:-1:-1;973:2:1;;;1035:5;1028;1021:20;973:2;1061:5;1075:240;1089:2;1086:1;1083:9;1075:240;;;1160:3;1147:17;1177:33;1204:5;1177:33;:::i;:::-;1223:18;;1261:12;;;;1293;;;;1107:1;1100:9;1075:240;;;-1:-1:-1;1333:5:1;;632:712;-1:-1:-1;;;;;;;632:712:1:o;1349:2240::-;;1486:3;1479:4;1471:6;1467:17;1463:27;1453:2;;1508:5;1501;1494:20;1453:2;1548:6;1535:20;1574:4;1598:65;1613:49;1659:2;1613:49;:::i;1598:65::-;1697:15;;;1728:12;;;;1760:15;;;1793:5;1807:1753;1821:2;1818:1;1815:9;1807:1753;;;1901:3;1888:17;1880:6;1876:30;1929:6;1983:2;1977;1973:7;1968:2;1963:3;1959:12;1955:26;1951:35;1948:2;;;2003:5;1996;1989:20;1948:2;2037:18;2052:2;2037:18;:::i;:::-;2082:33;2111:2;2107;2103:11;2082:33;:::i;:::-;2075:5;2068:48;2173:2;2169;2165:11;2152:25;2147:2;2140:5;2136:14;2129:49;2214:30;2240:2;2236;2232:11;2214:30;:::i;:::-;2209:2;2202:5;2198:14;2191:54;2281:31;2307:3;2303:2;2299:12;2281:31;:::i;:::-;2276:2;2269:5;2265:14;2258:55;2350:34;2379:3;2375:2;2371:12;2350:34;:::i;:::-;2344:3;2337:5;2333:15;2326:59;2435:3;2431:2;2427:12;2414:26;2463:18;2510:2;2500:8;2497:16;2494:2;;;2530:5;2523;2516:20;2494:2;2575:67;2638:3;2633:2;2622:8;2618:2;2614:17;2610:26;2575:67;:::i;:::-;2569:3;2562:5;2558:15;2551:92;2693:3;2689:2;2685:12;2672:26;2656:42;;2727:2;2717:8;2714:16;2711:2;;;2747:5;2740;2733:20;2711:2;2792:67;2855:3;2850:2;2839:8;2835:2;2831:17;2827:26;2792:67;:::i;:::-;2786:3;2779:5;2775:15;2768:92;2897:31;2923:3;2919:2;2915:12;2897:31;:::i;:::-;2891:3;2884:5;2880:15;2873:56;2966:31;2992:3;2988:2;2984:12;2966:31;:::i;:::-;2960:3;2953:5;2949:15;2942:56;3021:3;3011:13;;3074:2;3070;3066:11;3053:25;3107:2;3097:8;3094:16;3091:2;;;3127:5;3120;3113:20;3091:2;3172:67;3235:3;3230:2;3219:8;3215:2;3211:17;3207:26;3172:67;:::i;:::-;3166:3;3155:15;;3148:92;-1:-1:-1;3282:11:1;;;3269:25;;3310:16;;;3307:2;;;3343:5;3336;3329:20;3307:2;;3387:67;3450:3;3445:2;3434:8;3430:2;3426:17;3422:26;3387:67;:::i;:::-;3371:14;;;3364:91;3468:18;;-1:-1:-1;;3506:12:1;;;;3538;;;;1839:1;1832:9;1807:1753;;3594:705;;3707:3;3700:4;3692:6;3688:17;3684:27;3674:2;;3729:5;3722;3715:20;3674:2;3769:6;3756:20;3795:4;3819:65;3834:49;3880:2;3834:49;:::i;3819:65::-;3918:15;;;3949:12;;;;3981:15;;;4027:11;;;4015:24;;4011:33;;4008:42;-1:-1:-1;4005:2:1;;;4067:5;4060;4053:20;4005:2;4093:5;4107:163;4121:2;4118:1;4115:9;4107:163;;;4178:17;;4166:30;;4216:12;;;;4248;;;;4139:1;4132:9;4107:163;;4304:132;4371:20;;4400:30;4371:20;4400:30;:::i;4441:883::-;;4558:4;4546:9;4541:3;4537:19;4533:30;4530:2;;;4580:5;4573;4566:20;4530:2;4617;4611:9;4659:4;4651:6;4647:17;4683:18;4751:6;4739:10;4736:22;4731:2;4719:10;4716:18;4713:46;4710:2;;;4762:9;4710:2;4793:10;4789:2;4782:22;4822:6;4813:15;;4864:9;4851:23;4837:37;;4897:2;4889:6;4886:14;4883:2;;;4913:1;4910;4903:12;4883:2;-1:-1:-1;4936:22:1;;4989:4;4981:13;;4977:23;-1:-1:-1;4967:2:1;;5014:1;5011;5004:12;4967:2;5042:73;5111:3;5106:2;5093:16;5086:4;5082:2;5078:13;5042:73;:::i;:::-;5034:6;5027:89;;5179:4;5168:9;5164:20;5151:34;5144:4;5136:6;5132:17;5125:61;5247:2;5236:9;5232:18;5219:32;5214:2;5206:6;5202:15;5195:57;5313:2;5302:9;5298:18;5285:32;5280:2;5272:6;5268:15;5261:57;;4520:804;;;;:::o;5329:263::-;;5452:2;5440:9;5431:7;5427:23;5423:32;5420:2;;;5473:6;5465;5458:22;5420:2;5510:9;5504:16;5529:33;5556:5;5529:33;:::i;5597:1203::-;;;;;5868:3;5856:9;5847:7;5843:23;5839:33;5836:2;;;5890:6;5882;5875:22;5836:2;5934:9;5921:23;5953:33;5980:5;5953:33;:::i;:::-;6005:5;-1:-1:-1;6061:2:1;6046:18;;6033:32;6084:18;6114:14;;;6111:2;;;6146:6;6138;6131:22;6111:2;6189:6;6178:9;6174:22;6164:32;;6234:7;6227:4;6223:2;6219:13;6215:27;6205:2;;6261:6;6253;6246:22;6205:2;6289:75;6356:7;6351:2;6338:16;6333:2;6329;6325:11;6289:75;:::i;:::-;6279:85;;6417:2;6406:9;6402:18;6389:32;6373:48;;6446:2;6436:8;6433:16;6430:2;;;6467:6;6459;6452:22;6430:2;6495:75;6562:7;6551:8;6540:9;6536:24;6495:75;:::i;:::-;6485:85;;6623:2;6612:9;6608:18;6595:32;6579:48;;6652:2;6642:8;6639:16;6636:2;;;6673:6;6665;6658:22;6636:2;;6701:93;6786:7;6775:8;6764:9;6760:24;6701:93;:::i;:::-;6691:103;;;5826:974;;;;;;;:::o;6805:454::-;;;;6959:2;6947:9;6938:7;6934:23;6930:32;6927:2;;;6980:6;6972;6965:22;6927:2;7017:9;7011:16;7036:33;7063:5;7036:33;:::i;:::-;7133:2;7118:18;;7112:25;7182:2;7167:18;;7161:25;7088:5;;-1:-1:-1;7112:25:1;-1:-1:-1;7195:32:1;7161:25;7195:32;:::i;:::-;7246:7;7236:17;;;6917:342;;;;;:::o;7264:374::-;;7401:2;7389:9;7380:7;7376:23;7372:32;7369:2;;;7422:6;7414;7407:22;7369:2;7467:9;7454:23;7500:18;7492:6;7489:30;7486:2;;;7537:6;7529;7522:22;7486:2;7565:67;7624:7;7615:6;7604:9;7600:22;7565:67;:::i;7643:253::-;;7752:2;7740:9;7731:7;7727:23;7723:32;7720:2;;;7773:6;7765;7758:22;7720:2;7817:9;7804:23;7836:30;7860:5;7836:30;:::i;7901:257::-;;8021:2;8009:9;8000:7;7996:23;7992:32;7989:2;;;8042:6;8034;8027:22;7989:2;8079:9;8073:16;8098:30;8122:5;8098:30;:::i;8163:716::-;;;8391:2;8379:9;8370:7;8366:23;8362:32;8359:2;;;8412:6;8404;8397:22;8359:2;8457:9;8444:23;8486:18;8527:2;8519:6;8516:14;8513:2;;;8548:6;8540;8533:22;8513:2;8576:73;8641:7;8632:6;8621:9;8617:22;8576:73;:::i;:::-;8566:83;;8702:2;8691:9;8687:18;8674:32;8658:48;;8731:2;8721:8;8718:16;8715:2;;;8752:6;8744;8737:22;8715:2;;8780:93;8865:7;8854:8;8843:9;8839:24;8780:93;:::i;:::-;8770:103;;;8349:530;;;;;:::o;8884:194::-;;9007:2;8995:9;8986:7;8982:23;8978:32;8975:2;;;9028:6;9020;9013:22;8975:2;-1:-1:-1;9056:16:1;;8965:113;-1:-1:-1;8965:113:1:o;9083:324::-;;;9223:2;9211:9;9202:7;9198:23;9194:32;9191:2;;;9244:6;9236;9229:22;9191:2;9278:9;9272:16;9262:26;;9331:2;9320:9;9316:18;9310:25;9344:33;9371:5;9344:33;:::i;:::-;9396:5;9386:15;;;9181:226;;;;;:::o;9412:106::-;-1:-1:-1;;;;;9480:31:1;9468:44;;9458:60::o;9523:469::-;;9620:5;9614:12;9647:6;9642:3;9635:19;9673:4;9702:2;9697:3;9693:12;9686:19;;9739:2;9732:5;9728:14;9760:3;9772:195;9786:6;9783:1;9780:13;9772:195;;;9851:13;;-1:-1:-1;;;;;9847:39:1;9835:52;;9907:12;;;;9942:15;;;;9883:1;9801:9;9772:195;;;-1:-1:-1;9983:3:1;;9590:402;-1:-1:-1;;;;;9590:402:1:o;9997:443::-;;10094:5;10088:12;10121:6;10116:3;10109:19;10147:4;10176:2;10171:3;10167:12;10160:19;;10213:2;10206:5;10202:14;10234:3;10246:169;10260:6;10257:1;10254:13;10246:169;;;10321:13;;10309:26;;10355:12;;;;10390:15;;;;10282:1;10275:9;10246:169;;10445:481;;10550:5;10544:12;10577:6;10572:3;10565:19;10603:4;10632:2;10627:3;10623:12;10616:19;;10656:5;10651:3;10644:18;10700:2;10695:3;10685:18;10721:3;10733:168;10747:6;10744:1;10741:13;10733:168;;;10808:13;;10796:26;;10842:12;;;;10889:1;10877:14;;;;10762:9;10733:168;;10931:93;11003:13;10996:21;10984:34;;10974:50::o;11029:477::-;;11110:5;11104:12;11137:6;11132:3;11125:19;11162:3;11174:162;11188:6;11185:1;11182:13;11174:162;;;11250:4;11306:13;;;11302:22;;11296:29;11278:11;;;11274:20;;11267:59;11203:12;11174:162;;;11354:6;11351:1;11348:13;11345:2;;;11420:3;11413:4;11404:6;11399:3;11395:16;11391:27;11384:40;11345:2;-1:-1:-1;11488:2:1;11467:15;-1:-1:-1;;11463:29:1;11454:39;;;;11495:4;11450:50;;11080:426;-1:-1:-1;;11080:426:1:o;11721:203::-;-1:-1:-1;;;;;11885:32:1;;;;11867:51;;11855:2;11840:18;;11822:102::o;12145:274::-;-1:-1:-1;;;;;12337:32:1;;;;12319:51;;12401:2;12386:18;;12379:34;12307:2;12292:18;;12274:145::o;12424:1091::-;;12761:2;12750:9;12746:18;12791:2;12780:9;12773:21;12814:6;12849;12843:13;12880:6;12872;12865:22;12918:3;12907:9;12903:19;12896:26;;12944:6;12938:4;12931:20;12970:4;12960:14;;13013:2;13007:4;12997:19;13034:4;13047:194;13061:6;13058:1;13055:13;13047:194;;;13126:13;;-1:-1:-1;;;;;13122:39:1;13110:52;;13182:12;;;;13158:1;13217:14;;;;13076:9;13047:194;;;13051:3;;;13286:9;13281:3;13277:19;13272:2;13261:9;13257:18;13250:47;13320:55;13371:3;13363:6;13320:55;:::i;:::-;13306:69;;;13423:9;13415:6;13411:22;13406:2;13395:9;13391:18;13384:50;13451:58;13502:6;13494;13451:58;:::i;:::-;13443:66;12722:793;-1:-1:-1;;;;;;12722:793:1:o;13520:187::-;13685:14;;13678:22;13660:41;;13648:2;13633:18;;13615:92::o;13712:219::-;;13859:2;13848:9;13841:21;13879:46;13921:2;13910:9;13906:18;13898:6;13879:46;:::i;13936:344::-;14138:2;14120:21;;;14177:2;14157:18;;;14150:30;-1:-1:-1;;;14211:2:1;14196:18;;14189:50;14271:2;14256:18;;14110:170::o;14285:336::-;14487:2;14469:21;;;14526:2;14506:18;;;14499:30;-1:-1:-1;;;14560:2:1;14545:18;;14538:42;14612:2;14597:18;;14459:162::o;14626:337::-;14828:2;14810:21;;;14867:2;14847:18;;;14840:30;-1:-1:-1;;;14901:2:1;14886:18;;14879:43;14954:2;14939:18;;14800:163::o;14968:345::-;15170:2;15152:21;;;15209:2;15189:18;;;15182:30;-1:-1:-1;;;15243:2:1;15228:18;;15221:51;15304:2;15289:18;;15142:171::o;15318:416::-;15520:2;15502:21;;;15559:2;15539:18;;;15532:30;15598:34;15593:2;15578:18;;15571:62;-1:-1:-1;;;15664:2:1;15649:18;;15642:50;15724:3;15709:19;;15492:242::o;15739:339::-;15941:2;15923:21;;;15980:2;15960:18;;;15953:30;-1:-1:-1;;;16014:2:1;15999:18;;15992:45;16069:2;16054:18;;15913:165::o;16083:334::-;16285:2;16267:21;;;16324:2;16304:18;;;16297:30;-1:-1:-1;;;16358:2:1;16343:18;;16336:40;16408:2;16393:18;;16257:160::o;16422:337::-;16624:2;16606:21;;;16663:2;16643:18;;;16636:30;-1:-1:-1;;;16697:2:1;16682:18;;16675:43;16750:2;16735:18;;16596:163::o;16764:327::-;16966:2;16948:21;;;17005:1;16985:18;;;16978:29;-1:-1:-1;;;17038:2:1;17023:18;;17016:34;17082:2;17067:18;;16938:153::o;17096:339::-;17298:2;17280:21;;;17337:2;17317:18;;;17310:30;-1:-1:-1;;;17371:2:1;17356:18;;17349:45;17426:2;17411:18;;17270:165::o;17440:336::-;17642:2;17624:21;;;17681:2;17661:18;;;17654:30;-1:-1:-1;;;17715:2:1;17700:18;;17693:42;17767:2;17752:18;;17614:162::o;17781:331::-;17983:2;17965:21;;;18022:1;18002:18;;;17995:29;-1:-1:-1;;;18055:2:1;18040:18;;18033:38;18103:2;18088:18;;17955:157::o;18117:336::-;18319:2;18301:21;;;18358:2;18338:18;;;18331:30;-1:-1:-1;;;18392:2:1;18377:18;;18370:42;18444:2;18429:18;;18291:162::o;18458:343::-;18660:2;18642:21;;;18699:2;18679:18;;;18672:30;-1:-1:-1;;;18733:2:1;18718:18;;18711:49;18792:2;18777:18;;18632:169::o;18806:338::-;19008:2;18990:21;;;19047:2;19027:18;;;19020:30;-1:-1:-1;;;19081:2:1;19066:18;;19059:44;19135:2;19120:18;;18980:164::o;19149:344::-;19351:2;19333:21;;;19390:2;19370:18;;;19363:30;-1:-1:-1;;;19424:2:1;19409:18;;19402:50;19484:2;19469:18;;19323:170::o;19498:3048::-;;19845:2;19874;19863:9;19856:21;19896:3;19934:6;19928:13;19960:4;20000:2;19995;19984:9;19980:18;19973:30;20026:52;20074:2;20063:9;20059:18;20045:12;20026:52;:::i;:::-;20012:66;;20097:4;20138:2;20130:6;20126:15;20120:22;20161:2;20199;20194;20183:9;20179:18;20172:30;20256:2;20248:6;20244:15;20238:22;20233:2;20222:9;20218:18;20211:50;20298:2;20290:6;20286:15;20280:22;20270:32;;20321:3;20360:2;20355;20344:9;20340:18;20333:30;20411:9;20403:6;20399:22;20394:2;20383:9;20379:18;20372:50;20442:6;20431:17;;20477:6;20471:13;20508:6;20500;20493:22;20543:2;20535:6;20531:15;20524:22;;20603:2;20597;20589:6;20585:15;20577:6;20573:28;20569:37;20641:2;20633:6;20629:15;20662:4;20675:1842;20689:6;20686:1;20683:13;20675:1842;;;20779:2;20775:7;20766:6;20758;20754:19;20750:33;20745:3;20738:46;20813:6;20807:13;20844:6;20863:39;20895:6;20890:2;20884:9;20863:39;:::i;:::-;20953:2;20949;20945:11;20939:18;20934:2;20926:6;20922:15;20915:43;21007:2;21003;20999:11;20993:18;21024:50;21070:2;21062:6;21058:15;21042:14;21024:50;:::i;:::-;;21123:2;21119;21115:11;21109:18;21140:50;21186:2;21178:6;21174:15;21158:14;21140:50;:::i;:::-;;21239:2;21235;21231:11;21225:18;21256:53;21305:2;21297:6;21293:15;21277:14;21256:53;:::i;:::-;;21358:2;21354;21350:11;21344:18;21399:3;21394:2;21386:6;21382:15;21375:28;21430:68;21493:3;21485:6;21481:16;21465:14;21430:68;:::i;:::-;21416:82;;;21547:2;21543;21539:11;21533:18;21600:6;21592;21588:19;21583:2;21575:6;21571:15;21564:44;21635:58;21686:6;21670:14;21635:58;:::i;:::-;21621:72;;;21717:4;21770:3;21766:2;21762:12;21756:19;21788:51;21834:3;21826:6;21822:16;21806:14;21788:51;:::i;:::-;;;21863:6;21918:3;21914:2;21910:12;21904:19;21936:51;21982:3;21974:6;21970:16;21954:14;21936:51;:::i;:::-;;;22011:6;22066:3;22062:2;22058:12;22052:19;22121:6;22113;22109:19;22103:3;22095:6;22091:16;22084:45;22156:58;22207:6;22191:14;22156:58;:::i;:::-;22142:72;;;;22238:6;22293:3;22289:2;22285:12;22279:19;22257:41;;22348:6;22340;22336:19;22330:3;22322:6;22318:16;22311:45;;22379:58;22430:6;22414:14;22379:58;:::i;:::-;22495:12;;;;22369:68;-1:-1:-1;;;22460:15:1;;;;20711:1;20704:9;20675:1842;;;-1:-1:-1;22534:6:1;;19825:2721;-1:-1:-1;;;;;;;;;;;;;;19825:2721:1:o;22551:1013::-;;22730:2;22719:9;22712:21;22789:6;22783:13;22776:21;22769:29;22764:2;22753:9;22749:18;22742:57;22867:2;22859:6;22855:15;22849:22;22842:30;22835:38;22830:2;22819:9;22815:18;22808:66;22921:2;22913:6;22909:15;22903:22;22961:4;22956:2;22945:9;22941:18;22934:32;22989:69;23053:3;23042:9;23038:19;23024:12;22989:69;:::i;:::-;22975:83;;23107:2;23099:6;23095:15;23089:22;23180:2;23176:7;23164:9;23156:6;23152:22;23148:36;23142:3;23131:9;23127:19;23120:65;23208:58;23259:6;23243:14;23208:58;:::i;:::-;23194:72;;;23349:1;23345;23340:3;23336:11;23332:19;23325:3;23317:6;23313:16;23307:23;23303:49;23297:3;23286:9;23282:19;23275:78;23408:3;23400:6;23396:16;23390:23;23384:3;23373:9;23369:19;23362:52;23463:3;23455:6;23451:16;23445:23;23477:58;23529:4;23518:9;23514:20;23498:14;23477:58;:::i;:::-;-1:-1:-1;23552:6:1;22702:862;-1:-1:-1;;;22702:862:1:o;23569:177::-;23715:25;;;23703:2;23688:18;;23670:76::o;23751:242::-;23821:2;23815:9;23851:17;;;23898:18;23883:34;;23919:22;;;23880:62;23877:2;;;23945:9;23877:2;23972;23965:22;23795:198;;-1:-1:-1;23795:198:1:o;23998:183::-;;24097:18;24089:6;24086:30;24083:2;;;24119:9;24083:2;-1:-1:-1;24170:4:1;24151:17;;;24147:28;;24073:108::o;24186:133::-;-1:-1:-1;;;;;24263:31:1;;24253:42;;24243:2;;24309:1;24306;24299:12;24324:120;24412:5;24405:13;24398:21;24391:5;24388:32;24378:2;;24434:1;24431;24424:12
Swarm Source
ipfs://be5f2d438a85e1c4931bd09dace6f37e3da1cdcbbed2808ff1ac0b6fe72e25cf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.