ETH Price: $2,153.56 (+1.23%)

Token

DAVIUM (DC)
 

Overview

Max Total Supply

100,000,000 DC

Holders

766

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,822 DC

Value
$0.00
0x2218F227511F13785f9e1864866ef2BAB9005Ea8
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DAVIUM

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-07-22
*/

pragma solidity ^0.4.25;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {           return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;
    address[] managers; 
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() public {
        owner = msg.sender;
        managers.push(msg.sender); 
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    modifier onlyAdmin(){
        require(msg.sender == owner || msg.sender == managers[0]);
        _; 
    }
    
    modifier onlyManager(){
        require(msg.sender == owner || isManager(msg.sender)); 
        _; 
    }
    
    function isManager( address targetAdd) public view returns(bool){
        for( uint i =0; i< managers.length; i++){
           if( managers[i] == targetAdd){
               return true;
           } 
        }
        return false; 
    }
    
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
     
    function addManager(address mgrAddress) onlyAdmin public{
         for(uint i = 0; i < managers.length; i++){
             if( managers[i] == mgrAddress){
                 revert();
             }
         }
         managers.push(mgrAddress); 
    }
    
    function deleteManager(address mgrAddress) onlyAdmin public {
        bool isExists = false; 
        for(uint i = 1; i < managers.length; i++){
            if(managers[i] == mgrAddress) {
                isExists = true;
            }
            if(isExists && i != managers.length-1){
                managers[i] = managers[i+1]; 
            }
        }
        if( isExists == true){
            delete managers[managers.length-1]; 
            managers.length --; 
        }
    }
    
    function showManagers() onlyManager public view returns(address[]){
            return managers; 
    }
}

contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() onlyAdmin whenNotPaused public {
        paused = true;
        emit Pause();
    }

    function unpause() onlyAdmin whenPaused public {
        paused = false;
        emit Unpause();
    }
}

contract ERC20 {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function allowance(address owner, address spender) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    function transferFrom(address from, address to, uint256 value) public returns (bool);

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract Token is ERC20, Pausable {

    struct sUserInfo {
        uint256 balance;
        bool lock;
        mapping(address => uint256) allowed;
    }
    
    using SafeMath for uint256;

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

    bool public restoreFinished = false;

    mapping(address => sUserInfo) user;

    event Mint(uint256 value);
    event Burn(uint256 value);
    event RestoreFinished();
    
    modifier canRestore() {
        require(!restoreFinished);
        _;
    }
    
    function () public payable {
        revert();
    }
    
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view {
        require(_to != address(this));
        require(_to != address(0));
        require(user[_from].balance >= _value);
        if(_lockCheck) {
            require(user[_from].lock == false);
        }
    }

    function lock(address _owner) public onlyManager returns (bool) {
        require(user[_owner].lock == false);
        user[_owner].lock = true;
        return true;
    }
    function unlock(address _owner) public onlyAdmin returns (bool) {
        require(user[_owner].lock == true);
        user[_owner].lock = false;
       return true;
    }
 
    function burn(address _to, uint256 _value) public onlyOwner returns (bool) {
        require(_value <= user[_to].balance);
        user[_to].balance = user[_to].balance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_value);
        return true;
    }
   
    function distribute(address _to, uint256 _value) public onlyManager returns (bool) {
        validTransfer(msg.sender, _to, _value, false);
       
        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);
       
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(_value > 0);
        user[msg.sender].allowed[_spender] = _value; 
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(_from, _to, _value, true);
        require(_value <=  user[_from].allowed[msg.sender]);

        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        user[_from].allowed[msg.sender] = user[_from].allowed[msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(msg.sender, _to, _value, true);

        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        emit Transfer(msg.sender, _to, _value);
        return true;
    }
    
    function transferRestore(address _from, address _to, uint256 _value) public onlyOwner canRestore returns (bool) {
        validTransfer(_from, _to, _value, false);
       
        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);
       
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function finishRestore() public onlyOwner returns (bool) {
        restoreFinished = true;
        emit RestoreFinished();
        return true;
    }
    
    
    function totalSupply() public view returns (uint256) {
        return totalSupply;
    }
    function balanceOf(address _owner) public view returns (uint256) {
        return user[_owner].balance;
    }
    function lockState(address _owner) public view returns (bool) {
        return user[_owner].lock;
    }
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return user[_owner].allowed[_spender];
    }
    
}

contract LockBalance is Ownable {
    
    enum eLockType {None, Individual, GroupA, GroupB, GroupC, GroupD}
    struct sGroupLockDate {
        uint256[] lockTime;
        uint256[] lockPercent;
    }
    struct sLockInfo {
        uint256[] lockType;
        uint256[] lockBalanceStandard;
        uint256[] startTime;
        uint256[] endTime;
    }
    
    using SafeMath for uint256;

    mapping(uint => sGroupLockDate) groupLockDate;
    
    mapping(address => sLockInfo) lockUser;

    event Lock(address indexed from, uint256 value, uint256 endTime);
    
    function setLockUser(address _to, eLockType _lockType, uint256 _value, uint256 _endTime) internal {
        lockUser[_to].lockType.push(uint256(_lockType));
        lockUser[_to].lockBalanceStandard.push(_value);
        lockUser[_to].startTime.push(now);
        lockUser[_to].endTime.push(_endTime);

        emit Lock(_to, _value, _endTime);
    }

    function lockBalanceGroup(address _owner, uint _index) internal view returns (uint256) {
        uint256 percent = 0;
        uint256 key = uint256(lockUser[_owner].lockType[_index]);

        uint256 time = 99999999999;
        for(uint256 i = 0 ; i < groupLockDate[key].lockTime.length; i++) {
            if(now < groupLockDate[key].lockTime[i]) {
                if(groupLockDate[key].lockTime[i] < time) {
                    time = groupLockDate[key].lockTime[i];
                    percent = groupLockDate[key].lockPercent[i];    
                }
            }
        }
        
        if(percent == 0){
            return 0;
        } else {
            return lockUser[_owner].lockBalanceStandard[_index].div(100).mul(uint256(percent));
        }
    }

    function lockBalanceIndividual(address _owner, uint _index) internal view returns (uint256) {
        if(now < lockUser[_owner].endTime[_index]) {
            return lockUser[_owner].lockBalanceStandard[_index];
        } else {
            return 0;
        }
    }
    
    function clearLockUser(address _owner, uint _index) onlyAdmin public {
        require(lockUser[_owner].endTime.length >_index);
        lockUser[_owner].endTime[_index] = 0;
    }
        
    function addLockDate(eLockType _lockType, uint256 _second, uint256 _percent) onlyManager public {
        sGroupLockDate storage lockInfo = groupLockDate[uint256(_lockType)];
        bool isExists = false;
        for(uint256 i = 0; i < lockInfo.lockTime.length; i++) {
            if(lockInfo.lockTime[i] == _second) {
                revert();
                break;
            }
        }
        
        if(isExists) {
           revert();
        } else {
            lockInfo.lockTime.push(_second);
            lockInfo.lockPercent.push(_percent);
        }
    }
    
    function deleteLockDate(eLockType _lockType, uint256 _lockTime) onlyAdmin public {
        sGroupLockDate storage lockDate = groupLockDate[uint256(_lockType)];
        
        bool isExists = false;
        uint256 index = 0;
        for(uint256 i = 0; i < lockDate.lockTime.length; i++) {
            if(lockDate.lockTime[i] == _lockTime) {
                isExists = true;
                index = i;
                break;
            }
        }
        
        if(isExists) {
            for(uint256 k = index; k < lockDate.lockTime.length - 1; k++){
                lockDate.lockTime[k] = lockDate.lockTime[k + 1];
                lockDate.lockPercent[k] = lockDate.lockPercent[k + 1];
            }
            delete lockDate.lockTime[lockDate.lockTime.length - 1];
            lockDate.lockTime.length--;
            delete lockDate.lockPercent[lockDate.lockPercent.length - 1];
            lockDate.lockPercent.length--;
        } else {
            revert();
        }
        
    }


    function lockTypeInfoGroup(eLockType _type) public view returns (uint256[], uint256[]) {
        uint256 key = uint256(_type);
        return (groupLockDate[key].lockTime, groupLockDate[key].lockPercent);
    }
    
    function lockUserInfo(address _owner) public view returns (uint256[], uint256[], uint256[], uint256[], uint256[]) {
        
        uint256[] memory balance = new uint256[](lockUser[_owner].lockType.length);
        for(uint256 i = 0; i < lockUser[_owner].lockType.length; i++){
            if(lockUser[_owner].lockType[i] == uint256(eLockType.Individual)) {
                balance[i] = balance[i].add(lockBalanceIndividual(_owner, i));
            } else if(lockUser[_owner].lockType[i] != uint256(eLockType.None)) {
                balance[i] = balance[i].add(lockBalanceGroup(_owner, i));
            }
        }
        
        return (lockUser[_owner].lockType,
        lockUser[_owner].lockBalanceStandard,
        balance,
        lockUser[_owner].startTime,
        lockUser[_owner].endTime);
    }
    
    function lockBalanceAll(address _owner) public view returns (uint256) {
        uint256 lockBalance = 0;
        for(uint256 i = 0; i < lockUser[_owner].lockType.length; i++){
            if(lockUser[_owner].lockType[i] == uint256(eLockType.Individual)) {
                lockBalance = lockBalance.add(lockBalanceIndividual(_owner, i));
            } else if(lockUser[_owner].lockType[i] != uint256(eLockType.None)) {
                lockBalance = lockBalance.add(lockBalanceGroup(_owner, i));
            }
        }
        return lockBalance;
    }
    
}

