ETH Price: $1,973.17 (+0.17%)
 

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x81976f08daa61e436b8ffc54976961e122139d352781801254d7aa04765eafe9 Transfer(pending)2026-02-19 13:53:502 days ago1771509230IN
Yotta Coin
0 ETH(Pending)(Pending)
0x51e3c10784b10e026376850d26db78ac6a2079c7ecc288309bdbdffa2ab4c104 Transfer(pending)2026-02-19 7:42:283 days ago1771486948IN
Yotta Coin
0 ETH(Pending)(Pending)
0xe98d0feabd75eed0024e5edd139bdb47a6e1f3ecbc0d190e1cc86fc8b33fb1ce Transfer(pending)2026-02-19 5:33:163 days ago1771479196IN
Yotta Coin
0 ETH(Pending)(Pending)
0x487b710472f6138323a54ecd39435c412d9f1d1a2000d1b466dcf9a72fef8649 Transfer(pending)2026-02-19 4:53:343 days ago1771476814IN
Yotta Coin
0 ETH(Pending)(Pending)
0xdf342898923bc440b9ba43333a004022cfbc4d9df7ff15400f3f601dfe2526aa Transfer(pending)2026-02-19 4:41:263 days ago1771476086IN
Yotta Coin
0 ETH(Pending)(Pending)
0x4214a5861e3591c8266a735bddf68e3b482511481bd07f9f7c995619ec8f04b0 Transfer(pending)2026-02-19 4:41:023 days ago1771476062IN
Yotta Coin
0 ETH(Pending)(Pending)
0x5324d79544499073e94172c1605b0da219b87852f3b0d50c9d2db3b51a1b1283 Transfer(pending)2026-02-19 4:34:163 days ago1771475656IN
Yotta Coin
0 ETH(Pending)(Pending)
Transfer244579002026-02-14 22:04:357 days ago1771106675IN
Yotta Coin
0 ETH0.000058080.13159325
Transfer244451302026-02-13 3:19:119 days ago1770952751IN
Yotta Coin
0 ETH0.00005650.12801481
Transfer242059492026-01-10 18:00:1142 days ago1768068011IN
Yotta Coin
0 ETH0.000055680.12617739
Transfer240544712025-12-20 14:40:4763 days ago1766241647IN
Yotta Coin
0 ETH0.000001030.04221809
Transfer235317752025-10-08 8:14:35137 days ago1759911275IN
Yotta Coin
0 ETH0.000086110.20431809
Transfer235083272025-10-05 1:36:11140 days ago1759628171IN
Yotta Coin
0 ETH0.000002190.09
Transfer235068452025-10-04 20:37:59140 days ago1759610279IN
Yotta Coin
0 ETH0.000002440.1
Transfer234303072025-09-24 3:47:47151 days ago1758685667IN
Yotta Coin
0 ETH0.000104650.24391426
Transfer234290882025-09-23 23:42:59151 days ago1758670979IN
Yotta Coin
0 ETH0.000044610.1
Transfer234176122025-09-22 9:16:11152 days ago1758532571IN
Yotta Coin
0 ETH0.000236710.56163663
Transfer234175662025-09-22 9:06:59152 days ago1758532019IN
Yotta Coin
0 ETH0.000261320.62001935
Transfer234145402025-09-21 22:56:35153 days ago1758495395IN
Yotta Coin
0 ETH0.000002440.1
Transfer234144272025-09-21 22:33:47153 days ago1758494027IN
Yotta Coin
0 ETH0.00104392.57025851
Transfer234144252025-09-21 22:33:23153 days ago1758494003IN
Yotta Coin
0 ETH0.00004290.1
Transfer234144102025-09-21 22:30:23153 days ago1758493823IN
Yotta Coin
0 ETH0.00004290.1
Transfer234143992025-09-21 22:28:11153 days ago1758493691IN
Yotta Coin
0 ETH0.000042420.1
Transfer233645902025-09-14 23:25:23160 days ago1757892323IN
Yotta Coin
0 ETH0.000002440.1
Transfer228810692025-07-09 10:35:35227 days ago1752057335IN
Yotta Coin
0 ETH0.001000662.36424045
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
YottaCoin

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 0 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-10-30
*/

pragma solidity ^0.4.24;

// File: SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // assert(_b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
    return _a / _b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    assert(_b <= _a);
    return _a - _b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    c = _a + _b;
    assert(c >= _a);
    return c;
  }
}

// File: FrozenChecker.sol

/**
 * @title FrozenChecker
 * @dev Check account by frozen rules
 */
