ETH Price: $2,569.77 (+0.72%)
Gas: 4.85 Gwei

Contract

0x55EC156bF8Efe8B662C5d3dd974A46ea3D46b9Ea
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer110995112020-10-21 12:27:511431 days ago1603283271IN
0x55EC156b...a3D46b9Ea
0 ETH0.0021207839.00000145
Transfer110854382020-10-19 8:41:181433 days ago1603096878IN
0x55EC156b...a3D46b9Ea
0 ETH0.0014135426.00000145
Transfer109821962020-10-03 9:32:281449 days ago1601717548IN
0x55EC156b...a3D46b9Ea
0 ETH0.002066438.00000145
Transfer102643442020-06-14 14:17:301560 days ago1592144250IN
0x55EC156b...a3D46b9Ea
0 ETH0.0009057123.00000145
Transfer100445772020-05-11 11:10:281594 days ago1589195428IN
0x55EC156b...a3D46b9Ea
0 ETH0.0007873420
Transfer100445712020-05-11 11:09:281594 days ago1589195368IN
0x55EC156b...a3D46b9Ea
0 ETH0.000826721
Transfer100445542020-05-11 11:06:281594 days ago1589195188IN
0x55EC156b...a3D46b9Ea
0 ETH0.0007873420
Transfer100445492020-05-11 11:05:191594 days ago1589195119IN
0x55EC156b...a3D46b9Ea
0 ETH0.0008326121.15000123
Transfer100445352020-05-11 11:01:331594 days ago1589194893IN
0x55EC156b...a3D46b9Ea
0 ETH0.0010873420
Transfer100443312020-05-11 10:14:571594 days ago1589192097IN
0x55EC156b...a3D46b9Ea
0 ETH0.0006928517.6
Transfer100443182020-05-11 10:10:561594 days ago1589191856IN
0x55EC156b...a3D46b9Ea
0 ETH0.0006928517.6
Transfer100443112020-05-11 10:08:201594 days ago1589191700IN
0x55EC156b...a3D46b9Ea
0 ETH0.0009572817.60000123
Transfer100442732020-05-11 10:02:231594 days ago1589191343IN
0x55EC156b...a3D46b9Ea
0 ETH0.0009566417.6
Transfer99536212020-04-27 9:07:301608 days ago1587978450IN
0x55EC156b...a3D46b9Ea
0 ETH0.0005437910
Transfer98954682020-04-18 8:44:361617 days ago1587199476IN
0x55EC156b...a3D46b9Ea
0 ETH0.0005437910
Transfer97449892020-03-26 5:16:471640 days ago1585199807IN
0x55EC156b...a3D46b9Ea
0 ETH0.0005436710
Transfer93376202020-01-23 11:22:171703 days ago1579778537IN
0x55EC156b...a3D46b9Ea
0 ETH0.000054371
Transfer93370372020-01-23 9:11:491703 days ago1579770709IN
0x55EC156b...a3D46b9Ea
0 ETH0.000326276
Transfer91854862019-12-30 10:41:411727 days ago1577702501IN
0x55EC156b...a3D46b9Ea
0 ETH0.0005654110.4
Transfer88188992019-10-27 1:58:301791 days ago1572141510IN
0x55EC156b...a3D46b9Ea
0 ETH0.0003804310
Transfer86121172019-09-24 13:48:371824 days ago1569332917IN
0x55EC156b...a3D46b9Ea
0 ETH0.0013774526
Transfer78022932019-05-21 8:54:581950 days ago1558428898IN
0x55EC156b...a3D46b9Ea
0 ETH0.000158933
0x6080604078019112019-05-21 7:27:511950 days ago1558423671IN
 Create: Formosa
0 ETH0.01181484

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Formosa

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-21
*/

pragma solidity ^0.4.24;

