ETH Price: $2,396.98 (-4.27%)

Contract

0x5Ec020fC602130eAA5A4546D628F5b7AAc0a3d64
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $2,396.98/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer141718212022-02-09 12:09:20937 days ago1644408560IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0115303153.29546101
Transfer140934922022-01-28 10:00:57949 days ago1643364057IN
0x5Ec020fC...AAc0a3d64
0 ETH0.02264267104.65908783
Manualsend140934012022-01-28 9:40:42950 days ago1643362842IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0037616287.60388516
Manualswap140934002022-01-28 9:40:24950 days ago1643362824IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0137532279.69004813
Approve138402122021-12-20 5:33:41989 days ago1639978421IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0022663648
Approve138372852021-12-19 18:44:12989 days ago1639939452IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0036143976.55019615
Approve138368292021-12-19 16:59:36989 days ago1639933176IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0038952482.4983144
Approve138367512021-12-19 16:41:53989 days ago1639932113IN
0x5Ec020fC...AAc0a3d64
0 ETH0.003739579.2
Approve138367202021-12-19 16:35:22989 days ago1639931722IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0042141989.25351934
Approve138366452021-12-19 16:17:36989 days ago1639930656IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0036013276.27329908
Approve138366032021-12-19 16:06:38989 days ago1639929998IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0031981567.73449992
Approve138365522021-12-19 15:55:28989 days ago1639929328IN
0x5Ec020fC...AAc0a3d64
0 ETH0.002077544
Approve138363442021-12-19 15:13:08989 days ago1639926788IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0022235647.09348945
Approve138363362021-12-19 15:10:42989 days ago1639926642IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0022257447.13966452
Approve138362872021-12-19 15:00:26989 days ago1639926026IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0019357640.99813381
Approve138362872021-12-19 15:00:26989 days ago1639926026IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0019357640.99813381
Approve138362822021-12-19 14:59:25989 days ago1639925965IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0016953335.90589303
Approve138362582021-12-19 14:55:51989 days ago1639925751IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0023343949.44082297
Approve138362432021-12-19 14:52:19989 days ago1639925539IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0020465643.34462935
Approve138362312021-12-19 14:49:21989 days ago1639925361IN
0x5Ec020fC...AAc0a3d64
0 ETH0.002360850
Approve138362132021-12-19 14:44:00989 days ago1639925040IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0020123642.62049458
Approve138362102021-12-19 14:43:18989 days ago1639924998IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0019995542.34913338
Approve138361992021-12-19 14:41:55989 days ago1639924915IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0021487345.50851793
Transfer138361982021-12-19 14:41:32989 days ago1639924892IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0098599741.06767022
Approve138361982021-12-19 14:41:32989 days ago1639924892IN
0x5Ec020fC...AAc0a3d64
0 ETH0.0019390541.06767022
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
141718212022-02-09 12:09:20937 days ago1644408560
0x5Ec020fC...AAc0a3d64
0.00000209 ETH
141718212022-02-09 12:09:20937 days ago1644408560
0x5Ec020fC...AAc0a3d64
0.00000209 ETH
141718212022-02-09 12:09:20937 days ago1644408560
0x5Ec020fC...AAc0a3d64
0.00000418 ETH
140934922022-01-28 10:00:57949 days ago1643364057
0x5Ec020fC...AAc0a3d64
0.00005231 ETH
140934922022-01-28 10:00:57949 days ago1643364057
0x5Ec020fC...AAc0a3d64
0.00005231 ETH
140934922022-01-28 10:00:57949 days ago1643364057
0x5Ec020fC...AAc0a3d64
0.00010462 ETH
140934012022-01-28 9:40:42950 days ago1643362842
0x5Ec020fC...AAc0a3d64
0.00130852 ETH
140934012022-01-28 9:40:42950 days ago1643362842
0x5Ec020fC...AAc0a3d64
0.00130852 ETH
140934002022-01-28 9:40:24950 days ago1643362824
0x5Ec020fC...AAc0a3d64
0.00261704 ETH
138461042021-12-21 3:20:30988 days ago1640056830
0x5Ec020fC...AAc0a3d64
0.00124021 ETH
138461042021-12-21 3:20:30988 days ago1640056830
0x5Ec020fC...AAc0a3d64
0.00124021 ETH
138461042021-12-21 3:20:30988 days ago1640056830
0x5Ec020fC...AAc0a3d64
0.00248042 ETH
138398822021-12-20 4:25:30989 days ago1639974330
0x5Ec020fC...AAc0a3d64
0.00193448 ETH
138398822021-12-20 4:25:30989 days ago1639974330
0x5Ec020fC...AAc0a3d64
0.00193448 ETH
138398822021-12-20 4:25:30989 days ago1639974330
0x5Ec020fC...AAc0a3d64
0.00386896 ETH
138386892021-12-19 23:58:10989 days ago1639958290
0x5Ec020fC...AAc0a3d64
0.00165054 ETH
138386892021-12-19 23:58:10989 days ago1639958290
0x5Ec020fC...AAc0a3d64
0.00165054 ETH
138386892021-12-19 23:58:10989 days ago1639958290
0x5Ec020fC...AAc0a3d64
0.00330109 ETH
138381642021-12-19 22:06:49989 days ago1639951609
0x5Ec020fC...AAc0a3d64
0.00075769 ETH
138381642021-12-19 22:06:49989 days ago1639951609
0x5Ec020fC...AAc0a3d64
0.00075769 ETH
138381642021-12-19 22:06:49989 days ago1639951609
0x5Ec020fC...AAc0a3d64
0.00151538 ETH
138381072021-12-19 21:56:57989 days ago1639951017
0x5Ec020fC...AAc0a3d64
0.00094827 ETH
138381072021-12-19 21:56:57989 days ago1639951017
0x5Ec020fC...AAc0a3d64
0.00094827 ETH
138381072021-12-19 21:56:57989 days ago1639951017
0x5Ec020fC...AAc0a3d64
0.00189654 ETH
138372702021-12-19 18:39:43989 days ago1639939183
0x5Ec020fC...AAc0a3d64
0.00417477 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
miniFluffy

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-19
*/

/*

    MiniFluffy - $miniFluffy

    https://t.me/Minifluffy

    https://minifluffyinu.co/

    https://twitter.com/MinifluffyInu


*/