library FrozenChecker {

    using SafeMath for uint256;

    /**
     * Rule for each address
     */
    struct Rule {
        uint256 timeT;
        uint8 initPercent;
        uint256[] periods;
        uint8[] percents;
    }

    function check(Rule storage self, uint256 totalFrozenValue) internal view returns (uint256) {
        if (totalFrozenValue == uint256(0)) {
            return 0;
        }
        //uint8 temp = self.initPercent;
        if (self.timeT == uint256(0) || self.timeT > now) {
            return totalFrozenValue.sub(totalFrozenValue.mul(self.initPercent).div(100));
        }
        for (uint256 i = 0; i < self.periods.length.sub(1); i = i.add(1)) {
            if (now >= self.timeT.add(self.periods[i]) && now < self.timeT.add(self.periods[i.add(1)])) {
                return totalFrozenValue.sub(totalFrozenValue.mul(self.percents[i]).div(100));
            }
        }
        if (now >= self.timeT.add(self.periods[self.periods.length.sub(1)])) {
            return totalFrozenValue.sub(totalFrozenValue.mul(self.percents[self.periods.length.sub(1)]).div(100));
        }
    }

}

// File: FrozenValidator.sol

library FrozenValidator {
    
    using SafeMath for uint256;
    using FrozenChecker for FrozenChecker.Rule;

    struct Validator {
        mapping(address => IndexValue) data;
        KeyFlag[] keys;
        uint256 size;
    }

    struct IndexValue {
        uint256 keyIndex; 
        FrozenChecker.Rule rule;
        mapping (address => uint256) frozenBalances;
    }

    struct KeyFlag { 
        address key; 
        bool deleted; 
    }

    function addRule(Validator storage self, address key, uint8 initPercent, uint256[] periods, uint8[] percents) internal returns (bool replaced) {
        //require(self.size <= 10);
        require(key != address(0));
        require(periods.length == percents.length);
        require(periods.length > 0);
        require(periods[0] == uint256(0));
        require(initPercent <= percents[0]);
        for (uint256 i = 1; i < periods.length; i = i.add(1)) {
            require(periods[i.sub(1)] < periods[i]);
            require(percents[i.sub(1)] <= percents[i]);
        }
        require(percents[percents.length.sub(1)] == 100);
        FrozenChecker.Rule memory rule = FrozenChecker.Rule(0, initPercent, periods, percents);
        uint256 keyIndex = self.data[key].keyIndex;
        self.data[key].rule = rule;
        if (keyIndex > 0) {
            return true;
        } else {
            keyIndex = self.keys.length++;
            self.data[key].keyIndex = keyIndex.add(1);
            self.keys[keyIndex].key = key;
            self.size++;
            return false;
        }
    }

    function removeRule(Validator storage self, address key) internal returns (bool success) {
        uint256 keyIndex = self.data[key].keyIndex;
        if (keyIndex == 0) {
            return false;
        }
        delete self.data[key];
        self.keys[keyIndex.sub(1)].deleted = true;
        self.size--;
        return true;
    }

    function containRule(Validator storage self, address key) internal view returns (bool) {
        return self.data[key].keyIndex > 0;
    }

    function addTimeT(Validator storage self, address addr, uint256 timeT) internal returns (bool) {
        require(timeT > now);
        self.data[addr].rule.timeT = timeT;
        return true;
    }

    function addFrozenBalance(Validator storage self, address from, address to, uint256 value) internal returns (uint256) {
        self.data[from].frozenBalances[to] = self.data[from].frozenBalances[to].add(value);
        return self.data[from].frozenBalances[to];
    }

    function validate(Validator storage self, address addr) internal view returns (uint256) {
        uint256 frozenTotal = 0;
        for (uint256 i = iterateStart(self); iterateValid(self, i); i = iterateNext(self, i)) {
            address ruleaddr = iterateGet(self, i);
            FrozenChecker.Rule storage rule = self.data[ruleaddr].rule;
            frozenTotal = frozenTotal.add(rule.check(self.data[ruleaddr].frozenBalances[addr]));
        }
        return frozenTotal;
    }


    function iterateStart(Validator storage self) internal view returns (uint256 keyIndex) {
        return iterateNext(self, uint256(-1));
    }

    function iterateValid(Validator storage self, uint256 keyIndex) internal view returns (bool) {
        return keyIndex < self.keys.length;
    }

    function iterateNext(Validator storage self, uint256 keyIndex) internal view returns (uint256) {
        keyIndex++;
        while (keyIndex < self.keys.length && self.keys[keyIndex].deleted) {
            keyIndex++;
        }
        return keyIndex;
    }

    function iterateGet(Validator storage self, uint256 keyIndex) internal view returns (address) {
        return self.keys[keyIndex].key;
    }
}

// File: YottaCoin.sol