contract Formosa {   
    string public constant name         = "Formosa";
    string public constant symbol       = "FMA";
    uint public constant decimals       = 18;
    
    uint256 fmaEthRate                  = 10 ** decimals;
    uint256 fmaSupply                   = 100000000;
    uint256 public totalSupply          = fmaSupply * fmaEthRate;
    uint256 public freezeDuration       = 30 days;

    bool public running                 = true;  
    
    address owner;
    mapping (address => mapping (address => uint256)) allowed;
    mapping (address => bool) public whitelist;
    mapping (address =>  uint256) whitelistLimit;

    struct BalanceInfo {
        uint256 balance;
        uint256[] freezeAmount;
        uint256[] releaseTime;
    }
    mapping (address => BalanceInfo) balances;
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event BeginRunning();
    event PauseRunning();
    event BeginSell();
    event PauseSell();
    event Burn(address indexed burner, uint256 val);
    event Freeze(address indexed from, uint256 value);
    
    constructor () public{
        owner = msg.sender;
        balances[owner].balance = totalSupply;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    modifier onlyWhitelist() {
        require(whitelist[msg.sender] == true);
        _;
    }
    
    modifier isRunning(){
        require(running);
        _;
    }
    modifier isNotRunning(){
        require(!running);
        _;
    }

    // mitigates the ERC20 short address attack
    modifier onlyPayloadSize(uint size) {
        assert(msg.data.length >= size + 4);
        _;
    }

    function safeMul(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }

        
    function transferOwnership(address _newOwner) onlyOwner public {
        if (_newOwner !=    address(0)) {
            owner = _newOwner;
        }
    }
    
    function pause() onlyOwner isRunning    public   {
        running = false;
        emit PauseRunning();
    }
    
    function start() onlyOwner isNotRunning public   {
        running = true;
        emit BeginRunning();
    }


    function airDeliver(address _to,    uint256 _amount)  onlyOwner public {
        require(owner != _to);
        require(_amount > 0);
        require(balances[owner].balance >= _amount);
        
        // take big number as wei
        if(_amount < fmaSupply){
            _amount = _amount * fmaEthRate;
        }
        balances[owner].balance = safeSub(balances[owner].balance, _amount);
        balances[_to].balance = safeAdd(balances[_to].balance, _amount);
        emit Transfer(owner, _to, _amount);
    }
    
    
    function airDeliverMulti(address[]  _addrs, uint256 _amount) onlyOwner public {
        require(_addrs.length <=  255);
        
        for (uint8 i = 0; i < _addrs.length; i++)   {
            airDeliver(_addrs[i],   _amount);
        }
    }
    
    function airDeliverStandalone(address[] _addrs, uint256[] _amounts) onlyOwner public {
        require(_addrs.length <=  255);
        require(_addrs.length ==     _amounts.length);
        
        for (uint8 i = 0; i < _addrs.length;    i++) {
            airDeliver(_addrs[i],   _amounts[i]);
        }
    }

    function  freezeDeliver(address _to, uint _amount, uint _freezeAmount, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
        require(owner != _to);
        require(_freezeMonth > 0);
        
        uint average = _freezeAmount / _freezeMonth;
        BalanceInfo storage bi = balances[_to];
        uint[] memory fa = new uint[](_freezeMonth);
        uint[] memory rt = new uint[](_freezeMonth);

        if(_amount < fmaSupply){
            _amount = _amount * fmaEthRate;
            average = average * fmaEthRate;
            _freezeAmount = _freezeAmount * fmaEthRate;
        }
        require(balances[owner].balance > _amount);
        uint remainAmount = _freezeAmount;
        
        if(_unfreezeBeginTime == 0)
            _unfreezeBeginTime = now + freezeDuration;
        for(uint i=0;i<_freezeMonth-1;i++){
            fa[i] = average;
            rt[i] = _unfreezeBeginTime;
            _unfreezeBeginTime += freezeDuration;
            remainAmount = safeSub(remainAmount, average);
        }
        fa[i] = remainAmount;
        rt[i] = _unfreezeBeginTime;
        
        bi.balance = safeAdd(bi.balance, _amount);
        bi.freezeAmount = fa;
        bi.releaseTime = rt;
        balances[owner].balance = safeSub(balances[owner].balance, _amount);
        emit Transfer(owner, _to, _amount);
        emit Freeze(_to, _freezeAmount);
    }
    
    function  freezeDeliverMuti(address[] _addrs, uint _deliverAmount, uint _freezeAmount, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
        require(_addrs.length <=  255);
        
        for(uint i=0;i< _addrs.length;i++){
            freezeDeliver(_addrs[i], _deliverAmount, _freezeAmount, _freezeMonth, _unfreezeBeginTime);
        }
    }

    function  freezeDeliverMultiStandalone(address[] _addrs, uint[] _deliverAmounts, uint[] _freezeAmounts, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
        require(_addrs.length <=  255);
        require(_addrs.length == _deliverAmounts.length);
        require(_addrs.length == _freezeAmounts.length);
        
        for(uint i=0;i< _addrs.length;i++){
            freezeDeliver(_addrs[i], _deliverAmounts[i], _freezeAmounts[i], _freezeMonth, _unfreezeBeginTime);
        }
    }
    
    function addWhitelist(address[] _addrs) public onlyOwner {
        require(_addrs.length <=  255);

        for (uint8 i = 0; i < _addrs.length; i++) {
            if (!whitelist[_addrs[i]]){
                whitelist[_addrs[i]] = true;
            }
        }
    }

    function balanceOf(address _owner) constant public returns (uint256) {
        return balances[_owner].balance;
    }
    
    function freezeOf(address _owner) constant  public returns (uint256) {
        BalanceInfo storage bi = balances[_owner];
        uint freezeAmount = 0;
        uint t = now;
        
        for(uint i=0;i< bi.freezeAmount.length;i++){
            if(t < bi.releaseTime[i])
                freezeAmount += bi.freezeAmount[i];
        }
        return freezeAmount;
    }
    
    function transfer(address _to, uint256 _amount)  isRunning onlyPayloadSize(2 *  32) public returns (bool success) {
        require(_to != address(0));
        uint freezeAmount = freezeOf(msg.sender);
        uint256 _balance = safeSub(balances[msg.sender].balance, freezeAmount);
        require(_amount <= _balance);
        
        balances[msg.sender].balance = safeSub(balances[msg.sender].balance,_amount);
        balances[_to].balance = safeAdd(balances[_to].balance,_amount);
        emit Transfer(msg.sender, _to, _amount);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) isRunning onlyPayloadSize(3 * 32) public returns (bool   success) {
        require(_from   != address(0) && _to != address(0));
        require(_amount <= allowed[_from][msg.sender]);
        uint freezeAmount = freezeOf(_from);
        uint256 _balance = safeSub(balances[_from].balance, freezeAmount);
        require(_amount <= _balance);
        
        balances[_from].balance = safeSub(balances[_from].balance,_amount);
        allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender],_amount);
        balances[_to].balance = safeAdd(balances[_to].balance,_amount);
        emit Transfer(_from, _to, _amount);
        return true;
    }

    function approve(address _spender, uint256 _value) isRunning public returns (bool   success) {
        if (_value != 0 && allowed[msg.sender][_spender] != 0) { 
            return  false; 
        }
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function allowance(address _owner, address _spender) constant public returns (uint256) {
        return allowed[_owner][_spender];
    }
    
    function withdraw() onlyOwner public {
        address myAddress = this;
        require(myAddress.balance > 0);
        owner.transfer(myAddress.balance);
        emit Transfer(this, owner, myAddress.balance);    
    }
    
    function burn(address burner, uint256 _value) onlyOwner public {
        require(_value <= balances[msg.sender].balance);

        balances[burner].balance = safeSub(balances[burner].balance, _value);
        totalSupply = safeSub(totalSupply, _value);
        fmaSupply = totalSupply / fmaEthRate;
        emit Burn(burner, _value);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"airDeliverMulti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"airDeliver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_deliverAmount","type":"uint256"},{"name":"_freezeAmount","type":"uint256"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliverMuti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_freezeAmount","type":"uint256"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"freezeDuration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_deliverAmounts","type":"uint256[]"},{"name":"_freezeAmounts","type":"uint256[]"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliverMultiStandalone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"burner","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"airDeliverStandalone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"freezeOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"running","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"}],"name":"addWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BeginRunning","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseRunning","type":"event"},{"anonymous":false,"inputs":[],"name":"BeginSell","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"val","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Freeze","type":"event"}]