pragma solidity ^0.8.9;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract miniFluffy is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeWallet1;
    uint256 private _feeWallet2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Mini Fluffy";
    string private constant _symbol = "miniFluffy";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xbc76a9fd5196c53413543141791CfCCf43cc961c);
        _feeAddrWallet2 = payable(0xd99d5901242aAad38356103A6c8eAab1543b8304);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x6EC2bA74e190f34bC25CBEF455756eE8913F59Dd), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeWallet1 = 6;
        _feeWallet2 = 4;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(amount + balanceOf(to) <= _maxTxAmount, "Max wallet exceeded");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (60 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeWallet1 = 10;
                _feeWallet2 = 5;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 150000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBotWallet(address botwallet) external onlyOwner() {
        bots[botwallet] = true;
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
    
    function addMultipleBots(address[] memory isbot) public onlyOwner {
        for (uint i = 0; i < isbot.length; i++) {
            bots[isbot[i]] = true;
        }
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeWallet1, _feeWallet2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"botwallet","type":"address"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isbot","type":"address[]"}],"name":"addMultipleBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052678ac7230489e800006000196200001c9190620004fd565b6000196200002b919062000564565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010553480156200009857600080fd5b506000620000ab6200049360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073bc76a9fd5196c53413543141791cfccf43cc961c600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d99d5901242aaad38356103a6c8eaab1543b8304600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200020a6200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200025e6200049b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040b6200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16736ec2ba74e190f34bc25cbef455756ee8913f59dd73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620004859190620005b0565b60405180910390a3620005cd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200050a82620004c4565b91506200051783620004c4565b9250826200052a5762000529620004ce565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200057182620004c4565b91506200057e83620004c4565b92508282101562000594576200059362000535565b5b828203905092915050565b620005aa81620004c4565b82525050565b6000602082019050620005c760008301846200059f565b92915050565b61355880620005dd6000396000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063c3c8cd801461038d578063c9567bf9146103a4578063dd62ed3e146103bb578063f376cf78146103f857610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b8063273123b7116100dc578063273123b7146101e95780632a36063114610212578063313ce5671461023b5780635932ead1146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906125f0565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906126ba565b61045e565b6040516101789190612715565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a3919061273f565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061275a565b61048c565b6040516101e09190612715565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b91906127ad565b610565565b005b34801561021e57600080fd5b50610239600480360381019061023491906127ad565b610655565b005b34801561024757600080fd5b50610250610745565b60405161025d91906127f6565b60405180910390f35b34801561027257600080fd5b5061028d6004803603810190610288919061283d565b61074e565b005b34801561029b57600080fd5b506102a4610800565b005b3480156102b257600080fd5b506102cd60048036038101906102c891906127ad565b610872565b6040516102da919061273f565b60405180910390f35b3480156102ef57600080fd5b506102f86108c3565b005b34801561030657600080fd5b5061030f610a16565b60405161031c9190612879565b60405180910390f35b34801561033157600080fd5b5061033a610a3f565b60405161034791906125f0565b60405180910390f35b34801561035c57600080fd5b50610377600480360381019061037291906126ba565b610a7c565b6040516103849190612715565b60405180910390f35b34801561039957600080fd5b506103a2610a9a565b005b3480156103b057600080fd5b506103b9610b14565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190612894565b61106f565b6040516103ef919061273f565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190612a1c565b6110f6565b005b60606040518060400160405280600b81526020017f4d696e6920466c75666679000000000000000000000000000000000000000000815250905090565b600061047261046b611220565b8484611228565b6001905092915050565b6000678ac7230489e80000905090565b60006104998484846113f3565b61055a846104a5611220565b610555856040518060600160405280602881526020016134fb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050b611220565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f9092919063ffffffff16565b611228565b600190509392505050565b61056d611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f190612ab1565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61065d611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190612ab1565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610756611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90612ab1565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610841611220565b73ffffffffffffffffffffffffffffffffffffffff161461086157600080fd5b600047905061086f81611ab3565b50565b60006108bc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bae565b9050919050565b6108cb611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90612ab1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f6d696e69466c7566667900000000000000000000000000000000000000000000815250905090565b6000610a90610a89611220565b84846113f3565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610adb611220565b73ffffffffffffffffffffffffffffffffffffffff1614610afb57600080fd5b6000610b0630610872565b9050610b1181611c1c565b50565b610b1c611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba090612ab1565b60405180910390fd5b600f60149054906101000a900460ff1615610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090612b1d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000611228565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cce57600080fd5b505afa158015610ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d069190612b52565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6857600080fd5b505afa158015610d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da09190612b52565b6040518363ffffffff1660e01b8152600401610dbd929190612b7f565b602060405180830381600087803b158015610dd757600080fd5b505af1158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f9190612b52565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e9830610872565b600080610ea3610a16565b426040518863ffffffff1660e01b8152600401610ec596959493929190612bed565b6060604051808303818588803b158015610ede57600080fd5b505af1158015610ef2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f179190612c63565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550670214e8348c4f00006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611019929190612cb6565b602060405180830381600087803b15801561103357600080fd5b505af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b9190612cf4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110fe611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612ab1565b60405180910390fd5b60005b815181101561121c576001600660008484815181106111b0576111af612d21565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061121490612d7f565b91505061118e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90612e3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90612ecc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e6919061273f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90612f5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90612ff0565b60405180910390fd5b60008111611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90613082565b60405180910390fd5b6006600a819055506004600b8190555061152e610a16565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561159c575061156c610a16565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a3f57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116455750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61164e57600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116f95750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561174f5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117675750600f60179054906101000a900460ff165b1561186f5760105481111561177b57600080fd5b60105461178783610872565b8261179291906130a2565b11156117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90613144565b60405180910390fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061181e57600080fd5b603c4261182b91906130a2565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561191a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119705750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561198557600a80819055506005600b819055505b600061199030610872565b9050600f60159054906101000a900460ff161580156119fd5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a155750600f60169054906101000a900460ff165b15611a3d57611a2381611c1c565b60004790506000811115611a3b57611a3a47611ab3565b5b505b505b611a4a838383611ea4565b505050565b6000838311158290611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e91906125f0565b60405180910390fd5b5060008385611aa69190613164565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b03600284611eb490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b2e573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b7f600284611eb490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611baa573d6000803e3d6000fd5b5050565b6000600854821115611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec9061320a565b60405180910390fd5b6000611bff611efe565b9050611c148184611eb490919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c5457611c536128d9565b5b604051908082528060200260200182016040528015611c825781602001602082028036833780820191505090505b5090503081600081518110611c9a57611c99612d21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3c57600080fd5b505afa158015611d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d749190612b52565b81600181518110611d8857611d87612d21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611def30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611228565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e539594939291906132e8565b600060405180830381600087803b158015611e6d57600080fd5b505af1158015611e81573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611eaf838383611f29565b505050565b6000611ef683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120f4565b905092915050565b6000806000611f0b612157565b91509150611f228183611eb490919063ffffffff16565b9250505090565b600080600080600080611f3b876121b6565b955095509550955095509550611f9986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061207a816122c6565b6120848483612383565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120e1919061273f565b60405180910390a3505050505050505050565b6000808311829061213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213291906125f0565b60405180910390fd5b506000838561214a9190613371565b9050809150509392505050565b600080600060085490506000678ac7230489e80000905061218b678ac7230489e80000600854611eb490919063ffffffff16565b8210156121a957600854678ac7230489e800009350935050506121b2565b81819350935050505b9091565b60008060008060008060008060006121d38a600a54600b546123bd565b92509250925060006121e3611efe565b905060008060006121f68e878787612453565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061226083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4f565b905092915050565b600080828461227791906130a2565b9050838110156122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b3906133ee565b60405180910390fd5b8091505092915050565b60006122d0611efe565b905060006122e782846124dc90919063ffffffff16565b905061233b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123988260085461221e90919063ffffffff16565b6008819055506123b38160095461226890919063ffffffff16565b6009819055505050565b6000806000806123e960646123db888a6124dc90919063ffffffff16565b611eb490919063ffffffff16565b905060006124136064612405888b6124dc90919063ffffffff16565b611eb490919063ffffffff16565b9050600061243c8261242e858c61221e90919063ffffffff16565b61221e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061246c85896124dc90919063ffffffff16565b9050600061248386896124dc90919063ffffffff16565b9050600061249a87896124dc90919063ffffffff16565b905060006124c3826124b5858761221e90919063ffffffff16565b61221e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156124ef5760009050612551565b600082846124fd919061340e565b905082848261250c9190613371565b1461254c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612543906134da565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612591578082015181840152602081019050612576565b838111156125a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006125c282612557565b6125cc8185612562565b93506125dc818560208601612573565b6125e5816125a6565b840191505092915050565b6000602082019050818103600083015261260a81846125b7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265182612626565b9050919050565b61266181612646565b811461266c57600080fd5b50565b60008135905061267e81612658565b92915050565b6000819050919050565b61269781612684565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b600080604083850312156126d1576126d061261c565b5b60006126df8582860161266f565b92505060206126f0858286016126a5565b9150509250929050565b60008115159050919050565b61270f816126fa565b82525050565b600060208201905061272a6000830184612706565b92915050565b61273981612684565b82525050565b60006020820190506127546000830184612730565b92915050565b6000806000606084860312156127735761277261261c565b5b60006127818682870161266f565b93505060206127928682870161266f565b92505060406127a3868287016126a5565b9150509250925092565b6000602082840312156127c3576127c261261c565b5b60006127d18482850161266f565b91505092915050565b600060ff82169050919050565b6127f0816127da565b82525050565b600060208201905061280b60008301846127e7565b92915050565b61281a816126fa565b811461282557600080fd5b50565b60008135905061283781612811565b92915050565b6000602082840312156128535761285261261c565b5b600061286184828501612828565b91505092915050565b61287381612646565b82525050565b600060208201905061288e600083018461286a565b92915050565b600080604083850312156128ab576128aa61261c565b5b60006128b98582860161266f565b92505060206128ca8582860161266f565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612911826125a6565b810181811067ffffffffffffffff821117156129305761292f6128d9565b5b80604052505050565b6000612943612612565b905061294f8282612908565b919050565b600067ffffffffffffffff82111561296f5761296e6128d9565b5b602082029050602081019050919050565b600080fd5b600061299861299384612954565b612939565b905080838252602082019050602084028301858111156129bb576129ba612980565b5b835b818110156129e457806129d0888261266f565b8452602084019350506020810190506129bd565b5050509392505050565b600082601f830112612a0357612a026128d4565b5b8135612a13848260208601612985565b91505092915050565b600060208284031215612a3257612a3161261c565b5b600082013567ffffffffffffffff811115612a5057612a4f612621565b5b612a5c848285016129ee565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a9b602083612562565b9150612aa682612a65565b602082019050919050565b60006020820190508181036000830152612aca81612a8e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b07601783612562565b9150612b1282612ad1565b602082019050919050565b60006020820190508181036000830152612b3681612afa565b9050919050565b600081519050612b4c81612658565b92915050565b600060208284031215612b6857612b6761261c565b5b6000612b7684828501612b3d565b91505092915050565b6000604082019050612b94600083018561286a565b612ba1602083018461286a565b9392505050565b6000819050919050565b6000819050919050565b6000612bd7612bd2612bcd84612ba8565b612bb2565b612684565b9050919050565b612be781612bbc565b82525050565b600060c082019050612c02600083018961286a565b612c0f6020830188612730565b612c1c6040830187612bde565b612c296060830186612bde565b612c36608083018561286a565b612c4360a0830184612730565b979650505050505050565b600081519050612c5d8161268e565b92915050565b600080600060608486031215612c7c57612c7b61261c565b5b6000612c8a86828701612c4e565b9350506020612c9b86828701612c4e565b9250506040612cac86828701612c4e565b9150509250925092565b6000604082019050612ccb600083018561286a565b612cd86020830184612730565b9392505050565b600081519050612cee81612811565b92915050565b600060208284031215612d0a57612d0961261c565b5b6000612d1884828501612cdf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d8a82612684565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dbd57612dbc612d50565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e24602483612562565b9150612e2f82612dc8565b604082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eb6602283612562565b9150612ec182612e5a565b604082019050919050565b60006020820190508181036000830152612ee581612ea9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f48602583612562565b9150612f5382612eec565b604082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fda602383612562565b9150612fe582612f7e565b604082019050919050565b6000602082019050818103600083015261300981612fcd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061306c602983612562565b915061307782613010565b604082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b60006130ad82612684565b91506130b883612684565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130ed576130ec612d50565b5b828201905092915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061312e601383612562565b9150613139826130f8565b602082019050919050565b6000602082019050818103600083015261315d81613121565b9050919050565b600061316f82612684565b915061317a83612684565b92508282101561318d5761318c612d50565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006131f4602a83612562565b91506131ff82613198565b604082019050919050565b60006020820190508181036000830152613223816131e7565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61325f81612646565b82525050565b60006132718383613256565b60208301905092915050565b6000602082019050919050565b60006132958261322a565b61329f8185613235565b93506132aa83613246565b8060005b838110156132db5781516132c28882613265565b97506132cd8361327d565b9250506001810190506132ae565b5085935050505092915050565b600060a0820190506132fd6000830188612730565b61330a6020830187612bde565b818103604083015261331c818661328a565b905061332b606083018561286a565b6133386080830184612730565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337c82612684565b915061338783612684565b92508261339757613396613342565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133d8601b83612562565b91506133e3826133a2565b602082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b600061341982612684565b915061342483612684565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561345d5761345c612d50565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c4602183612562565b91506134cf82613468565b604082019050919050565b600060208201905081810360008301526134f3816134b7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122092bc3baca4382a1b055e004a8b95489109167d682dc9a90cd53b4d15134f1c2664736f6c63430008090033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063c3c8cd801461038d578063c9567bf9146103a4578063dd62ed3e146103bb578063f376cf78146103f857610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b8063273123b7116100dc578063273123b7146101e95780632a36063114610212578063313ce5671461023b5780635932ead1146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906125f0565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906126ba565b61045e565b6040516101789190612715565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a3919061273f565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061275a565b61048c565b6040516101e09190612715565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b91906127ad565b610565565b005b34801561021e57600080fd5b50610239600480360381019061023491906127ad565b610655565b005b34801561024757600080fd5b50610250610745565b60405161025d91906127f6565b60405180910390f35b34801561027257600080fd5b5061028d6004803603810190610288919061283d565b61074e565b005b34801561029b57600080fd5b506102a4610800565b005b3480156102b257600080fd5b506102cd60048036038101906102c891906127ad565b610872565b6040516102da919061273f565b60405180910390f35b3480156102ef57600080fd5b506102f86108c3565b005b34801561030657600080fd5b5061030f610a16565b60405161031c9190612879565b60405180910390f35b34801561033157600080fd5b5061033a610a3f565b60405161034791906125f0565b60405180910390f35b34801561035c57600080fd5b50610377600480360381019061037291906126ba565b610a7c565b6040516103849190612715565b60405180910390f35b34801561039957600080fd5b506103a2610a9a565b005b3480156103b057600080fd5b506103b9610b14565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190612894565b61106f565b6040516103ef919061273f565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190612a1c565b6110f6565b005b60606040518060400160405280600b81526020017f4d696e6920466c75666679000000000000000000000000000000000000000000815250905090565b600061047261046b611220565b8484611228565b6001905092915050565b6000678ac7230489e80000905090565b60006104998484846113f3565b61055a846104a5611220565b610555856040518060600160405280602881526020016134fb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050b611220565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f9092919063ffffffff16565b611228565b600190509392505050565b61056d611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f190612ab1565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61065d611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190612ab1565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610756611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90612ab1565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610841611220565b73ffffffffffffffffffffffffffffffffffffffff161461086157600080fd5b600047905061086f81611ab3565b50565b60006108bc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bae565b9050919050565b6108cb611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90612ab1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f6d696e69466c7566667900000000000000000000000000000000000000000000815250905090565b6000610a90610a89611220565b84846113f3565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610adb611220565b73ffffffffffffffffffffffffffffffffffffffff1614610afb57600080fd5b6000610b0630610872565b9050610b1181611c1c565b50565b610b1c611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba090612ab1565b60405180910390fd5b600f60149054906101000a900460ff1615610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090612b1d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000611228565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cce57600080fd5b505afa158015610ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d069190612b52565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6857600080fd5b505afa158015610d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da09190612b52565b6040518363ffffffff1660e01b8152600401610dbd929190612b7f565b602060405180830381600087803b158015610dd757600080fd5b505af1158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f9190612b52565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e9830610872565b600080610ea3610a16565b426040518863ffffffff1660e01b8152600401610ec596959493929190612bed565b6060604051808303818588803b158015610ede57600080fd5b505af1158015610ef2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f179190612c63565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550670214e8348c4f00006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611019929190612cb6565b602060405180830381600087803b15801561103357600080fd5b505af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b9190612cf4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110fe611220565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612ab1565b60405180910390fd5b60005b815181101561121c576001600660008484815181106111b0576111af612d21565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061121490612d7f565b91505061118e565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90612e3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90612ecc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e6919061273f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90612f5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90612ff0565b60405180910390fd5b60008111611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90613082565b60405180910390fd5b6006600a819055506004600b8190555061152e610a16565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561159c575061156c610a16565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a3f57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116455750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61164e57600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116f95750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561174f5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117675750600f60179054906101000a900460ff165b1561186f5760105481111561177b57600080fd5b60105461178783610872565b8261179291906130a2565b11156117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90613144565b60405180910390fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061181e57600080fd5b603c4261182b91906130a2565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561191a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119705750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561198557600a80819055506005600b819055505b600061199030610872565b9050600f60159054906101000a900460ff161580156119fd5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a155750600f60169054906101000a900460ff165b15611a3d57611a2381611c1c565b60004790506000811115611a3b57611a3a47611ab3565b5b505b505b611a4a838383611ea4565b505050565b6000838311158290611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e91906125f0565b60405180910390fd5b5060008385611aa69190613164565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b03600284611eb490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b2e573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b7f600284611eb490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611baa573d6000803e3d6000fd5b5050565b6000600854821115611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec9061320a565b60405180910390fd5b6000611bff611efe565b9050611c148184611eb490919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c5457611c536128d9565b5b604051908082528060200260200182016040528015611c825781602001602082028036833780820191505090505b5090503081600081518110611c9a57611c99612d21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3c57600080fd5b505afa158015611d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d749190612b52565b81600181518110611d8857611d87612d21565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611def30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611228565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e539594939291906132e8565b600060405180830381600087803b158015611e6d57600080fd5b505af1158015611e81573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611eaf838383611f29565b505050565b6000611ef683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120f4565b905092915050565b6000806000611f0b612157565b91509150611f228183611eb490919063ffffffff16565b9250505090565b600080600080600080611f3b876121b6565b955095509550955095509550611f9986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461221e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061207a816122c6565b6120848483612383565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120e1919061273f565b60405180910390a3505050505050505050565b6000808311829061213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213291906125f0565b60405180910390fd5b506000838561214a9190613371565b9050809150509392505050565b600080600060085490506000678ac7230489e80000905061218b678ac7230489e80000600854611eb490919063ffffffff16565b8210156121a957600854678ac7230489e800009350935050506121b2565b81819350935050505b9091565b60008060008060008060008060006121d38a600a54600b546123bd565b92509250925060006121e3611efe565b905060008060006121f68e878787612453565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061226083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4f565b905092915050565b600080828461227791906130a2565b9050838110156122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b3906133ee565b60405180910390fd5b8091505092915050565b60006122d0611efe565b905060006122e782846124dc90919063ffffffff16565b905061233b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123988260085461221e90919063ffffffff16565b6008819055506123b38160095461226890919063ffffffff16565b6009819055505050565b6000806000806123e960646123db888a6124dc90919063ffffffff16565b611eb490919063ffffffff16565b905060006124136064612405888b6124dc90919063ffffffff16565b611eb490919063ffffffff16565b9050600061243c8261242e858c61221e90919063ffffffff16565b61221e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061246c85896124dc90919063ffffffff16565b9050600061248386896124dc90919063ffffffff16565b9050600061249a87896124dc90919063ffffffff16565b905060006124c3826124b5858761221e90919063ffffffff16565b61221e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156124ef5760009050612551565b600082846124fd919061340e565b905082848261250c9190613371565b1461254c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612543906134da565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612591578082015181840152602081019050612576565b838111156125a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006125c282612557565b6125cc8185612562565b93506125dc818560208601612573565b6125e5816125a6565b840191505092915050565b6000602082019050818103600083015261260a81846125b7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265182612626565b9050919050565b61266181612646565b811461266c57600080fd5b50565b60008135905061267e81612658565b92915050565b6000819050919050565b61269781612684565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b600080604083850312156126d1576126d061261c565b5b60006126df8582860161266f565b92505060206126f0858286016126a5565b9150509250929050565b60008115159050919050565b61270f816126fa565b82525050565b600060208201905061272a6000830184612706565b92915050565b61273981612684565b82525050565b60006020820190506127546000830184612730565b92915050565b6000806000606084860312156127735761277261261c565b5b60006127818682870161266f565b93505060206127928682870161266f565b92505060406127a3868287016126a5565b9150509250925092565b6000602082840312156127c3576127c261261c565b5b60006127d18482850161266f565b91505092915050565b600060ff82169050919050565b6127f0816127da565b82525050565b600060208201905061280b60008301846127e7565b92915050565b61281a816126fa565b811461282557600080fd5b50565b60008135905061283781612811565b92915050565b6000602082840312156128535761285261261c565b5b600061286184828501612828565b91505092915050565b61287381612646565b82525050565b600060208201905061288e600083018461286a565b92915050565b600080604083850312156128ab576128aa61261c565b5b60006128b98582860161266f565b92505060206128ca8582860161266f565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612911826125a6565b810181811067ffffffffffffffff821117156129305761292f6128d9565b5b80604052505050565b6000612943612612565b905061294f8282612908565b919050565b600067ffffffffffffffff82111561296f5761296e6128d9565b5b602082029050602081019050919050565b600080fd5b600061299861299384612954565b612939565b905080838252602082019050602084028301858111156129bb576129ba612980565b5b835b818110156129e457806129d0888261266f565b8452602084019350506020810190506129bd565b5050509392505050565b600082601f830112612a0357612a026128d4565b5b8135612a13848260208601612985565b91505092915050565b600060208284031215612a3257612a3161261c565b5b600082013567ffffffffffffffff811115612a5057612a4f612621565b5b612a5c848285016129ee565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a9b602083612562565b9150612aa682612a65565b602082019050919050565b60006020820190508181036000830152612aca81612a8e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b07601783612562565b9150612b1282612ad1565b602082019050919050565b60006020820190508181036000830152612b3681612afa565b9050919050565b600081519050612b4c81612658565b92915050565b600060208284031215612b6857612b6761261c565b5b6000612b7684828501612b3d565b91505092915050565b6000604082019050612b94600083018561286a565b612ba1602083018461286a565b9392505050565b6000819050919050565b6000819050919050565b6000612bd7612bd2612bcd84612ba8565b612bb2565b612684565b9050919050565b612be781612bbc565b82525050565b600060c082019050612c02600083018961286a565b612c0f6020830188612730565b612c1c6040830187612bde565b612c296060830186612bde565b612c36608083018561286a565b612c4360a0830184612730565b979650505050505050565b600081519050612c5d8161268e565b92915050565b600080600060608486031215612c7c57612c7b61261c565b5b6000612c8a86828701612c4e565b9350506020612c9b86828701612c4e565b9250506040612cac86828701612c4e565b9150509250925092565b6000604082019050612ccb600083018561286a565b612cd86020830184612730565b9392505050565b600081519050612cee81612811565b92915050565b600060208284031215612d0a57612d0961261c565b5b6000612d1884828501612cdf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d8a82612684565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dbd57612dbc612d50565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e24602483612562565b9150612e2f82612dc8565b604082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eb6602283612562565b9150612ec182612e5a565b604082019050919050565b60006020820190508181036000830152612ee581612ea9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f48602583612562565b9150612f5382612eec565b604082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fda602383612562565b9150612fe582612f7e565b604082019050919050565b6000602082019050818103600083015261300981612fcd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061306c602983612562565b915061307782613010565b604082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b60006130ad82612684565b91506130b883612684565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130ed576130ec612d50565b5b828201905092915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061312e601383612562565b9150613139826130f8565b602082019050919050565b6000602082019050818103600083015261315d81613121565b9050919050565b600061316f82612684565b915061317a83612684565b92508282101561318d5761318c612d50565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006131f4602a83612562565b91506131ff82613198565b604082019050919050565b60006020820190508181036000830152613223816131e7565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61325f81612646565b82525050565b60006132718383613256565b60208301905092915050565b6000602082019050919050565b60006132958261322a565b61329f8185613235565b93506132aa83613246565b8060005b838110156132db5781516132c28882613265565b97506132cd8361327d565b9250506001810190506132ae565b5085935050505092915050565b600060a0820190506132fd6000830188612730565b61330a6020830187612bde565b818103604083015261331c818661328a565b905061332b606083018561286a565b6133386080830184612730565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337c82612684565b915061338783612684565b92508261339757613396613342565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133d8601b83612562565b91506133e3826133a2565b602082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b600061341982612684565b915061342483612684565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561345d5761345c612d50565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134c4602183612562565b91506134cf82613468565b604082019050919050565b600060208201905081810360008301526134f3816134b7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122092bc3baca4382a1b055e004a8b95489109167d682dc9a90cd53b4d15134f1c2664736f6c63430008090033

Deployed Bytecode Sourcemap

3628:10590:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5530:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6382:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5807:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10757:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10646:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5716:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6872:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12318:194;;;;;;;;;;;;;:::i;:::-;;5910:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:148;;;;;;;;;;;;;:::i;:::-;;2493:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5621:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6056:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12111:195;;;;;;;;;;;;;:::i;:::-;;9820:814;;;;;;;;;;;;;:::i;:::-;;6231:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10857:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5530:83;5567:13;5600:5;;;;;;;;;;;;;;;;;5593:12;;5530:83;:::o;6382:161::-;6457:4;6474:39;6483:12;:10;:12::i;:::-;6497:7;6506:6;6474:8;:39::i;:::-;6531:4;6524:11;;6382:161;;;;:::o;5807:95::-;5860:7;4131:19;5880:14;;5807:95;:::o;6551:313::-;6649:4;6666:36;6676:6;6684:9;6695:6;6666:9;:36::i;:::-;6713:121;6722:6;6730:12;:10;:12::i;:::-;6744:89;6782:6;6744:89;;;;;;;;;;;;;;;;;:11;:19;6756:6;6744:19;;;;;;;;;;;;;;;:33;6764:12;:10;:12::i;:::-;6744:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6713:8;:121::i;:::-;6852:4;6845:11;;6551:313;;;;;:::o;10757:88::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10832:5:::1;10817:4;:12;10822:6;10817:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10757:88:::0;:::o;10646:103::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:4:::1;10719;:15;10724:9;10719:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10646:103:::0;:::o;5716:83::-;5757:5;4558:1;5775:16;;5716:83;:::o;6872:103::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6962:5:::1;6944:15;;:23;;;;;;;;;;;;;;;;;;6872:103:::0;:::o;12318:194::-;12384:15;;;;;;;;;;;12368:31;;:12;:10;:12::i;:::-;:31;;;12360:40;;;;;;12411:26;12440:21;12411:50;;12472:32;12485:18;12472:12;:32::i;:::-;12349:163;12318:194::o;5910:138::-;5976:7;6003:37;6023:7;:16;6031:7;6023:16;;;;;;;;;;;;;;;;6003:19;:37::i;:::-;5996:44;;5910:138;;;:::o;2707:148::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2814:1:::1;2777:40;;2798:6;::::0;::::1;;;;;;;;2777:40;;;;;;;;;;;;2845:1;2828:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2707:148::o:0;2493:79::-;2531:7;2558:6;;;;;;;;;;;2551:13;;2493:79;:::o;5621:87::-;5660:13;5693:7;;;;;;;;;;;;;;;;;5686:14;;5621:87;:::o;6056:167::-;6134:4;6151:42;6161:12;:10;:12::i;:::-;6175:9;6186:6;6151:9;:42::i;:::-;6211:4;6204:11;;6056:167;;;;:::o;12111:195::-;12177:15;;;;;;;;;;;12161:31;;:12;:10;:12::i;:::-;:31;;;12153:40;;;;;;12204:23;12230:24;12248:4;12230:9;:24::i;:::-;12204:50;;12265:33;12282:15;12265:16;:33::i;:::-;12142:164;12111:195::o;9820:814::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9884:11:::1;;;;;;;;;;;9883:12;9875:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9933:35;9990:42;9933:100;;10062:16;10044:15;;:34;;;;;;;;;;;;;;;;;;10089:58;10106:4;10121:15;;;;;;;;;;;4131:19;10089:8;:58::i;:::-;10192:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10174:56;;;10239:4;10246:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10174:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10158:13;;:112;;;;;;;;;;;;;;;;;;10281:15;;;;;;;;;;;:31;;;10320:21;10351:4;10357:24;10375:4;10357:9;:24::i;:::-;10382:1;10384::::0;10386:7:::1;:5;:7::i;:::-;10394:15;10281:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10435:4;10421:11;;:18;;;;;;;;;;;;;;;;;;10468:4;10450:15;;:22;;;;;;;;;;;;;;;;;;10498:17;10483:12;:32;;;;10540:4;10526:11;;:18;;;;;;;;;;;;;;;;;;10562:13;;;;;;;;;;;10555:29;;;10593:15;;;;;;;;;;;10611:14;10555:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9864:770;9820:814::o:0;6231:143::-;6312:7;6339:11;:18;6351:5;6339:18;;;;;;;;;;;;;;;:27;6358:7;6339:27;;;;;;;;;;;;;;;;6332:34;;6231:143;;;;:::o;10857:172::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10939:6:::1;10934:88;10955:5;:12;10951:1;:16;10934:88;;;11006:4;10989;:14;10994:5;11000:1;10994:8;;;;;;;;:::i;:::-;;;;;;;;10989:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10969:3;;;;;:::i;:::-;;;;10934:88;;;;10857:172:::0;:::o;211:98::-;264:7;291:10;284:17;;211:98;:::o;7245:335::-;7355:1;7338:19;;:5;:19;;;;7330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:1;7417:21;;:7;:21;;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7518:6;7488:11;:18;7500:5;7488:18;;;;;;;;;;;;;;;:27;7507:7;7488:27;;;;;;;;;;;;;;;:36;;;;7556:7;7540:32;;7549:5;7540:32;;;7565:6;7540:32;;;;;;:::i;:::-;;;;;;;;7245:335;;;:::o;7588:1559::-;7692:1;7676:18;;:4;:18;;;;7668:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7769:1;7755:16;;:2;:16;;;;7747:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7839:1;7830:6;:10;7822:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7911:1;7897:11;:15;;;;7937:1;7923:11;:15;;;;7961:7;:5;:7::i;:::-;7953:15;;:4;:15;;;;:32;;;;;7978:7;:5;:7::i;:::-;7972:13;;:2;:13;;;;7953:32;7949:1146;;;8011:4;:10;8016:4;8011:10;;;;;;;;;;;;;;;;;;;;;;;;;8010:11;:24;;;;;8026:4;:8;8031:2;8026:8;;;;;;;;;;;;;;;;;;;;;;;;;8025:9;8010:24;8002:33;;;;;;8062:13;;;;;;;;;;;8054:21;;:4;:21;;;:55;;;;;8093:15;;;;;;;;;;;8079:30;;:2;:30;;;;8054:55;:83;;;;;8115:18;:22;8134:2;8115:22;;;;;;;;;;;;;;;;;;;;;;;;;8113:24;8054:83;:102;;;;;8141:15;;;;;;;;;;;8054:102;8050:414;;;8224:12;;8214:6;:22;;8206:31;;;;;;8290:12;;8273:13;8283:2;8273:9;:13::i;:::-;8264:6;:22;;;;:::i;:::-;:38;;8256:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8368:15;8353:8;:12;8362:2;8353:12;;;;;;;;;;;;;;;;:30;8345:39;;;;;;8437:10;8418:15;:30;;;;:::i;:::-;8403:8;:12;8412:2;8403:12;;;;;;;;;;;;;;;:45;;;;8050:414;8516:13;;;;;;;;;;;8510:19;;:2;:19;;;:55;;;;;8549:15;;;;;;;;;;;8533:32;;:4;:32;;;;8510:55;:85;;;;;8571:18;:24;8590:4;8571:24;;;;;;;;;;;;;;;;;;;;;;;;;8569:26;8510:85;8506:176;;;8630:2;8616:11;:16;;;;8665:1;8651:11;:15;;;;8506:176;8696:28;8727:24;8745:4;8727:9;:24::i;:::-;8696:55;;8771:6;;;;;;;;;;;8770:7;:32;;;;;8789:13;;;;;;;;;;;8781:21;;:4;:21;;;;8770:32;:47;;;;;8806:11;;;;;;;;;;;8770:47;8766:318;;;8838:38;8855:20;8838:16;:38::i;:::-;8895:26;8924:21;8895:50;;8988:1;8967:18;:22;8964:105;;;9014:35;9027:21;9014:12;:35::i;:::-;8964:105;8819:265;8766:318;7987:1108;7949:1146;9109:30;9124:4;9129:2;9132:6;9109:14;:30::i;:::-;7588:1559;;;:::o;1348:190::-;1434:7;1467:1;1462;:6;;1470:12;1454:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1494:9;1510:1;1506;:5;;;;:::i;:::-;1494:17;;1529:1;1522:8;;;1348:190;;;;;:::o;9654:154::-;9711:15;;;;;;;;;;;:24;;:39;9736:13;9747:1;9736:6;:10;;:13;;;;:::i;:::-;9711:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9761:15;;;;;;;;;;;:24;;:39;9786:13;9797:1;9786:6;:10;;:13;;;;:::i;:::-;9761:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9654:154;:::o;6983:254::-;7050:7;7089;;7078;:18;;7070:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7154:19;7177:10;:8;:10::i;:::-;7154:33;;7205:24;7217:11;7205:7;:11;;:24;;;;:::i;:::-;7198:31;;;6983:254;;;:::o;9155:483::-;4940:4;4931:6;;:13;;;;;;;;;;;;;;;;;;9233:21:::1;9271:1;9257:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9233:40;;9302:4;9284;9289:1;9284:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9328:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9318:4;9323:1;9318:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9361:62;9378:4;9393:15;;;;;;;;;;;9411:11;9361:8;:62::i;:::-;9434:15;;;;;;;;;;;:66;;;9515:11;9541:1;9557:4;9584;9604:15;9434:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9222:416;4976:5:::0;4967:6;;:14;;;;;;;;;;;;;;;;;;9155:483;:::o;11045:146::-;11139:44;11157:6;11165:9;11176:6;11139:17;:44::i;:::-;11045:146;;;:::o;1800:132::-;1858:7;1885:39;1889:1;1892;1885:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1878:46;;1800:132;;;;:::o;13782:163::-;13823:7;13844:15;13861;13880:19;:17;:19::i;:::-;13843:56;;;;13917:20;13929:7;13917;:11;;:20;;;;:::i;:::-;13910:27;;;;13782:163;:::o;11199:488::-;11298:15;11315:23;11340:12;11354:23;11379:12;11393:13;11410:19;11421:7;11410:10;:19::i;:::-;11297:132;;;;;;;;;;;;11458:28;11478:7;11458;:15;11466:6;11458:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11440:7;:15;11448:6;11440:15;;;;;;;;;;;;;;;:46;;;;11518:39;11541:15;11518:7;:18;11526:9;11518:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11497:7;:18;11505:9;11497:18;;;;;;;;;;;;;;;:60;;;;11569:16;11579:5;11569:9;:16::i;:::-;11596:23;11608:4;11614;11596:11;:23::i;:::-;11652:9;11635:44;;11644:6;11635:44;;;11663:15;11635:44;;;;;;:::i;:::-;;;;;;;;11286:401;;;;;;11199:488;;;:::o;1940:189::-;2026:7;2058:1;2054;:5;2061:12;2046:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2085:9;2101:1;2097;:5;;;;:::i;:::-;2085:17;;2120:1;2113:8;;;1940:189;;;;;:::o;13953:262::-;14003:7;14012;14032:15;14050:7;;14032:25;;14068:15;4131:19;14068:25;;14124:20;4131:19;14124:7;;:11;;:20;;;;:::i;:::-;14114:7;:30;14110:61;;;14154:7;;4131:19;14146:25;;;;;;;;14110:61;14190:7;14199;14182:25;;;;;;13953:262;;;:::o;12526:475::-;12585:7;12594;12603;12612;12621;12630;12651:23;12676:12;12690:13;12707:46;12719:7;12728:11;;12741;;12707;:46::i;:::-;12650:103;;;;;;12764:19;12787:10;:8;:10::i;:::-;12764:33;;12809:15;12826:23;12851:12;12867:46;12879:7;12888:4;12894:5;12901:11;12867;:46::i;:::-;12808:105;;;;;;12932:7;12941:15;12958:4;12964:15;12981:4;12987:5;12924:69;;;;;;;;;;;;;;;;;;;12526:475;;;;;;;:::o;1204:136::-;1262:7;1289:43;1293:1;1296;1289:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1282:50;;1204:136;;;;:::o;1017:179::-;1075:7;1095:9;1111:1;1107;:5;;;;:::i;:::-;1095:17;;1136:1;1131;:6;;1123:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1187:1;1180:8;;;1017:179;;;;:::o;11695:212::-;11748:19;11771:10;:8;:10::i;:::-;11748:33;;11792:13;11808:22;11818:11;11808:5;:9;;:22;;;;:::i;:::-;11792:38;;11866:33;11893:5;11866:7;:22;11882:4;11866:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11841:7;:22;11857:4;11841:22;;;;;;;;;;;;;;;:58;;;;11737:170;;11695:212;:::o;11915:147::-;11993:17;12005:4;11993:7;;:11;;:17;;;;:::i;:::-;11983:7;:27;;;;12034:20;12049:4;12034:10;;:14;;:20;;;;:::i;:::-;12021:10;:33;;;;11915:147;;:::o;13009:351::-;13102:7;13111;13120;13140:12;13155:28;13179:3;13155:19;13167:6;13155:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13140:43;;13194:13;13210:29;13235:3;13210:20;13222:7;13210;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13194:45;;13250:23;13276:28;13298:5;13276:17;13288:4;13276:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13250:54;;13323:15;13340:4;13346:5;13315:37;;;;;;;;;13009:351;;;;;;;:::o;13368:409::-;13478:7;13487;13496;13516:15;13534:24;13546:11;13534:7;:11;;:24;;;;:::i;:::-;13516:42;;13569:12;13584:21;13593:11;13584:4;:8;;:21;;;;:::i;:::-;13569:36;;13616:13;13632:22;13642:11;13632:5;:9;;:22;;;;:::i;:::-;13616:38;;13665:23;13691:28;13713:5;13691:17;13703:4;13691:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13665:54;;13738:7;13747:15;13764:4;13730:39;;;;;;;;;;13368:409;;;;;;;;:::o;1546:246::-;1604:7;1633:1;1628;:6;1624:47;;;1658:1;1651:8;;;;1624:47;1681:9;1697:1;1693;:5;;;;:::i;:::-;1681:17;;1726:1;1721;1717;:5;;;;:::i;:::-;:10;1709:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1783:1;1776:8;;;1546:246;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:323::-;5553:6;5602:2;5590:9;5581:7;5577:23;5573:32;5570:119;;;5608:79;;:::i;:::-;5570:119;5728:1;5753:50;5795:7;5786:6;5775:9;5771:22;5753:50;:::i;:::-;5743:60;;5699:114;5497:323;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:474::-;6246:6;6254;6303:2;6291:9;6282:7;6278:23;6274:32;6271:119;;;6309:79;;:::i;:::-;6271:119;6429:1;6454:53;6499:7;6490:6;6479:9;6475:22;6454:53;:::i;:::-;6444:63;;6400:117;6556:2;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6527:118;6178:474;;;;;:::o;6658:117::-;6767:1;6764;6757:12;6781:180;6829:77;6826:1;6819:88;6926:4;6923:1;6916:15;6950:4;6947:1;6940:15;6967:281;7050:27;7072:4;7050:27;:::i;:::-;7042:6;7038:40;7180:6;7168:10;7165:22;7144:18;7132:10;7129:34;7126:62;7123:88;;;7191:18;;:::i;:::-;7123:88;7231:10;7227:2;7220:22;7010:238;6967:281;;:::o;7254:129::-;7288:6;7315:20;;:::i;:::-;7305:30;;7344:33;7372:4;7364:6;7344:33;:::i;:::-;7254:129;;;:::o;7389:311::-;7466:4;7556:18;7548:6;7545:30;7542:56;;;7578:18;;:::i;:::-;7542:56;7628:4;7620:6;7616:17;7608:25;;7688:4;7682;7678:15;7670:23;;7389:311;;;:::o;7706:117::-;7815:1;7812;7805:12;7846:710;7942:5;7967:81;7983:64;8040:6;7983:64;:::i;:::-;7967:81;:::i;:::-;7958:90;;8068:5;8097:6;8090:5;8083:21;8131:4;8124:5;8120:16;8113:23;;8184:4;8176:6;8172:17;8164:6;8160:30;8213:3;8205:6;8202:15;8199:122;;;8232:79;;:::i;:::-;8199:122;8347:6;8330:220;8364:6;8359:3;8356:15;8330:220;;;8439:3;8468:37;8501:3;8489:10;8468:37;:::i;:::-;8463:3;8456:50;8535:4;8530:3;8526:14;8519:21;;8406:144;8390:4;8385:3;8381:14;8374:21;;8330:220;;;8334:21;7948:608;;7846:710;;;;;:::o;8579:370::-;8650:5;8699:3;8692:4;8684:6;8680:17;8676:27;8666:122;;8707:79;;:::i;:::-;8666:122;8824:6;8811:20;8849:94;8939:3;8931:6;8924:4;8916:6;8912:17;8849:94;:::i;:::-;8840:103;;8656:293;8579:370;;;;:::o;8955:539::-;9039:6;9088:2;9076:9;9067:7;9063:23;9059:32;9056:119;;;9094:79;;:::i;:::-;9056:119;9242:1;9231:9;9227:17;9214:31;9272:18;9264:6;9261:30;9258:117;;;9294:79;;:::i;:::-;9258:117;9399:78;9469:7;9460:6;9449:9;9445:22;9399:78;:::i;:::-;9389:88;;9185:302;8955:539;;;;:::o;9500:182::-;9640:34;9636:1;9628:6;9624:14;9617:58;9500:182;:::o;9688:366::-;9830:3;9851:67;9915:2;9910:3;9851:67;:::i;:::-;9844:74;;9927:93;10016:3;9927:93;:::i;:::-;10045:2;10040:3;10036:12;10029:19;;9688:366;;;:::o;10060:419::-;10226:4;10264:2;10253:9;10249:18;10241:26;;10313:9;10307:4;10303:20;10299:1;10288:9;10284:17;10277:47;10341:131;10467:4;10341:131;:::i;:::-;10333:139;;10060:419;;;:::o;10485:173::-;10625:25;10621:1;10613:6;10609:14;10602:49;10485:173;:::o;10664:366::-;10806:3;10827:67;10891:2;10886:3;10827:67;:::i;:::-;10820:74;;10903:93;10992:3;10903:93;:::i;:::-;11021:2;11016:3;11012:12;11005:19;;10664:366;;;:::o;11036:419::-;11202:4;11240:2;11229:9;11225:18;11217:26;;11289:9;11283:4;11279:20;11275:1;11264:9;11260:17;11253:47;11317:131;11443:4;11317:131;:::i;:::-;11309:139;;11036:419;;;:::o;11461:143::-;11518:5;11549:6;11543:13;11534:22;;11565:33;11592:5;11565:33;:::i;:::-;11461:143;;;;:::o;11610:351::-;11680:6;11729:2;11717:9;11708:7;11704:23;11700:32;11697:119;;;11735:79;;:::i;:::-;11697:119;11855:1;11880:64;11936:7;11927:6;11916:9;11912:22;11880:64;:::i;:::-;11870:74;;11826:128;11610:351;;;;:::o;11967:332::-;12088:4;12126:2;12115:9;12111:18;12103:26;;12139:71;12207:1;12196:9;12192:17;12183:6;12139:71;:::i;:::-;12220:72;12288:2;12277:9;12273:18;12264:6;12220:72;:::i;:::-;11967:332;;;;;:::o;12305:85::-;12350:7;12379:5;12368:16;;12305:85;;;:::o;12396:60::-;12424:3;12445:5;12438:12;;12396:60;;;:::o;12462:158::-;12520:9;12553:61;12571:42;12580:32;12606:5;12580:32;:::i;:::-;12571:42;:::i;:::-;12553:61;:::i;:::-;12540:74;;12462:158;;;:::o;12626:147::-;12721:45;12760:5;12721:45;:::i;:::-;12716:3;12709:58;12626:147;;:::o;12779:807::-;13028:4;13066:3;13055:9;13051:19;13043:27;;13080:71;13148:1;13137:9;13133:17;13124:6;13080:71;:::i;:::-;13161:72;13229:2;13218:9;13214:18;13205:6;13161:72;:::i;:::-;13243:80;13319:2;13308:9;13304:18;13295:6;13243:80;:::i;:::-;13333;13409:2;13398:9;13394:18;13385:6;13333:80;:::i;:::-;13423:73;13491:3;13480:9;13476:19;13467:6;13423:73;:::i;:::-;13506;13574:3;13563:9;13559:19;13550:6;13506:73;:::i;:::-;12779:807;;;;;;;;;:::o;13592:143::-;13649:5;13680:6;13674:13;13665:22;;13696:33;13723:5;13696:33;:::i;:::-;13592:143;;;;:::o;13741:663::-;13829:6;13837;13845;13894:2;13882:9;13873:7;13869:23;13865:32;13862:119;;;13900:79;;:::i;:::-;13862:119;14020:1;14045:64;14101:7;14092:6;14081:9;14077:22;14045:64;:::i;:::-;14035:74;;13991:128;14158:2;14184:64;14240:7;14231:6;14220:9;14216:22;14184:64;:::i;:::-;14174:74;;14129:129;14297:2;14323:64;14379:7;14370:6;14359:9;14355:22;14323:64;:::i;:::-;14313:74;;14268:129;13741:663;;;;;:::o;14410:332::-;14531:4;14569:2;14558:9;14554:18;14546:26;;14582:71;14650:1;14639:9;14635:17;14626:6;14582:71;:::i;:::-;14663:72;14731:2;14720:9;14716:18;14707:6;14663:72;:::i;:::-;14410:332;;;;;:::o;14748:137::-;14802:5;14833:6;14827:13;14818:22;;14849:30;14873:5;14849:30;:::i;:::-;14748:137;;;;:::o;14891:345::-;14958:6;15007:2;14995:9;14986:7;14982:23;14978:32;14975:119;;;15013:79;;:::i;:::-;14975:119;15133:1;15158:61;15211:7;15202:6;15191:9;15187:22;15158:61;:::i;:::-;15148:71;;15104:125;14891:345;;;;:::o;15242:180::-;15290:77;15287:1;15280:88;15387:4;15384:1;15377:15;15411:4;15408:1;15401:15;15428:180;15476:77;15473:1;15466:88;15573:4;15570:1;15563:15;15597:4;15594:1;15587:15;15614:233;15653:3;15676:24;15694:5;15676:24;:::i;:::-;15667:33;;15722:66;15715:5;15712:77;15709:103;;;15792:18;;:::i;:::-;15709:103;15839:1;15832:5;15828:13;15821:20;;15614:233;;;:::o;15853:223::-;15993:34;15989:1;15981:6;15977:14;15970:58;16062:6;16057:2;16049:6;16045:15;16038:31;15853:223;:::o;16082:366::-;16224:3;16245:67;16309:2;16304:3;16245:67;:::i;:::-;16238:74;;16321:93;16410:3;16321:93;:::i;:::-;16439:2;16434:3;16430:12;16423:19;;16082:366;;;:::o;16454:419::-;16620:4;16658:2;16647:9;16643:18;16635:26;;16707:9;16701:4;16697:20;16693:1;16682:9;16678:17;16671:47;16735:131;16861:4;16735:131;:::i;:::-;16727:139;;16454:419;;;:::o;16879:221::-;17019:34;17015:1;17007:6;17003:14;16996:58;17088:4;17083:2;17075:6;17071:15;17064:29;16879:221;:::o;17106:366::-;17248:3;17269:67;17333:2;17328:3;17269:67;:::i;:::-;17262:74;;17345:93;17434:3;17345:93;:::i;:::-;17463:2;17458:3;17454:12;17447:19;;17106:366;;;:::o;17478:419::-;17644:4;17682:2;17671:9;17667:18;17659:26;;17731:9;17725:4;17721:20;17717:1;17706:9;17702:17;17695:47;17759:131;17885:4;17759:131;:::i;:::-;17751:139;;17478:419;;;:::o;17903:224::-;18043:34;18039:1;18031:6;18027:14;18020:58;18112:7;18107:2;18099:6;18095:15;18088:32;17903:224;:::o;18133:366::-;18275:3;18296:67;18360:2;18355:3;18296:67;:::i;:::-;18289:74;;18372:93;18461:3;18372:93;:::i;:::-;18490:2;18485:3;18481:12;18474:19;;18133:366;;;:::o;18505:419::-;18671:4;18709:2;18698:9;18694:18;18686:26;;18758:9;18752:4;18748:20;18744:1;18733:9;18729:17;18722:47;18786:131;18912:4;18786:131;:::i;:::-;18778:139;;18505:419;;;:::o;18930:222::-;19070:34;19066:1;19058:6;19054:14;19047:58;19139:5;19134:2;19126:6;19122:15;19115:30;18930:222;:::o;19158:366::-;19300:3;19321:67;19385:2;19380:3;19321:67;:::i;:::-;19314:74;;19397:93;19486:3;19397:93;:::i;:::-;19515:2;19510:3;19506:12;19499:19;;19158:366;;;:::o;19530:419::-;19696:4;19734:2;19723:9;19719:18;19711:26;;19783:9;19777:4;19773:20;19769:1;19758:9;19754:17;19747:47;19811:131;19937:4;19811:131;:::i;:::-;19803:139;;19530:419;;;:::o;19955:228::-;20095:34;20091:1;20083:6;20079:14;20072:58;20164:11;20159:2;20151:6;20147:15;20140:36;19955:228;:::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:305::-;21026:3;21045:20;21063:1;21045:20;:::i;:::-;21040:25;;21079:20;21097:1;21079:20;:::i;:::-;21074:25;;21233:1;21165:66;21161:74;21158:1;21155:81;21152:107;;;21239:18;;:::i;:::-;21152:107;21283:1;21280;21276:9;21269:16;;20986:305;;;;:::o;21297:169::-;21437:21;21433:1;21425:6;21421:14;21414:45;21297:169;:::o;21472:366::-;21614:3;21635:67;21699:2;21694:3;21635:67;:::i;:::-;21628:74;;21711:93;21800:3;21711:93;:::i;:::-;21829:2;21824:3;21820:12;21813:19;;21472:366;;;:::o;21844:419::-;22010:4;22048:2;22037:9;22033:18;22025:26;;22097:9;22091:4;22087:20;22083:1;22072:9;22068:17;22061:47;22125:131;22251:4;22125:131;:::i;:::-;22117:139;;21844:419;;;:::o;22269:191::-;22309:4;22329:20;22347:1;22329:20;:::i;:::-;22324:25;;22363:20;22381:1;22363:20;:::i;:::-;22358:25;;22402:1;22399;22396:8;22393:34;;;22407:18;;:::i;:::-;22393:34;22452:1;22449;22445:9;22437:17;;22269:191;;;;:::o;22466:229::-;22606:34;22602:1;22594:6;22590:14;22583:58;22675:12;22670:2;22662:6;22658:15;22651:37;22466:229;:::o;22701:366::-;22843:3;22864:67;22928:2;22923:3;22864:67;:::i;:::-;22857:74;;22940:93;23029:3;22940:93;:::i;:::-;23058:2;23053:3;23049:12;23042:19;;22701:366;;;:::o;23073:419::-;23239:4;23277:2;23266:9;23262:18;23254:26;;23326:9;23320:4;23316:20;23312:1;23301:9;23297:17;23290:47;23354:131;23480:4;23354:131;:::i;:::-;23346:139;;23073:419;;;:::o;23498:114::-;23565:6;23599:5;23593:12;23583:22;;23498:114;;;:::o;23618:184::-;23717:11;23751:6;23746:3;23739:19;23791:4;23786:3;23782:14;23767:29;;23618:184;;;;:::o;23808:132::-;23875:4;23898:3;23890:11;;23928:4;23923:3;23919:14;23911:22;;23808:132;;;:::o;23946:108::-;24023:24;24041:5;24023:24;:::i;:::-;24018:3;24011:37;23946:108;;:::o;24060:179::-;24129:10;24150:46;24192:3;24184:6;24150:46;:::i;:::-;24228:4;24223:3;24219:14;24205:28;;24060:179;;;;:::o;24245:113::-;24315:4;24347;24342:3;24338:14;24330:22;;24245:113;;;:::o;24394:732::-;24513:3;24542:54;24590:5;24542:54;:::i;:::-;24612:86;24691:6;24686:3;24612:86;:::i;:::-;24605:93;;24722:56;24772:5;24722:56;:::i;:::-;24801:7;24832:1;24817:284;24842:6;24839:1;24836:13;24817:284;;;24918:6;24912:13;24945:63;25004:3;24989:13;24945:63;:::i;:::-;24938:70;;25031:60;25084:6;25031:60;:::i;:::-;25021:70;;24877:224;24864:1;24861;24857:9;24852:14;;24817:284;;;24821:14;25117:3;25110:10;;24518:608;;;24394:732;;;;:::o;25132:831::-;25395:4;25433:3;25422:9;25418:19;25410:27;;25447:71;25515:1;25504:9;25500:17;25491:6;25447:71;:::i;:::-;25528:80;25604:2;25593:9;25589:18;25580:6;25528:80;:::i;:::-;25655:9;25649:4;25645:20;25640:2;25629:9;25625:18;25618:48;25683:108;25786:4;25777:6;25683:108;:::i;:::-;25675:116;;25801:72;25869:2;25858:9;25854:18;25845:6;25801:72;:::i;:::-;25883:73;25951:3;25940:9;25936:19;25927:6;25883:73;:::i;:::-;25132:831;;;;;;;;:::o;25969:180::-;26017:77;26014:1;26007:88;26114:4;26111:1;26104:15;26138:4;26135:1;26128:15;26155:185;26195:1;26212:20;26230:1;26212:20;:::i;:::-;26207:25;;26246:20;26264:1;26246:20;:::i;:::-;26241:25;;26285:1;26275:35;;26290:18;;:::i;:::-;26275:35;26332:1;26329;26325:9;26320:14;;26155:185;;;;:::o;26346:177::-;26486:29;26482:1;26474:6;26470:14;26463:53;26346:177;:::o;26529:366::-;26671:3;26692:67;26756:2;26751:3;26692:67;:::i;:::-;26685:74;;26768:93;26857:3;26768:93;:::i;:::-;26886:2;26881:3;26877:12;26870:19;;26529:366;;;:::o;26901:419::-;27067:4;27105:2;27094:9;27090:18;27082:26;;27154:9;27148:4;27144:20;27140:1;27129:9;27125:17;27118:47;27182:131;27308:4;27182:131;:::i;:::-;27174:139;;26901:419;;;:::o;27326:348::-;27366:7;27389:20;27407:1;27389:20;:::i;:::-;27384:25;;27423:20;27441:1;27423:20;:::i;:::-;27418:25;;27611:1;27543:66;27539:74;27536:1;27533:81;27528:1;27521:9;27514:17;27510:105;27507:131;;;27618:18;;:::i;:::-;27507:131;27666:1;27663;27659:9;27648:20;;27326:348;;;;:::o;27680:220::-;27820:34;27816:1;27808:6;27804:14;27797:58;27889:3;27884:2;27876:6;27872:15;27865:28;27680:220;:::o;27906:366::-;28048:3;28069:67;28133:2;28128:3;28069:67;:::i;:::-;28062:74;;28145:93;28234:3;28145:93;:::i;:::-;28263:2;28258:3;28254:12;28247:19;;27906:366;;;:::o;28278:419::-;28444:4;28482:2;28471:9;28467:18;28459:26;;28531:9;28525:4;28521:20;28517:1;28506:9;28502:17;28495:47;28559:131;28685:4;28559:131;:::i;:::-;28551:139;;28278:419;;;:::o

Swarm Source

ipfs://92bc3baca4382a1b055e004a8b95489109167d682dc9a90cd53b4d15134f1c26

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  ]
[ 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.