contract DAVIUM is Token, LockBalance {

    constructor() public {
        name = "DAVIUM";
        symbol = "DC";
        decimals = 18;
        uint256 initialSupply = 100000000;
        totalSupply = initialSupply * 10 ** uint(decimals);
        user[owner].balance = totalSupply;
        emit Transfer(address(0), owner, totalSupply);
    }

    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view {
        super.validTransfer(_from, _to, _value, _lockCheck);
        if(_lockCheck) {
            require(_value <= useBalanceOf(_from));
        }
    }

    function setLockUsers(eLockType _type, address[] _to, uint256[] _value, uint256[] _endTime) onlyManager public {  
        require(_to.length > 0);
        require(_to.length == _value.length);
        require(_to.length == _endTime.length);
        require(_type != eLockType.None);
        
        for(uint256 i = 0; i < _to.length; i++){
            require(_value[i] <= useBalanceOf(_to[i]));
            setLockUser(_to[i], _type, _value[i], _endTime[i]);
        }
    }
    
    function distributeLock(address _to, uint256 _value,eLockType _type, uint256 _lockVal, uint256 _endTime ) public onlyManager returns (bool) {
        distribute( _to, _value); 
        setLockUser( _to, _type, _lockVal, _endTime); 
        return true; 
    }
    
    function useBalanceOf(address _owner) public view returns (uint256) {
        return balanceOf(_owner).sub(lockBalanceAll(_owner));
    }
    
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockBalanceAll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"restoreFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_lockType","type":"uint8"},{"name":"_lockTime","type":"uint256"}],"name":"deleteLockDate","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"mgrAddress","type":"address"}],"name":"addManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"unlock","outputs":[{"name":"","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":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"useBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"}],"name":"lockTypeInfoGroup","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"mgrAddress","type":"address"}],"name":"deleteManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_to","type":"address[]"},{"name":"_value","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"setLockUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_lockType","type":"uint8"},{"name":"_second","type":"uint256"},{"name":"_percent","type":"uint256"}],"name":"addLockDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"clearLockUser","outputs":[],"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":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_type","type":"uint8"},{"name":"_lockVal","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"distributeLock","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"targetAdd","type":"address"}],"name":"isManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"showManagers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"RestoreFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526000600260006101000a81548160ff0219169083151502179055506000600760006101000a81548160ff0219169083151502179055503480156200004757600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506040805190810160405280600681526020017f44415649554d0000000000000000000000000000000000000000000000000000815250600390805190602001906200013d929190620002a3565b506040805190810160405280600281526020017f4443000000000000000000000000000000000000000000000000000000000000815250600490805190602001906200018b929190620002a3565b5060126005819055506305f5e1009050600554600a0a8102600681905550600654600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a35062000352565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002e657805160ff191683800117855562000317565b8280016001018555821562000317579182015b8281111562000316578251825591602001919060010190620002f9565b5b5090506200032691906200032a565b5090565b6200034f91905b808211156200034b57600081600090555060010162000331565b5090565b90565b61424880620003626000396000f3006080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f146101bc57806305c7400a1461021357806306fdde03146102425780630789a313146102d2578063095ea7b31461030c57806318160ddd1461037157806323b872dd1461039c5780632d06177a146104215780632f6c493c14610464578063313ce567146104bf5780633f4ba83a146104ea5780634149953d146105015780635c975abb1461058657806369132d43146105b557806370a082311461060c5780638456cb59146106635780638da5cb5b1461067a5780638e283334146106d157806390e99b091461079e57806394dbc70e146107cd57806395d89b411461082857806396799760146108b85780639846d9de146108fb5780639a713d05146109f45780639dc29fac14610a38578063a26a1bc914610a9d578063a9059cbb14610aea578063ac1a717514610b4f578063acf5c9f114610d07578063dd62ed3e14610d8d578063f2fde38b14610e04578063f3ae241514610e47578063f435f5a714610ea2578063f852410814610efd578063fb93210814610f69575b600080fd5b3480156101c857600080fd5b506101fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fce565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b5061022861115d565b604051808215151515815260200191505060405180910390f35b34801561024e57600080fd5b50610257611170565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561029757808201518184015260208101905061027c565b50505050905090810190601f1680156102c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102de57600080fd5b5061030a600480360381019080803560ff1690602001909291908035906020019092919050505061120e565b005b34801561031857600080fd5b50610357600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611493565b604051808215151515815260200191505060405180910390f35b34801561037d57600080fd5b506103866115b3565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bd565b604051808215151515815260200191505060405180910390f35b34801561042d57600080fd5b50610462600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611931565b005b34801561047057600080fd5b506104a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b604051808215151515815260200191505060405180910390f35b3480156104cb57600080fd5b506104d4611c8c565b6040518082815260200191505060405180910390f35b3480156104f657600080fd5b506104ff611c92565b005b34801561050d57600080fd5b5061056c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc1565b604051808215151515815260200191505060405180910390f35b34801561059257600080fd5b5061059b611fed565b604051808215151515815260200191505060405180910390f35b3480156105c157600080fd5b506105f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612000565b6040518082815260200191505060405180910390f35b34801561061857600080fd5b5061064d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061202c565b6040518082815260200191505060405180910390f35b34801561066f57600080fd5b50610678612078565b005b34801561068657600080fd5b5061068f6121a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106dd57600080fd5b506106ff600480360381019080803560ff1690602001909291905050506121cd565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561074657808201518184015260208101905061072b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561078857808201518184015260208101905061076d565b5050505090500194505050505060405180910390f35b3480156107aa57600080fd5b506107b36122ba565b604051808215151515815260200191505060405180910390f35b3480156107d957600080fd5b5061080e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612365565b604051808215151515815260200191505060405180910390f35b34801561083457600080fd5b5061083d6123be565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087d578082015181840152602081019050610862565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c457600080fd5b506108f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061245c565b005b34801561090757600080fd5b506109f2600480360381019080803560ff1690602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126d7565b005b348015610a0057600080fd5b50610a36600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190505050612852565b005b348015610a4457600080fd5b50610a83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061299e565b604051808215151515815260200191505060405180910390f35b348015610aa957600080fd5b50610ae8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b43565b005b348015610af657600080fd5b50610b35600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cc4565b604051808215151515815260200191505060405180910390f35b348015610b5b57600080fd5b50610b90600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e94565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610be3578082015181840152602081019050610bc8565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610c25578082015181840152602081019050610c0a565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610c67578082015181840152602081019050610c4c565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610ca9578082015181840152602081019050610c8e565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610ceb578082015181840152602081019050610cd0565b505050509050019a505050505050505050505060405180910390f35b348015610d1357600080fd5b50610d73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061335b565b604051808215151515815260200191505060405180910390f35b348015610d9957600080fd5b50610dee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ec565b6040518082815260200191505060405180910390f35b348015610e1057600080fd5b50610e45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613476565b005b348015610e5357600080fd5b50610e88600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135cb565b604051808215151515815260200191505060405180910390f35b348015610eae57600080fd5b50610ee3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061366e565b604051808215151515815260200191505060405180910390f35b348015610f0957600080fd5b50610f126137a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f55578082015181840152602081019050610f3a565b505050509050019250505060405180910390f35b348015610f7557600080fd5b50610fb4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061389a565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015611153576001600581111561103557fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561108457fe5b906000526020600020015414156110b8576110b16110a28583613ab9565b83613b8890919063ffffffff16565b9150611146565b600060058111156110c557fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561111457fe5b9060005260206000200154141515611145576111426111338583613ba6565b83613b8890919063ffffffff16565b91505b5b8080600101915050610fdb565b8192505050919050565b600760009054906101000a900460ff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112065780601f106111db57610100808354040283529160200191611206565b820191906000526020600020905b8154815290600101906020018083116111e957829003601f168201915b505050505081565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112d657506001600081548110151561127c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156112e157600080fd5b600960008860058111156112f157fe5b815260200190815260200160002094506000935060009250600091505b84600001805490508210156113595785856000018381548110151561132f57fe5b9060005260206000200154141561134c5760019350819250611359565b818060010192505061130e565b8315611485578290505b60018560000180549050038110156113fe57846000016001820181548110151561138957fe5b906000526020600020015485600001828154811015156113a557fe5b906000526020600020018190555084600101600182018154811015156113c757fe5b906000526020600020015485600101828154811015156113e357fe5b90600052602060002001819055508080600101915050611363565b84600001600186600001805490500381548110151561141957fe5b90600052602060002001600090558460000180548091906001900361143e919061419f565b5084600101600186600101805490500381548110151561145a57fe5b90600052602060002001600090558460010180548091906001900361147f919061419f565b5061148a565b600080fd5b50505050505050565b6000600260009054906101000a900460ff161515156114b157600080fd5b6000821115156114c057600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b6000600260009054906101000a900460ff161515156115db57600080fd5b6115e88484846001613db2565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561167657600080fd5b6116cb82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061176682600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061183e82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119f357506001600081548110151561199957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156119fe57600080fd5b600090505b600180549050811015611a8f578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a3657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a8257600080fd5b8080600101915050611a03565b60018290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611bbb575060016000815481101515611b6157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611bc657600080fd5b60011515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515611c2857600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d52575060016000815481101515611cf857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611d5d57600080fd5b600260009054906101000a900460ff161515611d7857600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1e57600080fd5b600760009054906101000a900460ff16151515611e3a57600080fd5b611e478484846000613db2565b611e9c82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611f3782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b600061202561200e83610fce565b6120178461202c565b613de290919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121385750600160008154811015156120de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561214357600080fd5b600260009054906101000a900460ff1615151561215f57600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60608060008360058111156121de57fe5b905060096000828152602001908152602001600020600001600960008381526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561225757602002820191906000526020600020905b815481526020019060010190808311612243575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156122a957602002820191906000526020600020905b815481526020019060010190808311612295575b505050505090509250925050915091565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561231757600080fd5b6001600760006101000a81548160ff0219169083151502179055507f7187cbcbda53f626dba64b95bb4562770cbe3f2026eebce9d93b79a169f8460c60405160405180910390a16001905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124545780601f1061242957610100808354040283529160200191612454565b820191906000526020600020905b81548152906001019060200180831161243757829003601f168201915b505050505081565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061251f5750600160008154811015156124c557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561252a57600080fd5b60009150600190505b60018054905081101561266c578273ffffffffffffffffffffffffffffffffffffffff1660018281548110151561256657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156125b257600191505b8180156125c6575060018080549050038114155b1561265f5760018082018154811015156125dc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561261657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8080600101915050612533565b6001151582151514156126d25760018080805490500381548110151561268e57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018054809190600190036126d091906141cb565b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806127395750612738336135cb565b5b151561274457600080fd5b6000845111151561275457600080fd5b8251845114151561276457600080fd5b8151845114151561277457600080fd5b6000600581111561278157fe5b85600581111561278d57fe5b1415151561279a57600080fd5b600090505b835181101561284b576127c884828151811015156127b957fe5b90602001906020020151612000565b83828151811015156127d657fe5b90602001906020020151111515156127ed57600080fd5b61283e84828151811015156127fe57fe5b9060200190602002015186858481518110151561281757fe5b90602001906020020151858581518110151561282f57fe5b90602001906020020151613dfb565b808060010191505061279f565b5050505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128b757506128b6336135cb565b5b15156128c257600080fd5b600960008760058111156128d257fe5b8152602001908152602001600020925060009150600090505b826000018054905081101561292f5784836000018281548110151561290c57fe5b9060005260206000200154141561292257600080fd5b80806001019150506128eb565b811561293a57600080fd5b8260000185908060018154018082558091505090600182039060005260206000200160009091929091909150555082600101849080600181540180825580915050906001820390600052602060002001600090919290919091505550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129fb57600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515612a4c57600080fd5b612aa182600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612afc82600654613de290919063ffffffff16565b6006819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c03575060016000815481101515612ba957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612c0e57600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030180549050111515612c6157600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030182815481101515612cb257fe5b90600052602060002001819055505050565b6000600260009054906101000a900460ff16151515612ce257600080fd5b612cef3384846001613db2565b612d4482600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612ddf82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050604051908082528060200260200182016040528015612f135781602001602082028038833980820191505090505b509150600090505b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490508110156130f55760016005811115612f7557fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515612fc457fe5b9060005260206000200154141561302957613008612fe28983613ab9565b8383815181101515612ff057fe5b90602001906020020151613b8890919063ffffffff16565b828281518110151561301657fe5b90602001906020020181815250506130e8565b6000600581111561303657fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561308557fe5b90600052602060002001541415156130e7576130ca6130a48983613ba6565b83838151811015156130b257fe5b90602001906020020151613b8890919063ffffffff16565b82828151811015156130d857fe5b90602001906020020181815250505b5b8080600101915050612f1b565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018480548060200260200160405190810160405280929190818152602001828054801561324957602002820191906000526020600020905b815481526020019060010190808311613235575b505050505094508380548060200260200160405190810160405280929190818152602001828054801561329b57602002820191906000526020600020905b815481526020019060010190808311613287575b50505050509350818054806020026020016040519081016040528092919081815260200182805480156132ed57602002820191906000526020600020905b8154815260200190600101908083116132d9575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561333f57602002820191906000526020600020905b81548152602001906001019080831161332b575b5050505050905096509650965096509650505091939590929450565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133bd57506133bc336135cb565b5b15156133c857600080fd5b6133d2868661389a565b506133df86858585613dfb565b6001905095945050505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134d157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561350d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090505b600180549050811015613663578273ffffffffffffffffffffffffffffffffffffffff1660018281548110151561360657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156136565760019150613668565b80806001019150506135d3565b600091505b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806136d057506136cf336135cb565b5b15156136db57600080fd5b60001515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561373d57600080fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138035750613802336135cb565b5b151561380e57600080fd5b600180548060200260200160405190810160405280929190818152602001828054801561389057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613846575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138fc57506138fb336135cb565b5b151561390757600080fd5b6139143384846000613db2565b61396982600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613a0482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030182815481101515613b0a57fe5b9060005260206000200154421015613b7d57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515613b6b57fe5b90600052602060002001549050613b82565b600090505b92915050565b6000808284019050838110151515613b9c57fe5b8091505092915050565b6000806000806000809350600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000186815481101515613c0057fe5b9060005260206000200154925064174876e7ff9150600090505b6009600084815260200190815260200160002060000180549050811015613d14576009600084815260200190815260200160002060000181815481101515613c5e57fe5b9060005260206000200154421015613d0757816009600085815260200190815260200160002060000182815481101515613c9457fe5b90600052602060002001541015613d06576009600084815260200190815260200160002060000181815481101515613cc857fe5b906000526020600020015491506009600084815260200190815260200160002060010181815481101515613cf857fe5b906000526020600020015493505b5b8080600101915050613c1a565b6000841415613d265760009450613da8565b613da584613d976064600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613d7e57fe5b906000526020600020015461401290919063ffffffff16565b61402d90919063ffffffff16565b94505b5050505092915050565b613dbe84848484614068565b8015613ddc57613dcd84612000565b8211151515613ddb57600080fd5b5b50505050565b6000828211151515613df057fe5b818303905092915050565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001836005811115613e4957fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b600080828481151561402057fe5b0490508091505092915050565b60008060008414156140425760009150614061565b828402905082848281151561405357fe5b0414151561405d57fe5b8091505b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156140a357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156140df57600080fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561413057600080fd5b80156141995760001515600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561419857600080fd5b5b50505050565b8154818355818111156141c6578183600052602060002091820191016141c591906141f7565b5b505050565b8154818355818111156141f2578183600052602060002091820191016141f191906141f7565b5b505050565b61421991905b808211156142155760008160009055506001016141fd565b5090565b905600a165627a7a7230582065e37a153342e75fa7bfb75d2d7bf9c7ec1711f10bebb082b55ba19a52f6d9b30029