60806040526012600a0a6000556305f5e1006001556000546001540260025562278d006003556001600460006101000a81548160ff02191690831515021790555034801561004c57600080fd5b5033600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025460086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612881806101086000396000f300608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461014e578063095ea7b3146101de5780630c3e564a146102435780630ea7c8cd146102b357806318160ddd146103005780632111c0f91461032b57806323b872dd146103b9578063313ce5671461043e57806334d05b1f146104695780633ccfd60b146104d4578063440991bd146104eb578063679019ba1461051657806370a08231146106165780638456cb591461066d57806395d89b41146106845780639b19251a146107145780639dc29fac1461076f578063a9059cbb146107bc578063b885d56014610821578063be9a6555146108ca578063cd4217c1146108e1578063d85bd52614610938578063dd62ed3e14610967578063edac985b146109de578063f2fde38b14610a44575b600080fd5b34801561015a57600080fd5b50610163610a87565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a3578082015181840152602081019050610188565b50505050905090810190601f1680156101d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ea57600080fd5b50610229600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac0565b604051808215151515815260200191505060405180910390f35b34801561024f57600080fd5b506102b16004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610c6a565b005b3480156102bf57600080fd5b506102fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d20565b005b34801561030c57600080fd5b50610315611060565b6040518082815260200191505060405180910390f35b34801561033757600080fd5b506103b76004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611066565b005b3480156103c557600080fd5b50610424600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111c565b604051808215151515815260200191505060405180910390f35b34801561044a57600080fd5b50610453611556565b6040518082815260200191505060405180910390f35b34801561047557600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061155b565b005b3480156104e057600080fd5b506104e9611a29565b005b3480156104f757600080fd5b50610500611bd1565b6040518082815260200191505060405180910390f35b34801561052257600080fd5b506106146004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190505050611bd7565b005b34801561062257600080fd5b50610657600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cdb565b6040518082815260200191505060405180910390f35b34801561067957600080fd5b50610682611d27565b005b34801561069057600080fd5b50610699611de7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d95780820151818401526020810190506106be565b50505050905090810190601f1680156107065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072057600080fd5b50610755600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e20565b604051808215151515815260200191505060405180910390f35b34801561077b57600080fd5b506107ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e40565b005b3480156107c857600080fd5b50610807600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ff9565b604051808215151515815260200191505060405180910390f35b34801561082d57600080fd5b506108c86004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612268565b005b3480156108d657600080fd5b506108df612348565b005b3480156108ed57600080fd5b50610922600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612409565b6040518082815260200191505060405180910390f35b34801561094457600080fd5b5061094d6124ca565b604051808215151515815260200191505060405180910390f35b34801561097357600080fd5b506109c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124dd565b6040518082815260200191505060405180910390f35b3480156109ea57600080fd5b50610a4260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612564565b005b348015610a5057600080fd5b50610a85600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d5565b005b6040805190810160405280600781526020017f466f726d6f73610000000000000000000000000000000000000000000000000081525081565b6000600460009054906101000a900460ff161515610add57600080fd5b60008214158015610b6b57506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610b795760009050610c64565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc857600080fd5b60ff835111151515610cd957600080fd5b600090505b82518160ff161015610d1b57610d0e838260ff16815181101515610cfe57fe5b9060200190602002015183610d20565b8080600101915050610cde565b505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d7c57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610dd957600080fd5b600081111515610de857600080fd5b8060086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515610e5b57600080fd5b600154811015610e6d57600054810290505b610edb60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154826127ac565b60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610f8f600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154826127c5565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60025481565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c457600080fd5b60ff8651111515156110d557600080fd5b600090505b85518110156111145761110786828151811015156110f457fe5b906020019060200201518686868661155b565b80806001019150506110da565b505050505050565b6000806000600460009054906101000a900460ff16151561113c57600080fd5b60606004810160003690501015151561115157fe5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156111bb5750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15156111c657600080fd5b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561125157600080fd5b61125a87612409565b92506112a8600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154846127ac565b91508185111515156112b957600080fd5b611305600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127ac565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506113d1600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866127ac565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061149d600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127c5565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600193505050509392505050565b601281565b600080606080600080600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c057600080fd5b8a73ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561161d57600080fd5b60008811151561162c57600080fd5b878981151561163757fe5b049550600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450876040519080825280602002602001820160405280156116aa5781602001602082028038833980820191505090505b509350876040519080825280602002602001820160405280156116dc5781602001602082028038833980820191505090505b5092506001548a10156116ff576000548a02995060005486029550600054890298505b8960086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411151561177157600080fd5b889150600087141561178557600354420196505b600090505b600188038110156117ef578584828151811015156117a457fe5b90602001906020020181815250508683828151811015156117c157fe5b9060200190602002018181525050600354870196506117e082876127ac565b9150808060010191505061178a565b8184828151811015156117fe57fe5b906020019060200201818152505086838281518110151561181b57fe5b906020019060200201818152505061183785600001548b6127c5565b8560000181905550838560010190805190602001906118579291906127e3565b50828560020190805190602001906118709291906127e3565b506118df60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548b6127ac565b60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508a73ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a38a73ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e08a6040518082815260200191505060405180910390a25050505050505050505050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8757600080fd5b30905060008173ffffffffffffffffffffffffffffffffffffffff1631111515611ab057600080fd5b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8273ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611b2f573d6000803e3d6000fd5b50600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8373ffffffffffffffffffffffffffffffffffffffff16316040518082815260200191505060405180910390a350565b60035481565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3557600080fd5b60ff865111151515611c4657600080fd5b84518651141515611c5657600080fd5b83518651141515611c6657600080fd5b600090505b8551811015611cd357611cc68682815181101515611c8557fe5b906020019060200201518683815181101515611c9d57fe5b906020019060200201518684815181101515611cb557fe5b90602001906020020151868661155b565b8080600101915050611c6b565b505050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d8357600080fd5b600460009054906101000a900460ff161515611d9e57600080fd5b6000600460006101000a81548160ff0219169083151502179055507f24faf5703cd024754e538120a7237535f1ea01677015f7e32f67be64b66d9dac60405160405180910390a1565b6040805190810160405280600381526020017f464d41000000000000000000000000000000000000000000000000000000000081525081565b60066020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9c57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548111151515611eed57600080fd5b611f39600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154826127ac565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611f8b600254826127ac565b600281905550600054600254811515611fa057fe5b046001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b6000806000600460009054906101000a900460ff16151561201957600080fd5b60406004810160003690501015151561202e57fe5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561206a57600080fd5b61207333612409565b92506120c1600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154846127ac565b91508185111515156120d257600080fd5b61211e600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127ac565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506121b0600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127c5565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122c657600080fd5b60ff8351111515156122d757600080fd5b815183511415156122e757600080fd5b600090505b82518160ff16101561234357612336838260ff1681518110151561230c57fe5b90602001906020020151838360ff1681518110151561232757fe5b90602001906020020151610d20565b80806001019150506122ec565b505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123a457600080fd5b600460009054906101000a900460ff161515156123c057600080fd5b6001600460006101000a81548160ff0219169083151502179055507ff999e0378b31fd060880ceb4bc403bc32de3d1000bee77078a09c7f1d929a51560405160405180910390a1565b6000806000806000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020935060009250429150600090505b83600101805490508110156124be57836002018181548110151561247e57fe5b90600052602060002001548210156124b15783600101818154811015156124a157fe5b9060005260206000200154830192505b808060010191505061245e565b82945050505050919050565b600460009054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125c257600080fd5b60ff8251111515156125d357600080fd5b600090505b81518160ff1610156126d15760066000838360ff168151811015156125f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156126c457600160066000848460ff1681518110151561266857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806001019150506125d8565b5050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561273157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156127a95780600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008282111515156127ba57fe5b818303905092915050565b60008082840190508381101515156127d957fe5b8091505092915050565b82805482825590600052602060002090810192821561281f579160200282015b8281111561281e578251825591602001919060010190612803565b5b50905061282c9190612830565b5090565b61285291905b8082111561284e576000816000905550600101612836565b5090565b905600a165627a7a723058202ff542e0f109fa077c1ff60e98d0a3d4bd4975693f760bb31d2a3d76a98a75f10029

