ETH Price: $2,609.47 (-0.46%)

Contract

0x2d0753bd4E7193D5570C6e2F190C26046ec9E563
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve154861822022-09-06 20:31:53772 days ago1662496313IN
0x2d0753bd...46ec9E563
0 ETH0.0007436629.82781669
Approve149939192022-06-20 1:37:53850 days ago1655689073IN
0x2d0753bd...46ec9E563
0 ETH0.0008312817.60592594
Approve149777042022-06-17 6:26:32853 days ago1655447192IN
0x2d0753bd...46ec9E563
0 ETH0.0013492728.57670346
Approve149684722022-06-15 16:30:22855 days ago1655310622IN
0x2d0753bd...46ec9E563
0 ETH0.0037946680.36817646
Approve149668032022-06-15 9:34:16855 days ago1655285656IN
0x2d0753bd...46ec9E563
0 ETH0.00581031123.058092
Approve149660482022-06-15 6:20:48855 days ago1655274048IN
0x2d0753bd...46ec9E563
0 ETH0.0016268734.45595792
Approve149660062022-06-15 6:08:44855 days ago1655273324IN
0x2d0753bd...46ec9E563
0 ETH0.0015876733.62569147
Approve149659242022-06-15 5:47:55855 days ago1655272075IN
0x2d0753bd...46ec9E563
0 ETH0.0015700133.25184854
Approve149658602022-06-15 5:33:55855 days ago1655271235IN
0x2d0753bd...46ec9E563
0 ETH0.0026138455.35940563
Approve149654062022-06-15 3:38:34855 days ago1655264314IN
0x2d0753bd...46ec9E563
0 ETH0.0017099536.21566252
Approve149653312022-06-15 3:20:32855 days ago1655263232IN
0x2d0753bd...46ec9E563
0 ETH0.0013367628.31159821
Approve149652592022-06-15 3:03:52855 days ago1655262232IN
0x2d0753bd...46ec9E563
0 ETH0.00207743.98947565
Approve149650532022-06-15 2:07:29855 days ago1655258849IN
0x2d0753bd...46ec9E563
0 ETH0.001757837.22904346
Approve149650382022-06-15 2:03:20855 days ago1655258600IN
0x2d0753bd...46ec9E563
0 ETH0.0018970540.17829745
Approve149649702022-06-15 1:45:43855 days ago1655257543IN
0x2d0753bd...46ec9E563
0 ETH0.0015828633.52395837
Approve149649432022-06-15 1:39:49855 days ago1655257189IN
0x2d0753bd...46ec9E563
0 ETH0.0020598943.62698962
Approve149648502022-06-15 1:16:53855 days ago1655255813IN
0x2d0753bd...46ec9E563
0 ETH0.0014159929.9897092
Approve149648312022-06-15 1:13:29855 days ago1655255609IN
0x2d0753bd...46ec9E563
0 ETH0.0019813241.96296554
Approve149648112022-06-15 1:09:01855 days ago1655255341IN
0x2d0753bd...46ec9E563
0 ETH0.0026869656.90788757
Approve149648022022-06-15 1:04:34855 days ago1655255074IN
0x2d0753bd...46ec9E563
0 ETH0.0020367643.13715818
Approve149647902022-06-15 1:01:48855 days ago1655254908IN
0x2d0753bd...46ec9E563
0 ETH0.0026528156.18464967
Approve149647782022-06-15 0:57:58855 days ago1655254678IN
0x2d0753bd...46ec9E563
0 ETH0.0020699543.84020584
Approve149647782022-06-15 0:57:58855 days ago1655254678IN
0x2d0753bd...46ec9E563
0 ETH0.0020935644.34020584
Approve149647722022-06-15 0:56:57855 days ago1655254617IN
0x2d0753bd...46ec9E563
0 ETH0.0022852848.40055909
Approve149647672022-06-15 0:56:15855 days ago1655254575IN
0x2d0753bd...46ec9E563
0 ETH0.0026972657.12606367
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
151140282022-07-10 9:08:30830 days ago1657444110
0x2d0753bd...46ec9E563
0.00055789 ETH
151140282022-07-10 9:08:30830 days ago1657444110
0x2d0753bd...46ec9E563
0.00055789 ETH
151140282022-07-10 9:08:30830 days ago1657444110
0x2d0753bd...46ec9E563
0.00055789 ETH
151140282022-07-10 9:08:30830 days ago1657444110
0x2d0753bd...46ec9E563
0.00055789 ETH
151140282022-07-10 9:08:30830 days ago1657444110
0x2d0753bd...46ec9E563
0.00055789 ETH
151140282022-07-10 9:08:30830 days ago1657444110
0x2d0753bd...46ec9E563
0.00278945 ETH
149939212022-06-20 1:38:13850 days ago1655689093
0x2d0753bd...46ec9E563
0.00103298 ETH
149939212022-06-20 1:38:13850 days ago1655689093
0x2d0753bd...46ec9E563
0.00103298 ETH
149939212022-06-20 1:38:13850 days ago1655689093
0x2d0753bd...46ec9E563
0.00103298 ETH
149939212022-06-20 1:38:13850 days ago1655689093
0x2d0753bd...46ec9E563
0.00103298 ETH
149939212022-06-20 1:38:13850 days ago1655689093
0x2d0753bd...46ec9E563
0.00103298 ETH
149939212022-06-20 1:38:13850 days ago1655689093
0x2d0753bd...46ec9E563
0.00516493 ETH
149829302022-06-18 3:56:24852 days ago1655524584
0x2d0753bd...46ec9E563
0.00063365 ETH
149829302022-06-18 3:56:24852 days ago1655524584
0x2d0753bd...46ec9E563
0.00063365 ETH
149829302022-06-18 3:56:24852 days ago1655524584
0x2d0753bd...46ec9E563
0.00063365 ETH
149829302022-06-18 3:56:24852 days ago1655524584
0x2d0753bd...46ec9E563
0.00063365 ETH
149829302022-06-18 3:56:24852 days ago1655524584
0x2d0753bd...46ec9E563
0.00063365 ETH
149829302022-06-18 3:56:24852 days ago1655524584
0x2d0753bd...46ec9E563
0.00316829 ETH
149777082022-06-17 6:27:39853 days ago1655447259
0x2d0753bd...46ec9E563
0.00067339 ETH
149777082022-06-17 6:27:39853 days ago1655447259
0x2d0753bd...46ec9E563
0.00067339 ETH
149777082022-06-17 6:27:39853 days ago1655447259
0x2d0753bd...46ec9E563
0.00067339 ETH
149777082022-06-17 6:27:39853 days ago1655447259
0x2d0753bd...46ec9E563
0.00067339 ETH
149777082022-06-17 6:27:39853 days ago1655447259
0x2d0753bd...46ec9E563
0.00067339 ETH
149777082022-06-17 6:27:39853 days ago1655447259
0x2d0753bd...46ec9E563
0.00336697 ETH
149739132022-06-16 14:53:29854 days ago1655391209
0x2d0753bd...46ec9E563
0.00082464 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
chonke

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-15
*/