Deployed Bytecode

0x6080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f146101bc57806305c7400a1461021357806306fdde03146102425780630789a313146102d2578063095ea7b31461030c57806318160ddd1461037157806323b872dd1461039c5780632d06177a146104215780632f6c493c14610464578063313ce567146104bf5780633f4ba83a146104ea5780634149953d146105015780635c975abb1461058657806369132d43146105b557806370a082311461060c5780638456cb59146106635780638da5cb5b1461067a5780638e283334146106d157806390e99b091461079e57806394dbc70e146107cd57806395d89b411461082857806396799760146108b85780639846d9de146108fb5780639a713d05146109f45780639dc29fac14610a38578063a26a1bc914610a9d578063a9059cbb14610aea578063ac1a717514610b4f578063acf5c9f114610d07578063dd62ed3e14610d8d578063f2fde38b14610e04578063f3ae241514610e47578063f435f5a714610ea2578063f852410814610efd578063fb93210814610f69575b600080fd5b3480156101c857600080fd5b506101fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fce565b6040518082815260200191505060405180910390f35b34801561021f57600080fd5b5061022861115d565b604051808215151515815260200191505060405180910390f35b34801561024e57600080fd5b50610257611170565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561029757808201518184015260208101905061027c565b50505050905090810190601f1680156102c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102de57600080fd5b5061030a600480360381019080803560ff1690602001909291908035906020019092919050505061120e565b005b34801561031857600080fd5b50610357600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611493565b604051808215151515815260200191505060405180910390f35b34801561037d57600080fd5b506103866115b3565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bd565b604051808215151515815260200191505060405180910390f35b34801561042d57600080fd5b50610462600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611931565b005b34801561047057600080fd5b506104a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b604051808215151515815260200191505060405180910390f35b3480156104cb57600080fd5b506104d4611c8c565b6040518082815260200191505060405180910390f35b3480156104f657600080fd5b506104ff611c92565b005b34801561050d57600080fd5b5061056c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc1565b604051808215151515815260200191505060405180910390f35b34801561059257600080fd5b5061059b611fed565b604051808215151515815260200191505060405180910390f35b3480156105c157600080fd5b506105f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612000565b6040518082815260200191505060405180910390f35b34801561061857600080fd5b5061064d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061202c565b6040518082815260200191505060405180910390f35b34801561066f57600080fd5b50610678612078565b005b34801561068657600080fd5b5061068f6121a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106dd57600080fd5b506106ff600480360381019080803560ff1690602001909291905050506121cd565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561074657808201518184015260208101905061072b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561078857808201518184015260208101905061076d565b5050505090500194505050505060405180910390f35b3480156107aa57600080fd5b506107b36122ba565b604051808215151515815260200191505060405180910390f35b3480156107d957600080fd5b5061080e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612365565b604051808215151515815260200191505060405180910390f35b34801561083457600080fd5b5061083d6123be565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087d578082015181840152602081019050610862565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108c457600080fd5b506108f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061245c565b005b34801561090757600080fd5b506109f2600480360381019080803560ff1690602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126d7565b005b348015610a0057600080fd5b50610a36600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190505050612852565b005b348015610a4457600080fd5b50610a83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061299e565b604051808215151515815260200191505060405180910390f35b348015610aa957600080fd5b50610ae8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b43565b005b348015610af657600080fd5b50610b35600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cc4565b604051808215151515815260200191505060405180910390f35b348015610b5b57600080fd5b50610b90600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e94565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610be3578082015181840152602081019050610bc8565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610c25578082015181840152602081019050610c0a565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610c67578082015181840152602081019050610c4c565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610ca9578082015181840152602081019050610c8e565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610ceb578082015181840152602081019050610cd0565b505050509050019a505050505050505050505060405180910390f35b348015610d1357600080fd5b50610d73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061335b565b604051808215151515815260200191505060405180910390f35b348015610d9957600080fd5b50610dee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ec565b6040518082815260200191505060405180910390f35b348015610e1057600080fd5b50610e45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613476565b005b348015610e5357600080fd5b50610e88600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135cb565b604051808215151515815260200191505060405180910390f35b348015610eae57600080fd5b50610ee3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061366e565b604051808215151515815260200191505060405180910390f35b348015610f0957600080fd5b50610f126137a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610f55578082015181840152602081019050610f3a565b505050509050019250505060405180910390f35b348015610f7557600080fd5b50610fb4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061389a565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015611153576001600581111561103557fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561108457fe5b906000526020600020015414156110b8576110b16110a28583613ab9565b83613b8890919063ffffffff16565b9150611146565b600060058111156110c557fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561111457fe5b9060005260206000200154141515611145576111426111338583613ba6565b83613b8890919063ffffffff16565b91505b5b8080600101915050610fdb565b8192505050919050565b600760009054906101000a900460ff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112065780601f106111db57610100808354040283529160200191611206565b820191906000526020600020905b8154815290600101906020018083116111e957829003601f168201915b505050505081565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112d657506001600081548110151561127c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156112e157600080fd5b600960008860058111156112f157fe5b815260200190815260200160002094506000935060009250600091505b84600001805490508210156113595785856000018381548110151561132f57fe5b9060005260206000200154141561134c5760019350819250611359565b818060010192505061130e565b8315611485578290505b60018560000180549050038110156113fe57846000016001820181548110151561138957fe5b906000526020600020015485600001828154811015156113a557fe5b906000526020600020018190555084600101600182018154811015156113c757fe5b906000526020600020015485600101828154811015156113e357fe5b90600052602060002001819055508080600101915050611363565b84600001600186600001805490500381548110151561141957fe5b90600052602060002001600090558460000180548091906001900361143e919061419f565b5084600101600186600101805490500381548110151561145a57fe5b90600052602060002001600090558460010180548091906001900361147f919061419f565b5061148a565b600080fd5b50505050505050565b6000600260009054906101000a900460ff161515156114b157600080fd5b6000821115156114c057600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b6000600260009054906101000a900460ff161515156115db57600080fd5b6115e88484846001613db2565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561167657600080fd5b6116cb82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061176682600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061183e82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119f357506001600081548110151561199957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156119fe57600080fd5b600090505b600180549050811015611a8f578173ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a3657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a8257600080fd5b8080600101915050611a03565b60018290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611bbb575060016000815481101515611b6157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611bc657600080fd5b60011515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515611c2857600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611d52575060016000815481101515611cf857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611d5d57600080fd5b600260009054906101000a900460ff161515611d7857600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1e57600080fd5b600760009054906101000a900460ff16151515611e3a57600080fd5b611e478484846000613db2565b611e9c82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611f3782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600260009054906101000a900460ff1681565b600061202561200e83610fce565b6120178461202c565b613de290919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121385750600160008154811015156120de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561214357600080fd5b600260009054906101000a900460ff1615151561215f57600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60608060008360058111156121de57fe5b905060096000828152602001908152602001600020600001600960008381526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561225757602002820191906000526020600020905b815481526020019060010190808311612243575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156122a957602002820191906000526020600020905b815481526020019060010190808311612295575b505050505090509250925050915091565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561231757600080fd5b6001600760006101000a81548160ff0219169083151502179055507f7187cbcbda53f626dba64b95bb4562770cbe3f2026eebce9d93b79a169f8460c60405160405180910390a16001905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124545780601f1061242957610100808354040283529160200191612454565b820191906000526020600020905b81548152906001019060200180831161243757829003601f168201915b505050505081565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061251f5750600160008154811015156124c557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561252a57600080fd5b60009150600190505b60018054905081101561266c578273ffffffffffffffffffffffffffffffffffffffff1660018281548110151561256657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156125b257600191505b8180156125c6575060018080549050038114155b1561265f5760018082018154811015156125dc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561261657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8080600101915050612533565b6001151582151514156126d25760018080805490500381548110151561268e57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018054809190600190036126d091906141cb565b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806127395750612738336135cb565b5b151561274457600080fd5b6000845111151561275457600080fd5b8251845114151561276457600080fd5b8151845114151561277457600080fd5b6000600581111561278157fe5b85600581111561278d57fe5b1415151561279a57600080fd5b600090505b835181101561284b576127c884828151811015156127b957fe5b90602001906020020151612000565b83828151811015156127d657fe5b90602001906020020151111515156127ed57600080fd5b61283e84828151811015156127fe57fe5b9060200190602002015186858481518110151561281757fe5b90602001906020020151858581518110151561282f57fe5b90602001906020020151613dfb565b808060010191505061279f565b5050505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128b757506128b6336135cb565b5b15156128c257600080fd5b600960008760058111156128d257fe5b8152602001908152602001600020925060009150600090505b826000018054905081101561292f5784836000018281548110151561290c57fe5b9060005260206000200154141561292257600080fd5b80806001019150506128eb565b811561293a57600080fd5b8260000185908060018154018082558091505090600182039060005260206000200160009091929091909150555082600101849080600181540180825580915050906001820390600052602060002001600090919290919091505550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129fb57600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515612a4c57600080fd5b612aa182600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612afc82600654613de290919063ffffffff16565b6006819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c03575060016000815481101515612ba957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612c0e57600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030180549050111515612c6157600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030182815481101515612cb257fe5b90600052602060002001819055505050565b6000600260009054906101000a900460ff16151515612ce257600080fd5b612cef3384846001613db2565b612d4482600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612ddf82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050604051908082528060200260200182016040528015612f135781602001602082028038833980820191505090505b509150600090505b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490508110156130f55760016005811115612f7557fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515612fc457fe5b9060005260206000200154141561302957613008612fe28983613ab9565b8383815181101515612ff057fe5b90602001906020020151613b8890919063ffffffff16565b828281518110151561301657fe5b90602001906020020181815250506130e8565b6000600581111561303657fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561308557fe5b90600052602060002001541415156130e7576130ca6130a48983613ba6565b83838151811015156130b257fe5b90602001906020020151613b8890919063ffffffff16565b82828151811015156130d857fe5b90602001906020020181815250505b5b8080600101915050612f1b565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018480548060200260200160405190810160405280929190818152602001828054801561324957602002820191906000526020600020905b815481526020019060010190808311613235575b505050505094508380548060200260200160405190810160405280929190818152602001828054801561329b57602002820191906000526020600020905b815481526020019060010190808311613287575b50505050509350818054806020026020016040519081016040528092919081815260200182805480156132ed57602002820191906000526020600020905b8154815260200190600101908083116132d9575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561333f57602002820191906000526020600020905b81548152602001906001019080831161332b575b5050505050905096509650965096509650505091939590929450565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133bd57506133bc336135cb565b5b15156133c857600080fd5b6133d2868661389a565b506133df86858585613dfb565b6001905095945050505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134d157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561350d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090505b600180549050811015613663578273ffffffffffffffffffffffffffffffffffffffff1660018281548110151561360657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156136565760019150613668565b80806001019150506135d3565b600091505b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806136d057506136cf336135cb565b5b15156136db57600080fd5b60001515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561373d57600080fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138035750613802336135cb565b5b151561380e57600080fd5b600180548060200260200160405190810160405280929190818152602001828054801561389057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613846575b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138fc57506138fb336135cb565b5b151561390757600080fd5b6139143384846000613db2565b61396982600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613de290919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613a0482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613b8890919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030182815481101515613b0a57fe5b9060005260206000200154421015613b7d57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515613b6b57fe5b90600052602060002001549050613b82565b600090505b92915050565b6000808284019050838110151515613b9c57fe5b8091505092915050565b6000806000806000809350600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000186815481101515613c0057fe5b9060005260206000200154925064174876e7ff9150600090505b6009600084815260200190815260200160002060000180549050811015613d14576009600084815260200190815260200160002060000181815481101515613c5e57fe5b9060005260206000200154421015613d0757816009600085815260200190815260200160002060000182815481101515613c9457fe5b90600052602060002001541015613d06576009600084815260200190815260200160002060000181815481101515613cc857fe5b906000526020600020015491506009600084815260200190815260200160002060010181815481101515613cf857fe5b906000526020600020015493505b5b8080600101915050613c1a565b6000841415613d265760009450613da8565b613da584613d976064600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613d7e57fe5b906000526020600020015461401290919063ffffffff16565b61402d90919063ffffffff16565b94505b5050505092915050565b613dbe84848484614068565b8015613ddc57613dcd84612000565b8211151515613ddb57600080fd5b5b50505050565b6000828211151515613df057fe5b818303905092915050565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001836005811115613e4957fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b600080828481151561402057fe5b0490508091505092915050565b60008060008414156140425760009150614061565b828402905082848281151561405357fe5b0414151561405d57fe5b8091505b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156140a357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156140df57600080fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561413057600080fd5b80156141995760001515600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561419857600080fd5b5b50505050565b8154818355818111156141c6578183600052602060002091820191016141c591906141f7565b5b505050565b8154818355818111156141f2578183600052602060002091820191016141f191906141f7565b5b505050565b61421991905b808211156142155760008160009055506001016141fd565b5090565b905600a165627a7a7230582065e37a153342e75fa7bfb75d2d7bf9c7ec1711f10bebb082b55ba19a52f6d9b30029

