ETH Price: $1,971.29 (+0.13%)
Gas: 0.04 Gwei
 

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
Transfer Out245105532026-02-22 6:15:352 hrs ago1771740935IN
Maya Protocol: ETH Router v4
0.00437346 ETH0.000083092.02950757
Deposit With Exp...245105482026-02-22 6:14:352 hrs ago1771740875IN
Maya Protocol: ETH Router v4
0 ETH0.000002820.04332895
Deposit With Exp...245104822026-02-22 6:01:232 hrs ago1771740083IN
Maya Protocol: ETH Router v4
0 ETH0.0010466715
Transfer Out245104232026-02-22 5:49:353 hrs ago1771739375IN
Maya Protocol: ETH Router v4
0 ETH0.000131882.03501147
Transfer Out245092022026-02-22 1:44:357 hrs ago1771724675IN
Maya Protocol: ETH Router v4
0.16383006 ETH0.0001342.0317908
Transfer Out245088792026-02-22 0:39:358 hrs ago1771720775IN
Maya Protocol: ETH Router v4
0.66714108 ETH0.000083232.03230818
Transfer Out245088182026-02-22 0:27:238 hrs ago1771720043IN
Maya Protocol: ETH Router v4
0 ETH0.00013262.04603939
Deposit With Exp...245087762026-02-22 0:18:598 hrs ago1771719539IN
Maya Protocol: ETH Router v4
0 ETH0.000140712.034336
Transfer Out245083622026-02-21 22:55:479 hrs ago1771714547IN
Maya Protocol: ETH Router v4
0 ETH0.000132462.0438916
Deposit With Exp...245083592026-02-21 22:55:119 hrs ago1771714511IN
Maya Protocol: ETH Router v4
0 ETH0.000003280.04410348
Deposit With Exp...245083552026-02-21 22:54:119 hrs ago1771714451IN
Maya Protocol: ETH Router v4
0 ETH0.0010466715
Deposit With Exp...245082912026-02-21 22:41:1110 hrs ago1771713671IN
Maya Protocol: ETH Router v4
0 ETH0.000006580.08811957
Deposit With Exp...245082812026-02-21 22:39:1110 hrs ago1771713551IN
Maya Protocol: ETH Router v4
0 ETH0.000199992.68165556
Transfer Out245082802026-02-21 22:38:5910 hrs ago1771713539IN
Maya Protocol: ETH Router v4
0.46788082 ETH0.000083452.03775733
Deposit245082762026-02-21 22:38:1110 hrs ago1771713491IN
Maya Protocol: ETH Router v4
0 ETH0.000058970.78836061
Transfer Out245082692026-02-21 22:36:4710 hrs ago1771713407IN
Maya Protocol: ETH Router v4
0 ETH0.000168342.04098505
Deposit With Exp...245082682026-02-21 22:36:3510 hrs ago1771713395IN
Maya Protocol: ETH Router v4
0 ETH0.0010466715
Deposit With Exp...245077912026-02-21 21:00:4711 hrs ago1771707647IN
Maya Protocol: ETH Router v4
0.42539694 ETH0.000081942.0307176
Deposit With Exp...245077532026-02-21 20:53:1111 hrs ago1771707191IN
Maya Protocol: ETH Router v4
0 ETH0.000142632.03621137
Deposit With Exp...245076422026-02-21 20:30:4712 hrs ago1771705847IN
Maya Protocol: ETH Router v4
0 ETH0.000142512.03445739
Transfer Out245071512026-02-21 18:51:3513 hrs ago1771699895IN
Maya Protocol: ETH Router v4
0 ETH0.000132332.04188649
Deposit With Exp...245066022026-02-21 17:01:3515 hrs ago1771693295IN
Maya Protocol: ETH Router v4
19.87892774 ETH0.000604215
Transfer Out245065632026-02-21 16:53:4715 hrs ago1771692827IN
Maya Protocol: ETH Router v4
1.88137618 ETH0.000083652.04257043
Deposit With Exp...245065482026-02-21 16:50:4715 hrs ago1771692647IN
Maya Protocol: ETH Router v4
0 ETH0.000109262.05063326
Deposit With Exp...245065402026-02-21 16:49:1116 hrs ago1771692551IN
Maya Protocol: ETH Router v4
0 ETH0.000109182.04915847
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer245105532026-02-22 6:15:352 hrs ago1771740935
Maya Protocol: ETH Router v4
0.00437346 ETH
Transfer245092022026-02-22 1:44:357 hrs ago1771724675
Maya Protocol: ETH Router v4
0.16383006 ETH
Transfer245088792026-02-22 0:39:358 hrs ago1771720775
Maya Protocol: ETH Router v4
0.66714108 ETH
Transfer245082802026-02-21 22:38:5910 hrs ago1771713539
Maya Protocol: ETH Router v4
0.46788082 ETH
Transfer245077912026-02-21 21:00:4711 hrs ago1771707647
Maya Protocol: ETH Router v4
0.42539694 ETH
Transfer245066022026-02-21 17:01:3515 hrs ago1771693295
Maya Protocol: ETH Router v4
19.87892774 ETH
Transfer245065632026-02-21 16:53:4715 hrs ago1771692827
Maya Protocol: ETH Router v4
1.88137618 ETH
Transfer245065322026-02-21 16:47:3516 hrs ago1771692455
Maya Protocol: ETH Router v4
3.76463546 ETH
Transfer245059582026-02-21 14:52:2317 hrs ago1771685543
Maya Protocol: ETH Router v4
14.66622097 ETH
Transfer245057052026-02-21 14:01:3518 hrs ago1771682495
Maya Protocol: ETH Router v4
19.6014122 ETH
Transfer245056602026-02-21 13:52:3518 hrs ago1771681955
Maya Protocol: ETH Router v4
2.13832877 ETH
Transfer245056362026-02-21 13:47:4719 hrs ago1771681667
Maya Protocol: ETH Router v4
4.27854154 ETH
Transfer245050962026-02-21 11:59:3520 hrs ago1771675175
Maya Protocol: ETH Router v4
42.47128586 ETH
Transfer245010442026-02-20 22:26:2334 hrs ago1771626383
Maya Protocol: ETH Router v4
1.08187128 ETH
Transfer245004592026-02-20 20:29:1136 hrs ago1771619351
Maya Protocol: ETH Router v4
1.0178834 ETH
Transfer244992602026-02-20 16:28:4740 hrs ago1771604927
Maya Protocol: ETH Router v4
299.24129228 ETH
Transfer244989052026-02-20 15:17:2341 hrs ago1771600643
Maya Protocol: ETH Router v4
74.79748502 ETH
Transfer244956752026-02-20 4:28:472 days ago1771561727
Maya Protocol: ETH Router v4
0.68637634 ETH
Transfer244940322026-02-19 22:59:112 days ago1771541951
Maya Protocol: ETH Router v4
3.76554893 ETH
Transfer244940122026-02-19 22:55:112 days ago1771541711
Maya Protocol: ETH Router v4
3.76567233 ETH
Transfer244915052026-02-19 14:31:112 days ago1771511471
Maya Protocol: ETH Router v4
0.01621573 ETH
Transfer244857962026-02-18 19:24:593 days ago1771442699
Maya Protocol: ETH Router v4
0.92591839 ETH
Transfer244846322026-02-18 15:31:233 days ago1771428683
Maya Protocol: ETH Router v4
2.09240447 ETH
Transfer244844882026-02-18 15:02:353 days ago1771426955
Maya Protocol: ETH Router v4
0.0709799 ETH
Transfer244830142026-02-18 10:06:233 days ago1771409183
Maya Protocol: ETH Router v4
0.00046467 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MAYAChain_Router

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-03-23
*/

// SPDX-License-Identifier: MIT
// -------------------
// Router Version: 4.0
// -------------------
pragma solidity 0.8.13;

// ERC20 Interface
interface iERC20 {
    function balanceOf(address) external view returns (uint256);
}
// ROUTER Interface
interface iROUTER {
    function depositWithExpiry(address, address, uint, string calldata, uint) external;
}