Deployed Bytecode

0x608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461014e578063095ea7b3146101de5780630c3e564a146102435780630ea7c8cd146102b357806318160ddd146103005780632111c0f91461032b57806323b872dd146103b9578063313ce5671461043e57806334d05b1f146104695780633ccfd60b146104d4578063440991bd146104eb578063679019ba1461051657806370a08231146106165780638456cb591461066d57806395d89b41146106845780639b19251a146107145780639dc29fac1461076f578063a9059cbb146107bc578063b885d56014610821578063be9a6555146108ca578063cd4217c1146108e1578063d85bd52614610938578063dd62ed3e14610967578063edac985b146109de578063f2fde38b14610a44575b600080fd5b34801561015a57600080fd5b50610163610a87565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a3578082015181840152602081019050610188565b50505050905090810190601f1680156101d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ea57600080fd5b50610229600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac0565b604051808215151515815260200191505060405180910390f35b34801561024f57600080fd5b506102b16004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610c6a565b005b3480156102bf57600080fd5b506102fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d20565b005b34801561030c57600080fd5b50610315611060565b6040518082815260200191505060405180910390f35b34801561033757600080fd5b506103b76004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611066565b005b3480156103c557600080fd5b50610424600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111c565b604051808215151515815260200191505060405180910390f35b34801561044a57600080fd5b50610453611556565b6040518082815260200191505060405180910390f35b34801561047557600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919050505061155b565b005b3480156104e057600080fd5b506104e9611a29565b005b3480156104f757600080fd5b50610500611bd1565b6040518082815260200191505060405180910390f35b34801561052257600080fd5b506106146004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190505050611bd7565b005b34801561062257600080fd5b50610657600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cdb565b6040518082815260200191505060405180910390f35b34801561067957600080fd5b50610682611d27565b005b34801561069057600080fd5b50610699611de7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d95780820151818401526020810190506106be565b50505050905090810190601f1680156107065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072057600080fd5b50610755600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e20565b604051808215151515815260200191505060405180910390f35b34801561077b57600080fd5b506107ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e40565b005b3480156107c857600080fd5b50610807600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ff9565b604051808215151515815260200191505060405180910390f35b34801561082d57600080fd5b506108c86004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612268565b005b3480156108d657600080fd5b506108df612348565b005b3480156108ed57600080fd5b50610922600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612409565b6040518082815260200191505060405180910390f35b34801561094457600080fd5b5061094d6124ca565b604051808215151515815260200191505060405180910390f35b34801561097357600080fd5b506109c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124dd565b6040518082815260200191505060405180910390f35b3480156109ea57600080fd5b50610a4260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612564565b005b348015610a5057600080fd5b50610a85600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d5565b005b6040805190810160405280600781526020017f466f726d6f73610000000000000000000000000000000000000000000000000081525081565b6000600460009054906101000a900460ff161515610add57600080fd5b60008214158015610b6b57506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610b795760009050610c64565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3600190505b92915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc857600080fd5b60ff835111151515610cd957600080fd5b600090505b82518160ff161015610d1b57610d0e838260ff16815181101515610cfe57fe5b9060200190602002015183610d20565b8080600101915050610cde565b505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d7c57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610dd957600080fd5b600081111515610de857600080fd5b8060086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515610e5b57600080fd5b600154811015610e6d57600054810290505b610edb60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154826127ac565b60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610f8f600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154826127c5565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508173ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60025481565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c457600080fd5b60ff8651111515156110d557600080fd5b600090505b85518110156111145761110786828151811015156110f457fe5b906020019060200201518686868661155b565b80806001019150506110da565b505050505050565b6000806000600460009054906101000a900460ff16151561113c57600080fd5b60606004810160003690501015151561115157fe5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156111bb5750600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15156111c657600080fd5b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561125157600080fd5b61125a87612409565b92506112a8600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154846127ac565b91508185111515156112b957600080fd5b611305600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127ac565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506113d1600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866127ac565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061149d600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127c5565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600193505050509392505050565b601281565b600080606080600080600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115c057600080fd5b8a73ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561161d57600080fd5b60008811151561162c57600080fd5b878981151561163757fe5b049550600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209450876040519080825280602002602001820160405280156116aa5781602001602082028038833980820191505090505b509350876040519080825280602002602001820160405280156116dc5781602001602082028038833980820191505090505b5092506001548a10156116ff576000548a02995060005486029550600054890298505b8960086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411151561177157600080fd5b889150600087141561178557600354420196505b600090505b600188038110156117ef578584828151811015156117a457fe5b90602001906020020181815250508683828151811015156117c157fe5b9060200190602002018181525050600354870196506117e082876127ac565b9150808060010191505061178a565b8184828151811015156117fe57fe5b906020019060200201818152505086838281518110151561181b57fe5b906020019060200201818152505061183785600001548b6127c5565b8560000181905550838560010190805190602001906118579291906127e3565b50828560020190805190602001906118709291906127e3565b506118df60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548b6127ac565b60086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508a73ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a38a73ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e08a6040518082815260200191505060405180910390a25050505050505050505050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8757600080fd5b30905060008173ffffffffffffffffffffffffffffffffffffffff1631111515611ab057600080fd5b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8273ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611b2f573d6000803e3d6000fd5b50600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8373ffffffffffffffffffffffffffffffffffffffff16316040518082815260200191505060405180910390a350565b60035481565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3557600080fd5b60ff865111151515611c4657600080fd5b84518651141515611c5657600080fd5b83518651141515611c6657600080fd5b600090505b8551811015611cd357611cc68682815181101515611c8557fe5b906020019060200201518683815181101515611c9d57fe5b906020019060200201518684815181101515611cb557fe5b90602001906020020151868661155b565b8080600101915050611c6b565b505050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d8357600080fd5b600460009054906101000a900460ff161515611d9e57600080fd5b6000600460006101000a81548160ff0219169083151502179055507f24faf5703cd024754e538120a7237535f1ea01677015f7e32f67be64b66d9dac60405160405180910390a1565b6040805190810160405280600381526020017f464d41000000000000000000000000000000000000000000000000000000000081525081565b60066020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9c57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548111151515611eed57600080fd5b611f39600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154826127ac565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611f8b600254826127ac565b600281905550600054600254811515611fa057fe5b046001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b6000806000600460009054906101000a900460ff16151561201957600080fd5b60406004810160003690501015151561202e57fe5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561206a57600080fd5b61207333612409565b92506120c1600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154846127ac565b91508185111515156120d257600080fd5b61211e600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127ac565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506121b0600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154866127c5565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122c657600080fd5b60ff8351111515156122d757600080fd5b815183511415156122e757600080fd5b600090505b82518160ff16101561234357612336838260ff1681518110151561230c57fe5b90602001906020020151838360ff1681518110151561232757fe5b90602001906020020151610d20565b80806001019150506122ec565b505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123a457600080fd5b600460009054906101000a900460ff161515156123c057600080fd5b6001600460006101000a81548160ff0219169083151502179055507ff999e0378b31fd060880ceb4bc403bc32de3d1000bee77078a09c7f1d929a51560405160405180910390a1565b6000806000806000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020935060009250429150600090505b83600101805490508110156124be57836002018181548110151561247e57fe5b90600052602060002001548210156124b15783600101818154811015156124a157fe5b9060005260206000200154830192505b808060010191505061245e565b82945050505050919050565b600460009054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125c257600080fd5b60ff8251111515156125d357600080fd5b600090505b81518160ff1610156126d15760066000838360ff168151811015156125f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156126c457600160066000848460ff1681518110151561266857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806001019150506125d8565b5050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561273157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156127a95780600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008282111515156127ba57fe5b818303905092915050565b60008082840190508381101515156127d957fe5b8091505092915050565b82805482825590600052602060002090810192821561281f579160200282015b8281111561281e578251825591602001919060010190612803565b5b50905061282c9190612830565b5090565b61285291905b8082111561284e576000816000905550600101612836565b5090565b905600a165627a7a723058202ff542e0f109fa077c1ff60e98d0a3d4bd4975693f760bb31d2a3d76a98a75f10029