contract YottaCoin {

    using SafeMath for uint256;
    using FrozenValidator for FrozenValidator.Validator;

    mapping (address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;

    //--------------------------------  Basic Info  -------------------------------------//

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

    //--------------------------------  Basic Info  -------------------------------------//


    //--------------------------------  Admin Info  -------------------------------------//

    address internal admin;  //Admin address

    /**
     * @dev Change admin address
     * @param newAdmin New admin address
     */
    function changeAdmin(address newAdmin) public returns (bool)  {
        require(msg.sender == admin);
        require(newAdmin != address(0));
        uint256 balAdmin = balances[admin];
        balances[newAdmin] = balances[newAdmin].add(balAdmin);
        balances[admin] = 0;
        admin = newAdmin;
        emit Transfer(admin, newAdmin, balAdmin);
        return true;
    }

    //--------------------------------  Admin Info  -------------------------------------//


    //--------------------------  Events & Constructor  ------------------------------//
    
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

    // constructor
    constructor(string tokenName, string tokenSymbol, uint8 tokenDecimals, uint256 totalTokenSupply ) public {
        name = tokenName;
        symbol = tokenSymbol;
        decimals = tokenDecimals;
        totalSupply = totalTokenSupply;
        admin = msg.sender;
        balances[msg.sender] = totalTokenSupply;
        emit Transfer(0x0, msg.sender, totalTokenSupply);

    }

    //--------------------------  Events & Constructor  ------------------------------//



    //------------------------------ Account lock  -----------------------------------//

    // 同一个账户满足任意冻结条件均被冻结
    mapping (address => bool) frozenAccount; //无限期冻结的账户
    mapping (address => uint256) frozenTimestamp; // 有限期冻结的账户

    /**
     * 查询账户是否存在锁定时间戳
     */
    function getFrozenTimestamp(address _target) public view returns (uint256) {
        return frozenTimestamp[_target];
    }

    /**
     * 查询账户是否被锁定
     */
    function getFrozenAccount(address _target) public view returns (bool) {
        return frozenAccount[_target];
    }

    /**
     * 锁定账户
     */
    function freeze(address _target, bool _freeze) public returns (bool) {
        require(msg.sender == admin);
        require(_target != admin);
        frozenAccount[_target] = _freeze;
        return true;
    }

    /**
     * 通过时间戳锁定账户
     */
    function freezeWithTimestamp(address _target, uint256 _timestamp) public returns (bool) {
        require(msg.sender == admin);
        require(_target != admin);
        frozenTimestamp[_target] = _timestamp;
        return true;
    }

    /**
     * 批量锁定账户
     */
    function multiFreeze(address[] _targets, bool[] _freezes) public returns (bool) {
        require(msg.sender == admin);
        require(_targets.length == _freezes.length);
        uint256 len = _targets.length;
        require(len > 0);
        for (uint256 i = 0; i < len; i = i.add(1)) {
            address _target = _targets[i];
            require(_target != admin);
            bool _freeze = _freezes[i];
            frozenAccount[_target] = _freeze;
        }
        return true;
    }

    /**
     * 批量通过时间戳锁定账户
     */
    function multiFreezeWithTimestamp(address[] _targets, uint256[] _timestamps) public returns (bool) {
        require(msg.sender == admin);
        require(_targets.length == _timestamps.length);
        uint256 len = _targets.length;
        require(len > 0);
        for (uint256 i = 0; i < len; i = i.add(1)) {
            address _target = _targets[i];
            require(_target != admin);
            uint256 _timestamp = _timestamps[i];
            frozenTimestamp[_target] = _timestamp;
        }
        return true;
    }

    //------------------------------  Account lock  -----------------------------------//




    //--------------------------      Frozen rules      ------------------------------//

    FrozenValidator.Validator validator;

    function addRule(address addr, uint8 initPercent, uint256[] periods, uint8[] percents) public returns (bool) {
        require(msg.sender == admin);
        return validator.addRule(addr, initPercent, periods, percents);
    }

    function addTimeT(address addr, uint256 timeT) public returns (bool) {
        require(msg.sender == admin);
        return validator.addTimeT(addr, timeT);
    }

    function removeRule(address addr) public returns (bool) {
        require(msg.sender == admin);
        return validator.removeRule(addr);
    }

    //--------------------------      Frozen rules      ------------------------------//




    //-------------------------  Standard ERC20 Interfaces  --------------------------//

    function multiTransfer(address[] _tos, uint256[] _values) public returns (bool) {
        require(!frozenAccount[msg.sender]);
        require(now > frozenTimestamp[msg.sender]);
        require(_tos.length == _values.length);
        uint256 len = _tos.length;
        require(len > 0);
        uint256 amount = 0;
        for (uint256 i = 0; i < len; i = i.add(1)) {
            amount = amount.add(_values[i]);
        }
        require(amount <= balances[msg.sender].sub(validator.validate(msg.sender)));
        for (uint256 j = 0; j < len; j = j.add(1)) {
            address _to = _tos[j];
            if (validator.containRule(msg.sender) && msg.sender != _to) {
                validator.addFrozenBalance(msg.sender, _to, _values[j]);
            }
            balances[_to] = balances[_to].add(_values[j]);
            balances[msg.sender] = balances[msg.sender].sub(_values[j]);
            emit Transfer(msg.sender, _to, _values[j]);
        }
        return true;
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        transferfix(_to, _value);
        return true;
    }

    function transferfix(address _to, uint256 _value) public {
        require(!frozenAccount[msg.sender]);
        require(now > frozenTimestamp[msg.sender]);
        require(balances[msg.sender].sub(_value) >= validator.validate(msg.sender));

        if (validator.containRule(msg.sender) && msg.sender != _to) {
            validator.addFrozenBalance(msg.sender, _to, _value);
        }
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        emit Transfer(msg.sender, _to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(!frozenAccount[_from]);
        require(now > frozenTimestamp[_from]);
        require(_value <= balances[_from].sub(validator.validate(_from)));
        require(_value <= allowed[_from][msg.sender]);

        if (validator.containRule(_from) && _from != _to) {
            validator.addFrozenBalance(_from, _to, _value);
        }

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

        emit Transfer(_from, _to, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param _owner The address to query the the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner]; //.sub(validator.validate(_owner));
    }

    //-------------------------  Standard ERC20 Interfaces  --------------------------//

    function kill() public {
        require(msg.sender == admin);
        selfdestruct(admin);
    }

}

Contract Security Audit

Contract ABI

API
[{"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":"","type":"bool"}],"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":"_tos","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"multiTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"kill","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":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"initPercent","type":"uint8"},{"name":"periods","type":"uint256[]"},{"name":"percents","type":"uint8[]"}],"name":"addRule","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"timeT","type":"uint256"}],"name":"addTimeT","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_freeze","type":"bool"}],"name":"freeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"}],"name":"getFrozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_freezes","type":"bool[]"}],"name":"multiFreeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferfix","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_timestamp","type":"uint256"}],"name":"freezeWithTimestamp","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_timestamps","type":"uint256[]"}],"name":"multiFreezeWithTimestamp","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"addr","type":"address"}],"name":"removeRule","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"}],"name":"getFrozenTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"},{"name":"tokenDecimals","type":"uint8"},{"name":"totalTokenSupply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040523480156200001157600080fd5b50604051620036ad380380620036ad8339810180604052810190808051820192919060200180518201929190602001805190602001909291908051906020019092919050505083600290805190602001906200006f92919062000189565b5082600390805190602001906200008892919062000189565b5081600460006101000a81548160ff021916908360ff1602179055508060058190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505062000238565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001cc57805160ff1916838001178555620001fd565b82800160010185558215620001fd579182015b82811115620001fc578251825591602001919060010190620001df565b5b5090506200020c919062000210565b5090565b6200023591905b808211156200023157600081600090555060010162000217565b5090565b90565b61346580620002486000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461012d578063095ea7b3146101bd57806318160ddd146102225780631e89d5451461024d57806323b872dd1461030e578063313ce5671461039357806341c0e1b5146103c457806370a08231146103db5780638f2839701461043257806395d89b411461048d57806399f9b55e1461051d578063a2c8a9271461060b578063a9059cbb14610670578063bf120ae5146106d5578063c49778071461073c578063c878dad914610797578063d54c8a5614610858578063d70907b0146108a5578063d950c4321461090a578063dd62ed3e146109cb578063df21950f14610a42578063e6ad5bc714610a9d575b600080fd5b34801561013957600080fd5b50610142610af4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610182578082015181840152602081019050610167565b50505050905090810190601f1680156101af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c957600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b92565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b50610237610c84565b6040518082815260200191505060405180910390f35b34801561025957600080fd5b506102f46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c8a565b604051808215151515815260200191505060405180910390f35b34801561031a57600080fd5b50610379600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c9565b604051808215151515815260200191505060405180910390f35b34801561039f57600080fd5b506103a861157e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103d057600080fd5b506103d9611591565b005b3480156103e757600080fd5b5061041c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611628565b6040518082815260200191505060405180910390f35b34801561043e57600080fd5b50610473600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611670565b604051808215151515815260200191505060405180910390f35b34801561049957600080fd5b506104a2611939565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104e25780820151818401526020810190506104c7565b50505050905090810190601f16801561050f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052957600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506119d7565b604051808215151515815260200191505060405180910390f35b34801561061757600080fd5b50610656600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a59565b604051808215151515815260200191505060405180910390f35b34801561067c57600080fd5b506106bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ad5565b604051808215151515815260200191505060405180910390f35b3480156106e157600080fd5b50610722600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611aeb565b604051808215151515815260200191505060405180910390f35b34801561074857600080fd5b5061077d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c07565b604051808215151515815260200191505060405180910390f35b3480156107a357600080fd5b5061083e6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611c5d565b604051808215151515815260200191505060405180910390f35b34801561086457600080fd5b506108a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e02565b005b3480156108b157600080fd5b506108f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612114565b604051808215151515815260200191505060405180910390f35b34801561091657600080fd5b506109b1600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061221d565b604051808215151515815260200191505060405180910390f35b3480156109d757600080fd5b50610a2c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123af565b6040518082815260200191505060405180910390f35b348015610a4e57600080fd5b50610a83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612436565b604051808215151515815260200191505060405180910390f35b348015610aa957600080fd5b50610ade600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b6040518082815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8a5780601f10610b5f57610100808354040283529160200191610b8a565b820191906000526020600020905b815481529060010190602001808311610b6d57829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b600080600080600080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610cec57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442111515610d3957600080fd5b86518851141515610d4957600080fd5b87519450600085111515610d5c57600080fd5b60009350600092505b84831015610db457610d978784815181101515610d7e57fe5b90602001906020020151856124f890919063ffffffff16565b9350610dad6001846124f890919063ffffffff16565b9250610d65565b610e18610dcb33600961251490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b8411151515610e2657600080fd5b600091505b848210156110ba578782815181101515610e4157fe5b906020019060200201519050610e6133600961266b90919063ffffffff16565b8015610e9957508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610ecf57610ecd33828985815181101515610eb157fe5b9060200190602002015160096126bc909392919063ffffffff16565b505b610f378783815181101515610ee057fe5b906020019060200201516000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fe18783815181101515610f8a57fe5b906020019060200201516000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef898581518110151561108057fe5b906020019060200201516040518082815260200191505060405180910390a36110b36001836124f890919063ffffffff16565b9150610e2b565b60019550505050505092915050565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561112457600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544211151561117157600080fd5b6111d561118885600961251490919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b82111515156111e357600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561126e57600080fd5b61128284600961266b90919063ffffffff16565b80156112ba57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156112d9576112d784848460096126bc909392919063ffffffff16565b505b61132a826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113bd826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061148e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116cf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561170b57600080fd5b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506117bf816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001915050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119cf5780601f106119a4576101008083540402835291602001916119cf565b820191906000526020600020905b8154815290600101906020018083116119b257829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a3557600080fd5b611a4f85858585600961286390949392919063ffffffff16565b9050949350505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab757600080fd5b611acd83836009612c4e9092919063ffffffff16565b905092915050565b6000611ae18383611e02565b6001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4957600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ba657600080fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cc157600080fd5b85518751141515611cd157600080fd5b86519350600084111515611ce457600080fd5b600092505b83831015611df4578683815181101515611cff57fe5b906020019060200201519150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d6857600080fd5b8583815181101515611d7657fe5b90602001906020020151905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ded6001846124f890919063ffffffff16565b9250611ce9565b600194505050505092915050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611e5b57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442111515611ea857600080fd5b611ebc33600961251490919063ffffffff16565b611f0d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b10151515611f1a57600080fd5b611f2e33600961266b90919063ffffffff16565b8015611f6657508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611f8557611f8333838360096126bc909392919063ffffffff16565b505b611fd6816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612069816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156121cf57600080fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000806000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228157600080fd5b8551875114151561229157600080fd5b865193506000841115156122a457600080fd5b600092505b838310156123a15786838151811015156122bf57fe5b906020019060200201519150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561232857600080fd5b858381518110151561233657fe5b90602001906020020151905080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239a6001846124f890919063ffffffff16565b92506122a9565b600194505050505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561249457600080fd5b6124a8826009612cb590919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000818301905082811015151561250b57fe5b80905092915050565b600080600080600080935061252887612e0b565b92505b6125358784612e3e565b15612645576125448784612e52565b91508660000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010190506126326126238860000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612e9b90919063ffffffff16565b856124f890919063ffffffff16565b935061263e8784613143565b925061252b565b8394505050505092915050565b600082821115151561266057fe5b818303905092915050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411905092915050565b6000612752828660000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b8560000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050949350505050565b60008061286e6131f5565b60008073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156128ab57600080fd5b845186511415156128bb57600080fd5b600086511115156128cb57600080fd5b60008660008151811015156128dc57fe5b906020019060200201511415156128f257600080fd5b84600081518110151561290157fe5b9060200190602002015160ff168760ff161115151561291f57600080fd5b600192505b85518310156129ed57858381518110151561293b57fe5b906020019060200201518661295a60018661265290919063ffffffff16565b81518110151561296657fe5b9060200190602002015110151561297c57600080fd5b848381518110151561298a57fe5b9060200190602002015160ff16856129ac60018661265290919063ffffffff16565b8151811015156129b857fe5b9060200190602002015160ff16111515156129d257600080fd5b6129e66001846124f890919063ffffffff16565b9250612924565b606485612a056001885161265290919063ffffffff16565b815181101515612a1157fe5b9060200190602002015160ff16141515612a2a57600080fd5b608060405190810160405280600081526020018860ff1681526020018781526020018681525091508860000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050818960000160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000820151816000015560208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002019080519060200190612b25929190613221565b506060820151816003019080519060200190612b4292919061326e565b509050506000811115612b585760019350612c42565b886001018054809190600101612b6e9190613315565b9050612b846001826124f890919063ffffffff16565b8960000160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550878960010182815481101515612bde57fe5b9060005260206000200160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508860020160008154809291906001019190505550600093505b50505095945050505050565b60004282111515612c5e57600080fd5b818460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160000181905550600190509392505050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000811415612d115760009150612e04565b8360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000808201600090556001820160006101000a81549060ff0219169055600282016000612d8c9190613341565b600382016000612d9c9190613362565b50505050600184600101612dba60018461265290919063ffffffff16565b815481101515612dc657fe5b9060005260206000200160000160146101000a81548160ff021916908315150217905550836002016000815480929190600190039190505550600191505b5092915050565b6000612e37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613143565b9050919050565b600082600101805490508210905092915050565b60008260010182815481101515612e6557fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000806000831415612eb0576000915061313c565b600084600001541480612ec65750428460000154115b15612f1e57612f17612f086064612efa8760010160009054906101000a900460ff1660ff16876131a790919063ffffffff16565b6131df90919063ffffffff16565b8461265290919063ffffffff16565b915061313c565b600090505b612f3e6001856002018054905061265290919063ffffffff16565b81101561305b57612f778460020182815481101515612f5957fe5b906000526020600020015485600001546124f890919063ffffffff16565b4210158015612fc95750612fc684600201612f9c6001846124f890919063ffffffff16565b815481101515612fa857fe5b906000526020600020015485600001546124f890919063ffffffff16565b42105b156130405761303961302a606461301c8760030185815481101515612fea57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16876131a790919063ffffffff16565b6131df90919063ffffffff16565b8461265290919063ffffffff16565b915061313c565b6130546001826124f890919063ffffffff16565b9050612f23565b6130a78460020161307d6001876002018054905061265290919063ffffffff16565b81548110151561308957fe5b906000526020600020015485600001546124f890919063ffffffff16565b4210151561313b576131346131256064613117876003016130d960018a6002018054905061265290919063ffffffff16565b8154811015156130e557fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16876131a790919063ffffffff16565b6131df90919063ffffffff16565b8461265290919063ffffffff16565b915061313c565b5b5092915050565b600081806001019250505b82600101805490508210801561318c5750826001018281548110151561317057fe5b9060005260206000200160000160149054906101000a900460ff165b1561319e57818060010192505061314e565b81905092915050565b6000808314156131ba57600090506131d9565b81830290508183828115156131cb57fe5b041415156131d557fe5b8090505b92915050565b600081838115156131ec57fe5b04905092915050565b60806040519081016040528060008152602001600060ff16815260200160608152602001606081525090565b82805482825590600052602060002090810192821561325d579160200282015b8281111561325c578251825591602001919060010190613241565b5b50905061326a919061338a565b5090565b82805482825590600052602060002090601f016020900481019282156133045791602002820160005b838211156132d557835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613297565b80156133025782816101000a81549060ff02191690556001016020816000010492830192600103026132d5565b505b50905061331191906133af565b5090565b81548183558181111561333c5781836000526020600020918201910161333b91906133df565b5b505050565b508054600082559060005260206000209081019061335f919061338a565b50565b50805460008255601f016020900490600052602060002090810190613387919061338a565b50565b6133ac91905b808211156133a8576000816000905550600101613390565b5090565b90565b6133dc91905b808211156133d857600081816101000a81549060ff0219169055506001016133b5565b5090565b90565b61343691905b8082111561343257600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff0219169055506001016133e5565b5090565b905600a165627a7a7230582062d41bc6689cece853fa5a1e258fe5607a6a2820b74aaed8c61a633b568c7d400029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000cecb8f27f4200f3a00000000000000000000000000000000000000000000000000000000000000000000009596f747461436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035954410000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461012d578063095ea7b3146101bd57806318160ddd146102225780631e89d5451461024d57806323b872dd1461030e578063313ce5671461039357806341c0e1b5146103c457806370a08231146103db5780638f2839701461043257806395d89b411461048d57806399f9b55e1461051d578063a2c8a9271461060b578063a9059cbb14610670578063bf120ae5146106d5578063c49778071461073c578063c878dad914610797578063d54c8a5614610858578063d70907b0146108a5578063d950c4321461090a578063dd62ed3e146109cb578063df21950f14610a42578063e6ad5bc714610a9d575b600080fd5b34801561013957600080fd5b50610142610af4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610182578082015181840152602081019050610167565b50505050905090810190601f1680156101af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c957600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b92565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b50610237610c84565b6040518082815260200191505060405180910390f35b34801561025957600080fd5b506102f46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c8a565b604051808215151515815260200191505060405180910390f35b34801561031a57600080fd5b50610379600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c9565b604051808215151515815260200191505060405180910390f35b34801561039f57600080fd5b506103a861157e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103d057600080fd5b506103d9611591565b005b3480156103e757600080fd5b5061041c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611628565b6040518082815260200191505060405180910390f35b34801561043e57600080fd5b50610473600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611670565b604051808215151515815260200191505060405180910390f35b34801561049957600080fd5b506104a2611939565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104e25780820151818401526020810190506104c7565b50505050905090810190601f16801561050f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052957600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506119d7565b604051808215151515815260200191505060405180910390f35b34801561061757600080fd5b50610656600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a59565b604051808215151515815260200191505060405180910390f35b34801561067c57600080fd5b506106bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ad5565b604051808215151515815260200191505060405180910390f35b3480156106e157600080fd5b50610722600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611aeb565b604051808215151515815260200191505060405180910390f35b34801561074857600080fd5b5061077d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c07565b604051808215151515815260200191505060405180910390f35b3480156107a357600080fd5b5061083e6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611c5d565b604051808215151515815260200191505060405180910390f35b34801561086457600080fd5b506108a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e02565b005b3480156108b157600080fd5b506108f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612114565b604051808215151515815260200191505060405180910390f35b34801561091657600080fd5b506109b1600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061221d565b604051808215151515815260200191505060405180910390f35b3480156109d757600080fd5b50610a2c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123af565b6040518082815260200191505060405180910390f35b348015610a4e57600080fd5b50610a83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612436565b604051808215151515815260200191505060405180910390f35b348015610aa957600080fd5b50610ade600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b6040518082815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b8a5780601f10610b5f57610100808354040283529160200191610b8a565b820191906000526020600020905b815481529060010190602001808311610b6d57829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b600080600080600080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610cec57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442111515610d3957600080fd5b86518851141515610d4957600080fd5b87519450600085111515610d5c57600080fd5b60009350600092505b84831015610db457610d978784815181101515610d7e57fe5b90602001906020020151856124f890919063ffffffff16565b9350610dad6001846124f890919063ffffffff16565b9250610d65565b610e18610dcb33600961251490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b8411151515610e2657600080fd5b600091505b848210156110ba578782815181101515610e4157fe5b906020019060200201519050610e6133600961266b90919063ffffffff16565b8015610e9957508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610ecf57610ecd33828985815181101515610eb157fe5b9060200190602002015160096126bc909392919063ffffffff16565b505b610f378783815181101515610ee057fe5b906020019060200201516000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fe18783815181101515610f8a57fe5b906020019060200201516000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef898581518110151561108057fe5b906020019060200201516040518082815260200191505060405180910390a36110b36001836124f890919063ffffffff16565b9150610e2b565b60019550505050505092915050565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561112457600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544211151561117157600080fd5b6111d561118885600961251490919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b82111515156111e357600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561126e57600080fd5b61128284600961266b90919063ffffffff16565b80156112ba57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156112d9576112d784848460096126bc909392919063ffffffff16565b505b61132a826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113bd826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061148e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116cf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561170b57600080fd5b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506117bf816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001915050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119cf5780601f106119a4576101008083540402835291602001916119cf565b820191906000526020600020905b8154815290600101906020018083116119b257829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a3557600080fd5b611a4f85858585600961286390949392919063ffffffff16565b9050949350505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab757600080fd5b611acd83836009612c4e9092919063ffffffff16565b905092915050565b6000611ae18383611e02565b6001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4957600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ba657600080fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cc157600080fd5b85518751141515611cd157600080fd5b86519350600084111515611ce457600080fd5b600092505b83831015611df4578683815181101515611cff57fe5b906020019060200201519150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d6857600080fd5b8583815181101515611d7657fe5b90602001906020020151905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ded6001846124f890919063ffffffff16565b9250611ce9565b600194505050505092915050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611e5b57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442111515611ea857600080fd5b611ebc33600961251490919063ffffffff16565b611f0d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b10151515611f1a57600080fd5b611f2e33600961266b90919063ffffffff16565b8015611f6657508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611f8557611f8333838360096126bc909392919063ffffffff16565b505b611fd6816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265290919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612069816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561217257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156121cf57600080fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000806000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228157600080fd5b8551875114151561229157600080fd5b865193506000841115156122a457600080fd5b600092505b838310156123a15786838151811015156122bf57fe5b906020019060200201519150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561232857600080fd5b858381518110151561233657fe5b90602001906020020151905080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061239a6001846124f890919063ffffffff16565b92506122a9565b600194505050505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561249457600080fd5b6124a8826009612cb590919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000818301905082811015151561250b57fe5b80905092915050565b600080600080600080935061252887612e0b565b92505b6125358784612e3e565b15612645576125448784612e52565b91508660000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010190506126326126238860000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612e9b90919063ffffffff16565b856124f890919063ffffffff16565b935061263e8784613143565b925061252b565b8394505050505092915050565b600082821115151561266057fe5b818303905092915050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411905092915050565b6000612752828660000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f890919063ffffffff16565b8560000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050949350505050565b60008061286e6131f5565b60008073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156128ab57600080fd5b845186511415156128bb57600080fd5b600086511115156128cb57600080fd5b60008660008151811015156128dc57fe5b906020019060200201511415156128f257600080fd5b84600081518110151561290157fe5b9060200190602002015160ff168760ff161115151561291f57600080fd5b600192505b85518310156129ed57858381518110151561293b57fe5b906020019060200201518661295a60018661265290919063ffffffff16565b81518110151561296657fe5b9060200190602002015110151561297c57600080fd5b848381518110151561298a57fe5b9060200190602002015160ff16856129ac60018661265290919063ffffffff16565b8151811015156129b857fe5b9060200190602002015160ff16111515156129d257600080fd5b6129e66001846124f890919063ffffffff16565b9250612924565b606485612a056001885161265290919063ffffffff16565b815181101515612a1157fe5b9060200190602002015160ff16141515612a2a57600080fd5b608060405190810160405280600081526020018860ff1681526020018781526020018681525091508860000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050818960000160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000820151816000015560208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002019080519060200190612b25929190613221565b506060820151816003019080519060200190612b4292919061326e565b509050506000811115612b585760019350612c42565b886001018054809190600101612b6e9190613315565b9050612b846001826124f890919063ffffffff16565b8960000160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550878960010182815481101515612bde57fe5b9060005260206000200160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508860020160008154809291906001019190505550600093505b50505095945050505050565b60004282111515612c5e57600080fd5b818460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160000181905550600190509392505050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000811415612d115760009150612e04565b8360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000808201600090556001820160006101000a81549060ff0219169055600282016000612d8c9190613341565b600382016000612d9c9190613362565b50505050600184600101612dba60018461265290919063ffffffff16565b815481101515612dc657fe5b9060005260206000200160000160146101000a81548160ff021916908315150217905550836002016000815480929190600190039190505550600191505b5092915050565b6000612e37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613143565b9050919050565b600082600101805490508210905092915050565b60008260010182815481101515612e6557fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000806000831415612eb0576000915061313c565b600084600001541480612ec65750428460000154115b15612f1e57612f17612f086064612efa8760010160009054906101000a900460ff1660ff16876131a790919063ffffffff16565b6131df90919063ffffffff16565b8461265290919063ffffffff16565b915061313c565b600090505b612f3e6001856002018054905061265290919063ffffffff16565b81101561305b57612f778460020182815481101515612f5957fe5b906000526020600020015485600001546124f890919063ffffffff16565b4210158015612fc95750612fc684600201612f9c6001846124f890919063ffffffff16565b815481101515612fa857fe5b906000526020600020015485600001546124f890919063ffffffff16565b42105b156130405761303961302a606461301c8760030185815481101515612fea57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16876131a790919063ffffffff16565b6131df90919063ffffffff16565b8461265290919063ffffffff16565b915061313c565b6130546001826124f890919063ffffffff16565b9050612f23565b6130a78460020161307d6001876002018054905061265290919063ffffffff16565b81548110151561308957fe5b906000526020600020015485600001546124f890919063ffffffff16565b4210151561313b576131346131256064613117876003016130d960018a6002018054905061265290919063ffffffff16565b8154811015156130e557fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff16876131a790919063ffffffff16565b6131df90919063ffffffff16565b8461265290919063ffffffff16565b915061313c565b5b5092915050565b600081806001019250505b82600101805490508210801561318c5750826001018281548110151561317057fe5b9060005260206000200160000160149054906101000a900460ff165b1561319e57818060010192505061314e565b81905092915050565b6000808314156131ba57600090506131d9565b81830290508183828115156131cb57fe5b041415156131d557fe5b8090505b92915050565b600081838115156131ec57fe5b04905092915050565b60806040519081016040528060008152602001600060ff16815260200160608152602001606081525090565b82805482825590600052602060002090810192821561325d579160200282015b8281111561325c578251825591602001919060010190613241565b5b50905061326a919061338a565b5090565b82805482825590600052602060002090601f016020900481019282156133045791602002820160005b838211156132d557835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613297565b80156133025782816101000a81549060ff02191690556001016020816000010492830192600103026132d5565b505b50905061331191906133af565b5090565b81548183558181111561333c5781836000526020600020918201910161333b91906133df565b5b505050565b508054600082559060005260206000209081019061335f919061338a565b50565b50805460008255601f016020900490600052602060002090810190613387919061338a565b50565b6133ac91905b808211156133a8576000816000905550600101613390565b5090565b90565b6133dc91905b808211156133d857600081816101000a81549060ff0219169055506001016133b5565b5090565b90565b61343691905b8082111561343257600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff0219169055506001016133e5565b5090565b905600a165627a7a7230582062d41bc6689cece853fa5a1e258fe5607a6a2820b74aaed8c61a633b568c7d400029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000cecb8f27f4200f3a00000000000000000000000000000000000000000000000000000000000000000000009596f747461436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035954410000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : tokenName (string): YottaCoin
Arg [1] : tokenSymbol (string): YTA
Arg [2] : tokenDecimals (uint8): 18
Arg [3] : totalTokenSupply (uint256): 4000000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 00000000000000000000000000000000000000000cecb8f27f4200f3a0000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 596f747461436f696e0000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5954410000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://62d41bc6689cece853fa5a1e258fe5607a6a2820b74aaed8c61a633b568c7d40

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

OVERVIEW

YottaChain redefines the blockchain storage industry with its unique core technology, enabling blockchain storage to break through and develop into a new pattern, establishing an open platform to play a key role in the development of blockchain storage.

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.