Deployed Bytecode Sourcemap

13503:1551:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4423:8;;;12929:561;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12929:561:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4108:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4108:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3991:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3991:18: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;3991:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10836:1021;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10836:1021:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5818:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5818:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7525:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7525:90:0;;;;;;;;;;;;;;;;;;;;;;;6080:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6080:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1755:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4958:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4958:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4043:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4043:23:0;;;;;;;;;;;;;;;;;;;;;;;3030:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:105:0;;;;;;6963:379;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6963:379:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2728:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2728:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14906:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14906:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7621:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7621:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2919:103:0;;;;;;698:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;698:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11867:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11867:213: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;11867:213: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;11867:213:0;;;;;;;;;;;;;;;;;;;7354:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7354:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7738:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7738:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4016:20: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;4016:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2024:500;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2024:500:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14132:487;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14132:487:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10236:588;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10236:588:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5141:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5141:288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10037:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10037:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6596:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6596:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12092:825;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12092:825: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;12092:825: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;12092:825: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;12092:825: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;12092:825: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;12092:825:0;;;;;;;;;;;;;;;;;;;;;;;;;14631:263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14631:263:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7849:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7849:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1550:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1550:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1293:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4777:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4777:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:105: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;2536:105:0;;;;;;;;;;;;;;;;;5440:370;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5440:370:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12929:561;12990:7;13010:19;13048:9;13032:1;13010:23;;13060:1;13048:13;;13044:410;13067:8;:16;13076:6;13067:16;;;;;;;;;;;;;;;:25;;:32;;;;13063:1;:36;13044:410;;;13163:20;13155:29;;;;;;;;13123:8;:16;13132:6;13123:16;;;;;;;;;;;;;;;:25;;13149:1;13123:28;;;;;;;;;;;;;;;;;;:61;13120:323;;;13219:49;13235:32;13257:6;13265:1;13235:21;:32::i;:::-;13219:11;:15;;:49;;;;:::i;:::-;13205:63;;13120:323;;;13333:14;13325:23;;;;;;;;13293:8;:16;13302:6;13293:16;;;;;;;;;;;;;;;:25;;13319:1;13293:28;;;;;;;;;;;;;;;;;;:55;;13290:153;;;13383:44;13399:27;13416:6;13424:1;13399:16;:27::i;:::-;13383:11;:15;;:44;;;;:::i;:::-;13369:58;;13290:153;13120:323;13101:3;;;;;;;13044:410;;;13471:11;13464:18;;12929:561;;;;;:::o;4108:35::-;;;;;;;;;;;;;:::o;3991:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10836:1021::-;10928:31;11016:13;11048;11080:9;11348;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;10962:13;:33;10984:9;10976:18;;;;;;;;10962:33;;;;;;;;;;;10928:67;;11032:5;11016:21;;11064:1;11048:17;;11092:1;11080:13;;11076:220;11099:8;:17;;:24;;;;11095:1;:28;11076:220;;;11172:9;11148:8;:17;;11166:1;11148:20;;;;;;;;;;;;;;;;;;:33;11145:140;;;11213:4;11202:15;;11244:1;11236:9;;11264:5;;11145:140;11125:3;;;;;;;11076:220;;;11319:8;11316:524;;;11360:5;11348:17;;11344:215;11398:1;11371:8;:17;;:24;;;;:28;11367:1;:32;11344:215;;;11447:8;:17;;11469:1;11465;:5;11447:24;;;;;;;;;;;;;;;;;;11424:8;:17;;11442:1;11424:20;;;;;;;;;;;;;;;;;:47;;;;11516:8;:20;;11541:1;11537;:5;11516:27;;;;;;;;;;;;;;;;;;11490:8;:20;;11511:1;11490:23;;;;;;;;;;;;;;;;;:53;;;;11401:3;;;;;;;11344:215;;;11580:8;:17;;11625:1;11598:8;:17;;:24;;;;:28;11580:47;;;;;;;;;;;;;;;;;11573:54;;;11642:8;:17;;:26;;;;;;;;;;;;:::i;:::-;;11690:8;:20;;11741:1;11711:8;:20;;:27;;;;:31;11690:53;;;;;;;;;;;;;;;;;11683:60;;;11758:8;:20;;:29;;;;;;;;;;;;:::i;:::-;;11316:524;;;11820:8;;;11316:524;10836:1021;;;;;;;:::o;5818:256::-;5899:4;2808:6;;;;;;;;;;;2807:7;2799:16;;;;;;;;5933:1;5924:6;:10;5916:19;;;;;;;;5983:6;5946:4;:16;5951:10;5946:16;;;;;;;;;;;;;;;:24;;:34;5971:8;5946:34;;;;;;;;;;;;;;;:43;;;;6027:8;6006:38;;6015:10;6006:38;;;6037:6;6006:38;;;;;;;;;;;;;;;;;;6062:4;6055:11;;5818:256;;;;:::o;7525:90::-;7569:7;7596:11;;7589:18;;7525:90;:::o;6080:504::-;6176:4;2808:6;;;;;;;;;;;2807:7;2799:16;;;;;;;;6193:39;6207:5;6214:3;6219:6;6227:4;6193:13;:39::i;:::-;6262:4;:11;6267:5;6262:11;;;;;;;;;;;;;;;:19;;:31;6282:10;6262:31;;;;;;;;;;;;;;;;6251:6;:42;;6243:51;;;;;;;;6329:31;6353:6;6329:4;:11;6334:5;6329:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;6307:4;:11;6312:5;6307:11;;;;;;;;;;;;;;;:19;;:53;;;;6391:29;6413:6;6391:4;:9;6396:3;6391:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;6371:4;:9;6376:3;6371:9;;;;;;;;;;;;;;;:17;;:49;;;;6467:43;6503:6;6467:4;:11;6472:5;6467:11;;;;;;;;;;;;;;;:19;;:31;6487:10;6467:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;6433:4;:11;6438:5;6433:11;;;;;;;;;;;;;;;:19;;:31;6453:10;6433:31;;;;;;;;;;;;;;;:77;;;;6542:3;6526:28;;6535:5;6526:28;;;6547:6;6526:28;;;;;;;;;;;;;;;;;;6572:4;6565:11;;6080:504;;;;;:::o;1755:257::-;1827:6;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;1836:1;1827:10;;1823:144;1843:8;:15;;;;1839:1;:19;1823:144;;;1899:10;1884:25;;:8;1893:1;1884:11;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;1880:75;;;1930:8;;;1880:75;1860:3;;;;;;;1823:144;;;1978:8;1992:10;1978:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1978:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:257;;:::o;4958:174::-;5016:4;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;5062:4;5041:25;;:4;:12;5046:6;5041:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:25;;;5033:34;;;;;;;;5098:5;5078:4;:12;5083:6;5078:12;;;;;;;;;;;;;;;:17;;;:25;;;;;;;;;;;;;;;;;;5120:4;5113:11;;4958:174;;;:::o;4043:23::-;;;;:::o;3030:105::-;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;2884:6;;;;;;;;;;;2876:15;;;;;;;;3097:5;3088:6;;:14;;;;;;;;;;;;;;;;;;3118:9;;;;;;;;;;3030:105::o;6963:379::-;7069:4;1014:5;;;;;;;;;;;1000:19;;:10;:19;;;992:28;;;;;;;;4337:15;;;;;;;;;;;4336:16;4328:25;;;;;;;;7086:40;7100:5;7107:3;7112:6;7120:5;7086:13;:40::i;:::-;7168:31;7192:6;7168:4;:11;7173:5;7168:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;7146:4;:11;7151:5;7146:11;;;;;;;;;;;;;;;:19;;:53;;;;7230:29;7252:6;7230:4;:9;7235:3;7230:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;7210:4;:9;7215:3;7210:9;;;;;;;;;;;;;;;:17;;:49;;;;7300:3;7284:28;;7293:5;7284:28;;;7305:6;7284:28;;;;;;;;;;;;;;;;;;7330:4;7323:11;;6963:379;;;;;:::o;2728:26::-;;;;;;;;;;;;;:::o;14906:139::-;14965:7;14992:45;15014:22;15029:6;15014:14;:22::i;:::-;14992:17;15002:6;14992:9;:17::i;:::-;:21;;:45;;;;:::i;:::-;14985:52;;14906:139;;;:::o;7621:111::-;7677:7;7704:4;:12;7709:6;7704:12;;;;;;;;;;;;;;;:20;;;7697:27;;7621:111;;;:::o;2919:103::-;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;2808:6;;;;;;;;;;;2807:7;2799:16;;;;;;;;2987:4;2978:6;;:13;;;;;;;;;;;;;;;;;;3007:7;;;;;;;;;;2919:103::o;698:20::-;;;;;;;;;;;;;:::o;11867:213::-;11932:9;11943;11965:11;11987:5;11979:14;;;;;;;;11965:28;;12012:13;:18;12026:3;12012:18;;;;;;;;;;;:27;;12041:13;:18;12055:3;12041:18;;;;;;;;;;;:30;;12004:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11867:213;;;;:::o;7354:153::-;7405:4;1014:5;;;;;;;;;;;1000:19;;:10;:19;;;992:28;;;;;;;;7440:4;7422:15;;:22;;;;;;;;;;;;;;;;;;7460:17;;;;;;;;;;7495:4;7488:11;;7354:153;:::o;7738:105::-;7794:4;7818;:12;7823:6;7818:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;7811:24;;7738:105;;;:::o;4016:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2024:500::-;2095:13;2132:6;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;2111:5;2095:21;;2141:1;2132:10;;2128:262;2148:8;:15;;;;2144:1;:19;2128:262;;;2202:10;2187:25;;:8;2196:1;2187:11;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;2184:80;;;2244:4;2233:15;;2184:80;2281:8;:34;;;;;2314:1;2298:8;:15;;;;:17;2293:1;:22;;2281:34;2278:101;;;2349:8;2360:1;2358;:3;2349:13;;;;;;;;;;;;;;;;;;;;;;;;;;;2335:8;2344:1;2335:11;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2278:101;2165:3;;;;;;;2128:262;;;2416:4;2404:16;;:8;:16;;;2400:117;;;2443:8;2468:1;2452:8;:15;;;;:17;2443:27;;;;;;;;;;;;;;;;;;2436:34;;;;;;;;;;;2486:8;:18;;;;;;;;;;;;:::i;:::-;;2400:117;2024:500;;;:::o;14132:487::-;14443:9;1228:5;;;;;;;;;;;1214:19;;:10;:19;;;:44;;;;1237:21;1247:10;1237:9;:21::i;:::-;1214:44;1206:53;;;;;;;;14277:1;14264:3;:10;:14;14256:23;;;;;;;;14312:6;:13;14298:3;:10;:27;14290:36;;;;;;;;14359:8;:15;14345:3;:10;:29;14337:38;;;;;;;;14403:14;14394:23;;;;;;;;:5;:23;;;;;;;;;;14386:32;;;;;;;;14455:1;14443:13;;14439:173;14462:3;:10;14458:1;:14;14439:173;;;14514:20;14527:3;14531:1;14527:6;;;;;;;;;;;;;;;;;;14514:12;:20::i;:::-;14501:6;14508:1;14501:9;;;;;;;;;;;;;;;;;;:33;;14493:42;;;;;;;;14550:50;14562:3;14566:1;14562:6;;;;;;;;;;;;;;;;;;14570:5;14577:6;14584:1;14577:9;;;;;;;;;;;;;;;;;;14588:8;14597:1;14588:11;;;;;;;;;;;;;;;;;;14550;:50::i;:::-;14474:3;;;;;;;14439:173;;;14132:487;;;;;:::o;10236:588::-;10343:31;10421:13;10457:9;1228:5;;;;;;;;;;;1214:19;;:10;:19;;;:44;;;;1237:21;1247:10;1237:9;:21::i;:::-;1214:44;1206:53;;;;;;;;10377:13;:33;10399:9;10391:18;;;;;;;;10377:33;;;;;;;;;;;10343:67;;10437:5;10421:21;;10469:1;10457:13;;10453:183;10476:8;:17;;:24;;;;10472:1;:28;10453:183;;;10549:7;10525:8;:17;;10543:1;10525:20;;;;;;;;;;;;;;;;;;:31;10522:103;;;10577:8;;;10522:103;10502:3;;;;;;;10453:183;;;10659:8;10656:161;;;10683:8;;;10656:161;10724:8;:17;;10747:7;10724:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10724:31:0;;;;;;;;;;;;;;;;;;;;;;10770:8;:20;;10796:8;10770:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10770:35:0;;;;;;;;;;;;;;;;;;;;;;10236:588;;;;;;:::o;5141:288::-;5210:4;1014:5;;;;;;;;;;;1000:19;;:10;:19;;;992:28;;;;;;;;5245:4;:9;5250:3;5245:9;;;;;;;;;;;;;;;:17;;;5235:6;:27;;5227:36;;;;;;;;5294:29;5316:6;5294:4;:9;5299:3;5294:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;5274:4;:9;5279:3;5274:9;;;;;;;;;;;;;;;:17;;:49;;;;5348:23;5364:6;5348:11;;:15;;:23;;;;:::i;:::-;5334:11;:37;;;;5387:12;5392:6;5387:12;;;;;;;;;;;;;;;;;;5417:4;5410:11;;5141:288;;;;:::o;10037:183::-;1105:5;;;;;;;;;;;1091:19;;:10;:19;;;:48;;;;1128:8;1137:1;1128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:25;;:10;:25;;;1091:48;1083:57;;;;;;;;10158:6;10125:8;:16;10134:6;10125:16;;;;;;;;;;;;;;;:24;;:31;;;;:39;10117:48;;;;;;;;10211:1;10176:8;:16;10185:6;10176:16;;;;;;;;;;;;;;;:24;;10201:6;10176:32;;;;;;;;;;;;;;;;;:36;;;;10037:183;;:::o;6596:355::-;6673:4;2808:6;;;;;;;;;;;2807:7;2799:16;;;;;;;;6690:44;6704:10;6716:3;6721:6;6729:4;6690:13;:44::i;:::-;6774:36;6803:6;6774:4;:16;6779:10;6774:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;6747:4;:16;6752:10;6747:16;;;;;;;;;;;;;;;:24;;:63;;;;6841:29;6863:6;6841:4;:9;6846:3;6841:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;6821:4;:9;6826:3;6821:9;;;;;;;;;;;;;;;:17;;:49;;;;6909:3;6888:33;;6897:10;6888:33;;;6914:6;6888:33;;;;;;;;;;;;;;;;;;6939:4;6932:11;;6596:355;;;;:::o;12092:825::-;12151:9;12162;12173;12184;12195;12227:24;12316:9;12268:8;:16;12277:6;12268:16;;;;;;;;;;;;;;;:25;;:32;;;;12254:47;;;;;;;;;;;;;;;;;;;;;;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;12254:47:0;;;;12227:74;;12328:1;12316:13;;12312:406;12335:8;:16;12344:6;12335:16;;;;;;;;;;;;;;;:25;;:32;;;;12331:1;:36;12312:406;;;12431:20;12423:29;;;;;;;;12391:8;:16;12400:6;12391:16;;;;;;;;;;;;;;;:25;;12417:1;12391:28;;;;;;;;;;;;;;;;;;:61;12388:319;;;12486:48;12501:32;12523:6;12531:1;12501:21;:32::i;:::-;12486:7;12494:1;12486:10;;;;;;;;;;;;;;;;;;:14;;:48;;;;:::i;:::-;12473:7;12481:1;12473:10;;;;;;;;;;;;;;;;;:61;;;;;12388:319;;;12599:14;12591:23;;;;;;;;12559:8;:16;12568:6;12559:16;;;;;;;;;;;;;;;:25;;12585:1;12559:28;;;;;;;;;;;;;;;;;;:55;;12556:151;;;12648:43;12663:27;12680:6;12688:1;12663:16;:27::i;:::-;12648:7;12656:1;12648:10;;;;;;;;;;;;;;;;;;:14;;:43;;;;:::i;:::-;12635:7;12643:1;12635:10;;;;;;;;;;;;;;;;;:56;;;;;12556:151;12388:319;12369:3;;;;;;;12312:406;;;12746:8;:16;12755:6;12746:16;;;;;;;;;;;;;;;:25;;12782:8;:16;12791:6;12782:16;;;;;;;;;;;;;;;:36;;12829:7;12847:8;:16;12856:6;12847:16;;;;;;;;;;;;;;;:26;;12884:8;:16;12893:6;12884:16;;;;;;;;;;;;;;;:24;;12738:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12092:825;;;;;;;;;:::o;14631:263::-;14765:4;1228:5;;;;;;;;;;;1214:19;;:10;:19;;;:44;;;;1237:21;1247:10;1237:9;:21::i;:::-;1214:44;1206:53;;;;;;;;14782:24;14794:3;14799:6;14782:10;:24::i;:::-;;14818:44;14831:3;14836:5;14843:8;14853;14818:11;:44::i;:::-;14881:4;14874:11;;14631:263;;;;;;;:::o;7849:139::-;7923:7;7950:4;:12;7955:6;7950:12;;;;;;;;;;;;;;;:20;;:30;7971:8;7950:30;;;;;;;;;;;;;;;;7943:37;;7849:139;;;;:::o;1550:192::-;1014:5;;;;;;;;;;;1000:19;;:10;:19;;;992:28;;;;;;;;1651:1;1631:22;;:8;:22;;;;1623:31;;;;;;;;1698:8;1670:37;;1691:5;;;;;;;;;;;1670:37;;;;;;;;;;;;1726:8;1718:5;;:16;;;;;;;;;;;;;;;;;;1550:192;:::o;1293:245::-;1352:4;1373:6;1381:1;1373:9;;1368:139;1387:8;:15;;;;1384:1;:18;1368:139;;;1441:9;1426:24;;:8;1435:1;1426:11;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;1422:73;;;1476:4;1469:11;;;;1422:73;1404:3;;;;;;;1368:139;;;1524:5;1517:12;;1293:245;;;;;:::o;4777:175::-;4835:4;1228:5;;;;;;;;;;;1214:19;;:10;:19;;;:44;;;;1237:21;1247:10;1237:9;:21::i;:::-;1214:44;1206:53;;;;;;;;4881:5;4860:26;;:4;:12;4865:6;4860:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:26;;;4852:35;;;;;;;;4918:4;4898;:12;4903:6;4898:12;;;;;;;;;;;;;;;:17;;;:24;;;;;;;;;;;;;;;;;;4940:4;4933:11;;4777:175;;;:::o;2536:105::-;2592:9;1228:5;;;;;;;;;;;1214:19;;:10;:19;;;:44;;;;1237:21;1247:10;1237:9;:21::i;:::-;1214:44;1206:53;;;;;;;;2624:8;2617:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:105;:::o;5440:370::-;5517:4;1228:5;;;;;;;;;;;1214:19;;:10;:19;;;:44;;;;1237:21;1247:10;1237:9;:21::i;:::-;1214:44;1206:53;;;;;;;;5534:45;5548:10;5560:3;5565:6;5573:5;5534:13;:45::i;:::-;5626:36;5655:6;5626:4;:16;5631:10;5626:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;5599:4;:16;5604:10;5599:16;;;;;;;;;;;;;;;:24;;:63;;;;5693:29;5715:6;5693:4;:9;5698:3;5693:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;5673:4;:9;5678:3;5673:9;;;;;;;;;;;;;;;:17;;:49;;;;5768:3;5747:33;;5756:10;5747:33;;;5773:6;5747:33;;;;;;;;;;;;;;;;;;5798:4;5791:11;;5440:370;;;;:::o;9753:272::-;9836:7;9865:8;:16;9874:6;9865:16;;;;;;;;;;;;;;;:24;;9890:6;9865:32;;;;;;;;;;;;;;;;;;9859:3;:38;9856:162;;;9921:8;:16;9930:6;9921:16;;;;;;;;;;;;;;;:36;;9958:6;9921:44;;;;;;;;;;;;;;;;;;9914:51;;;;9856:162;10005:1;9998:8;;9753:272;;;;;:::o;520:147::-;578:7;598:9;614:1;610;:5;598:17;;638:1;633;:6;;626:14;;;;;;658:1;651:8;;520:147;;;;;:::o;8960:785::-;9038:7;9058:15;9088:11;9157:12;9198:9;9076:1;9058:19;;9110:8;:16;9119:6;9110:16;;;;;;;;;;;;;;;:25;;9136:6;9110:33;;;;;;;;;;;;;;;;;;9088:56;;9172:11;9157:26;;9210:1;9198:13;;9194:358;9218:13;:18;9232:3;9218:18;;;;;;;;;;;:27;;:34;;;;9214:1;:38;9194:358;;;9283:13;:18;9297:3;9283:18;;;;;;;;;;;:27;;9311:1;9283:30;;;;;;;;;;;;;;;;;;9277:3;:36;9274:267;;;9370:4;9337:13;:18;9351:3;9337:18;;;;;;;;;;;:27;;9365:1;9337:30;;;;;;;;;;;;;;;;;;:37;9334:192;;;9406:13;:18;9420:3;9406:18;;;;;;;;;;;:27;;9434:1;9406:30;;;;;;;;;;;;;;;;;;9399:37;;9469:13;:18;9483:3;9469:18;;;;;;;;;;;:30;;9500:1;9469:33;;;;;;;;;;;;;;;;;;9459:43;;9334:192;9274:267;9254:3;;;;;;;9194:358;;;9586:1;9575:7;:12;9572:166;;;9610:1;9603:8;;;;9572:166;9651:75;9717:7;9651:53;9700:3;9651:8;:16;9660:6;9651:16;;;;;;;;;;;;;;;:36;;9688:6;9651:44;;;;;;;;;;;;;;;;;;:48;;:53;;;;:::i;:::-;:57;;:75;;;;:::i;:::-;9644:82;;8960:785;;;;;;;;;:::o;13866:258::-;13975:51;13995:5;14002:3;14007:6;14015:10;13975:19;:51::i;:::-;14040:10;14037:80;;;14085:19;14098:5;14085:12;:19::i;:::-;14075:6;:29;;14067:38;;;;;;;;14037:80;13866:258;;;;:::o;391:123::-;449:7;481:1;476;:6;;469:14;;;;;;505:1;501;:5;494:12;;391:123;;;;:::o;8595:357::-;8704:8;:13;8713:3;8704:13;;;;;;;;;;;;;;;:22;;8740:9;8732:18;;;;;;;;8704:47;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8704:47:0;;;;;;;;;;;;;;;;;;;;;;8762:8;:13;8771:3;8762:13;;;;;;;;;;;;;;;:33;;8801:6;8762:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8762:46:0;;;;;;;;;;;;;;;;;;;;;;8819:8;:13;8828:3;8819:13;;;;;;;;;;;;;;;:23;;8848:3;8819:33;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8819:33:0;;;;;;;;;;;;;;;;;;;;;;8863:8;:13;8872:3;8863:13;;;;;;;;;;;;;;;:21;;8890:8;8863:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8863:36:0;;;;;;;;;;;;;;;;;;;;;;8922:3;8917:27;;;8927:6;8935:8;8917:27;;;;;;;;;;;;;;;;;;;;;;;;8595:357;;;;:::o;263:122::-;321:7;341:9;357:1;353;:5;;;;;;;;341:17;;376:1;369:8;;263:122;;;;;:::o;52:205::-;110:7;184:9;139:1;134;:6;130:44;;;161:1;154:8;;;;130:44;200:1;196;:5;184:17;;228:1;223;219;:5;;;;;;;;:10;212:18;;;;;;248:1;241:8;;52:205;;;;;;:::o;4451:318::-;4583:4;4568:20;;:3;:20;;;;4560:29;;;;;;;;4623:1;4608:17;;:3;:17;;;;4600:26;;;;;;;;4668:6;4645:4;:11;4650:5;4645:11;;;;;;;;;;;;;;;:19;;;:29;;4637:38;;;;;;;;4689:10;4686:76;;;4744:5;4724:25;;:4;:11;4729:5;4724:11;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:25;;;4716:34;;;;;;;;4686:76;4451:318;;;;:::o;13503:1551::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://65e37a153342e75fa7bfb75d2d7bf9c7ec1711f10bebb082b55ba19a52f6d9b3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.