// MAYAChain_Router is managed by MAYAChain Vaults
contract MAYAChain_Router {
    struct Coin {
        address asset;
        uint amount;
    }

    // Vault allowance for each asset
    mapping(address => mapping(address => uint)) private _vaultAllowance;

    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;
    uint256 private _status;

    // Emitted for all deposits, the memo distinguishes for swap, add, remove, donate etc
    event Deposit(address indexed to, address indexed asset, uint amount, string memo);

    // Emitted for all outgoing transfers, the vault dictates who sent it, memo used to track.
    event TransferOut(address indexed vault, address indexed to, address asset, uint amount, string memo);

    // Emitted for all outgoing transferAndCalls, the vault dictates who sent it, memo used to track.
    event TransferOutAndCall(address indexed vault, address target, uint amount, address finalAsset, address to, uint256 amountOutMin, string memo);

    // Changes the spend allowance between vaults
    event TransferAllowance(address indexed oldVault, address indexed newVault, address asset, uint amount, string memo);

    // Specifically used to batch send the entire vault assets
    event VaultTransfer(address indexed oldVault, address indexed newVault, Coin[] coins, string memo);

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }

    constructor() {
        _status = _NOT_ENTERED;
    }

    // Deposit with Expiry (preferred)
    function depositWithExpiry(address payable vault, address asset, uint amount, string memory memo, uint expiration) external payable {
        require(block.timestamp < expiration, "MAYAChain_Router: expired");
        deposit(vault, asset, amount, memo);
    }

    // Deposit an asset with a memo. ETH is forwarded, ERC-20 stays in ROUTER
    function deposit(address payable vault, address asset, uint amount, string memory memo) public payable nonReentrant{
        uint safeAmount;
        if(asset == address(0)){
            safeAmount = msg.value;
            bool success = vault.send(safeAmount);
            require(success);
        } else {
            require(msg.value == 0, "unexpected eth");  // protect user from accidentally locking up eth
            safeAmount = safeTransferFrom(asset, amount); // Transfer asset
            _vaultAllowance[vault][asset] += safeAmount; // Credit to chosen vault
        }
        emit Deposit(vault, asset, safeAmount, memo);
    }

    //############################## ALLOWANCE TRANSFERS ##############################

    // Use for "moving" assets between vaults (asgard<>ygg), as well "churning" to a new Asgard
    function transferAllowance(address router, address newVault, address asset, uint amount, string memory memo) external nonReentrant {
        if (router == address(this)){
            _adjustAllowances(newVault, asset, amount);
            emit TransferAllowance(msg.sender, newVault, asset, amount, memo);
        } else {
            _routerDeposit(router, newVault, asset, amount, memo);
        }
    }

    //############################## ASSET TRANSFERS ##############################

    // Any vault calls to transfer any asset to any recipient.
    // Note: Contract recipients of ETH are only given 2300 Gas to complete execution.
    function transferOut(address payable to, address asset, uint amount, string memory memo) public payable nonReentrant {
        uint safeAmount;
        if(asset == address(0)){
            safeAmount = msg.value;
            bool success = to.send(safeAmount); // Send ETH.
            if (!success) {
                payable(address(msg.sender)).transfer(safeAmount); // For failure, bounce back to Yggdrasil & continue.
            }
        } else {
            _vaultAllowance[msg.sender][asset] -= amount; // Reduce allowance
            (bool success, bytes memory data) = asset.call(abi.encodeWithSignature("transfer(address,uint256)" , to, amount));
            require(success && (data.length == 0 || abi.decode(data, (bool))));
            safeAmount = amount;
        }
        emit TransferOut(msg.sender, to, asset, safeAmount, memo);
    }

    // Any vault calls to transferAndCall on a target contract that conforms with "swapOut(address,address,uint256)"
    // Example Memo: "~1b3:ETH.0xFinalToken:0xTo:"
    // Target is fuzzy-matched to the last three digits of whitelisted aggregators
    // FinalToken, To, amountOutMin come from originating memo
    // Memo passed in here is the "OUT:HASH" type
    function transferOutAndCall(address payable target, address finalToken, address to, uint256 amountOutMin, string memory memo) public payable nonReentrant {
        uint256 _safeAmount = msg.value;
        (bool erc20Success, ) = target.call{value:_safeAmount}(abi.encodeWithSignature("swapOut(address,address,uint256)", finalToken, to, amountOutMin));
        if (!erc20Success) {
            bool ethSuccess = payable(to).send(_safeAmount); // If can't swap, just send the recipient the ETH
            if (!ethSuccess) {
                payable(address(msg.sender)).transfer(_safeAmount); // For failure, bounce back to Yggdrasil & continue.
            }
        }
        emit TransferOutAndCall(msg.sender, target, _safeAmount, finalToken, to, amountOutMin, memo);
    }


    //############################## VAULT MANAGEMENT ##############################

    // A vault can call to "return" all assets to an asgard, including ETH.
    function returnVaultAssets(address router, address payable asgard, Coin[] memory coins, string memory memo) external payable nonReentrant {
        if (router == address(this)){
            for(uint i = 0; i < coins.length; i++){
                _adjustAllowances(asgard, coins[i].asset, coins[i].amount);
            }
            emit VaultTransfer(msg.sender, asgard, coins, memo); // Does not include ETH.
        } else {
            for(uint i = 0; i < coins.length; i++){
                _routerDeposit(router, asgard, coins[i].asset, coins[i].amount, memo);
            }
        }
        bool success = asgard.send(msg.value);
        require(success);
    }

    //############################## HELPERS ##############################

    function vaultAllowance(address vault, address token) public view returns(uint amount){
        return _vaultAllowance[vault][token];
    }

    // Safe transferFrom in case asset charges transfer fees
    function safeTransferFrom(address _asset, uint _amount) internal returns(uint amount) {
        uint _startBal = iERC20(_asset).balanceOf(address(this));
        (bool success, bytes memory data) = _asset.call(abi.encodeWithSignature("transferFrom(address,address,uint256)", msg.sender, address(this), _amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))));
        return (iERC20(_asset).balanceOf(address(this)) - _startBal);
    }

    // Decrements and Increments Allowances between two vaults
    function _adjustAllowances(address _newVault, address _asset, uint _amount) internal {
        _vaultAllowance[msg.sender][_asset] -= _amount;
        _vaultAllowance[_newVault][_asset] += _amount;
    }

    // Adjust allowance and forwards funds to new router, credits allowance to desired vault
    function _routerDeposit(address _router, address _vault, address _asset, uint _amount, string memory _memo) internal {
        _vaultAllowance[msg.sender][_asset] -= _amount;
        (bool success,) = _asset.call(abi.encodeWithSignature("approve(address,uint256)", _router, _amount)); // Approve to transfer
        require(success);
        iROUTER(_router).depositWithExpiry(_vault, _asset, _amount, _memo, type(uint).max); // Transfer by depositing
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferAllowance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"finalAsset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"TransferOutAndCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"indexed":false,"internalType":"struct MAYAChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"indexed":false,"internalType":"string","name":"memo","type":"string"}],"name":"VaultTransfer","type":"event"},{"inputs":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"depositWithExpiry","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address payable","name":"asgard","type":"address"},{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct MAYAChain_Router.Coin[]","name":"coins","type":"tuple[]"},{"internalType":"string","name":"memo","type":"string"}],"name":"returnVaultAssets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"newVault","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferOut","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"target","type":"address"},{"internalType":"address","name":"finalToken","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"string","name":"memo","type":"string"}],"name":"transferOutAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"vaultAllowance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5060018081905550612112806100276000396000f3fe6080604052600436106100705760003560e01c80632923e82e1161004e5780632923e82e146100f75780634039fd4b1461011357806344bc937b1461012f578063574da7171461014b57610070565b806303b6a673146100755780631b738b32146100b25780631fece7b4146100db575b600080fd5b34801561008157600080fd5b5061009c6004803603810190610097919061132f565b610167565b6040516100a99190611388565b60405180910390f35b3480156100be57600080fd5b506100d960048036038101906100d49190611515565b6101ed565b005b6100f560048036038101906100f091906115ea565b610302565b005b610111600480360381019061010c919061178a565b610527565b005b61012d60048036038101906101289190611829565b610735565b005b610149600480360381019061014491906118c0565b61097b565b005b610165600480360381019061016091906115ea565b6109d0565b005b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260015403610232576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610229906119b4565b60405180910390fd5b60026001819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036102e657610278848484610d20565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f05b90458f953d3fcb2d7fb25616a2fddeca749d0c47cc5c9832d0266b5346eea8585856040516102d993929190611a5a565b60405180910390a36102f4565b6102f38585858585610e49565b5b600180819055505050505050565b600260015403610347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033e906119b4565b60405180910390fd5b600260018190555060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036103d05734905060008573ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050509050806103ca57600080fd5b506104b2565b60003414610413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040a90611ae4565b60405180910390fd5b61041d848461107c565b9050806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104aa9190611b33565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb3958385604051610511929190611b89565b60405180910390a3506001808190555050505050565b60026001540361056c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610563906119b4565b60405180910390fd5b60026001819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361067a5760005b825181101561060d576105fa848483815181106105ca576105c9611bb9565b5b6020026020010151600001518584815181106105e9576105e8611bb9565b5b602002602001015160200151610d20565b808061060590611be8565b9150506105aa565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f281daef48d91e5cd3d32db0784f6af69cd8d8d2e8c612a3568dca51ded51e08f848460405161066d929190611d2c565b60405180910390a36106e4565b60005b82518110156106e2576106cf858585848151811061069e5761069d611bb9565b5b6020026020010151600001518685815181106106bd576106bc611bb9565b5b60200260200101516020015186610e49565b80806106da90611be8565b91505061067d565b505b60008373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505090508061072757600080fd5b506001808190555050505050565b60026001540361077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610771906119b4565b60405180910390fd5b6002600181905550600034905060008673ffffffffffffffffffffffffffffffffffffffff16828787876040516024016107b693929190611d63565b6040516020818303038152906040527f48c314f4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108409190611de1565b60006040518083038185875af1925050503d806000811461087d576040519150601f19603f3d011682016040523d82523d6000602084013e610882565b606091505b50509050806109135760008573ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050905080610911573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561090f573d6000803e3d6000fd5b505b505b3373ffffffffffffffffffffffffffffffffffffffff167f8e5841bcd195b858d53b38bcf91b38d47f3bc800469b6812d35451ab619c6f6c88848989898960405161096396959493929190611e57565b60405180910390a25050600180819055505050505050565b8042106109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490611f0b565b60405180910390fd5b6109c985858585610302565b5050505050565b600260015403610a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c906119b4565b60405180910390fd5b600260018190555060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ae15734905060008573ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905080610adb573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ad9573d6000803e3d6000fd5b505b50610ca9565b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b6c9190611f2b565b925050819055506000808573ffffffffffffffffffffffffffffffffffffffff168786604051602401610ba0929190611f6e565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610c2a9190611de1565b6000604051808303816000865af19150503d8060008114610c67576040519150601f19603f3d011682016040523d82523d6000602084013e610c6c565b606091505b5091509150818015610c9a5750600081511480610c99575080806020019051810190610c989190611fcf565b5b5b610ca357600080fd5b84925050505b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa9cd03aa3c1b4515114539cd53d22085129d495cb9e9f9af77864526240f1bf7868486604051610d0a93929190611a5a565b60405180910390a3506001808190555050505050565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dab9190611f2b565b92505081905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e3d9190611b33565b92505081905550505050565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed49190611f2b565b9250508190555060008373ffffffffffffffffffffffffffffffffffffffff168684604051602401610f07929190611ffc565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f919190611de1565b6000604051808303816000865af19150503d8060008114610fce576040519150601f19603f3d011682016040523d82523d6000602084013e610fd3565b606091505b5050905080610fe157600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166344bc937b868686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518663ffffffff1660e01b8152600401611042959493929190612025565b600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b50505050505050505050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110b8919061207f565b602060405180830381865afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f991906120af565b90506000808573ffffffffffffffffffffffffffffffffffffffff1633308760405160240161112a93929190611d63565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111b49190611de1565b6000604051808303816000865af19150503d80600081146111f1576040519150601f19603f3d011682016040523d82523d6000602084013e6111f6565b606091505b509150915081801561122457506000815114806112235750808060200190518101906112229190611fcf565b5b5b61122d57600080fd5b828673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611267919061207f565b602060405180830381865afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a891906120af565b6112b29190611f2b565b935050505092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112fc826112d1565b9050919050565b61130c816112f1565b811461131757600080fd5b50565b60008135905061132981611303565b92915050565b60008060408385031215611346576113456112c7565b5b60006113548582860161131a565b92505060206113658582860161131a565b9150509250929050565b6000819050919050565b6113828161136f565b82525050565b600060208201905061139d6000830184611379565b92915050565b6113ac8161136f565b81146113b757600080fd5b50565b6000813590506113c9816113a3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611422826113d9565b810181811067ffffffffffffffff82111715611441576114406113ea565b5b80604052505050565b60006114546112bd565b90506114608282611419565b919050565b600067ffffffffffffffff8211156114805761147f6113ea565b5b611489826113d9565b9050602081019050919050565b82818337600083830152505050565b60006114b86114b384611465565b61144a565b9050828152602081018484840111156114d4576114d36113d4565b5b6114df848285611496565b509392505050565b600082601f8301126114fc576114fb6113cf565b5b813561150c8482602086016114a5565b91505092915050565b600080600080600060a08688031215611531576115306112c7565b5b600061153f8882890161131a565b95505060206115508882890161131a565b94505060406115618882890161131a565b9350506060611572888289016113ba565b925050608086013567ffffffffffffffff811115611593576115926112cc565b5b61159f888289016114e7565b9150509295509295909350565b60006115b7826112d1565b9050919050565b6115c7816115ac565b81146115d257600080fd5b50565b6000813590506115e4816115be565b92915050565b60008060008060808587031215611604576116036112c7565b5b6000611612878288016115d5565b94505060206116238782880161131a565b9350506040611634878288016113ba565b925050606085013567ffffffffffffffff811115611655576116546112cc565b5b611661878288016114e7565b91505092959194509250565b600067ffffffffffffffff821115611688576116876113ea565b5b602082029050602081019050919050565b600080fd5b600080fd5b6000604082840312156116b9576116b861169e565b5b6116c3604061144a565b905060006116d38482850161131a565b60008301525060206116e7848285016113ba565b60208301525092915050565b60006117066117018461166d565b61144a565b9050808382526020820190506040840283018581111561172957611728611699565b5b835b81811015611752578061173e88826116a3565b84526020840193505060408101905061172b565b5050509392505050565b600082601f830112611771576117706113cf565b5b81356117818482602086016116f3565b91505092915050565b600080600080608085870312156117a4576117a36112c7565b5b60006117b28782880161131a565b94505060206117c3878288016115d5565b935050604085013567ffffffffffffffff8111156117e4576117e36112cc565b5b6117f08782880161175c565b925050606085013567ffffffffffffffff811115611811576118106112cc565b5b61181d878288016114e7565b91505092959194509250565b600080600080600060a08688031215611845576118446112c7565b5b6000611853888289016115d5565b95505060206118648882890161131a565b94505060406118758882890161131a565b9350506060611886888289016113ba565b925050608086013567ffffffffffffffff8111156118a7576118a66112cc565b5b6118b3888289016114e7565b9150509295509295909350565b600080600080600060a086880312156118dc576118db6112c7565b5b60006118ea888289016115d5565b95505060206118fb8882890161131a565b945050604061190c888289016113ba565b935050606086013567ffffffffffffffff81111561192d5761192c6112cc565b5b611939888289016114e7565b925050608061194a888289016113ba565b9150509295509295909350565b600082825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061199e601f83611957565b91506119a982611968565b602082019050919050565b600060208201905081810360008301526119cd81611991565b9050919050565b6119dd816112f1565b82525050565b600081519050919050565b60005b83811015611a0c5780820151818401526020810190506119f1565b83811115611a1b576000848401525b50505050565b6000611a2c826119e3565b611a368185611957565b9350611a468185602086016119ee565b611a4f816113d9565b840191505092915050565b6000606082019050611a6f60008301866119d4565b611a7c6020830185611379565b8181036040830152611a8e8184611a21565b9050949350505050565b7f756e657870656374656420657468000000000000000000000000000000000000600082015250565b6000611ace600e83611957565b9150611ad982611a98565b602082019050919050565b60006020820190508181036000830152611afd81611ac1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b3e8261136f565b9150611b498361136f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b7e57611b7d611b04565b5b828201905092915050565b6000604082019050611b9e6000830185611379565b8181036020830152611bb08184611a21565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611bf38261136f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c2557611c24611b04565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611c65816112f1565b82525050565b611c748161136f565b82525050565b604082016000820151611c906000850182611c5c565b506020820151611ca36020850182611c6b565b50505050565b6000611cb58383611c7a565b60408301905092915050565b6000602082019050919050565b6000611cd982611c30565b611ce38185611c3b565b9350611cee83611c4c565b8060005b83811015611d1f578151611d068882611ca9565b9750611d1183611cc1565b925050600181019050611cf2565b5085935050505092915050565b60006040820190508181036000830152611d468185611cce565b90508181036020830152611d5a8184611a21565b90509392505050565b6000606082019050611d7860008301866119d4565b611d8560208301856119d4565b611d926040830184611379565b949350505050565b600081519050919050565b600081905092915050565b6000611dbb82611d9a565b611dc58185611da5565b9350611dd58185602086016119ee565b80840191505092915050565b6000611ded8284611db0565b915081905092915050565b6000819050919050565b6000611e1d611e18611e13846112d1565b611df8565b6112d1565b9050919050565b6000611e2f82611e02565b9050919050565b6000611e4182611e24565b9050919050565b611e5181611e36565b82525050565b600060c082019050611e6c6000830189611e48565b611e796020830188611379565b611e8660408301876119d4565b611e9360608301866119d4565b611ea06080830185611379565b81810360a0830152611eb28184611a21565b9050979650505050505050565b7f4d415941436861696e5f526f757465723a206578706972656400000000000000600082015250565b6000611ef5601983611957565b9150611f0082611ebf565b602082019050919050565b60006020820190508181036000830152611f2481611ee8565b9050919050565b6000611f368261136f565b9150611f418361136f565b925082821015611f5457611f53611b04565b5b828203905092915050565b611f68816115ac565b82525050565b6000604082019050611f836000830185611f5f565b611f906020830184611379565b9392505050565b60008115159050919050565b611fac81611f97565b8114611fb757600080fd5b50565b600081519050611fc981611fa3565b92915050565b600060208284031215611fe557611fe46112c7565b5b6000611ff384828501611fba565b91505092915050565b600060408201905061201160008301856119d4565b61201e6020830184611379565b9392505050565b600060a08201905061203a60008301886119d4565b61204760208301876119d4565b6120546040830186611379565b81810360608301526120668185611a21565b90506120756080830184611379565b9695505050505050565b600060208201905061209460008301846119d4565b92915050565b6000815190506120a9816113a3565b92915050565b6000602082840312156120c5576120c46112c7565b5b60006120d38482850161209a565b9150509291505056fea2646970667358221220227ba12464a5690fa1387de64d43ddd586d4eadb67584087aaf1aa0b2555b69c64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106100705760003560e01c80632923e82e1161004e5780632923e82e146100f75780634039fd4b1461011357806344bc937b1461012f578063574da7171461014b57610070565b806303b6a673146100755780631b738b32146100b25780631fece7b4146100db575b600080fd5b34801561008157600080fd5b5061009c6004803603810190610097919061132f565b610167565b6040516100a99190611388565b60405180910390f35b3480156100be57600080fd5b506100d960048036038101906100d49190611515565b6101ed565b005b6100f560048036038101906100f091906115ea565b610302565b005b610111600480360381019061010c919061178a565b610527565b005b61012d60048036038101906101289190611829565b610735565b005b610149600480360381019061014491906118c0565b61097b565b005b610165600480360381019061016091906115ea565b6109d0565b005b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260015403610232576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610229906119b4565b60405180910390fd5b60026001819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036102e657610278848484610d20565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f05b90458f953d3fcb2d7fb25616a2fddeca749d0c47cc5c9832d0266b5346eea8585856040516102d993929190611a5a565b60405180910390a36102f4565b6102f38585858585610e49565b5b600180819055505050505050565b600260015403610347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033e906119b4565b60405180910390fd5b600260018190555060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036103d05734905060008573ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050509050806103ca57600080fd5b506104b2565b60003414610413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040a90611ae4565b60405180910390fd5b61041d848461107c565b9050806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104aa9190611b33565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fef519b7eb82aaf6ac376a6df2d793843ebfd593de5f1a0601d3cc6ab49ebb3958385604051610511929190611b89565b60405180910390a3506001808190555050505050565b60026001540361056c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610563906119b4565b60405180910390fd5b60026001819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361067a5760005b825181101561060d576105fa848483815181106105ca576105c9611bb9565b5b6020026020010151600001518584815181106105e9576105e8611bb9565b5b602002602001015160200151610d20565b808061060590611be8565b9150506105aa565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f281daef48d91e5cd3d32db0784f6af69cd8d8d2e8c612a3568dca51ded51e08f848460405161066d929190611d2c565b60405180910390a36106e4565b60005b82518110156106e2576106cf858585848151811061069e5761069d611bb9565b5b6020026020010151600001518685815181106106bd576106bc611bb9565b5b60200260200101516020015186610e49565b80806106da90611be8565b91505061067d565b505b60008373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505090508061072757600080fd5b506001808190555050505050565b60026001540361077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610771906119b4565b60405180910390fd5b6002600181905550600034905060008673ffffffffffffffffffffffffffffffffffffffff16828787876040516024016107b693929190611d63565b6040516020818303038152906040527f48c314f4000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516108409190611de1565b60006040518083038185875af1925050503d806000811461087d576040519150601f19603f3d011682016040523d82523d6000602084013e610882565b606091505b50509050806109135760008573ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050905080610911573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561090f573d6000803e3d6000fd5b505b505b3373ffffffffffffffffffffffffffffffffffffffff167f8e5841bcd195b858d53b38bcf91b38d47f3bc800469b6812d35451ab619c6f6c88848989898960405161096396959493929190611e57565b60405180910390a25050600180819055505050505050565b8042106109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490611f0b565b60405180910390fd5b6109c985858585610302565b5050505050565b600260015403610a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c906119b4565b60405180910390fd5b600260018190555060008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ae15734905060008573ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905080610adb573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610ad9573d6000803e3d6000fd5b505b50610ca9565b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b6c9190611f2b565b925050819055506000808573ffffffffffffffffffffffffffffffffffffffff168786604051602401610ba0929190611f6e565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610c2a9190611de1565b6000604051808303816000865af19150503d8060008114610c67576040519150601f19603f3d011682016040523d82523d6000602084013e610c6c565b606091505b5091509150818015610c9a5750600081511480610c99575080806020019051810190610c989190611fcf565b5b5b610ca357600080fd5b84925050505b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fa9cd03aa3c1b4515114539cd53d22085129d495cb9e9f9af77864526240f1bf7868486604051610d0a93929190611a5a565b60405180910390a3506001808190555050505050565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dab9190611f2b565b92505081905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e3d9190611b33565b92505081905550505050565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed49190611f2b565b9250508190555060008373ffffffffffffffffffffffffffffffffffffffff168684604051602401610f07929190611ffc565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610f919190611de1565b6000604051808303816000865af19150503d8060008114610fce576040519150601f19603f3d011682016040523d82523d6000602084013e610fd3565b606091505b5050905080610fe157600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166344bc937b868686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518663ffffffff1660e01b8152600401611042959493929190612025565b600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b50505050505050505050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110b8919061207f565b602060405180830381865afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f991906120af565b90506000808573ffffffffffffffffffffffffffffffffffffffff1633308760405160240161112a93929190611d63565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111b49190611de1565b6000604051808303816000865af19150503d80600081146111f1576040519150601f19603f3d011682016040523d82523d6000602084013e6111f6565b606091505b509150915081801561122457506000815114806112235750808060200190518101906112229190611fcf565b5b5b61122d57600080fd5b828673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611267919061207f565b602060405180830381865afa158015611284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a891906120af565b6112b29190611f2b565b935050505092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112fc826112d1565b9050919050565b61130c816112f1565b811461131757600080fd5b50565b60008135905061132981611303565b92915050565b60008060408385031215611346576113456112c7565b5b60006113548582860161131a565b92505060206113658582860161131a565b9150509250929050565b6000819050919050565b6113828161136f565b82525050565b600060208201905061139d6000830184611379565b92915050565b6113ac8161136f565b81146113b757600080fd5b50565b6000813590506113c9816113a3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611422826113d9565b810181811067ffffffffffffffff82111715611441576114406113ea565b5b80604052505050565b60006114546112bd565b90506114608282611419565b919050565b600067ffffffffffffffff8211156114805761147f6113ea565b5b611489826113d9565b9050602081019050919050565b82818337600083830152505050565b60006114b86114b384611465565b61144a565b9050828152602081018484840111156114d4576114d36113d4565b5b6114df848285611496565b509392505050565b600082601f8301126114fc576114fb6113cf565b5b813561150c8482602086016114a5565b91505092915050565b600080600080600060a08688031215611531576115306112c7565b5b600061153f8882890161131a565b95505060206115508882890161131a565b94505060406115618882890161131a565b9350506060611572888289016113ba565b925050608086013567ffffffffffffffff811115611593576115926112cc565b5b61159f888289016114e7565b9150509295509295909350565b60006115b7826112d1565b9050919050565b6115c7816115ac565b81146115d257600080fd5b50565b6000813590506115e4816115be565b92915050565b60008060008060808587031215611604576116036112c7565b5b6000611612878288016115d5565b94505060206116238782880161131a565b9350506040611634878288016113ba565b925050606085013567ffffffffffffffff811115611655576116546112cc565b5b611661878288016114e7565b91505092959194509250565b600067ffffffffffffffff821115611688576116876113ea565b5b602082029050602081019050919050565b600080fd5b600080fd5b6000604082840312156116b9576116b861169e565b5b6116c3604061144a565b905060006116d38482850161131a565b60008301525060206116e7848285016113ba565b60208301525092915050565b60006117066117018461166d565b61144a565b9050808382526020820190506040840283018581111561172957611728611699565b5b835b81811015611752578061173e88826116a3565b84526020840193505060408101905061172b565b5050509392505050565b600082601f830112611771576117706113cf565b5b81356117818482602086016116f3565b91505092915050565b600080600080608085870312156117a4576117a36112c7565b5b60006117b28782880161131a565b94505060206117c3878288016115d5565b935050604085013567ffffffffffffffff8111156117e4576117e36112cc565b5b6117f08782880161175c565b925050606085013567ffffffffffffffff811115611811576118106112cc565b5b61181d878288016114e7565b91505092959194509250565b600080600080600060a08688031215611845576118446112c7565b5b6000611853888289016115d5565b95505060206118648882890161131a565b94505060406118758882890161131a565b9350506060611886888289016113ba565b925050608086013567ffffffffffffffff8111156118a7576118a66112cc565b5b6118b3888289016114e7565b9150509295509295909350565b600080600080600060a086880312156118dc576118db6112c7565b5b60006118ea888289016115d5565b95505060206118fb8882890161131a565b945050604061190c888289016113ba565b935050606086013567ffffffffffffffff81111561192d5761192c6112cc565b5b611939888289016114e7565b925050608061194a888289016113ba565b9150509295509295909350565b600082825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b600061199e601f83611957565b91506119a982611968565b602082019050919050565b600060208201905081810360008301526119cd81611991565b9050919050565b6119dd816112f1565b82525050565b600081519050919050565b60005b83811015611a0c5780820151818401526020810190506119f1565b83811115611a1b576000848401525b50505050565b6000611a2c826119e3565b611a368185611957565b9350611a468185602086016119ee565b611a4f816113d9565b840191505092915050565b6000606082019050611a6f60008301866119d4565b611a7c6020830185611379565b8181036040830152611a8e8184611a21565b9050949350505050565b7f756e657870656374656420657468000000000000000000000000000000000000600082015250565b6000611ace600e83611957565b9150611ad982611a98565b602082019050919050565b60006020820190508181036000830152611afd81611ac1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b3e8261136f565b9150611b498361136f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b7e57611b7d611b04565b5b828201905092915050565b6000604082019050611b9e6000830185611379565b8181036020830152611bb08184611a21565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611bf38261136f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c2557611c24611b04565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611c65816112f1565b82525050565b611c748161136f565b82525050565b604082016000820151611c906000850182611c5c565b506020820151611ca36020850182611c6b565b50505050565b6000611cb58383611c7a565b60408301905092915050565b6000602082019050919050565b6000611cd982611c30565b611ce38185611c3b565b9350611cee83611c4c565b8060005b83811015611d1f578151611d068882611ca9565b9750611d1183611cc1565b925050600181019050611cf2565b5085935050505092915050565b60006040820190508181036000830152611d468185611cce565b90508181036020830152611d5a8184611a21565b90509392505050565b6000606082019050611d7860008301866119d4565b611d8560208301856119d4565b611d926040830184611379565b949350505050565b600081519050919050565b600081905092915050565b6000611dbb82611d9a565b611dc58185611da5565b9350611dd58185602086016119ee565b80840191505092915050565b6000611ded8284611db0565b915081905092915050565b6000819050919050565b6000611e1d611e18611e13846112d1565b611df8565b6112d1565b9050919050565b6000611e2f82611e02565b9050919050565b6000611e4182611e24565b9050919050565b611e5181611e36565b82525050565b600060c082019050611e6c6000830189611e48565b611e796020830188611379565b611e8660408301876119d4565b611e9360608301866119d4565b611ea06080830185611379565b81810360a0830152611eb28184611a21565b9050979650505050505050565b7f4d415941436861696e5f526f757465723a206578706972656400000000000000600082015250565b6000611ef5601983611957565b9150611f0082611ebf565b602082019050919050565b60006020820190508181036000830152611f2481611ee8565b9050919050565b6000611f368261136f565b9150611f418361136f565b925082821015611f5457611f53611b04565b5b828203905092915050565b611f68816115ac565b82525050565b6000604082019050611f836000830185611f5f565b611f906020830184611379565b9392505050565b60008115159050919050565b611fac81611f97565b8114611fb757600080fd5b50565b600081519050611fc981611fa3565b92915050565b600060208284031215611fe557611fe46112c7565b5b6000611ff384828501611fba565b91505092915050565b600060408201905061201160008301856119d4565b61201e6020830184611379565b9392505050565b600060a08201905061203a60008301886119d4565b61204760208301876119d4565b6120546040830186611379565b81810360608301526120668185611a21565b90506120756080830184611379565b9695505050505050565b600060208201905061209460008301846119d4565b92915050565b6000815190506120a9816113a3565b92915050565b6000602082840312156120c5576120c46112c7565b5b60006120d38482850161209a565b9150509291505056fea2646970667358221220227ba12464a5690fa1387de64d43ddd586d4eadb67584087aaf1aa0b2555b69c64736f6c634300080d0033

Deployed Bytecode Sourcemap

429:7985:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6889:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3257:412;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2407:654;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6121:681;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5161:785;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2057:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3916:868;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6889:141;6963:11;6993:15;:22;7009:5;6993:22;;;;;;;;;;;;;;;:29;7016:5;6993:29;;;;;;;;;;;;;;;;6986:36;;6889:141;;;;:::o;3257:412::-;736:1;1809:7;;:19;1801:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;736:1;1875:7;:18;;;;3421:4:::1;3403:23;;:6;:23;;::::0;3399:263:::1;;3442:42;3460:8;3470:5;3477:6;3442:17;:42::i;:::-;3534:8;3504:60;;3522:10;3504:60;;;3544:5;3551:6;3559:4;3504:60;;;;;;;;:::i;:::-;;;;;;;;3399:263;;;3597:53;3612:6;3620:8;3630:5;3637:6;3645:4;3597:14;:53::i;:::-;3399:263;692:1:::0;1916:7;:22;;;;3257:412;;;;;:::o;2407:654::-;736:1;1809:7;;:19;1801:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;736:1;1875:7;:18;;;;2533:15:::1;2579:1:::0;2562:19:::1;;:5;:19;;::::0;2559:440:::1;;2610:9;2597:22;;2634:12;2649:5;:10;;:22;2660:10;2649:22;;;;;;;;;;;;;;;;;;;;;;;2634:37;;2694:7;2686:16;;;::::0;::::1;;2582:132;2559:440;;;2756:1;2743:9;:14;2735:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2854:31;2871:5;2878:6;2854:16;:31::i;:::-;2841:44;;2951:10;2918:15;:22:::0;2934:5:::1;2918:22;;;;;;;;;;;;;;;:29;2941:5;2918:29;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;2559:440;3029:5;3014:39;;3022:5;3014:39;;;3036:10;3048:4;3014:39;;;;;;;:::i;:::-;;;;;;;;2522:539;692:1:::0;1916:7;:22;;;;2407:654;;;;:::o;6121:681::-;736:1;1809:7;;:19;1801:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;736:1;1875:7;:18;;;;6292:4:::1;6274:23;;:6;:23;;::::0;6270:450:::1;;6317:6;6313:131;6333:5;:12;6329:1;:16;6313:131;;;6370:58;6388:6;6396:5;6402:1;6396:8;;;;;;;;:::i;:::-;;;;;;;;:14;;;6412:5;6418:1;6412:8;;;;;;;;:::i;:::-;;;;;;;;:15;;;6370:17;:58::i;:::-;6347:3;;;;;:::i;:::-;;;;6313:131;;;;6489:6;6463:46;;6477:10;6463:46;;;6497:5;6504:4;6463:46;;;;;;;:::i;:::-;;;;;;;;6270:450;;;6571:6;6567:142;6587:5;:12;6583:1;:16;6567:142;;;6624:69;6639:6;6647;6655:5;6661:1;6655:8;;;;;;;;:::i;:::-;;;;;;;;:14;;;6671:5;6677:1;6671:8;;;;;;;;:::i;:::-;;;;;;;;:15;;;6688:4;6624:14;:69::i;:::-;6601:3;;;;;:::i;:::-;;;;6567:142;;;;6270:450;6730:12;6745:6;:11;;:22;6757:9;6745:22;;;;;;;;;;;;;;;;;;;;;;;6730:37;;6786:7;6778:16;;;::::0;::::1;;6259:543;692:1:::0;1916:7;:22;;;;6121:681;;;;:::o;5161:785::-;736:1;1809:7;;:19;1801:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;736:1;1875:7;:18;;;;5326:19:::1;5348:9;5326:31;;5369:17;5392:6;:11;;5410;5483:10;5495:2;5499:12;5423:89;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5392:121;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5368:145;;;5529:12;5524:312;;5558:15;5584:2;5576:16;;:29;5593:11;5576:29;;;;;;;;;;;;;;;;;;;;;;;5558:47;;5675:10;5670:155;;5722:10;5706:37;;:50;5744:11;5706:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5670:155;5543:293;5524:312;5870:10;5851:87;;;5882:6;5890:11;5903:10;5915:2;5919:12;5933:4;5851:87;;;;;;;;;;;:::i;:::-;;;;;;;;5315:631;;692:1:::0;1916:7;:22;;;;5161:785;;;;;:::o;2057:263::-;2226:10;2208:15;:28;2200:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2277:35;2285:5;2292;2299:6;2307:4;2277:7;:35::i;:::-;2057:263;;;;;:::o;3916:868::-;736:1;1809:7;;:19;1801:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;736:1;1875:7;:18;;;;4044:15:::1;4090:1:::0;4073:19:::1;;:5;:19;;::::0;4070:639:::1;;4121:9;4108:22;;4145:12;4160:2;:7;;:19;4168:10;4160:19;;;;;;;;;;;;;;;;;;;;;;;4145:34;;4212:7;4207:151;;4256:10;4240:37;;:49;4278:10;4240:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4207:151;4093:276;4070:639;;;4428:6;4390:15;:27:::0;4406:10:::1;4390:27;;;;;;;;;;;;;;;:34;4418:5;4390:34;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;4470:12;4484:17:::0;4505:5:::1;:10;;4570:2;4574:6;4516:65;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4505:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:113;;;;4605:7;:57;;;;;4632:1;4617:4;:11;:16;:44;;;;4648:4;4637:24;;;;;;;;;;;;:::i;:::-;4617:44;4605:57;4597:66;;;::::0;::::1;;4691:6;4678:19;;4375:334;;4070:639;4748:2;4724:52;;4736:10;4724:52;;;4752:5;4759:10;4771:4;4724:52;;;;;;;;:::i;:::-;;;;;;;;4033:751;692:1:::0;1916:7;:22;;;;3916:868;;;;:::o;7641:206::-;7776:7;7737:15;:27;7753:10;7737:27;;;;;;;;;;;;;;;:35;7765:6;7737:35;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;7832:7;7794:15;:26;7810:9;7794:26;;;;;;;;;;;;;;;:34;7821:6;7794:34;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;7641:206;;;:::o;7949:462::-;8116:7;8077:15;:27;8093:10;8077:27;;;;;;;;;;;;;;;:35;8105:6;8077:35;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;8135:12;8152:6;:11;;8216:7;8225;8164:69;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8152:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8134:100;;;8276:7;8268:16;;;;;;8303:7;8295:34;;;8330:6;8338;8346:7;8355:5;8362:14;8295:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8066:345;7949:462;;;;;:::o;7100:469::-;7173:11;7197:14;7221:6;7214:24;;;7247:4;7214:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7197:56;;7265:12;7279:17;7300:6;:11;;7377:10;7397:4;7404:7;7312:100;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7300:113;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7264:149;;;;7432:7;:57;;;;;7459:1;7444:4;:11;:16;:44;;;;7475:4;7464:24;;;;;;;;;;;;:::i;:::-;7444:44;7432:57;7424:66;;;;;;7551:9;7516:6;7509:24;;;7542:4;7509:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;;;:::i;:::-;7501:60;;;;;7100:469;;;;:::o;7:75:1:-;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:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:77::-;1358:7;1387:5;1376:16;;1321:77;;;:::o;1404:118::-;1491:24;1509:5;1491:24;:::i;:::-;1486:3;1479:37;1404:118;;:::o;1528:222::-;1621:4;1659:2;1648:9;1644:18;1636:26;;1672:71;1740:1;1729:9;1725:17;1716:6;1672:71;:::i;:::-;1528:222;;;;:::o;1756:122::-;1829:24;1847:5;1829:24;:::i;:::-;1822:5;1819:35;1809:63;;1868:1;1865;1858:12;1809:63;1756:122;:::o;1884:139::-;1930:5;1968:6;1955:20;1946:29;;1984:33;2011:5;1984:33;:::i;:::-;1884:139;;;;:::o;2029:117::-;2138:1;2135;2128:12;2152:117;2261:1;2258;2251:12;2275:102;2316:6;2367:2;2363:7;2358:2;2351:5;2347:14;2343:28;2333:38;;2275:102;;;:::o;2383:180::-;2431:77;2428:1;2421:88;2528:4;2525:1;2518:15;2552:4;2549:1;2542:15;2569:281;2652:27;2674:4;2652:27;:::i;:::-;2644:6;2640:40;2782:6;2770:10;2767:22;2746:18;2734:10;2731:34;2728:62;2725:88;;;2793:18;;:::i;:::-;2725:88;2833:10;2829:2;2822:22;2612:238;2569:281;;:::o;2856:129::-;2890:6;2917:20;;:::i;:::-;2907:30;;2946:33;2974:4;2966:6;2946:33;:::i;:::-;2856:129;;;:::o;2991:308::-;3053:4;3143:18;3135:6;3132:30;3129:56;;;3165:18;;:::i;:::-;3129:56;3203:29;3225:6;3203:29;:::i;:::-;3195:37;;3287:4;3281;3277:15;3269:23;;2991:308;;;:::o;3305:154::-;3389:6;3384:3;3379;3366:30;3451:1;3442:6;3437:3;3433:16;3426:27;3305:154;;;:::o;3465:412::-;3543:5;3568:66;3584:49;3626:6;3584:49;:::i;:::-;3568:66;:::i;:::-;3559:75;;3657:6;3650:5;3643:21;3695:4;3688:5;3684:16;3733:3;3724:6;3719:3;3715:16;3712:25;3709:112;;;3740:79;;:::i;:::-;3709:112;3830:41;3864:6;3859:3;3854;3830:41;:::i;:::-;3549:328;3465:412;;;;;:::o;3897:340::-;3953:5;4002:3;3995:4;3987:6;3983:17;3979:27;3969:122;;4010:79;;:::i;:::-;3969:122;4127:6;4114:20;4152:79;4227:3;4219:6;4212:4;4204:6;4200:17;4152:79;:::i;:::-;4143:88;;3959:278;3897:340;;;;:::o;4243:1091::-;4348:6;4356;4364;4372;4380;4429:3;4417:9;4408:7;4404:23;4400:33;4397:120;;;4436:79;;:::i;:::-;4397:120;4556:1;4581:53;4626:7;4617:6;4606:9;4602:22;4581:53;:::i;:::-;4571:63;;4527:117;4683:2;4709:53;4754:7;4745:6;4734:9;4730:22;4709:53;:::i;:::-;4699:63;;4654:118;4811:2;4837:53;4882:7;4873:6;4862:9;4858:22;4837:53;:::i;:::-;4827:63;;4782:118;4939:2;4965:53;5010:7;5001:6;4990:9;4986:22;4965:53;:::i;:::-;4955:63;;4910:118;5095:3;5084:9;5080:19;5067:33;5127:18;5119:6;5116:30;5113:117;;;5149:79;;:::i;:::-;5113:117;5254:63;5309:7;5300:6;5289:9;5285:22;5254:63;:::i;:::-;5244:73;;5038:289;4243:1091;;;;;;;;:::o;5340:104::-;5385:7;5414:24;5432:5;5414:24;:::i;:::-;5403:35;;5340:104;;;:::o;5450:138::-;5531:32;5557:5;5531:32;:::i;:::-;5524:5;5521:43;5511:71;;5578:1;5575;5568:12;5511:71;5450:138;:::o;5594:155::-;5648:5;5686:6;5673:20;5664:29;;5702:41;5737:5;5702:41;:::i;:::-;5594:155;;;;:::o;5755:961::-;5859:6;5867;5875;5883;5932:3;5920:9;5911:7;5907:23;5903:33;5900:120;;;5939:79;;:::i;:::-;5900:120;6059:1;6084:61;6137:7;6128:6;6117:9;6113:22;6084:61;:::i;:::-;6074:71;;6030:125;6194:2;6220:53;6265:7;6256:6;6245:9;6241:22;6220:53;:::i;:::-;6210:63;;6165:118;6322:2;6348:53;6393:7;6384:6;6373:9;6369:22;6348:53;:::i;:::-;6338:63;;6293:118;6478:2;6467:9;6463:18;6450:32;6509:18;6501:6;6498:30;6495:117;;;6531:79;;:::i;:::-;6495:117;6636:63;6691:7;6682:6;6671:9;6667:22;6636:63;:::i;:::-;6626:73;;6421:288;5755:961;;;;;;;:::o;6722:331::-;6819:4;6909:18;6901:6;6898:30;6895:56;;;6931:18;;:::i;:::-;6895:56;6981:4;6973:6;6969:17;6961:25;;7041:4;7035;7031:15;7023:23;;6722:331;;;:::o;7059:117::-;7168:1;7165;7158:12;7182:117;7291:1;7288;7281:12;7464:572;7533:5;7577:4;7565:9;7560:3;7556:19;7552:30;7549:117;;;7585:79;;:::i;:::-;7549:117;7684:21;7700:4;7684:21;:::i;:::-;7675:30;;7765:1;7805:49;7850:3;7841:6;7830:9;7826:22;7805:49;:::i;:::-;7798:4;7791:5;7787:16;7780:75;7715:151;7927:2;7968:49;8013:3;8004:6;7993:9;7989:22;7968:49;:::i;:::-;7961:4;7954:5;7950:16;7943:75;7876:153;7464:572;;;;:::o;8080:770::-;8196:5;8221:101;8237:84;8314:6;8237:84;:::i;:::-;8221:101;:::i;:::-;8212:110;;8342:5;8371:6;8364:5;8357:21;8405:4;8398:5;8394:16;8387:23;;8458:4;8450:6;8446:17;8438:6;8434:30;8487:3;8479:6;8476:15;8473:122;;;8506:79;;:::i;:::-;8473:122;8621:6;8604:240;8638:6;8633:3;8630:15;8604:240;;;8713:3;8742:57;8795:3;8783:10;8742:57;:::i;:::-;8737:3;8730:70;8829:4;8824:3;8820:14;8813:21;;8680:164;8664:4;8659:3;8655:14;8648:21;;8604:240;;;8608:21;8202:648;;8080:770;;;;;:::o;8894:410::-;8985:5;9034:3;9027:4;9019:6;9015:17;9011:27;9001:122;;9042:79;;:::i;:::-;9001:122;9159:6;9146:20;9184:114;9294:3;9286:6;9279:4;9271:6;9267:17;9184:114;:::i;:::-;9175:123;;8991:313;8894:410;;;;:::o;9310:1211::-;9459:6;9467;9475;9483;9532:3;9520:9;9511:7;9507:23;9503:33;9500:120;;;9539:79;;:::i;:::-;9500:120;9659:1;9684:53;9729:7;9720:6;9709:9;9705:22;9684:53;:::i;:::-;9674:63;;9630:117;9786:2;9812:61;9865:7;9856:6;9845:9;9841:22;9812:61;:::i;:::-;9802:71;;9757:126;9950:2;9939:9;9935:18;9922:32;9981:18;9973:6;9970:30;9967:117;;;10003:79;;:::i;:::-;9967:117;10108:98;10198:7;10189:6;10178:9;10174:22;10108:98;:::i;:::-;10098:108;;9893:323;10283:2;10272:9;10268:18;10255:32;10314:18;10306:6;10303:30;10300:117;;;10336:79;;:::i;:::-;10300:117;10441:63;10496:7;10487:6;10476:9;10472:22;10441:63;:::i;:::-;10431:73;;10226:288;9310:1211;;;;;;;:::o;10527:1107::-;10640:6;10648;10656;10664;10672;10721:3;10709:9;10700:7;10696:23;10692:33;10689:120;;;10728:79;;:::i;:::-;10689:120;10848:1;10873:61;10926:7;10917:6;10906:9;10902:22;10873:61;:::i;:::-;10863:71;;10819:125;10983:2;11009:53;11054:7;11045:6;11034:9;11030:22;11009:53;:::i;:::-;10999:63;;10954:118;11111:2;11137:53;11182:7;11173:6;11162:9;11158:22;11137:53;:::i;:::-;11127:63;;11082:118;11239:2;11265:53;11310:7;11301:6;11290:9;11286:22;11265:53;:::i;:::-;11255:63;;11210:118;11395:3;11384:9;11380:19;11367:33;11427:18;11419:6;11416:30;11413:117;;;11449:79;;:::i;:::-;11413:117;11554:63;11609:7;11600:6;11589:9;11585:22;11554:63;:::i;:::-;11544:73;;11338:289;10527:1107;;;;;;;;:::o;11640:::-;11753:6;11761;11769;11777;11785;11834:3;11822:9;11813:7;11809:23;11805:33;11802:120;;;11841:79;;:::i;:::-;11802:120;11961:1;11986:61;12039:7;12030:6;12019:9;12015:22;11986:61;:::i;:::-;11976:71;;11932:125;12096:2;12122:53;12167:7;12158:6;12147:9;12143:22;12122:53;:::i;:::-;12112:63;;12067:118;12224:2;12250:53;12295:7;12286:6;12275:9;12271:22;12250:53;:::i;:::-;12240:63;;12195:118;12380:2;12369:9;12365:18;12352:32;12411:18;12403:6;12400:30;12397:117;;;12433:79;;:::i;:::-;12397:117;12538:63;12593:7;12584:6;12573:9;12569:22;12538:63;:::i;:::-;12528:73;;12323:288;12650:3;12677:53;12722:7;12713:6;12702:9;12698:22;12677:53;:::i;:::-;12667:63;;12621:119;11640:1107;;;;;;;;:::o;12753:169::-;12837:11;12871:6;12866:3;12859:19;12911:4;12906:3;12902:14;12887:29;;12753:169;;;;:::o;12928:181::-;13068:33;13064:1;13056:6;13052:14;13045:57;12928:181;:::o;13115:366::-;13257:3;13278:67;13342:2;13337:3;13278:67;:::i;:::-;13271:74;;13354:93;13443:3;13354:93;:::i;:::-;13472:2;13467:3;13463:12;13456:19;;13115:366;;;:::o;13487:419::-;13653:4;13691:2;13680:9;13676:18;13668:26;;13740:9;13734:4;13730:20;13726:1;13715:9;13711:17;13704:47;13768:131;13894:4;13768:131;:::i;:::-;13760:139;;13487:419;;;:::o;13912:118::-;13999:24;14017:5;13999:24;:::i;:::-;13994:3;13987:37;13912:118;;:::o;14036:99::-;14088:6;14122:5;14116:12;14106:22;;14036:99;;;:::o;14141:307::-;14209:1;14219:113;14233:6;14230:1;14227:13;14219:113;;;14318:1;14313:3;14309:11;14303:18;14299:1;14294:3;14290:11;14283:39;14255:2;14252:1;14248:10;14243:15;;14219:113;;;14350:6;14347:1;14344:13;14341:101;;;14430:1;14421:6;14416:3;14412:16;14405:27;14341:101;14190:258;14141:307;;;:::o;14454:364::-;14542:3;14570:39;14603:5;14570:39;:::i;:::-;14625:71;14689:6;14684:3;14625:71;:::i;:::-;14618:78;;14705:52;14750:6;14745:3;14738:4;14731:5;14727:16;14705:52;:::i;:::-;14782:29;14804:6;14782:29;:::i;:::-;14777:3;14773:39;14766:46;;14546:272;14454:364;;;;:::o;14824:533::-;14993:4;15031:2;15020:9;15016:18;15008:26;;15044:71;15112:1;15101:9;15097:17;15088:6;15044:71;:::i;:::-;15125:72;15193:2;15182:9;15178:18;15169:6;15125:72;:::i;:::-;15244:9;15238:4;15234:20;15229:2;15218:9;15214:18;15207:48;15272:78;15345:4;15336:6;15272:78;:::i;:::-;15264:86;;14824:533;;;;;;:::o;15363:164::-;15503:16;15499:1;15491:6;15487:14;15480:40;15363:164;:::o;15533:366::-;15675:3;15696:67;15760:2;15755:3;15696:67;:::i;:::-;15689:74;;15772:93;15861:3;15772:93;:::i;:::-;15890:2;15885:3;15881:12;15874:19;;15533:366;;;:::o;15905:419::-;16071:4;16109:2;16098:9;16094:18;16086:26;;16158:9;16152:4;16148:20;16144:1;16133:9;16129:17;16122:47;16186:131;16312:4;16186:131;:::i;:::-;16178:139;;15905:419;;;:::o;16330:180::-;16378:77;16375:1;16368:88;16475:4;16472:1;16465:15;16499:4;16496:1;16489:15;16516:305;16556:3;16575:20;16593:1;16575:20;:::i;:::-;16570:25;;16609:20;16627:1;16609:20;:::i;:::-;16604:25;;16763:1;16695:66;16691:74;16688:1;16685:81;16682:107;;;16769:18;;:::i;:::-;16682:107;16813:1;16810;16806:9;16799:16;;16516:305;;;;:::o;16827:423::-;16968:4;17006:2;16995:9;16991:18;16983:26;;17019:71;17087:1;17076:9;17072:17;17063:6;17019:71;:::i;:::-;17137:9;17131:4;17127:20;17122:2;17111:9;17107:18;17100:48;17165:78;17238:4;17229:6;17165:78;:::i;:::-;17157:86;;16827:423;;;;;:::o;17256:180::-;17304:77;17301:1;17294:88;17401:4;17398:1;17391:15;17425:4;17422:1;17415:15;17442:233;17481:3;17504:24;17522:5;17504:24;:::i;:::-;17495:33;;17550:66;17543:5;17540:77;17537:103;;17620:18;;:::i;:::-;17537:103;17667:1;17660:5;17656:13;17649:20;;17442:233;;;:::o;17681:134::-;17768:6;17802:5;17796:12;17786:22;;17681:134;;;:::o;17821:204::-;17940:11;17974:6;17969:3;17962:19;18014:4;18009:3;18005:14;17990:29;;17821:204;;;;:::o;18031:152::-;18118:4;18141:3;18133:11;;18171:4;18166:3;18162:14;18154:22;;18031:152;;;:::o;18189:108::-;18266:24;18284:5;18266:24;:::i;:::-;18261:3;18254:37;18189:108;;:::o;18303:::-;18380:24;18398:5;18380:24;:::i;:::-;18375:3;18368:37;18303:108;;:::o;18485:490::-;18612:4;18607:3;18603:14;18700:4;18693:5;18689:16;18683:23;18719:63;18776:4;18771:3;18767:14;18753:12;18719:63;:::i;:::-;18627:165;18876:4;18869:5;18865:16;18859:23;18895:63;18952:4;18947:3;18943:14;18929:12;18895:63;:::i;:::-;18802:166;18581:394;18485:490;;:::o;18981:259::-;19090:10;19111:86;19193:3;19185:6;19111:86;:::i;:::-;19229:4;19224:3;19220:14;19206:28;;18981:259;;;;:::o;19246:133::-;19336:4;19368;19363:3;19359:14;19351:22;;19246:133;;;:::o;19457:892::-;19616:3;19645:74;19713:5;19645:74;:::i;:::-;19735:106;19834:6;19829:3;19735:106;:::i;:::-;19728:113;;19865:76;19935:5;19865:76;:::i;:::-;19964:7;19995:1;19980:344;20005:6;20002:1;19999:13;19980:344;;;20081:6;20075:13;20108:103;20207:3;20192:13;20108:103;:::i;:::-;20101:110;;20234:80;20307:6;20234:80;:::i;:::-;20224:90;;20040:284;20027:1;20024;20020:9;20015:14;;19980:344;;;19984:14;20340:3;20333:10;;19621:728;;;19457:892;;;;:::o;20355:654::-;20586:4;20624:2;20613:9;20609:18;20601:26;;20673:9;20667:4;20663:20;20659:1;20648:9;20644:17;20637:47;20701:148;20844:4;20835:6;20701:148;:::i;:::-;20693:156;;20896:9;20890:4;20886:20;20881:2;20870:9;20866:18;20859:48;20924:78;20997:4;20988:6;20924:78;:::i;:::-;20916:86;;20355:654;;;;;:::o;21015:442::-;21164:4;21202:2;21191:9;21187:18;21179:26;;21215:71;21283:1;21272:9;21268:17;21259:6;21215:71;:::i;:::-;21296:72;21364:2;21353:9;21349:18;21340:6;21296:72;:::i;:::-;21378;21446:2;21435:9;21431:18;21422:6;21378:72;:::i;:::-;21015:442;;;;;;:::o;21463:98::-;21514:6;21548:5;21542:12;21532:22;;21463:98;;;:::o;21567:147::-;21668:11;21705:3;21690:18;;21567:147;;;;:::o;21720:373::-;21824:3;21852:38;21884:5;21852:38;:::i;:::-;21906:88;21987:6;21982:3;21906:88;:::i;:::-;21899:95;;22003:52;22048:6;22043:3;22036:4;22029:5;22025:16;22003:52;:::i;:::-;22080:6;22075:3;22071:16;22064:23;;21828:265;21720:373;;;;:::o;22099:271::-;22229:3;22251:93;22340:3;22331:6;22251:93;:::i;:::-;22244:100;;22361:3;22354:10;;22099:271;;;;:::o;22376:60::-;22404:3;22425:5;22418:12;;22376:60;;;:::o;22442:142::-;22492:9;22525:53;22543:34;22552:24;22570:5;22552:24;:::i;:::-;22543:34;:::i;:::-;22525:53;:::i;:::-;22512:66;;22442:142;;;:::o;22590:126::-;22640:9;22673:37;22704:5;22673:37;:::i;:::-;22660:50;;22590:126;;;:::o;22722:134::-;22780:9;22813:37;22844:5;22813:37;:::i;:::-;22800:50;;22722:134;;;:::o;22862:147::-;22957:45;22996:5;22957:45;:::i;:::-;22952:3;22945:58;22862:147;;:::o;23015:882::-;23276:4;23314:3;23303:9;23299:19;23291:27;;23328:79;23404:1;23393:9;23389:17;23380:6;23328:79;:::i;:::-;23417:72;23485:2;23474:9;23470:18;23461:6;23417:72;:::i;:::-;23499;23567:2;23556:9;23552:18;23543:6;23499:72;:::i;:::-;23581;23649:2;23638:9;23634:18;23625:6;23581:72;:::i;:::-;23663:73;23731:3;23720:9;23716:19;23707:6;23663:73;:::i;:::-;23784:9;23778:4;23774:20;23768:3;23757:9;23753:19;23746:49;23812:78;23885:4;23876:6;23812:78;:::i;:::-;23804:86;;23015:882;;;;;;;;;:::o;23903:175::-;24043:27;24039:1;24031:6;24027:14;24020:51;23903:175;:::o;24084:366::-;24226:3;24247:67;24311:2;24306:3;24247:67;:::i;:::-;24240:74;;24323:93;24412:3;24323:93;:::i;:::-;24441:2;24436:3;24432:12;24425:19;;24084:366;;;:::o;24456:419::-;24622:4;24660:2;24649:9;24645:18;24637:26;;24709:9;24703:4;24699:20;24695:1;24684:9;24680:17;24673:47;24737:131;24863:4;24737:131;:::i;:::-;24729:139;;24456:419;;;:::o;24881:191::-;24921:4;24941:20;24959:1;24941:20;:::i;:::-;24936:25;;24975:20;24993:1;24975:20;:::i;:::-;24970:25;;25014:1;25011;25008:8;25005:34;;;25019:18;;:::i;:::-;25005:34;25064:1;25061;25057:9;25049:17;;24881:191;;;;:::o;25078:142::-;25181:32;25207:5;25181:32;:::i;:::-;25176:3;25169:45;25078:142;;:::o;25226:364::-;25363:4;25401:2;25390:9;25386:18;25378:26;;25414:87;25498:1;25487:9;25483:17;25474:6;25414:87;:::i;:::-;25511:72;25579:2;25568:9;25564:18;25555:6;25511:72;:::i;:::-;25226:364;;;;;:::o;25596:90::-;25630:7;25673:5;25666:13;25659:21;25648:32;;25596:90;;;:::o;25692:116::-;25762:21;25777:5;25762:21;:::i;:::-;25755:5;25752:32;25742:60;;25798:1;25795;25788:12;25742:60;25692:116;:::o;25814:137::-;25868:5;25899:6;25893:13;25884:22;;25915:30;25939:5;25915:30;:::i;:::-;25814:137;;;;:::o;25957:345::-;26024:6;26073:2;26061:9;26052:7;26048:23;26044:32;26041:119;;;26079:79;;:::i;:::-;26041:119;26199:1;26224:61;26277:7;26268:6;26257:9;26253:22;26224:61;:::i;:::-;26214:71;;26170:125;25957:345;;;;:::o;26308:332::-;26429:4;26467:2;26456:9;26452:18;26444:26;;26480:71;26548:1;26537:9;26533:17;26524:6;26480:71;:::i;:::-;26561:72;26629:2;26618:9;26614:18;26605:6;26561:72;:::i;:::-;26308:332;;;;;:::o;26646:755::-;26871:4;26909:3;26898:9;26894:19;26886:27;;26923:71;26991:1;26980:9;26976:17;26967:6;26923:71;:::i;:::-;27004:72;27072:2;27061:9;27057:18;27048:6;27004:72;:::i;:::-;27086;27154:2;27143:9;27139:18;27130:6;27086:72;:::i;:::-;27205:9;27199:4;27195:20;27190:2;27179:9;27175:18;27168:48;27233:78;27306:4;27297:6;27233:78;:::i;:::-;27225:86;;27321:73;27389:3;27378:9;27374:19;27365:6;27321:73;:::i;:::-;26646:755;;;;;;;;:::o;27407:222::-;27500:4;27538:2;27527:9;27523:18;27515:26;;27551:71;27619:1;27608:9;27604:17;27595:6;27551:71;:::i;:::-;27407:222;;;;:::o;27635:143::-;27692:5;27723:6;27717:13;27708:22;;27739:33;27766:5;27739:33;:::i;:::-;27635:143;;;;:::o;27784:351::-;27854:6;27903:2;27891:9;27882:7;27878:23;27874:32;27871:119;;;27909:79;;:::i;:::-;27871:119;28029:1;28054:64;28110:7;28101:6;28090:9;28086:22;28054:64;:::i;:::-;28044:74;;28000:128;27784:351;;;;:::o

Swarm Source

ipfs://227ba12464a5690fa1387de64d43ddd586d4eadb67584087aaf1aa0b2555b69c

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xe3985E6b61b814F7Cdb188766562ba71b446B46d
Net Worth in USD
$350,192.07

Net Worth in ETH
177.645703

Token Allocations
USDC 59.86%
USDT 33.84%
LDOGE 3.05%
Others 3.25%
Chain Token Portfolio % Price Amount Value
ETH59.86%$1209,636.6003$209,636.6
ETH33.84%$0.999697118,555.2896$118,519.37
ETH1.80%$2,767.012.2821$6,314.72
ETH0.23%$0.6007611,353.4477$813.1
ETH0.03%<$0.000001616,382,517.8521$104.37
ETH0.03%$0.00000423,204,683.7392$94.91
ETH0.02%$0.301732200$60.35
ETH<0.01%$0.000.0154$0.00
BSC3.05%$1.865,724.6886$10,671.13
BSC<0.01%$621.270.001$0.621268
ARB1.13%$1,971.362.003$3,948.62
AVAX<0.01%$8.982.0306$18.24
BASE<0.01%$1,971.260.005$9.86
POL<0.01%$0.1065010.002$0.000213
Loading...
Loading
Loading...
Loading
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.