Deployed Bytecode Sourcemap

28:9413:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;55:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;55:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;55:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8360:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8360:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3319:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3319:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2773:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:528:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;325:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;325:60:0;;;;;;;;;;;;;;;;;;;;;;;5337:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5337:368:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7621:731;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7621:731:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;159:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:40:0;;;;;;;;;;;;;;;;;;;;;;;3907:1418;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3907:1418:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8855:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8855:225:0;;;;;;392:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;392:45:0;;;;;;;;;;;;;;;;;;;;;;;5713:510;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5713:510:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6517:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6517:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2526:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2526:113:0;;;;;;109:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;109:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;109:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;587:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;587:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9092:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9092:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7041:572;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7041:572:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3581:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3581:318:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2651:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2651:112:0;;;;;;6648:381;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6648:381:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;446:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;446:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8705:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8705:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6235:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6235:274:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2357:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2357:157:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;55:47;;;;;;;;;;;;;;;;;;;;:::o;8360:333::-;8437:14;1608:7;;;;;;;;;;;1600:16;;;;;;;;8478:1;8468:6;:11;;:49;;;;;8516:1;8483:7;:19;8491:10;8483:19;;;;;;;;;;;;;;;:29;8503:8;8483:29;;;;;;;;;;;;;;;;:34;;8468:49;8464:97;;;8543:5;8535:13;;;;8464:97;8603:6;8571:7;:19;8579:10;8571:19;;;;;;;;;;;;;;;:29;8591:8;8571:29;;;;;;;;;;;;;;;:38;;;;8646:8;8625:38;;8634:10;8625:38;;;8656:6;8625:38;;;;;;;;;;;;;;;;;;8681:4;8674:11;;1627:1;8360:333;;;;:::o;3319:250::-;3464:7;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;3434:3;3416:6;:13;:21;;3408:30;;;;;;;;3474:1;3464:11;;3459:103;3481:6;:13;3477:1;:17;;;3459:103;;;3518:32;3529:6;3536:1;3529:9;;;;;;;;;;;;;;;;;;;;3542:7;3518:10;:32::i;:::-;3496:3;;;;;;;3459:103;;;3319:250;;;:::o;2773:528::-;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;2872:3;2863:12;;:5;;;;;;;;;;;:12;;;;2855:21;;;;;;;;2905:1;2895:7;:11;2887:20;;;;;;;;2953:7;2926:8;:15;2935:5;;;;;;;;;;;2926:15;;;;;;;;;;;;;;;:23;;;:34;;2918:43;;;;;;;;3030:9;;3020:7;:19;3017:80;;;3075:10;;3065:7;:20;3055:30;;3017:80;3133:41;3141:8;:15;3150:5;;;;;;;;;;;3141:15;;;;;;;;;;;;;;;:23;;;3166:7;3133;:41::i;:::-;3107:8;:15;3116:5;;;;;;;;;;;3107:15;;;;;;;;;;;;;;;:23;;:67;;;;3209:39;3217:8;:13;3226:3;3217:13;;;;;;;;;;;;;;;:21;;;3240:7;3209;:39::i;:::-;3185:8;:13;3194:3;3185:13;;;;;;;;;;;;;;;:21;;:63;;;;3280:3;3264:29;;3273:5;;;;;;;;;;;3264:29;;;3285:7;3264:29;;;;;;;;;;;;;;;;;;2773:528;;:::o;325:60::-;;;;:::o;5337:368::-;5552:6;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;5523:3;5505:6;:13;:21;;5497:30;;;;;;;;5559:1;5552:8;;5548:150;5564:6;:13;5561:1;:16;5548:150;;;5597:89;5611:6;5618:1;5611:9;;;;;;;;;;;;;;;;;;5622:14;5638:13;5653:12;5667:18;5597:13;:89::i;:::-;5578:3;;;;;;;5548:150;;;5337:368;;;;;;:::o;7621:731::-;7738:14;7884:17;7930:16;1608:7;;;;;;;;;;;1600:16;;;;;;;;7714:6;1850:1;1843:4;:8;1824;;:15;;:27;;1817:35;;;;;;7792:1;7773:21;;:5;:21;;;;:42;;;;;7813:1;7798:17;;:3;:17;;;;7773:42;7765:51;;;;;;;;7846:7;:14;7854:5;7846:14;;;;;;;;;;;;;;;:26;7861:10;7846:26;;;;;;;;;;;;;;;;7835:7;:37;;7827:46;;;;;;;;7904:15;7913:5;7904:8;:15::i;:::-;7884:35;;7949:46;7957:8;:15;7966:5;7957:15;;;;;;;;;;;;;;;:23;;;7982:12;7949:7;:46::i;:::-;7930:65;;8025:8;8014:7;:19;;8006:28;;;;;;;;8081:40;8089:8;:15;8098:5;8089:15;;;;;;;;;;;;;;;:23;;;8113:7;8081;:40::i;:::-;8055:8;:15;8064:5;8055:15;;;;;;;;;;;;;;;:23;;:66;;;;8161:43;8169:7;:14;8177:5;8169:14;;;;;;;;;;;;;;;:26;8184:10;8169:26;;;;;;;;;;;;;;;;8196:7;8161;:43::i;:::-;8132:7;:14;8140:5;8132:14;;;;;;;;;;;;;;;:26;8147:10;8132:26;;;;;;;;;;;;;;;:72;;;;8239:38;8247:8;:13;8256:3;8247:13;;;;;;;;;;;;;;;:21;;;8269:7;8239;:38::i;:::-;8215:8;:13;8224:3;8215:13;;;;;;;;;;;;;;;:21;;:62;;;;8309:3;8293:29;;8302:5;8293:29;;;8314:7;8293:29;;;;;;;;;;;;;;;;;;8340:4;8333:11;;1627:1;7621:731;;;;;;;:::o;159:40::-;197:2;159:40;:::o;3907:1418::-;4129:12;4183:22;4232:16;4286;4587:17;4738:6;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;4068:3;4059:12;;:5;;;;;;;;;;;:12;;;;4051:21;;;;;;;;4106:1;4091:12;:16;4083:25;;;;;;;;4160:12;4144:13;:28;;;;;;;;4129:43;;4208:8;:13;4217:3;4208:13;;;;;;;;;;;;;;;4183:38;;4262:12;4251:24;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4251:24:0;;;;4232:43;;4316:12;4305:24;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4305:24:0;;;;4286:43;;4355:9;;4345:7;:19;4342:182;;;4400:10;;4390:7;:20;4380:30;;4445:10;;4435:7;:20;4425:30;;4502:10;;4486:13;:26;4470:42;;4342:182;4568:7;4542:8;:15;4551:5;;;;;;;;;;;4542:15;;;;;;;;;;;;;;;:23;;;:33;4534:42;;;;;;;;4607:13;4587:33;;4666:1;4644:18;:23;4641:82;;;4709:14;;4703:3;:20;4682:41;;4641:82;4745:1;4738:8;;4734:228;4762:1;4749:12;:14;4747:1;:16;4734:228;;;4791:7;4783:2;4786:1;4783:5;;;;;;;;;;;;;;;;;:15;;;;;4821:18;4813:2;4816:1;4813:5;;;;;;;;;;;;;;;;;:26;;;;;4876:14;;4854:36;;;;4920:30;4928:12;4942:7;4920;:30::i;:::-;4905:45;;4764:3;;;;;;;4734:228;;;4980:12;4972:2;4975:1;4972:5;;;;;;;;;;;;;;;;;:20;;;;;5011:18;5003:2;5006:1;5003:5;;;;;;;;;;;;;;;;;:26;;;;;5063:28;5071:2;:10;;;5083:7;5063;:28::i;:::-;5050:2;:10;;:41;;;;5120:2;5102;:15;;:20;;;;;;;;;;;;:::i;:::-;;5150:2;5133;:14;;:19;;;;;;;;;;;;:::i;:::-;;5189:41;5197:8;:15;5206:5;;;;;;;;;;;5197:15;;;;;;;;;;;;;;;:23;;;5222:7;5189;:41::i;:::-;5163:8;:15;5172:5;;;;;;;;;;;5163:15;;;;;;;;;;;;;;;:23;;:67;;;;5262:3;5246:29;;5255:5;;;;;;;;;;;5246:29;;;5267:7;5246:29;;;;;;;;;;;;;;;;;;5298:3;5291:26;;;5303:13;5291:26;;;;;;;;;;;;;;;;;;3907:1418;;;;;;;;;;;:::o;8855:225::-;8903:17;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;8923:4;8903:24;;8966:1;8946:9;:17;;;:21;8938:30;;;;;;;;8979:5;;;;;;;;;;;:14;;:33;8994:9;:17;;;8979:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8979:33:0;9043:5;;;;;;;;;;;9028:40;;9037:4;9028:40;;;9050:9;:17;;;9028:40;;;;;;;;;;;;;;;;;;8855:225;:::o;392:45::-;;;;:::o;5713:510::-;6062:6;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;5916:3;5898:6;:13;:21;;5890:30;;;;;;;;5956:15;:22;5939:6;:13;:39;5931:48;;;;;;;;6015:14;:21;5998:6;:13;:38;5990:47;;;;;;;;6069:1;6062:8;;6058:158;6074:6;:13;6071:1;:16;6058:158;;;6107:97;6121:6;6128:1;6121:9;;;;;;;;;;;;;;;;;;6132:15;6148:1;6132:18;;;;;;;;;;;;;;;;;;6152:14;6167:1;6152:17;;;;;;;;;;;;;;;;;;6171:12;6185:18;6107:13;:97::i;:::-;6088:3;;;;;;;6058:158;;;5713:510;;;;;;:::o;6517:119::-;6577:7;6604:8;:16;6613:6;6604:16;;;;;;;;;;;;;;;:24;;;6597:31;;6517:119;;;:::o;2526:113::-;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;1608:7;;;;;;;;;;;1600:16;;;;;;;;2596:5;2586:7;;:15;;;;;;;;;;;;;;;;;;2617:14;;;;;;;;;;2526:113::o;109:43::-;;;;;;;;;;;;;;;;;;;;:::o;587:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;9092:346::-;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;9184:8;:20;9193:10;9184:20;;;;;;;;;;;;;;;:28;;;9174:6;:38;;9166:47;;;;;;;;9253:41;9261:8;:16;9270:6;9261:16;;;;;;;;;;;;;;;:24;;;9287:6;9253:7;:41::i;:::-;9226:8;:16;9235:6;9226:16;;;;;;;;;;;;;;;:24;;:68;;;;9319:28;9327:11;;9340:6;9319:7;:28::i;:::-;9305:11;:42;;;;9384:10;;9370:11;;:24;;;;;;;;9358:9;:36;;;;9415:6;9410:20;;;9423:6;9410:20;;;;;;;;;;;;;;;;;;9092:346;;:::o;7041:572::-;7141:12;7203:17;7254:16;1608:7;;;;;;;;;;;1600:16;;;;;;;;7116:7;1850:1;1843:4;:8;1824;;:15;;:27;;1817:35;;;;;;7189:1;7174:17;;:3;:17;;;;7166:26;;;;;;;;7223:20;7232:10;7223:8;:20::i;:::-;7203:40;;7273:51;7281:8;:20;7290:10;7281:20;;;;;;;;;;;;;;;:28;;;7311:12;7273:7;:51::i;:::-;7254:70;;7354:8;7343:7;:19;;7335:28;;;;;;;;7415:45;7423:8;:20;7432:10;7423:20;;;;;;;;;;;;;;;:28;;;7452:7;7415;:45::i;:::-;7384:8;:20;7393:10;7384:20;;;;;;;;;;;;;;;:28;;:76;;;;7495:38;7503:8;:13;7512:3;7503:13;;;;;;;;;;;;;;;:21;;;7525:7;7495;:38::i;:::-;7471:8;:13;7480:3;7471:13;;;;;;;;;;;;;;;:21;;:62;;;;7570:3;7549:34;;7558:10;7549:34;;;7575:7;7549:34;;;;;;;;;;;;;;;;;;7601:4;7594:11;;1627:1;7041:572;;;;;;:::o;3581:318::-;3789:7;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;3703:3;3685:6;:13;:21;;3677:30;;;;;;;;3747:8;:15;3726:6;:13;:36;3718:45;;;;;;;;3799:1;3789:11;;3784:108;3806:6;:13;3802:1;:17;;;3784:108;;;3844:36;3855:6;3862:1;3855:9;;;;;;;;;;;;;;;;;;;;3868:8;3877:1;3868:11;;;;;;;;;;;;;;;;;;;;3844:10;:36::i;:::-;3824:3;;;;;;;3784:108;;;3581:318;;;:::o;2651:112::-;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;1685:7;;;;;;;;;;;1684:8;1676:17;;;;;;;;2721:4;2711:7;;:14;;;;;;;;;;;;;;;;;;2741;;;;;;;;;;2651:112::o;6648:381::-;6708:7;6728:22;6780:17;6812:6;6849;6753:8;:16;6762:6;6753:16;;;;;;;;;;;;;;;6728:41;;6800:1;6780:21;;6821:3;6812:12;;6856:1;6849:8;;6845:147;6861:2;:15;;:22;;;;6858:1;:25;6845:147;;;6910:2;:14;;6925:1;6910:17;;;;;;;;;;;;;;;;;;6906:1;:21;6903:77;;;6962:2;:15;;6978:1;6962:18;;;;;;;;;;;;;;;;;;6946:34;;;;6903:77;6884:3;;;;;;;6845:147;;;7009:12;7002:19;;6648:381;;;;;;;:::o;446:42::-;;;;;;;;;;;;;:::o;8705:138::-;8783:7;8810;:15;8818:6;8810:15;;;;;;;;;;;;;;;:25;8826:8;8810:25;;;;;;;;;;;;;;;;8803:32;;8705:138;;;;:::o;6235:274::-;6351:7;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;6329:3;6311:6;:13;:21;;6303:30;;;;;;;;6361:1;6351:11;;6346:156;6368:6;:13;6364:1;:17;;;6346:156;;;6408:9;:20;6418:6;6425:1;6418:9;;;;;;;;;;;;;;;;;;;;6408:20;;;;;;;;;;;;;;;;;;;;;;;;;6407:21;6403:88;;;6471:4;6448:9;:20;6458:6;6465:1;6458:9;;;;;;;;;;;;;;;;;;;;6448:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;6403:88;6383:3;;;;;;;6346:156;;;6235:274;;:::o;2357:157::-;1425:5;;;;;;;;;;;1411:19;;:10;:19;;;1403:28;;;;;;;;2459:1;2435:26;;:9;:26;;;;2431:76;;;2486:9;2478:5;;:17;;;;;;;;;;;;;;;;;;2431:76;2357:157;:::o;2053:127::-;2115:7;2147:1;2142;:6;;2135:14;;;;;;2171:1;2167;:5;2160:12;;2053:127;;;;:::o;2188:151::-;2250:7;2270:9;2286:1;2282;:5;2270:17;;2310:1;2305;:6;;2298:14;;;;;;2330:1;2323:8;;2188:151;;;;;:::o;28:9413::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://2ff542e0f109fa077c1ff60e98d0a3d4bd4975693f760bb31d2a3d76a98a75f1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.