// https://chonke.finance

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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 chonke is Context, IERC20, Ownable {
    using SafeMath for uint256;
    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 time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**6 * 10**9;
    uint256 private fee1=40;
    uint256 private fee2=40;
    uint256 private liqfee=20;
    string private constant _name = "Chonke (The Monke Protector)";
    string private constant _symbol = "CHONKE";
    uint256 private _maxTxAmount = _tTotal.mul(20).div(1000);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    address payable private _buyBackWallet;
    address payable private _marketingWallet1;
    address payable private _cexWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _buyBackWallet = payable(0x7AEd106c80d635B50D8c4C5B1eA62edFf42E751f);
        _marketingWallet1 = payable(0x78e28b68b30F62CbCf4f3Dce10A7490cD9d1cf93);
        _cexWallet = payable(0xf47F8F482Bb17b318dD1afB376940fCCEad0cC7C);
        _tOwned[address(this)] = _tTotal;
        _tOwned[address(0xcb3A790842D906bC43b4a3aA0F3784321D0CC7A9)] = _tTotal.div(100).mul(2);
        _tOwned[address(0x33F34133f55F72DBe9A496367322abd936e7Cf4b)] = _tTotal.div(100).mul(2);
        _tOwned[address(0x8aed8203E9BdB1830aa9dBEc523956cf39e0ACC2)] = _tTotal.div(100).mul(2);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[address(0xcb3A790842D906bC43b4a3aA0F3784321D0CC7A9)] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_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 _tOwned[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 changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

    }

   
    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");

        _tax = fee1.add(liqfee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapAndLiquify(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(liqfee);
        }		
        _transferStandard(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 swapAndLiquify(uint256 tokenAmount) private {
        uint256 half = liqfee.div(2);
        uint256 part = fee2.add(half);
        uint256 sum = fee2.add(liqfee);
        uint256 swapTotal = tokenAmount.mul(part).div(sum);
        swapTokensForEth(swapTotal);
        addLiquidity(tokenAmount.sub(swapTotal),address(this).balance.mul(half).div(part),_feeAddrWallet1);
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(4));
        _buyBackWallet.transfer(amount.div(4));
        _marketingWallet1.transfer(amount.div(4));
        _cexWallet.transfer(amount.div(4));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (3 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    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 _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _feeAddrWallet1);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"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":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"}]

608060405260286009556028600a556014600b55620000506103e86200003c601466038d7ea4c680006200092b60201b62000e711790919060201c565b620009af60201b62000eec1790919060201c565b600c55620000766103e866038d7ea4c68000620009af60201b62000eec1790919060201c565b600d556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000620000c162000a0160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737aed106c80d635b50d8c4c5b1ea62edff42e751f600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507378e28b68b30f62cbcf4f3dce10a7490cd9d1cf93601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f47f8f482bb17b318dd1afb376940fccead0cc7c601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c68000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000326600262000312606466038d7ea4c68000620009af60201b62000eec1790919060201c565b6200092b60201b62000e711790919060201c565b6002600073cb3a790842d906bc43b4a3aa0f3784321d0cc7a973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003b96002620003a5606466038d7ea4c68000620009af60201b62000eec1790919060201c565b6200092b60201b62000e711790919060201c565b600260007333f34133f55f72dbe9a496367322abd936e7cf4b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200044c600262000438606466038d7ea4c68000620009af60201b62000eec1790919060201c565b6200092b60201b62000e711790919060201c565b60026000738aed8203e9bdb1830aa9dbec523956cf39e0acc273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620004b962000a0960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600073cb3a790842d906bc43b4a3aa0f3784321d0cc7a973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200070657600080fd5b505afa1580156200071b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000741919062000ab1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007c657600080fd5b505afa158015620007db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000801919062000ab1565b6040518363ffffffff1660e01b81526004016200082092919062000b6d565b602060405180830381600087803b1580156200083b57600080fd5b505af115801562000850573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000876919062000ab1565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200091d919062000be0565b60405180910390a362000e03565b600080831415620009405760009050620009a9565b6000828462000950919062000c51565b905082848262000961919062000c19565b14620009a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099b9062000bbe565b60405180910390fd5b809150505b92915050565b6000620009f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a3260201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000a7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a73919062000b9a565b60405180910390fd5b506000838562000a8d919062000c19565b9050809150509392505050565b60008151905062000aab8162000de9565b92915050565b60006020828403121562000aca5762000ac962000d84565b5b600062000ada8482850162000a9a565b91505092915050565b62000aee8162000cb2565b82525050565b600062000b018262000bfd565b62000b0d818562000c08565b935062000b1f81856020860162000cf0565b62000b2a8162000d89565b840191505092915050565b600062000b4460218362000c08565b915062000b518262000d9a565b604082019050919050565b62000b678162000ce6565b82525050565b600060408201905062000b84600083018562000ae3565b62000b93602083018462000ae3565b9392505050565b6000602082019050818103600083015262000bb6818462000af4565b905092915050565b6000602082019050818103600083015262000bd98162000b35565b9050919050565b600060208201905062000bf7600083018462000b5c565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000c268262000ce6565b915062000c338362000ce6565b92508262000c465762000c4562000d55565b5b828204905092915050565b600062000c5e8262000ce6565b915062000c6b8362000ce6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ca75762000ca662000d26565b5b828202905092915050565b600062000cbf8262000cc6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000d1057808201518184015260208101905062000cf3565b8381111562000d20576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000df48162000cb2565b811462000e0057600080fd5b50565b6131f58062000e136000396000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780634ea18fab146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806316114acd1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906128d6565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061243d565b61045e565b60405161017891906128bb565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190612350565b61047c565b005b3480156101b657600080fd5b506101bf61061e565b6040516101cc9190612a38565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906123ea565b61062d565b60405161020991906128bb565b60405180910390f35b34801561021e57600080fd5b5061023960048036038101906102349190612350565b610706565b005b34801561024757600080fd5b506102506107f6565b60405161025d9190612aad565b60405180910390f35b34801561027257600080fd5b5061028d600480360381019061028891906124f3565b6107ff565b005b34801561029b57600080fd5b506102a461086a565b005b3480156102b257600080fd5b506102cd60048036038101906102c89190612350565b6108dc565b6040516102da9190612a38565b60405180910390f35b3480156102ef57600080fd5b506102f8610925565b005b34801561030657600080fd5b5061030f610a78565b60405161031c9190612816565b60405180910390f35b34801561033157600080fd5b5061033a610aa1565b60405161034791906128d6565b60405180910390f35b34801561035c57600080fd5b506103776004803603810190610372919061243d565b610ade565b60405161038491906128bb565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af919061247d565b610afc565b005b3480156103c257600080fd5b506103cb610c26565b005b3480156103d957600080fd5b506103e2610ca0565b005b3480156103f057600080fd5b5061040b600480360381019061040691906123aa565b610dea565b6040516104189190612a38565b60405180910390f35b60606040518060400160405280601c81526020017f43686f6e6b652028546865204d6f6e6b652050726f746563746f722900000000815250905090565b600061047261046b610f36565b8484610f3e565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104bd610f36565b73ffffffffffffffffffffffffffffffffffffffff16146104dd57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161055a9190612816565b60206040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612520565b6040518363ffffffff1660e01b81526004016105c7929190612831565b602060405180830381600087803b1580156105e157600080fd5b505af11580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061991906124c6565b505050565b600066038d7ea4c68000905090565b600061063a848484611109565b6106fb84610646610f36565b6106f68560405180606001604052806028815260200161319860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ac610f36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c29092919063ffffffff16565b610f3e565b600190509392505050565b61070e610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612998565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610840610f36565b73ffffffffffffffffffffffffffffffffffffffff161461086057600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ab610f36565b73ffffffffffffffffffffffffffffffffffffffff16146108cb57600080fd5b60004790506108d981611826565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092d610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b190612998565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f43484f4e4b450000000000000000000000000000000000000000000000000000815250905090565b6000610af2610aeb610f36565b8484611109565b6001905092915050565b610b04610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890612998565b60405180910390fd5b60005b8151811015610c2257600160056000848481518110610bb657610bb5612e2b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1a90612d84565b915050610b94565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c67610f36565b73ffffffffffffffffffffffffffffffffffffffff1614610c8757600080fd5b6000610c92306108dc565b9050610c9d81611a19565b50565b610ca8610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c90612998565b60405180910390fd5b601360149054906101000a900460ff1615610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90612a18565b60405180910390fd5b610d9f610d91306108dc565b47610d9a610a78565b611ca1565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060b442610de29190612b6e565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610e845760009050610ee6565b60008284610e929190612bf5565b9050828482610ea19190612bc4565b14610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed890612978565b60405180910390fd5b809150505b92915050565b6000610f2e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc5565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906129f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590612938565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110fc9190612a38565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906129d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090612918565b60405180910390fd5b6000811161122c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611223906129b8565b60405180910390fd5b611243600b54600954611e2890919063ffffffff16565b600881905550611251610a78565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112bf575061128f610a78565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561168e57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113685750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137157600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114725750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561147f575060075442105b1561152f57600c5481111561149357600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114de57600080fd5b601e426114eb9190612b6e565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff1615801561159a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115b25750601360169054906101000a900460ff165b80156116085750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561168d576007544211611651576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611648906128f8565b60405180910390fd5b600061165c306108dc565b9050600d5481111561168b5761167181611e86565b600047905060008111156116895761168847611826565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117395750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561178f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b2576117ab600b54600a54611e2890919063ffffffff16565b6008819055505b6117bd838383611f70565b505050565b600083831115829061180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180191906128d6565b60405180910390fd5b50600083856118199190612c4f565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611876600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156118a1573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118f2600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561191d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61196e600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611999573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119ea600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a15573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a5157611a50612e5a565b5b604051908082528060200260200182016040528015611a7f5781602001602082028036833780820191505090505b5090503081600081518110611a9757611a96612e2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3957600080fd5b505afa158015611b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b71919061237d565b81600181518110611b8557611b84612e2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bec30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f3e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c50959493929190612a53565b600060405180830381600087803b158015611c6a57600080fd5b505af1158015611c7e573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff021916908315150217905550611ce930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610f3e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d509695949392919061285a565b6060604051808303818588803b158015611d6957600080fd5b505af1158015611d7d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611da2919061254d565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0391906128d6565b60405180910390fd5b5060008385611e1b9190612bc4565b9050809150509392505050565b6000808284611e379190612b6e565b905083811015611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390612958565b60405180910390fd5b8091505092915050565b6000611e9e6002600b54610eec90919063ffffffff16565b90506000611eb782600a54611e2890919063ffffffff16565b90506000611ed2600b54600a54611e2890919063ffffffff16565b90506000611efb82611eed8588610e7190919063ffffffff16565b610eec90919063ffffffff16565b9050611f0681611a19565b611f69611f1c82876121ab90919063ffffffff16565b611f4185611f338847610e7190919063ffffffff16565b610eec90919063ffffffff16565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca1565b5050505050565b600080611f7c836121f5565b91509150611fd283600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ab90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2890919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161219c9190612a38565b60405180910390a35050505050565b60006121ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117c2565b905092915050565b60008060006122236103e861221560085487610e7190919063ffffffff16565b610eec90919063ffffffff16565b9050600061223a82866121ab90919063ffffffff16565b90508082935093505050915091565b600061225c61225784612aed565b612ac8565b9050808382526020820190508285602086028201111561227f5761227e612e8e565b5b60005b858110156122af578161229588826122b9565b845260208401935060208301925050600181019050612282565b5050509392505050565b6000813590506122c881613152565b92915050565b6000815190506122dd81613152565b92915050565b600082601f8301126122f8576122f7612e89565b5b8135612308848260208601612249565b91505092915050565b60008151905061232081613169565b92915050565b60008135905061233581613180565b92915050565b60008151905061234a81613180565b92915050565b60006020828403121561236657612365612e98565b5b6000612374848285016122b9565b91505092915050565b60006020828403121561239357612392612e98565b5b60006123a1848285016122ce565b91505092915050565b600080604083850312156123c1576123c0612e98565b5b60006123cf858286016122b9565b92505060206123e0858286016122b9565b9150509250929050565b60008060006060848603121561240357612402612e98565b5b6000612411868287016122b9565b9350506020612422868287016122b9565b925050604061243386828701612326565b9150509250925092565b6000806040838503121561245457612453612e98565b5b6000612462858286016122b9565b925050602061247385828601612326565b9150509250929050565b60006020828403121561249357612492612e98565b5b600082013567ffffffffffffffff8111156124b1576124b0612e93565b5b6124bd848285016122e3565b91505092915050565b6000602082840312156124dc576124db612e98565b5b60006124ea84828501612311565b91505092915050565b60006020828403121561250957612508612e98565b5b600061251784828501612326565b91505092915050565b60006020828403121561253657612535612e98565b5b60006125448482850161233b565b91505092915050565b60008060006060848603121561256657612565612e98565b5b60006125748682870161233b565b93505060206125858682870161233b565b92505060406125968682870161233b565b9150509250925092565b60006125ac83836125c7565b60208301905092915050565b6125c181612cd8565b82525050565b6125d081612c83565b82525050565b6125df81612c83565b82525050565b60006125f082612b29565b6125fa8185612b4c565b935061260583612b19565b8060005b8381101561263657815161261d88826125a0565b975061262883612b3f565b925050600181019050612609565b5085935050505092915050565b61264c81612c95565b82525050565b61265b81612cea565b82525050565b600061266c82612b34565b6126768185612b5d565b9350612686818560208601612d20565b61268f81612e9d565b840191505092915050565b60006126a7602883612b5d565b91506126b282612eae565b604082019050919050565b60006126ca602383612b5d565b91506126d582612efd565b604082019050919050565b60006126ed602283612b5d565b91506126f882612f4c565b604082019050919050565b6000612710601b83612b5d565b915061271b82612f9b565b602082019050919050565b6000612733602183612b5d565b915061273e82612fc4565b604082019050919050565b6000612756602083612b5d565b915061276182613013565b602082019050919050565b6000612779602983612b5d565b91506127848261303c565b604082019050919050565b600061279c602583612b5d565b91506127a78261308b565b604082019050919050565b60006127bf602483612b5d565b91506127ca826130da565b604082019050919050565b60006127e2601783612b5d565b91506127ed82613129565b602082019050919050565b61280181612cc1565b82525050565b61281081612ccb565b82525050565b600060208201905061282b60008301846125d6565b92915050565b600060408201905061284660008301856125b8565b61285360208301846127f8565b9392505050565b600060c08201905061286f60008301896125d6565b61287c60208301886127f8565b6128896040830187612652565b6128966060830186612652565b6128a360808301856125d6565b6128b060a08301846127f8565b979650505050505050565b60006020820190506128d06000830184612643565b92915050565b600060208201905081810360008301526128f08184612661565b905092915050565b600060208201905081810360008301526129118161269a565b9050919050565b60006020820190508181036000830152612931816126bd565b9050919050565b60006020820190508181036000830152612951816126e0565b9050919050565b6000602082019050818103600083015261297181612703565b9050919050565b6000602082019050818103600083015261299181612726565b9050919050565b600060208201905081810360008301526129b181612749565b9050919050565b600060208201905081810360008301526129d18161276c565b9050919050565b600060208201905081810360008301526129f18161278f565b9050919050565b60006020820190508181036000830152612a11816127b2565b9050919050565b60006020820190508181036000830152612a31816127d5565b9050919050565b6000602082019050612a4d60008301846127f8565b92915050565b600060a082019050612a6860008301886127f8565b612a756020830187612652565b8181036040830152612a8781866125e5565b9050612a9660608301856125d6565b612aa360808301846127f8565b9695505050505050565b6000602082019050612ac26000830184612807565b92915050565b6000612ad2612ae3565b9050612ade8282612d53565b919050565b6000604051905090565b600067ffffffffffffffff821115612b0857612b07612e5a565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612b7982612cc1565b9150612b8483612cc1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb957612bb8612dcd565b5b828201905092915050565b6000612bcf82612cc1565b9150612bda83612cc1565b925082612bea57612be9612dfc565b5b828204905092915050565b6000612c0082612cc1565b9150612c0b83612cc1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4457612c43612dcd565b5b828202905092915050565b6000612c5a82612cc1565b9150612c6583612cc1565b925082821015612c7857612c77612dcd565b5b828203905092915050565b6000612c8e82612ca1565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ce382612cfc565b9050919050565b6000612cf582612cc1565b9050919050565b6000612d0782612d0e565b9050919050565b6000612d1982612ca1565b9050919050565b60005b83811015612d3e578082015181840152602081019050612d23565b83811115612d4d576000848401525b50505050565b612d5c82612e9d565b810181811067ffffffffffffffff82111715612d7b57612d7a612e5a565b5b80604052505050565b6000612d8f82612cc1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dc257612dc1612dcd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61315b81612c83565b811461316657600080fd5b50565b61317281612c95565b811461317d57600080fd5b50565b61318981612cc1565b811461319457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d9dec3e313837fed0633baefc81932f89305eb97caace8ba906dfe10056e58964736f6c63430008070033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780634ea18fab146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806316114acd1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906128d6565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061243d565b61045e565b60405161017891906128bb565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190612350565b61047c565b005b3480156101b657600080fd5b506101bf61061e565b6040516101cc9190612a38565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906123ea565b61062d565b60405161020991906128bb565b60405180910390f35b34801561021e57600080fd5b5061023960048036038101906102349190612350565b610706565b005b34801561024757600080fd5b506102506107f6565b60405161025d9190612aad565b60405180910390f35b34801561027257600080fd5b5061028d600480360381019061028891906124f3565b6107ff565b005b34801561029b57600080fd5b506102a461086a565b005b3480156102b257600080fd5b506102cd60048036038101906102c89190612350565b6108dc565b6040516102da9190612a38565b60405180910390f35b3480156102ef57600080fd5b506102f8610925565b005b34801561030657600080fd5b5061030f610a78565b60405161031c9190612816565b60405180910390f35b34801561033157600080fd5b5061033a610aa1565b60405161034791906128d6565b60405180910390f35b34801561035c57600080fd5b506103776004803603810190610372919061243d565b610ade565b60405161038491906128bb565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af919061247d565b610afc565b005b3480156103c257600080fd5b506103cb610c26565b005b3480156103d957600080fd5b506103e2610ca0565b005b3480156103f057600080fd5b5061040b600480360381019061040691906123aa565b610dea565b6040516104189190612a38565b60405180910390f35b60606040518060400160405280601c81526020017f43686f6e6b652028546865204d6f6e6b652050726f746563746f722900000000815250905090565b600061047261046b610f36565b8484610f3e565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104bd610f36565b73ffffffffffffffffffffffffffffffffffffffff16146104dd57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161055a9190612816565b60206040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612520565b6040518363ffffffff1660e01b81526004016105c7929190612831565b602060405180830381600087803b1580156105e157600080fd5b505af11580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061991906124c6565b505050565b600066038d7ea4c68000905090565b600061063a848484611109565b6106fb84610646610f36565b6106f68560405180606001604052806028815260200161319860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ac610f36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c29092919063ffffffff16565b610f3e565b600190509392505050565b61070e610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612998565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610840610f36565b73ffffffffffffffffffffffffffffffffffffffff161461086057600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ab610f36565b73ffffffffffffffffffffffffffffffffffffffff16146108cb57600080fd5b60004790506108d981611826565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092d610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b190612998565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f43484f4e4b450000000000000000000000000000000000000000000000000000815250905090565b6000610af2610aeb610f36565b8484611109565b6001905092915050565b610b04610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890612998565b60405180910390fd5b60005b8151811015610c2257600160056000848481518110610bb657610bb5612e2b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1a90612d84565b915050610b94565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c67610f36565b73ffffffffffffffffffffffffffffffffffffffff1614610c8757600080fd5b6000610c92306108dc565b9050610c9d81611a19565b50565b610ca8610f36565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c90612998565b60405180910390fd5b601360149054906101000a900460ff1615610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90612a18565b60405180910390fd5b610d9f610d91306108dc565b47610d9a610a78565b611ca1565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060b442610de29190612b6e565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610e845760009050610ee6565b60008284610e929190612bf5565b9050828482610ea19190612bc4565b14610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed890612978565b60405180910390fd5b809150505b92915050565b6000610f2e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc5565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906129f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590612938565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110fc9190612a38565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906129d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090612918565b60405180910390fd5b6000811161122c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611223906129b8565b60405180910390fd5b611243600b54600954611e2890919063ffffffff16565b600881905550611251610a78565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112bf575061128f610a78565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561168e57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113685750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137157600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114725750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561147f575060075442105b1561152f57600c5481111561149357600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114de57600080fd5b601e426114eb9190612b6e565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff1615801561159a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115b25750601360169054906101000a900460ff165b80156116085750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561168d576007544211611651576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611648906128f8565b60405180910390fd5b600061165c306108dc565b9050600d5481111561168b5761167181611e86565b600047905060008111156116895761168847611826565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117395750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561178f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b2576117ab600b54600a54611e2890919063ffffffff16565b6008819055505b6117bd838383611f70565b505050565b600083831115829061180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180191906128d6565b60405180910390fd5b50600083856118199190612c4f565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611876600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156118a1573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118f2600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561191d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61196e600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611999573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119ea600484610eec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a15573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a5157611a50612e5a565b5b604051908082528060200260200182016040528015611a7f5781602001602082028036833780820191505090505b5090503081600081518110611a9757611a96612e2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b3957600080fd5b505afa158015611b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b71919061237d565b81600181518110611b8557611b84612e2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bec30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f3e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c50959493929190612a53565b600060405180830381600087803b158015611c6a57600080fd5b505af1158015611c7e573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff021916908315150217905550611ce930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610f3e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d509695949392919061285a565b6060604051808303818588803b158015611d6957600080fd5b505af1158015611d7d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611da2919061254d565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0391906128d6565b60405180910390fd5b5060008385611e1b9190612bc4565b9050809150509392505050565b6000808284611e379190612b6e565b905083811015611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390612958565b60405180910390fd5b8091505092915050565b6000611e9e6002600b54610eec90919063ffffffff16565b90506000611eb782600a54611e2890919063ffffffff16565b90506000611ed2600b54600a54611e2890919063ffffffff16565b90506000611efb82611eed8588610e7190919063ffffffff16565b610eec90919063ffffffff16565b9050611f0681611a19565b611f69611f1c82876121ab90919063ffffffff16565b611f4185611f338847610e7190919063ffffffff16565b610eec90919063ffffffff16565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca1565b5050505050565b600080611f7c836121f5565b91509150611fd283600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ab90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2890919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161219c9190612a38565b60405180910390a35050505050565b60006121ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117c2565b905092915050565b60008060006122236103e861221560085487610e7190919063ffffffff16565b610eec90919063ffffffff16565b9050600061223a82866121ab90919063ffffffff16565b90508082935093505050915091565b600061225c61225784612aed565b612ac8565b9050808382526020820190508285602086028201111561227f5761227e612e8e565b5b60005b858110156122af578161229588826122b9565b845260208401935060208301925050600181019050612282565b5050509392505050565b6000813590506122c881613152565b92915050565b6000815190506122dd81613152565b92915050565b600082601f8301126122f8576122f7612e89565b5b8135612308848260208601612249565b91505092915050565b60008151905061232081613169565b92915050565b60008135905061233581613180565b92915050565b60008151905061234a81613180565b92915050565b60006020828403121561236657612365612e98565b5b6000612374848285016122b9565b91505092915050565b60006020828403121561239357612392612e98565b5b60006123a1848285016122ce565b91505092915050565b600080604083850312156123c1576123c0612e98565b5b60006123cf858286016122b9565b92505060206123e0858286016122b9565b9150509250929050565b60008060006060848603121561240357612402612e98565b5b6000612411868287016122b9565b9350506020612422868287016122b9565b925050604061243386828701612326565b9150509250925092565b6000806040838503121561245457612453612e98565b5b6000612462858286016122b9565b925050602061247385828601612326565b9150509250929050565b60006020828403121561249357612492612e98565b5b600082013567ffffffffffffffff8111156124b1576124b0612e93565b5b6124bd848285016122e3565b91505092915050565b6000602082840312156124dc576124db612e98565b5b60006124ea84828501612311565b91505092915050565b60006020828403121561250957612508612e98565b5b600061251784828501612326565b91505092915050565b60006020828403121561253657612535612e98565b5b60006125448482850161233b565b91505092915050565b60008060006060848603121561256657612565612e98565b5b60006125748682870161233b565b93505060206125858682870161233b565b92505060406125968682870161233b565b9150509250925092565b60006125ac83836125c7565b60208301905092915050565b6125c181612cd8565b82525050565b6125d081612c83565b82525050565b6125df81612c83565b82525050565b60006125f082612b29565b6125fa8185612b4c565b935061260583612b19565b8060005b8381101561263657815161261d88826125a0565b975061262883612b3f565b925050600181019050612609565b5085935050505092915050565b61264c81612c95565b82525050565b61265b81612cea565b82525050565b600061266c82612b34565b6126768185612b5d565b9350612686818560208601612d20565b61268f81612e9d565b840191505092915050565b60006126a7602883612b5d565b91506126b282612eae565b604082019050919050565b60006126ca602383612b5d565b91506126d582612efd565b604082019050919050565b60006126ed602283612b5d565b91506126f882612f4c565b604082019050919050565b6000612710601b83612b5d565b915061271b82612f9b565b602082019050919050565b6000612733602183612b5d565b915061273e82612fc4565b604082019050919050565b6000612756602083612b5d565b915061276182613013565b602082019050919050565b6000612779602983612b5d565b91506127848261303c565b604082019050919050565b600061279c602583612b5d565b91506127a78261308b565b604082019050919050565b60006127bf602483612b5d565b91506127ca826130da565b604082019050919050565b60006127e2601783612b5d565b91506127ed82613129565b602082019050919050565b61280181612cc1565b82525050565b61281081612ccb565b82525050565b600060208201905061282b60008301846125d6565b92915050565b600060408201905061284660008301856125b8565b61285360208301846127f8565b9392505050565b600060c08201905061286f60008301896125d6565b61287c60208301886127f8565b6128896040830187612652565b6128966060830186612652565b6128a360808301856125d6565b6128b060a08301846127f8565b979650505050505050565b60006020820190506128d06000830184612643565b92915050565b600060208201905081810360008301526128f08184612661565b905092915050565b600060208201905081810360008301526129118161269a565b9050919050565b60006020820190508181036000830152612931816126bd565b9050919050565b60006020820190508181036000830152612951816126e0565b9050919050565b6000602082019050818103600083015261297181612703565b9050919050565b6000602082019050818103600083015261299181612726565b9050919050565b600060208201905081810360008301526129b181612749565b9050919050565b600060208201905081810360008301526129d18161276c565b9050919050565b600060208201905081810360008301526129f18161278f565b9050919050565b60006020820190508181036000830152612a11816127b2565b9050919050565b60006020820190508181036000830152612a31816127d5565b9050919050565b6000602082019050612a4d60008301846127f8565b92915050565b600060a082019050612a6860008301886127f8565b612a756020830187612652565b8181036040830152612a8781866125e5565b9050612a9660608301856125d6565b612aa360808301846127f8565b9695505050505050565b6000602082019050612ac26000830184612807565b92915050565b6000612ad2612ae3565b9050612ade8282612d53565b919050565b6000604051905090565b600067ffffffffffffffff821115612b0857612b07612e5a565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612b7982612cc1565b9150612b8483612cc1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb957612bb8612dcd565b5b828201905092915050565b6000612bcf82612cc1565b9150612bda83612cc1565b925082612bea57612be9612dfc565b5b828204905092915050565b6000612c0082612cc1565b9150612c0b83612cc1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4457612c43612dcd565b5b828202905092915050565b6000612c5a82612cc1565b9150612c6583612cc1565b925082821015612c7857612c77612dcd565b5b828203905092915050565b6000612c8e82612ca1565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ce382612cfc565b9050919050565b6000612cf582612cc1565b9050919050565b6000612d0782612d0e565b9050919050565b6000612d1982612ca1565b9050919050565b60005b83811015612d3e578082015181840152602081019050612d23565b83811115612d4d576000848401525b50505050565b612d5c82612e9d565b810181811067ffffffffffffffff82111715612d7b57612d7a612e5a565b5b80604052505050565b6000612d8f82612cc1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dc257612dc1612dcd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61315b81612c83565b811461316657600080fd5b50565b61317281612c95565b811461317d57600080fd5b50565b61318981612cc1565b811461319457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d9dec3e313837fed0633baefc81932f89305eb97caace8ba906dfe10056e58964736f6c63430008070033

Deployed Bytecode Sourcemap

3548:9376:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6032:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6863:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12665:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6309:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7032:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11445:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6218:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7358:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12218:194;;;;;;;;;;;;;:::i;:::-;;6412:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2627:148;;;;;;;;;;;;;:::i;:::-;;2413:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6123:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6537:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11269:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12011:195;;;;;;;;;;;;;:::i;:::-;;10963:294;;;;;;;;;;;;;:::i;:::-;;6712:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6032:83;6069:13;6102:5;;;;;;;;;;;;;;;;;6095:12;;6032:83;:::o;6863:161::-;6938:4;6955:39;6964:12;:10;:12::i;:::-;6978:7;6987:6;6955:8;:39::i;:::-;7012:4;7005:11;;6863:161;;;;:::o;12665:256::-;12754:15;;;;;;;;;;;12738:31;;:12;:10;:12::i;:::-;:31;;;12730:40;;;;;;12781:20;12811:12;12781:43;;12835:13;:22;;;12858:15;;;;;;;;;;;12874:13;:23;;;12906:4;12874:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12835:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12719:202;12665:256;:::o;6309:95::-;6362:7;4003:17;6382:14;;6309:95;:::o;7032:313::-;7130:4;7147:36;7157:6;7165:9;7176:6;7147:9;:36::i;:::-;7194:121;7203:6;7211:12;:10;:12::i;:::-;7225:89;7263:6;7225:89;;;;;;;;;;;;;;;;;:11;:19;7237:6;7225:19;;;;;;;;;;;;;;;:33;7245:12;:10;:12::i;:::-;7225:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7194:8;:121::i;:::-;7333:4;7326:11;;7032:313;;;;;:::o;11445:88::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11520:5:::1;11505:4;:12;11510:6;11505:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11445:88:::0;:::o;6218:83::-;6259:5;4392:1;6277:16;;6218:83;:::o;7358:142::-;7444:15;;;;;;;;;;;7428:31;;:12;:10;:12::i;:::-;:31;;;7420:40;;;;;;7484:6;7471:10;:19;;;;7358:142;:::o;12218:194::-;12284:15;;;;;;;;;;;12268:31;;:12;:10;:12::i;:::-;:31;;;12260:40;;;;;;12311:26;12340:21;12311:50;;12372:32;12385:18;12372:12;:32::i;:::-;12249:163;12218:194::o;6412:117::-;6478:7;6505;:16;6513:7;6505:16;;;;;;;;;;;;;;;;6498:23;;6412:117;;;:::o;2627:148::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2734:1:::1;2697:40;;2718:6;::::0;::::1;;;;;;;;2697:40;;;;;;;;;;;;2765:1;2748:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2627:148::o:0;2413:79::-;2451:7;2478:6;;;;;;;;;;;2471:13;;2413:79;:::o;6123:87::-;6162:13;6195:7;;;;;;;;;;;;;;;;;6188:14;;6123:87;:::o;6537:167::-;6615:4;6632:42;6642:12;:10;:12::i;:::-;6656:9;6667:6;6632:9;:42::i;:::-;6692:4;6685:11;;6537:167;;;;:::o;11269:164::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11343:6:::1;11338:88;11359:5;:12;11355:1;:16;11338:88;;;11410:4;11393;:14;11398:5;11404:1;11398:8;;;;;;;;:::i;:::-;;;;;;;;11393:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11373:3;;;;;:::i;:::-;;;;11338:88;;;;11269:164:::0;:::o;12011:195::-;12077:15;;;;;;;;;;;12061:31;;:12;:10;:12::i;:::-;:31;;;12053:40;;;;;;12104:23;12130:24;12148:4;12130:9;:24::i;:::-;12104:50;;12165:33;12182:15;12165:16;:33::i;:::-;12042:164;12011:195::o;10963:294::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11027:11:::1;;;;;;;;;;;11026:12;11018:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11076:68;11089:24;11107:4;11089:9;:24::i;:::-;11114:21;11136:7;:5;:7::i;:::-;11076:12;:68::i;:::-;11169:4;11155:11;;:18;;;;;;;;;;;;;;;;;;11198:4;11184:11;;:18;;;;;;;;;;;;;;;;;;11239:9;11220:15;:29;;;;:::i;:::-;11213:4;:36;;;;10963:294::o:0;6712:143::-;6793:7;6820:11;:18;6832:5;6820:18;;;;;;;;;;;;;;;:27;6839:7;6820:27;;;;;;;;;;;;;;;;6813:34;;6712:143;;;;:::o;1466:246::-;1524:7;1553:1;1548;:6;1544:47;;;1578:1;1571:8;;;;1544:47;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1466:246;;;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;131:98::-;184:7;211:10;204:17;;131:98;:::o;7513:335::-;7623:1;7606:19;;:5;:19;;;;7598:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7704:1;7685:21;;:7;:21;;;;7677:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7786:6;7756:11;:18;7768:5;7756:18;;;;;;;;;;;;;;;:27;7775:7;7756:27;;;;;;;;;;;;;;;:36;;;;7824:7;7808:32;;7817:5;7808:32;;;7833:6;7808:32;;;;;;:::i;:::-;;;;;;;;7513:335;;;:::o;7856:1643::-;7960:1;7944:18;;:4;:18;;;;7936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8037:1;8023:16;;:2;:16;;;;8015:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8107:1;8098:6;:10;8090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8174:16;8183:6;;8174:4;;:8;;:16;;;;:::i;:::-;8167:4;:23;;;;8213:7;:5;:7::i;:::-;8205:15;;:4;:15;;;;:32;;;;;8230:7;:5;:7::i;:::-;8224:13;;:2;:13;;;;8205:32;8201:1094;;;8263:4;:10;8268:4;8263:10;;;;;;;;;;;;;;;;;;;;;;;;;8262:11;:24;;;;;8278:4;:8;8283:2;8278:8;;;;;;;;;;;;;;;;;;;;;;;;;8277:9;8262:24;8254:33;;;;;;8314:13;;;;;;;;;;;8306:21;;:4;:21;;;:55;;;;;8345:15;;;;;;;;;;;8331:30;;:2;:30;;;;8306:55;:83;;;;;8367:18;:22;8386:2;8367:22;;;;;;;;;;;;;;;;;;;;;;;;;8365:24;8306:83;:111;;;;;8412:4;;8394:15;:22;8306:111;8302:333;;;8484:12;;8474:6;:22;;8466:31;;;;;;8539:15;8524:8;:12;8533:2;8524:12;;;;;;;;;;;;;;;;:30;8516:39;;;;;;8608:10;8589:15;:30;;;;:::i;:::-;8574:8;:12;8583:2;8574:12;;;;;;;;;;;;;;;:45;;;;8302:333;8682:6;;;;;;;;;;;8681:7;:32;;;;;8700:13;;;;;;;;;;;8692:21;;:4;:21;;;;8681:32;:47;;;;;8717:11;;;;;;;;;;;8681:47;:76;;;;;8733:18;:24;8752:4;8733:24;;;;;;;;;;;;;;;;;;;;;;;;;8732:25;8681:76;8677:607;;;8804:4;;8786:15;:22;8778:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8871:28;8902:24;8920:4;8902:9;:24::i;:::-;8871:55;;8971:10;;8948:20;:33;8945:324;;;9005:36;9020:20;9005:14;:36::i;:::-;9064:26;9093:21;9064:50;;9161:1;9140:18;:22;9137:113;;;9191:35;9204:21;9191:12;:35::i;:::-;9137:113;8982:287;8945:324;8759:525;8677:607;8201:1094;9315:13;;;;;;;;;;;9309:19;;:2;:19;;;:55;;;;;9348:15;;;;;;;;;;;9332:32;;:4;:32;;;;9309:55;:85;;;;;9370:18;:24;9389:4;9370:24;;;;;;;;;;;;;;;;;;;;;;;;;9368:26;9309:85;9305:141;;;9418:16;9427:6;;9418:4;;:8;;:16;;;;:::i;:::-;9411:4;:23;;;;9305:141;9458:33;9476:4;9481:2;9484:6;9458:17;:33::i;:::-;7856:1643;;;:::o;1268:190::-;1354:7;1387:1;1382;:6;;1390:12;1374:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1414:9;1430:1;1426;:5;;;;:::i;:::-;1414:17;;1449:1;1442:8;;;1268:190;;;;;:::o;10701:250::-;10758:15;;;;;;;;;;;:24;;:39;10783:13;10794:1;10783:6;:10;;:13;;;;:::i;:::-;10758:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10808:14;;;;;;;;;;;:23;;:38;10832:13;10843:1;10832:6;:10;;:13;;;;:::i;:::-;10808:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10857:17;;;;;;;;;;;:26;;:41;10884:13;10895:1;10884:6;:10;;:13;;;;:::i;:::-;10857:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10909:10;;;;;;;;;;;:19;;:34;10929:13;10940:1;10929:6;:10;;:13;;;;:::i;:::-;10909:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10701:250;:::o;9507:483::-;4810:4;4801:6;;:13;;;;;;;;;;;;;;;;;;9585:21:::1;9623:1;9609:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9585:40;;9654:4;9636;9641:1;9636:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9680:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9670:4;9675:1;9670:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9713:62;9730:4;9745:15;;;;;;;;;;;9763:11;9713:8;:62::i;:::-;9786:15;;;;;;;;;;;:66;;;9867:11;9893:1;9909:4;9936;9956:15;9786:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9574:416;4846:5:::0;4837:6;;:14;;;;;;;;;;;;;;;;;;9507:483;:::o;10401:288::-;4810:4;4801:6;;:13;;;;;;;;;;;;;;;;;;10507:60:::1;10524:4;10538:15;;;;;;;;;;;10555:11;10507:8;:60::i;:::-;10578:15;;;;;;;;;;;:31;;;10617:9;10636:4;10642:11;10654:1;10656::::0;10658:6:::1;10665:15;10578:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4846:5:::0;4837:6;;:14;;;;;;;;;;;;;;;;;;10401:288;;;:::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;937:179::-;995:7;1015:9;1031:1;1027;:5;;;;:::i;:::-;1015:17;;1056:1;1051;:6;;1043:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1107:1;1100:8;;;937:179;;;;:::o;9998:389::-;10062:12;10077:13;10088:1;10077:6;;:10;;:13;;;;:::i;:::-;10062:28;;10101:12;10116:14;10125:4;10116;;:8;;:14;;;;:::i;:::-;10101:29;;10141:11;10155:16;10164:6;;10155:4;;:8;;:16;;;;:::i;:::-;10141:30;;10182:17;10202:30;10228:3;10202:21;10218:4;10202:11;:15;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;10182:50;;10243:27;10260:9;10243:16;:27::i;:::-;10281:98;10294:26;10310:9;10294:11;:15;;:26;;;;:::i;:::-;10321:41;10357:4;10321:31;10347:4;10321:21;:25;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;10363:15;;;;;;;;;;;10281:12;:98::i;:::-;10051:336;;;;9998:389;:::o;11541:421::-;11640:22;11663:12;11679:20;11691:7;11679:11;:20::i;:::-;11639:60;;;;11728:28;11748:7;11728;:15;11736:6;11728:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11710:7;:15;11718:6;11710:15;;;;;;;;;;;;;;;:46;;;;11788:38;11811:14;11788:7;:18;11796:9;11788:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;11767:7;:18;11775:9;11767:18;;;;;;;;;;;;;;;:59;;;;11863:32;11890:4;11863:7;:22;11879:4;11863:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;11838:7;:22;11854:4;11838:22;;;;;;;;;;;;;;;:57;;;;11928:9;11911:43;;11920:6;11911:43;;;11939:14;11911:43;;;;;;:::i;:::-;;;;;;;;11628:334;;11541:421;;;:::o;1124:136::-;1182:7;1209:43;1213:1;1216;1209:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1202:50;;1124:136;;;;:::o;12423:234::-;12483:7;12492;12512:12;12527:27;12549:4;12527:17;12539:4;;12527:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12512:42;;12565:23;12591:17;12603:4;12591:7;:11;;:17;;;;:::i;:::-;12565:43;;12627:15;12644:4;12619:30;;;;;;12423:234;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:351::-;5454:6;5503:2;5491:9;5482:7;5478:23;5474:32;5471:119;;;5509:79;;:::i;:::-;5471:119;5629:1;5654:64;5710:7;5701:6;5690:9;5686:22;5654:64;:::i;:::-;5644:74;;5600:128;5384:351;;;;:::o;5741:663::-;5829:6;5837;5845;5894:2;5882:9;5873:7;5869:23;5865:32;5862:119;;;5900:79;;:::i;:::-;5862:119;6020:1;6045:64;6101:7;6092:6;6081:9;6077:22;6045:64;:::i;:::-;6035:74;;5991:128;6158:2;6184:64;6240:7;6231:6;6220:9;6216:22;6184:64;:::i;:::-;6174:74;;6129:129;6297:2;6323:64;6379:7;6370:6;6359:9;6355:22;6323:64;:::i;:::-;6313:74;;6268:129;5741:663;;;;;:::o;6410:179::-;6479:10;6500:46;6542:3;6534:6;6500:46;:::i;:::-;6578:4;6573:3;6569:14;6555:28;;6410:179;;;;:::o;6595:147::-;6690:45;6729:5;6690:45;:::i;:::-;6685:3;6678:58;6595:147;;:::o;6748:108::-;6825:24;6843:5;6825:24;:::i;:::-;6820:3;6813:37;6748:108;;:::o;6862:118::-;6949:24;6967:5;6949:24;:::i;:::-;6944:3;6937:37;6862:118;;:::o;7016:732::-;7135:3;7164:54;7212:5;7164:54;:::i;:::-;7234:86;7313:6;7308:3;7234:86;:::i;:::-;7227:93;;7344:56;7394:5;7344:56;:::i;:::-;7423:7;7454:1;7439:284;7464:6;7461:1;7458:13;7439:284;;;7540:6;7534:13;7567:63;7626:3;7611:13;7567:63;:::i;:::-;7560:70;;7653:60;7706:6;7653:60;:::i;:::-;7643:70;;7499:224;7486:1;7483;7479:9;7474:14;;7439:284;;;7443:14;7739:3;7732:10;;7140:608;;;7016:732;;;;:::o;7754:109::-;7835:21;7850:5;7835:21;:::i;:::-;7830:3;7823:34;7754:109;;:::o;7869:147::-;7964:45;8003:5;7964:45;:::i;:::-;7959:3;7952:58;7869:147;;:::o;8022:364::-;8110:3;8138:39;8171:5;8138:39;:::i;:::-;8193:71;8257:6;8252:3;8193:71;:::i;:::-;8186:78;;8273:52;8318:6;8313:3;8306:4;8299:5;8295:16;8273:52;:::i;:::-;8350:29;8372:6;8350:29;:::i;:::-;8345:3;8341:39;8334:46;;8114:272;8022:364;;;;:::o;8392:366::-;8534:3;8555:67;8619:2;8614:3;8555:67;:::i;:::-;8548:74;;8631:93;8720:3;8631:93;:::i;:::-;8749:2;8744:3;8740:12;8733:19;;8392:366;;;:::o;8764:::-;8906:3;8927:67;8991:2;8986:3;8927:67;:::i;:::-;8920:74;;9003:93;9092:3;9003:93;:::i;:::-;9121:2;9116:3;9112:12;9105:19;;8764:366;;;:::o;9136:::-;9278:3;9299:67;9363:2;9358:3;9299:67;:::i;:::-;9292:74;;9375:93;9464:3;9375:93;:::i;:::-;9493:2;9488:3;9484:12;9477:19;;9136:366;;;:::o;9508:::-;9650:3;9671:67;9735:2;9730:3;9671:67;:::i;:::-;9664:74;;9747:93;9836:3;9747:93;:::i;:::-;9865:2;9860:3;9856:12;9849:19;;9508:366;;;:::o;9880:::-;10022:3;10043:67;10107:2;10102:3;10043:67;:::i;:::-;10036:74;;10119:93;10208:3;10119:93;:::i;:::-;10237:2;10232:3;10228:12;10221:19;;9880:366;;;:::o;10252:::-;10394:3;10415:67;10479:2;10474:3;10415:67;:::i;:::-;10408:74;;10491:93;10580:3;10491:93;:::i;:::-;10609:2;10604:3;10600:12;10593:19;;10252:366;;;:::o;10624:::-;10766:3;10787:67;10851:2;10846:3;10787:67;:::i;:::-;10780:74;;10863:93;10952:3;10863:93;:::i;:::-;10981:2;10976:3;10972:12;10965:19;;10624:366;;;:::o;10996:::-;11138:3;11159:67;11223:2;11218:3;11159:67;:::i;:::-;11152:74;;11235:93;11324:3;11235:93;:::i;:::-;11353:2;11348:3;11344:12;11337:19;;10996:366;;;:::o;11368:::-;11510:3;11531:67;11595:2;11590:3;11531:67;:::i;:::-;11524:74;;11607:93;11696:3;11607:93;:::i;:::-;11725:2;11720:3;11716:12;11709:19;;11368:366;;;:::o;11740:::-;11882:3;11903:67;11967:2;11962:3;11903:67;:::i;:::-;11896:74;;11979:93;12068:3;11979:93;:::i;:::-;12097:2;12092:3;12088:12;12081:19;;11740:366;;;:::o;12112:118::-;12199:24;12217:5;12199:24;:::i;:::-;12194:3;12187:37;12112:118;;:::o;12236:112::-;12319:22;12335:5;12319:22;:::i;:::-;12314:3;12307:35;12236:112;;:::o;12354:222::-;12447:4;12485:2;12474:9;12470:18;12462:26;;12498:71;12566:1;12555:9;12551:17;12542:6;12498:71;:::i;:::-;12354:222;;;;:::o;12582:348::-;12711:4;12749:2;12738:9;12734:18;12726:26;;12762:79;12838:1;12827:9;12823:17;12814:6;12762:79;:::i;:::-;12851:72;12919:2;12908:9;12904:18;12895:6;12851:72;:::i;:::-;12582:348;;;;;:::o;12936:807::-;13185:4;13223:3;13212:9;13208:19;13200:27;;13237:71;13305:1;13294:9;13290:17;13281:6;13237:71;:::i;:::-;13318:72;13386:2;13375:9;13371:18;13362:6;13318:72;:::i;:::-;13400:80;13476:2;13465:9;13461:18;13452:6;13400:80;:::i;:::-;13490;13566:2;13555:9;13551:18;13542:6;13490:80;:::i;:::-;13580:73;13648:3;13637:9;13633:19;13624:6;13580:73;:::i;:::-;13663;13731:3;13720:9;13716:19;13707:6;13663:73;:::i;:::-;12936:807;;;;;;;;;:::o;13749:210::-;13836:4;13874:2;13863:9;13859:18;13851:26;;13887:65;13949:1;13938:9;13934:17;13925:6;13887:65;:::i;:::-;13749:210;;;;:::o;13965:313::-;14078:4;14116:2;14105:9;14101:18;14093:26;;14165:9;14159:4;14155:20;14151:1;14140:9;14136:17;14129:47;14193:78;14266:4;14257:6;14193:78;:::i;:::-;14185:86;;13965:313;;;;:::o;14284:419::-;14450:4;14488:2;14477:9;14473:18;14465:26;;14537:9;14531:4;14527:20;14523:1;14512:9;14508:17;14501:47;14565:131;14691:4;14565:131;:::i;:::-;14557:139;;14284:419;;;:::o;14709:::-;14875:4;14913:2;14902:9;14898:18;14890:26;;14962:9;14956:4;14952:20;14948:1;14937:9;14933:17;14926:47;14990:131;15116:4;14990:131;:::i;:::-;14982:139;;14709:419;;;:::o;15134:::-;15300:4;15338:2;15327:9;15323:18;15315:26;;15387:9;15381:4;15377:20;15373:1;15362:9;15358:17;15351:47;15415:131;15541:4;15415:131;:::i;:::-;15407:139;;15134:419;;;:::o;15559:::-;15725:4;15763:2;15752:9;15748:18;15740:26;;15812:9;15806:4;15802:20;15798:1;15787:9;15783:17;15776:47;15840:131;15966:4;15840:131;:::i;:::-;15832:139;;15559:419;;;:::o;15984:::-;16150:4;16188:2;16177:9;16173:18;16165:26;;16237:9;16231:4;16227:20;16223:1;16212:9;16208:17;16201:47;16265:131;16391:4;16265:131;:::i;:::-;16257:139;;15984:419;;;:::o;16409:::-;16575:4;16613:2;16602:9;16598:18;16590:26;;16662:9;16656:4;16652:20;16648:1;16637:9;16633:17;16626:47;16690:131;16816:4;16690:131;:::i;:::-;16682:139;;16409:419;;;:::o;16834:::-;17000:4;17038:2;17027:9;17023:18;17015:26;;17087:9;17081:4;17077:20;17073:1;17062:9;17058:17;17051:47;17115:131;17241:4;17115:131;:::i;:::-;17107:139;;16834:419;;;:::o;17259:::-;17425:4;17463:2;17452:9;17448:18;17440:26;;17512:9;17506:4;17502:20;17498:1;17487:9;17483:17;17476:47;17540:131;17666:4;17540:131;:::i;:::-;17532:139;;17259:419;;;:::o;17684:::-;17850:4;17888:2;17877:9;17873:18;17865:26;;17937:9;17931:4;17927:20;17923:1;17912:9;17908:17;17901:47;17965:131;18091:4;17965:131;:::i;:::-;17957:139;;17684:419;;;:::o;18109:::-;18275:4;18313:2;18302:9;18298:18;18290:26;;18362:9;18356:4;18352:20;18348:1;18337:9;18333:17;18326:47;18390:131;18516:4;18390:131;:::i;:::-;18382:139;;18109:419;;;:::o;18534:222::-;18627:4;18665:2;18654:9;18650:18;18642:26;;18678:71;18746:1;18735:9;18731:17;18722:6;18678:71;:::i;:::-;18534:222;;;;:::o;18762:831::-;19025:4;19063:3;19052:9;19048:19;19040:27;;19077:71;19145:1;19134:9;19130:17;19121:6;19077:71;:::i;:::-;19158:80;19234:2;19223:9;19219:18;19210:6;19158:80;:::i;:::-;19285:9;19279:4;19275:20;19270:2;19259:9;19255:18;19248:48;19313:108;19416:4;19407:6;19313:108;:::i;:::-;19305:116;;19431:72;19499:2;19488:9;19484:18;19475:6;19431:72;:::i;:::-;19513:73;19581:3;19570:9;19566:19;19557:6;19513:73;:::i;:::-;18762:831;;;;;;;;:::o;19599:214::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19739:67;19803:1;19792:9;19788:17;19779:6;19739:67;:::i;:::-;19599:214;;;;:::o;19819:129::-;19853:6;19880:20;;:::i;:::-;19870:30;;19909:33;19937:4;19929:6;19909:33;:::i;:::-;19819:129;;;:::o;19954:75::-;19987:6;20020:2;20014:9;20004:19;;19954:75;:::o;20035:311::-;20112:4;20202:18;20194:6;20191:30;20188:56;;;20224:18;;:::i;:::-;20188:56;20274:4;20266:6;20262:17;20254:25;;20334:4;20328;20324:15;20316:23;;20035:311;;;:::o;20352:132::-;20419:4;20442:3;20434:11;;20472:4;20467:3;20463:14;20455:22;;20352:132;;;:::o;20490:114::-;20557:6;20591:5;20585:12;20575:22;;20490:114;;;:::o;20610:99::-;20662:6;20696:5;20690:12;20680:22;;20610:99;;;:::o;20715:113::-;20785:4;20817;20812:3;20808:14;20800:22;;20715:113;;;:::o;20834:184::-;20933:11;20967:6;20962:3;20955:19;21007:4;21002:3;20998:14;20983:29;;20834:184;;;;:::o;21024:169::-;21108:11;21142:6;21137:3;21130:19;21182:4;21177:3;21173:14;21158:29;;21024:169;;;;:::o;21199:305::-;21239:3;21258:20;21276:1;21258:20;:::i;:::-;21253:25;;21292:20;21310:1;21292:20;:::i;:::-;21287:25;;21446:1;21378:66;21374:74;21371:1;21368:81;21365:107;;;21452:18;;:::i;:::-;21365:107;21496:1;21493;21489:9;21482:16;;21199:305;;;;:::o;21510:185::-;21550:1;21567:20;21585:1;21567:20;:::i;:::-;21562:25;;21601:20;21619:1;21601:20;:::i;:::-;21596:25;;21640:1;21630:35;;21645:18;;:::i;:::-;21630:35;21687:1;21684;21680:9;21675:14;;21510:185;;;;:::o;21701:348::-;21741:7;21764:20;21782:1;21764:20;:::i;:::-;21759:25;;21798:20;21816:1;21798:20;:::i;:::-;21793:25;;21986:1;21918:66;21914:74;21911:1;21908:81;21903:1;21896:9;21889:17;21885:105;21882:131;;;21993:18;;:::i;:::-;21882:131;22041:1;22038;22034:9;22023:20;;21701:348;;;;:::o;22055:191::-;22095:4;22115:20;22133:1;22115:20;:::i;:::-;22110:25;;22149:20;22167:1;22149:20;:::i;:::-;22144:25;;22188:1;22185;22182:8;22179:34;;;22193:18;;:::i;:::-;22179:34;22238:1;22235;22231:9;22223:17;;22055:191;;;;:::o;22252:96::-;22289:7;22318:24;22336:5;22318:24;:::i;:::-;22307:35;;22252:96;;;:::o;22354:90::-;22388:7;22431:5;22424:13;22417:21;22406:32;;22354:90;;;:::o;22450:126::-;22487:7;22527:42;22520:5;22516:54;22505:65;;22450:126;;;:::o;22582:77::-;22619:7;22648:5;22637:16;;22582:77;;;:::o;22665:86::-;22700:7;22740:4;22733:5;22729:16;22718:27;;22665:86;;;:::o;22757:134::-;22815:9;22848:37;22879:5;22848:37;:::i;:::-;22835:50;;22757:134;;;:::o;22897:121::-;22955:9;22988:24;23006:5;22988:24;:::i;:::-;22975:37;;22897:121;;;:::o;23024:126::-;23074:9;23107:37;23138:5;23107:37;:::i;:::-;23094:50;;23024:126;;;:::o;23156:113::-;23206:9;23239:24;23257:5;23239:24;:::i;:::-;23226:37;;23156:113;;;:::o;23275:307::-;23343:1;23353:113;23367:6;23364:1;23361:13;23353:113;;;23452:1;23447:3;23443:11;23437:18;23433:1;23428:3;23424:11;23417:39;23389:2;23386:1;23382:10;23377:15;;23353:113;;;23484:6;23481:1;23478:13;23475:101;;;23564:1;23555:6;23550:3;23546:16;23539:27;23475:101;23324:258;23275:307;;;:::o;23588:281::-;23671:27;23693:4;23671:27;:::i;:::-;23663:6;23659:40;23801:6;23789:10;23786:22;23765:18;23753:10;23750:34;23747:62;23744:88;;;23812:18;;:::i;:::-;23744:88;23852:10;23848:2;23841:22;23631:238;23588:281;;:::o;23875:233::-;23914:3;23937:24;23955:5;23937:24;:::i;:::-;23928:33;;23983:66;23976:5;23973:77;23970:103;;;24053:18;;:::i;:::-;23970:103;24100:1;24093:5;24089:13;24082:20;;23875:233;;;:::o;24114:180::-;24162:77;24159:1;24152:88;24259:4;24256:1;24249:15;24283:4;24280:1;24273:15;24300:180;24348:77;24345:1;24338:88;24445:4;24442:1;24435:15;24469:4;24466:1;24459:15;24486:180;24534:77;24531:1;24524:88;24631:4;24628:1;24621:15;24655:4;24652:1;24645:15;24672:180;24720:77;24717:1;24710:88;24817:4;24814:1;24807:15;24841:4;24838:1;24831:15;24858:117;24967:1;24964;24957:12;24981:117;25090:1;25087;25080:12;25104:117;25213:1;25210;25203:12;25227:117;25336:1;25333;25326:12;25350:102;25391:6;25442:2;25438:7;25433:2;25426:5;25422:14;25418:28;25408:38;;25350:102;;;:::o;25458:227::-;25598:34;25594:1;25586:6;25582:14;25575:58;25667:10;25662:2;25654:6;25650:15;25643:35;25458:227;:::o;25691:222::-;25831:34;25827:1;25819:6;25815:14;25808:58;25900:5;25895:2;25887:6;25883:15;25876:30;25691:222;:::o;25919:221::-;26059:34;26055:1;26047:6;26043:14;26036:58;26128:4;26123:2;26115:6;26111:15;26104:29;25919:221;:::o;26146:177::-;26286:29;26282:1;26274:6;26270:14;26263:53;26146:177;:::o;26329:220::-;26469:34;26465:1;26457:6;26453:14;26446:58;26538:3;26533:2;26525:6;26521:15;26514:28;26329:220;:::o;26555:182::-;26695:34;26691:1;26683:6;26679:14;26672:58;26555:182;:::o;26743:228::-;26883:34;26879:1;26871:6;26867:14;26860:58;26952:11;26947:2;26939:6;26935:15;26928:36;26743:228;:::o;26977:224::-;27117:34;27113:1;27105:6;27101:14;27094:58;27186:7;27181:2;27173:6;27169:15;27162:32;26977:224;:::o;27207:223::-;27347:34;27343:1;27335:6;27331:14;27324:58;27416:6;27411:2;27403:6;27399:15;27392:31;27207:223;:::o;27436:173::-;27576:25;27572:1;27564:6;27560:14;27553:49;27436:173;:::o;27615:122::-;27688:24;27706:5;27688:24;:::i;:::-;27681:5;27678:35;27668:63;;27727:1;27724;27717:12;27668:63;27615:122;:::o;27743:116::-;27813:21;27828:5;27813:21;:::i;:::-;27806:5;27803:32;27793:60;;27849:1;27846;27839:12;27793:60;27743:116;:::o;27865:122::-;27938:24;27956:5;27938:24;:::i;:::-;27931:5;27928:35;27918:63;;27977:1;27974;27967:12;27918:63;27865:122;:::o

Swarm Source

ipfs://5d9dec3e313837fed0633baefc81932f89305eb97caace8ba906dfe10056e589

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.