ETH Price: $3,360.16 (-2.73%)
Gas: 2 Gwei

Token

Pass token (PTX)
 

Overview

Max Total Supply

400,000,000 PTX

Holders

265

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,987.1 PTX

Value
$0.00
0xbaaa2baca444dcfd02c1c37586fd12a9dbf180fb
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:
PTX

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-19
*/

pragma solidity ^0.4.24;

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;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() public {
        owner = msg.sender;
    }
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Manager is Ownable {
    
    address[] managers;

    modifier onlyManagers() {
        bool exist = false;
        if(owner == msg.sender) {
            exist = true;
        } else {
            uint index = 0;
            (exist, index) = existManager(msg.sender);
        }
        require(exist);
        _;
    }
    
    function getManagers() public view returns (address[] memory){
        return managers;
    }
    
    function existManager(address _to) private view returns (bool, uint) {
        for (uint i = 0 ; i < managers.length; i++) {
            if (managers[i] == _to) {
                return (true, i);
            }
        }
        return (false, 0);
    }
    function addManager(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = existManager(_to);
        
        require(!exist);
        
        managers.push(_to);
    }
    function deleteManager(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = existManager(_to);
        
        require(exist);
   
        uint lastElementIndex = managers.length - 1; 
        managers[index] = managers[lastElementIndex];

        delete managers[managers.length - 1];
        managers.length--;
    }

}

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

    bool public paused = false;

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

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

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

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

contract ProtectAddress is Ownable {
    
    address[] protect;


    function getProtect() public view returns (address[] memory){
        return protect;
    }
    function isProtect(address _to) public view returns (bool) {
        for (uint i = 0 ; i < protect.length; i++) {
            if (protect[i] == _to) {
                return true;
            }
        }
        return false;
    }
    function isProtectIndex(address _to) internal view returns (bool, uint) {
        for (uint i = 0 ; i < protect.length; i++) {
            if (protect[i] == _to) {
                return (true, i);
            }
        }
        return (false, 0);
    }
    function addProtect(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = isProtectIndex(_to);
        
        require(!exist);
        
        protect.push(_to);
    }
    function deleteProtect(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = isProtectIndex(_to);
        
        require(exist);
   
        uint lastElementIndex = protect.length - 1; 
        protect[index] = protect[lastElementIndex];

        delete protect[protect.length - 1];
        protect.length--;
    }

}

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, ProtectAddress {

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

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

  

    mapping(address => sUserInfo) user;

    event Mint(uint256 value);
    event Burn(uint256 value);

   
    
    function () public payable {
        revert();
    }
    
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        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 onlyManagers returns (bool) {
        require(user[_owner].lock == false);
        require(!isProtect(_owner));
        
        user[_owner].lock = true;
        return true;
    }
    function unlock(address _owner) public onlyManagers returns (bool) {
        require(user[_owner].lock == true);
        user[_owner].lock = false;
       return true;
    }
 
    function burn(uint256 _value) public onlyOwner returns (bool) {
        require(_value <= user[msg.sender].balance);
        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_value);
        return true;
    }
   
    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(_value == 0 || user[msg.sender].allowed[_spender] == 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 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 Manager {
    
    enum eLockType {None, Individual, GroupA, GroupB}
    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 {
        require(_endTime > now); 
        require(_value > 0); 
        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 addLockDate(eLockType _lockType, uint256 _second, uint256 _percent) onlyManagers 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) onlyManagers 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 deleteLockUserInfo(address _to, eLockType _lockType, uint256 _startTime, uint256 _endTime) onlyManagers public {

        bool isExists = false;
        uint256 index = 0;
        for(uint256 i = 0; i < lockUser[_to].lockType.length; i++) {
            if(lockUser[_to].lockType[i] == uint256(_lockType) &&
                lockUser[_to].startTime[i] == _startTime &&
                lockUser[_to].endTime[i] == _endTime) {
                isExists = true;
                index = i;
                break;
            }
        }
        require(isExists);

        for(uint256 k = index; k < lockUser[_to].lockType.length - 1; k++){
            lockUser[_to].lockType[k] = lockUser[_to].lockType[k + 1];
            lockUser[_to].lockBalanceStandard[k] = lockUser[_to].lockBalanceStandard[k + 1];
            lockUser[_to].startTime[k] = lockUser[_to].startTime[k + 1];
            lockUser[_to].endTime[k] = lockUser[_to].endTime[k + 1];
        }
        
        delete lockUser[_to].lockType[lockUser[_to].lockType.length - 1];
        lockUser[_to].lockType.length--;
        
        delete lockUser[_to].lockBalanceStandard[lockUser[_to].lockBalanceStandard.length - 1];
        lockUser[_to].lockBalanceStandard.length--;
        
        delete lockUser[_to].startTime[lockUser[_to].startTime.length - 1];
        lockUser[_to].startTime.length--;
        
        delete lockUser[_to].endTime[lockUser[_to].endTime.length - 1];
        lockUser[_to].endTime.length--;
        
    }

    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 PTX is Token, LockBalance {

    constructor() public {
        name = "Pass token";
        symbol = "PTX";
        decimals = 18;
        uint256 initialSupply = 1000000000;//1,000,000,000
        totalSupply = initialSupply * 10 ** uint(decimals);
        user[owner].balance = totalSupply;
        emit Transfer(address(0), owner, totalSupply);
    }


    bool public finishRestore = false; 
    
    function isFinishRestore() public onlyOwner { 
        finishRestore = true; 
    }     
  
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        super.validTransfer(_from, _to, _value, _lockCheck);
        if(_lockCheck) {
            require(_value <= useBalanceOf(_from));
        }
    }

    function setLockUsers(eLockType _type, address[] _to, uint256[] _value, uint256[] _endTime) onlyManagers 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(!isProtect(_to[i]));
            setLockUser(_to[i], _type, _value[i], _endTime[i]);
        }
    }
    
    function transferRestore(address _from, address _to, uint256 _value) public onlyOwner returns (bool) {
        require(!finishRestore);
        require(!isProtect(_from));
        
        require(_to != address(this));
        require(_to != address(0));
        require(user[_from].balance >= _value);
        
        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        emit Transfer(msg.sender, _to, _value);
        return true;
    }
    function useBalanceOf(address _owner) public view returns (uint256) {
        return balanceOf(_owner).sub(lockBalanceAll(_owner));
    }
  

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockBalanceAll","outputs":[{"name":"","type":"uint256"}],"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":"_to","type":"address"}],"name":"addProtect","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","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":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"isFinishRestore","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getProtect","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_lockType","type":"uint8"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"deleteLockUserInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_to","type":"address"}],"name":"deleteProtect","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"finishRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":"_to","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":true,"inputs":[],"name":"getManagers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","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":true,"inputs":[{"name":"_to","type":"address"}],"name":"isProtect","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"lock","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":"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"}]

60806040526000600260006101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff0219169083151502179055503480156200004757600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600a81526020017f5061737320746f6b656e0000000000000000000000000000000000000000000081525060049080519060200190620000d792919062000261565b506040805190810160405280600381526020017f5054580000000000000000000000000000000000000000000000000000000000815250600590805190602001906200012592919062000261565b506012600660006101000a81548160ff021916908360ff160217905550633b9aca009050600660009054906101000a900460ff1660ff16600a0a8102600781905550600754600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040518082815260200191505060405180910390a35062000310565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002a457805160ff1916838001178555620002d5565b82800160010185558215620002d5579182015b82811115620002d4578251825591602001919060010190620002b7565b5b509050620002e49190620002e8565b5090565b6200030d91905b8082111562000309576000816000905550600101620002ef565b5090565b90565b614a4a80620003206000396000f3006080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f146101c757806306fdde031461021e5780630789a313146102ae578063095ea7b3146102e857806318160ddd1461034d57806323b872dd1461037857806328723eff146103fd5780632d06177a146104405780632f6c493c14610483578063313ce567146104de578063351779991461050f5780633f4ba83a146105265780634149953d1461053d57806342966c68146105c25780634f7ba1b0146106075780635c975abb1461067357806364a819c6146106a257806369132d431461070657806370a082311461075d5780637a856cb2146107b45780638456cb59146107f75780638da5cb5b1461080e5780638e2833341461086557806390e99b091461093257806394dbc70e1461096157806395d89b41146109bc5780639679976014610a4c5780639846d9de14610a8f5780639a713d0514610b88578063a8d088bb14610bcc578063a9059cbb14610c38578063ac1a717514610c9d578063b44fee3114610e55578063dd62ed3e14610eb0578063f2fde38b14610f27578063f435f5a714610f6a575b600080fd5b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc5565b6040518082815260200191505060405180910390f35b34801561022a57600080fd5b50610233611154565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610273578082015181840152602081019050610258565b50505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ba57600080fd5b506102e6600480360381019080803560ff169060200190929190803590602001909291905050506111f2565b005b3480156102f457600080fd5b50610333600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611434565b604051808215151515815260200191505060405180910390f35b34801561035957600080fd5b506103626115de565b6040518082815260200191505060405180910390f35b34801561038457600080fd5b506103e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e8565b604051808215151515815260200191505060405180910390f35b34801561040957600080fd5b5061043e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061195d565b005b34801561044c57600080fd5b50610481600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4c565b005b34801561048f57600080fd5b506104c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3b565b604051808215151515815260200191505060405180910390f35b3480156104ea57600080fd5b506104f3611c8b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051b57600080fd5b50610524611c9e565b005b34801561053257600080fd5b5061053b611d16565b005b34801561054957600080fd5b506105a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e03565b604051808215151515815260200191505060405180910390f35b3480156105ce57600080fd5b506105ed600480360381019080803590602001909291905050506120ff565b604051808215151515815260200191505060405180910390f35b34801561061357600080fd5b5061061c6122a3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561065f578082015181840152602081019050610644565b505050509050019250505060405180910390f35b34801561067f57600080fd5b50610688612331565b604051808215151515815260200191505060405180910390f35b3480156106ae57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612344565b005b34801561071257600080fd5b50610747600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc5565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b5061079e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf1565b6040518082815260200191505060405180910390f35b3480156107c057600080fd5b506107f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d3d565b005b34801561080357600080fd5b5061080c612ebe565b005b34801561081a57600080fd5b50610823612fac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087157600080fd5b50610893600480360381019080803560ff169060200190929190505050612fd1565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156108da5780820151818401526020810190506108bf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561091c578082015181840152602081019050610901565b5050505090500194505050505060405180910390f35b34801561093e57600080fd5b506109476130be565b604051808215151515815260200191505060405180910390f35b34801561096d57600080fd5b506109a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130d1565b604051808215151515815260200191505060405180910390f35b3480156109c857600080fd5b506109d161312a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a115780820151818401526020810190506109f6565b50505050905090810190601f168015610a3e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a5857600080fd5b50610a8d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131c8565b005b348015610a9b57600080fd5b50610b86600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613346565b005b348015610b9457600080fd5b50610bca600480360381019080803560ff16906020019092919080359060200190929190803590602001909291905050506134c5565b005b348015610bd857600080fd5b50610be161362e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610c24578082015181840152602081019050610c09565b505050509050019250505060405180910390f35b348015610c4457600080fd5b50610c83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506136bc565b604051808215151515815260200191505060405180910390f35b348015610ca957600080fd5b50610cde600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061388d565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610d31578082015181840152602081019050610d16565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610d73578082015181840152602081019050610d58565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610db5578082015181840152602081019050610d9a565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610df7578082015181840152602081019050610ddc565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610e39578082015181840152602081019050610e1e565b505050509050019a505050505050505050505060405180910390f35b348015610e6157600080fd5b50610e96600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d54565b604051808215151515815260200191505060405180910390f35b348015610ebc57600080fd5b50610f11600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613df7565b6040518082815260200191505060405180910390f35b348015610f3357600080fd5b50610f68600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e81565b005b348015610f7657600080fd5b50610fab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fd6565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561114a576001600381111561102c57fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561107b57fe5b906000526020600020015414156110af576110a8611099858361413b565b8361420a90919063ffffffff16565b915061113d565b600060038111156110bc57fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561110b57fe5b906000526020600020015414151561113c5761113961112a8583614228565b8361420a90919063ffffffff16565b91505b5b8080600101915050610fd2565b8192505050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ea5780601f106111bf576101008083540402835291602001916111ea565b820191906000526020600020905b8154815290600101906020018083116111cd57829003601f168201915b505050505081565b60008060008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561125e5760019150611274565b6000905061126b33614434565b80925081935050505b81151561128057600080fd5b600960008a600381111561129057fe5b815260200190815260200160002096506000955060009450600093505b86600001805490508410156112f8578787600001858154811015156112ce57fe5b906000526020600020015414156112eb57600195508394506112f8565b83806001019450506112ad565b8515611424578492505b600187600001805490500383101561139d57866000016001840181548110151561132857fe5b9060005260206000200154876000018481548110151561134457fe5b9060005260206000200181905550866001016001840181548110151561136657fe5b9060005260206000200154876001018481548110151561138257fe5b90600052602060002001819055508280600101935050611302565b8660000160018860000180549050038154811015156113b857fe5b9060005260206000200160009055866000018054809190600190036113dd91906149a1565b508660010160018860010180549050038154811015156113f957fe5b90600052602060002001600090558660010180548091906001900361141e91906149a1565b50611429565b600080fd5b505050505050505050565b6000600260009054906101000a900460ff1615151561145257600080fd5b60008214806114e057506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156114eb57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600754905090565b6000600260009054906101000a900460ff1615151561160657600080fd5b61161384848460016144e1565b50600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156116a257600080fd5b6116f782600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061179282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461420a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061186a82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461451690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119bb57600080fd5b60009150600090506119cc8361452f565b8092508193505050811515156119e157600080fd5b60038390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aaa57600080fd5b6000915060009050611abb83614434565b809250819350505081151515611ad057600080fd5b60018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ba15760019150611bb7565b60009050611bae33614434565b80925081935050505b811515611bc357600080fd5b60011515600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515611c2557600080fd5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b600660009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cf957600080fd5b6001600b60006101000a81548160ff021916908315150217905550565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d7b5760019150611d91565b60009050611d8833614434565b80925081935050505b811515611d9d57600080fd5b600260009054906101000a900460ff161515611db857600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6057600080fd5b600b60009054906101000a900460ff16151515611e7c57600080fd5b611e8584613d54565b151515611e9157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ecc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611f0857600080fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515611f5957600080fd5b611fae82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061204982600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461420a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561215c57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015482111515156121ad57600080fd5b61220282600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061225d8260075461451690919063ffffffff16565b6007819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b6060600380548060200260200160405190810160405280929190818152602001828054801561232757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122dd575b5050505050905090565b600260009054906101000a900460ff1681565b600080600080600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123af57600191506123c5565b600090506123bc33614434565b80925081935050505b8115156123d157600080fd5b6000955060009450600093505b600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490508410156125785788600381111561243757fe5b600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018581548110151561248657fe5b90600052602060002001541480156124f6575087600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201858154811015156124e957fe5b9060005260206000200154145b801561255a575086600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018581548110151561254d57fe5b9060005260206000200154145b1561256b5760019550839450612578565b83806001019450506123de565b85151561258457600080fd5b8492505b6001600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050038310156128cd57600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001840181548110151561262a57fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561268457fe5b9060005260206000200181905550600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600184018154811015156126e457fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561273e57fe5b9060005260206000200181905550600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016001840181548110151561279e57fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201848154811015156127f857fe5b9060005260206000200181905550600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016001840181548110151561285857fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301848154811015156128b257fe5b90600052602060002001819055508280600101935050612588565b600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490500381548110151561296457fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054809190600190036129c791906149a1565b50600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905003815481101515612a5f57fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612ac291906149a1565b50600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018054905003815481101515612b5a57fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201805480919060019003612bbd91906149a1565b50600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018054905003815481101515612c5557fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301805480919060019003612cb891906149a1565b5050505050505050505050565b6000612cea612cd383610fc5565b612cdc84612cf1565b61451690919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d9d57600080fd5b6000925060009150612dae8461452f565b8093508194505050821515612dc257600080fd5b6001600380549050039050600381815481101515612ddc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515612e1657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600160038054905003815481101515612e7557fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003805480919060019003612eb791906149cd565b5050505050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f235760019150612f39565b60009050612f3033614434565b80925081935050505b811515612f4557600080fd5b600260009054906101000a900460ff16151515612f6157600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060806000836003811115612fe257fe5b905060096000828152602001908152602001600020600001600960008381526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561305b57602002820191906000526020600020905b815481526020019060010190808311613047575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156130ad57602002820191906000526020600020905b815481526020019060010190808311613099575b505050505090509250925050915091565b600b60009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131c05780601f10613195576101008083540402835291602001916131c0565b820191906000526020600020905b8154815290600101906020018083116131a357829003601f168201915b505050505081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561322857600080fd5b600092506000915061323984614434565b809350819450505082151561324d57600080fd5b6001808054905003905060018181548110151561326657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001838154811015156132a057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001808080549050038154811015156132fd57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600180548091906001900361333f91906149cd565b5050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156133ac57600191506133c2565b600090506133b933614434565b80925081935050505b8115156133ce57600080fd5b600086511115156133de57600080fd5b845186511415156133ee57600080fd5b835186511415156133fe57600080fd5b6000600381111561340b57fe5b87600381111561341757fe5b1415151561342457600080fd5b600092505b85518310156134bc57613452868481518110151561344357fe5b90602001906020020151613d54565b15151561345e57600080fd5b6134af868481518110151561346f57fe5b9060200190602002015188878681518110151561348857fe5b9060200190602002015187878151811015156134a057fe5b906020019060200201516145dc565b8280600101935050613429565b50505050505050565b60008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561352e5760019150613544565b6000905061353b33614434565b80925081935050505b81151561355057600080fd5b6009600089600381111561356057fe5b8152602001908152602001600020945060009350600092505b84600001805490508310156135bd5786856000018481548110151561359a57fe5b906000526020600020015414156135b057600080fd5b8280600101935050613579565b83156135c857600080fd5b84600001879080600181540180825580915050906001820390600052602060002001600090919290919091505550846001018690806001815401808255809150509060018203906000526020600020016000909192909190915055505050505050505050565b606060018054806020026020016040519081016040528092919081815260200182805480156136b257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613668575b5050505050905090565b6000600260009054906101000a900460ff161515156136da57600080fd5b6136e733848460016144e1565b5061373d82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506137d882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461420a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905060405190808252806020026020018201604052801561390c5781602001602082028038833980820191505090505b509150600090505b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015613aee576001600381111561396e57fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156139bd57fe5b90600052602060002001541415613a2257613a016139db898361413b565b83838151811015156139e957fe5b9060200190602002015161420a90919063ffffffff16565b8282815181101515613a0f57fe5b9060200190602002018181525050613ae1565b60006003811115613a2f57fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515613a7e57fe5b9060005260206000200154141515613ae057613ac3613a9d8983614228565b8383815181101515613aab57fe5b9060200190602002015161420a90919063ffffffff16565b8282815181101515613ad157fe5b90602001906020020181815250505b5b8080600101915050613914565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030184805480602002602001604051908101604052809291908181526020018280548015613c4257602002820191906000526020600020905b815481526020019060010190808311613c2e575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015613c9457602002820191906000526020600020905b815481526020019060010190808311613c80575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015613ce657602002820191906000526020600020905b815481526020019060010190808311613cd2575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015613d3857602002820191906000526020600020905b815481526020019060010190808311613d24575b5050505050905096509650965096509650505091939590929450565b600080600090505b600380549050811015613dec578273ffffffffffffffffffffffffffffffffffffffff16600382815481101515613d8f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613ddf5760019150613df1565b8080600101915050613d5c565b600091505b50919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613edc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613f1857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561403c5760019150614052565b6000905061404933614434565b80925081935050505b81151561405e57600080fd5b60001515600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156140c057600080fd5b6140c984613d54565b1515156140d557600080fd5b6001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561418c57fe5b90600052602060002001544210156141ff57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156141ed57fe5b90600052602060002001549050614204565b600090505b92915050565b600080828401905083811015151561421e57fe5b8091505092915050565b6000806000806000809350600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561428257fe5b9060005260206000200154925064174876e7ff9150600090505b60096000848152602001908152602001600020600001805490508110156143965760096000848152602001908152602001600020600001818154811015156142e057fe5b90600052602060002001544210156143895781600960008581526020019081526020016000206000018281548110151561431657fe5b9060005260206000200154101561438857600960008481526020019081526020016000206000018181548110151561434a57fe5b90600052602060002001549150600960008481526020019081526020016000206001018181548110151561437a57fe5b906000526020600020015493505b5b808060010191505061429c565b60008414156143a8576000945061442a565b614427846144196064600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561440057fe5b906000526020600020015461481090919063ffffffff16565b61482b90919063ffffffff16565b94505b5050505092915050565b60008060008090505b6001805490508110156144d0578373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561447057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156144c357600181925092506144db565b808060010191505061443d565b600080809050925092505b50915091565b60006144ef85858585614866565b50811561450e576144ff85612cc5565b831115151561450d57600080fd5b5b949350505050565b600082821115151561452457fe5b818303905092915050565b60008060008090505b6003805490508110156145cb578373ffffffffffffffffffffffffffffffffffffffff1660038281548110151561456b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156145be57600181925092506145d6565b8080600101915050614538565b600080809050925092505b50915091565b42811115156145ea57600080fd5b6000821115156145f957600080fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600381111561464757fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b600080828481151561481e57fe5b0490508091505092915050565b6000806000841415614840576000915061485f565b828402905082848281151561485157fe5b0414151561485b57fe5b8091505b5092915050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156148a357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156148df57600080fd5b82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561493057600080fd5b81156149995760001515600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561499857600080fd5b5b949350505050565b8154818355818111156149c8578183600052602060002091820191016149c791906149f9565b5b505050565b8154818355818111156149f4578183600052602060002091820191016149f391906149f9565b5b505050565b614a1b91905b80821115614a175760008160009055506001016149ff565b5090565b905600a165627a7a72305820b88bfe271524ebf8d6ea0fcf19c717e02acd957b3e699872b779bc672dca215e0029

Deployed Bytecode

0x6080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f146101c757806306fdde031461021e5780630789a313146102ae578063095ea7b3146102e857806318160ddd1461034d57806323b872dd1461037857806328723eff146103fd5780632d06177a146104405780632f6c493c14610483578063313ce567146104de578063351779991461050f5780633f4ba83a146105265780634149953d1461053d57806342966c68146105c25780634f7ba1b0146106075780635c975abb1461067357806364a819c6146106a257806369132d431461070657806370a082311461075d5780637a856cb2146107b45780638456cb59146107f75780638da5cb5b1461080e5780638e2833341461086557806390e99b091461093257806394dbc70e1461096157806395d89b41146109bc5780639679976014610a4c5780639846d9de14610a8f5780639a713d0514610b88578063a8d088bb14610bcc578063a9059cbb14610c38578063ac1a717514610c9d578063b44fee3114610e55578063dd62ed3e14610eb0578063f2fde38b14610f27578063f435f5a714610f6a575b600080fd5b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc5565b6040518082815260200191505060405180910390f35b34801561022a57600080fd5b50610233611154565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610273578082015181840152602081019050610258565b50505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ba57600080fd5b506102e6600480360381019080803560ff169060200190929190803590602001909291905050506111f2565b005b3480156102f457600080fd5b50610333600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611434565b604051808215151515815260200191505060405180910390f35b34801561035957600080fd5b506103626115de565b6040518082815260200191505060405180910390f35b34801561038457600080fd5b506103e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e8565b604051808215151515815260200191505060405180910390f35b34801561040957600080fd5b5061043e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061195d565b005b34801561044c57600080fd5b50610481600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4c565b005b34801561048f57600080fd5b506104c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3b565b604051808215151515815260200191505060405180910390f35b3480156104ea57600080fd5b506104f3611c8b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051b57600080fd5b50610524611c9e565b005b34801561053257600080fd5b5061053b611d16565b005b34801561054957600080fd5b506105a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e03565b604051808215151515815260200191505060405180910390f35b3480156105ce57600080fd5b506105ed600480360381019080803590602001909291905050506120ff565b604051808215151515815260200191505060405180910390f35b34801561061357600080fd5b5061061c6122a3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561065f578082015181840152602081019050610644565b505050509050019250505060405180910390f35b34801561067f57600080fd5b50610688612331565b604051808215151515815260200191505060405180910390f35b3480156106ae57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612344565b005b34801561071257600080fd5b50610747600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc5565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b5061079e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf1565b6040518082815260200191505060405180910390f35b3480156107c057600080fd5b506107f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d3d565b005b34801561080357600080fd5b5061080c612ebe565b005b34801561081a57600080fd5b50610823612fac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087157600080fd5b50610893600480360381019080803560ff169060200190929190505050612fd1565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156108da5780820151818401526020810190506108bf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561091c578082015181840152602081019050610901565b5050505090500194505050505060405180910390f35b34801561093e57600080fd5b506109476130be565b604051808215151515815260200191505060405180910390f35b34801561096d57600080fd5b506109a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130d1565b604051808215151515815260200191505060405180910390f35b3480156109c857600080fd5b506109d161312a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a115780820151818401526020810190506109f6565b50505050905090810190601f168015610a3e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a5857600080fd5b50610a8d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131c8565b005b348015610a9b57600080fd5b50610b86600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613346565b005b348015610b9457600080fd5b50610bca600480360381019080803560ff16906020019092919080359060200190929190803590602001909291905050506134c5565b005b348015610bd857600080fd5b50610be161362e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610c24578082015181840152602081019050610c09565b505050509050019250505060405180910390f35b348015610c4457600080fd5b50610c83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506136bc565b604051808215151515815260200191505060405180910390f35b348015610ca957600080fd5b50610cde600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061388d565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610d31578082015181840152602081019050610d16565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610d73578082015181840152602081019050610d58565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610db5578082015181840152602081019050610d9a565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610df7578082015181840152602081019050610ddc565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610e39578082015181840152602081019050610e1e565b505050509050019a505050505050505050505060405180910390f35b348015610e6157600080fd5b50610e96600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d54565b604051808215151515815260200191505060405180910390f35b348015610ebc57600080fd5b50610f11600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613df7565b6040518082815260200191505060405180910390f35b348015610f3357600080fd5b50610f68600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e81565b005b348015610f7657600080fd5b50610fab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613fd6565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561114a576001600381111561102c57fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561107b57fe5b906000526020600020015414156110af576110a8611099858361413b565b8361420a90919063ffffffff16565b915061113d565b600060038111156110bc57fe5b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561110b57fe5b906000526020600020015414151561113c5761113961112a8583614228565b8361420a90919063ffffffff16565b91505b5b8080600101915050610fd2565b8192505050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111ea5780601f106111bf576101008083540402835291602001916111ea565b820191906000526020600020905b8154815290600101906020018083116111cd57829003601f168201915b505050505081565b60008060008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561125e5760019150611274565b6000905061126b33614434565b80925081935050505b81151561128057600080fd5b600960008a600381111561129057fe5b815260200190815260200160002096506000955060009450600093505b86600001805490508410156112f8578787600001858154811015156112ce57fe5b906000526020600020015414156112eb57600195508394506112f8565b83806001019450506112ad565b8515611424578492505b600187600001805490500383101561139d57866000016001840181548110151561132857fe5b9060005260206000200154876000018481548110151561134457fe5b9060005260206000200181905550866001016001840181548110151561136657fe5b9060005260206000200154876001018481548110151561138257fe5b90600052602060002001819055508280600101935050611302565b8660000160018860000180549050038154811015156113b857fe5b9060005260206000200160009055866000018054809190600190036113dd91906149a1565b508660010160018860010180549050038154811015156113f957fe5b90600052602060002001600090558660010180548091906001900361141e91906149a1565b50611429565b600080fd5b505050505050505050565b6000600260009054906101000a900460ff1615151561145257600080fd5b60008214806114e057506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156114eb57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600754905090565b6000600260009054906101000a900460ff1615151561160657600080fd5b61161384848460016144e1565b50600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156116a257600080fd5b6116f782600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061179282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461420a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061186a82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461451690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119bb57600080fd5b60009150600090506119cc8361452f565b8092508193505050811515156119e157600080fd5b60038390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aaa57600080fd5b6000915060009050611abb83614434565b809250819350505081151515611ad057600080fd5b60018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ba15760019150611bb7565b60009050611bae33614434565b80925081935050505b811515611bc357600080fd5b60011515600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515611c2557600080fd5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b600660009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cf957600080fd5b6001600b60006101000a81548160ff021916908315150217905550565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d7b5760019150611d91565b60009050611d8833614434565b80925081935050505b811515611d9d57600080fd5b600260009054906101000a900460ff161515611db857600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6057600080fd5b600b60009054906101000a900460ff16151515611e7c57600080fd5b611e8584613d54565b151515611e9157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ecc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611f0857600080fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515611f5957600080fd5b611fae82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061204982600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461420a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561215c57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015482111515156121ad57600080fd5b61220282600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061225d8260075461451690919063ffffffff16565b6007819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b6060600380548060200260200160405190810160405280929190818152602001828054801561232757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122dd575b5050505050905090565b600260009054906101000a900460ff1681565b600080600080600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123af57600191506123c5565b600090506123bc33614434565b80925081935050505b8115156123d157600080fd5b6000955060009450600093505b600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490508410156125785788600381111561243757fe5b600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018581548110151561248657fe5b90600052602060002001541480156124f6575087600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201858154811015156124e957fe5b9060005260206000200154145b801561255a575086600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018581548110151561254d57fe5b9060005260206000200154145b1561256b5760019550839450612578565b83806001019450506123de565b85151561258457600080fd5b8492505b6001600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050038310156128cd57600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001840181548110151561262a57fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561268457fe5b9060005260206000200181905550600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600184018154811015156126e457fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561273e57fe5b9060005260206000200181905550600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016001840181548110151561279e57fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201848154811015156127f857fe5b9060005260206000200181905550600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016001840181548110151561285857fe5b9060005260206000200154600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301848154811015156128b257fe5b90600052602060002001819055508280600101935050612588565b600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490500381548110151561296457fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054809190600190036129c791906149a1565b50600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905003815481101515612a5f57fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612ac291906149a1565b50600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018054905003815481101515612b5a57fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201805480919060019003612bbd91906149a1565b50600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016001600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018054905003815481101515612c5557fe5b9060005260206000200160009055600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301805480919060019003612cb891906149a1565b5050505050505050505050565b6000612cea612cd383610fc5565b612cdc84612cf1565b61451690919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d9d57600080fd5b6000925060009150612dae8461452f565b8093508194505050821515612dc257600080fd5b6001600380549050039050600381815481101515612ddc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515612e1657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600160038054905003815481101515612e7557fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003805480919060019003612eb791906149cd565b5050505050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f235760019150612f39565b60009050612f3033614434565b80925081935050505b811515612f4557600080fd5b600260009054906101000a900460ff16151515612f6157600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060806000836003811115612fe257fe5b905060096000828152602001908152602001600020600001600960008381526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561305b57602002820191906000526020600020905b815481526020019060010190808311613047575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156130ad57602002820191906000526020600020905b815481526020019060010190808311613099575b505050505090509250925050915091565b600b60009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131c05780601f10613195576101008083540402835291602001916131c0565b820191906000526020600020905b8154815290600101906020018083116131a357829003601f168201915b505050505081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561322857600080fd5b600092506000915061323984614434565b809350819450505082151561324d57600080fd5b6001808054905003905060018181548110151561326657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001838154811015156132a057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001808080549050038154811015156132fd57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600180548091906001900361333f91906149cd565b5050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156133ac57600191506133c2565b600090506133b933614434565b80925081935050505b8115156133ce57600080fd5b600086511115156133de57600080fd5b845186511415156133ee57600080fd5b835186511415156133fe57600080fd5b6000600381111561340b57fe5b87600381111561341757fe5b1415151561342457600080fd5b600092505b85518310156134bc57613452868481518110151561344357fe5b90602001906020020151613d54565b15151561345e57600080fd5b6134af868481518110151561346f57fe5b9060200190602002015188878681518110151561348857fe5b9060200190602002015187878151811015156134a057fe5b906020019060200201516145dc565b8280600101935050613429565b50505050505050565b60008060008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561352e5760019150613544565b6000905061353b33614434565b80925081935050505b81151561355057600080fd5b6009600089600381111561356057fe5b8152602001908152602001600020945060009350600092505b84600001805490508310156135bd5786856000018481548110151561359a57fe5b906000526020600020015414156135b057600080fd5b8280600101935050613579565b83156135c857600080fd5b84600001879080600181540180825580915050906001820390600052602060002001600090919290919091505550846001018690806001815401808255809150509060018203906000526020600020016000909192909190915055505050505050505050565b606060018054806020026020016040519081016040528092919081815260200182805480156136b257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311613668575b5050505050905090565b6000600260009054906101000a900460ff161515156136da57600080fd5b6136e733848460016144e1565b5061373d82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461451690919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506137d882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461420a90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905060405190808252806020026020018201604052801561390c5781602001602082028038833980820191505090505b509150600090505b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015613aee576001600381111561396e57fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156139bd57fe5b90600052602060002001541415613a2257613a016139db898361413b565b83838151811015156139e957fe5b9060200190602002015161420a90919063ffffffff16565b8282815181101515613a0f57fe5b9060200190602002018181525050613ae1565b60006003811115613a2f57fe5b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515613a7e57fe5b9060005260206000200154141515613ae057613ac3613a9d8983614228565b8383815181101515613aab57fe5b9060200190602002015161420a90919063ffffffff16565b8282815181101515613ad157fe5b90602001906020020181815250505b5b8080600101915050613914565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030184805480602002602001604051908101604052809291908181526020018280548015613c4257602002820191906000526020600020905b815481526020019060010190808311613c2e575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015613c9457602002820191906000526020600020905b815481526020019060010190808311613c80575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015613ce657602002820191906000526020600020905b815481526020019060010190808311613cd2575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015613d3857602002820191906000526020600020905b815481526020019060010190808311613d24575b5050505050905096509650965096509650505091939590929450565b600080600090505b600380549050811015613dec578273ffffffffffffffffffffffffffffffffffffffff16600382815481101515613d8f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613ddf5760019150613df1565b8080600101915050613d5c565b600091505b50919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613edc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613f1857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561403c5760019150614052565b6000905061404933614434565b80925081935050505b81151561405e57600080fd5b60001515600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156140c057600080fd5b6140c984613d54565b1515156140d557600080fd5b6001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561418c57fe5b90600052602060002001544210156141ff57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156141ed57fe5b90600052602060002001549050614204565b600090505b92915050565b600080828401905083811015151561421e57fe5b8091505092915050565b6000806000806000809350600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561428257fe5b9060005260206000200154925064174876e7ff9150600090505b60096000848152602001908152602001600020600001805490508110156143965760096000848152602001908152602001600020600001818154811015156142e057fe5b90600052602060002001544210156143895781600960008581526020019081526020016000206000018281548110151561431657fe5b9060005260206000200154101561438857600960008481526020019081526020016000206000018181548110151561434a57fe5b90600052602060002001549150600960008481526020019081526020016000206001018181548110151561437a57fe5b906000526020600020015493505b5b808060010191505061429c565b60008414156143a8576000945061442a565b614427846144196064600a60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561440057fe5b906000526020600020015461481090919063ffffffff16565b61482b90919063ffffffff16565b94505b5050505092915050565b60008060008090505b6001805490508110156144d0578373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561447057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156144c357600181925092506144db565b808060010191505061443d565b600080809050925092505b50915091565b60006144ef85858585614866565b50811561450e576144ff85612cc5565b831115151561450d57600080fd5b5b949350505050565b600082821115151561452457fe5b818303905092915050565b60008060008090505b6003805490508110156145cb578373ffffffffffffffffffffffffffffffffffffffff1660038281548110151561456b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156145be57600181925092506145d6565b8080600101915050614538565b600080809050925092505b50915091565b42811115156145ea57600080fd5b6000821115156145f957600080fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600381111561464757fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b600080828481151561481e57fe5b0490508091505092915050565b6000806000841415614840576000915061485f565b828402905082848281151561485157fe5b0414151561485b57fe5b8091505b5092915050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156148a357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156148df57600080fd5b82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561493057600080fd5b81156149995760001515600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561499857600080fd5b5b949350505050565b8154818355818111156149c8578183600052602060002091820191016149c791906149f9565b5b505050565b8154818355818111156149f4578183600052602060002091820191016149f391906149f9565b5b505050565b614a1b91905b80821115614a175760008160009055506001016149ff565b5090565b905600a165627a7a72305820b88bfe271524ebf8d6ea0fcf19c717e02acd957b3e699872b779bc672dca215e0029

Deployed Bytecode Sourcemap

15148:1983:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499:8;;;14574:561;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14574:561:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5220:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5220: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;5220:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10950:1024;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10950:1024:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6591:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7783:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7783:90:0;;;;;;;;;;;;;;;;;;;;;;;6898:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6898:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3724:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3724:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1904:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6098:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6098:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5272:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5272:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15578:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15578:85:0;;;;;;2923:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2923:108:0;;;;;;16454:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16454:523:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6284:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6284:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3114:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3114:93: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;3114:93:0;;;;;;;;;;;;;;;;;2618:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2618:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11980:1536;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11980:1536:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16983:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16983:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7879:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7879:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3963:383;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3963:383:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2809:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2809:106:0;;;;;;701:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;701:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13524:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13524: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;13524: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;13524:213:0;;;;;;;;;;;;;;;;;;;15531:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15531:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7996:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5245:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5245: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;5245:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2142:387;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2142:387:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15959:483;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15959:483:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10349:589;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10349:589:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1531:95: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;1531:95:0;;;;;;;;;;;;;;;;;7414:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7414:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13743:825;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13743: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;13743: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;13743: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;13743: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;13743: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;13743:825:0;;;;;;;;;;;;;;;;;;;;;;;;;3213:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3213:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8107:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8107:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;976:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5868:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5868:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14574:561;14635:7;14655:19;14693:9;14677:1;14655:23;;14705:1;14693:13;;14689:410;14712:8;:16;14721:6;14712:16;;;;;;;;;;;;;;;:25;;:32;;;;14708:1;:36;14689:410;;;14808:20;14800:29;;;;;;;;14768:8;:16;14777:6;14768:16;;;;;;;;;;;;;;;:25;;14794:1;14768:28;;;;;;;;;;;;;;;;;;:61;14765:323;;;14864:49;14880:32;14902:6;14910:1;14880:21;:32::i;:::-;14864:11;:15;;:49;;;;:::i;:::-;14850:63;;14765:323;;;14978:14;14970:23;;;;;;;;14938:8;:16;14947:6;14938:16;;;;;;;;;;;;;;;:25;;14964:1;14938:28;;;;;;;;;;;;;;;;;;:55;;14935:153;;;15028:44;15044:27;15061:6;15069:1;15044:16;:27::i;:::-;15028:11;:15;;:44;;;;:::i;:::-;15014:58;;14935:153;14765:323;14746:3;;;;;;;14689:410;;;15116:11;15109:18;;14574:561;;;;;:::o;5220:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10950:1024::-;11045:31;11133:13;11165;11197:9;11465;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;11079:13;:33;11101:9;11093:18;;;;;;;;11079:33;;;;;;;;;;;11045:67;;11149:5;11133:21;;11181:1;11165:17;;11209:1;11197:13;;11193:220;11216:8;:17;;:24;;;;11212:1;:28;11193:220;;;11289:9;11265:8;:17;;11283:1;11265:20;;;;;;;;;;;;;;;;;;:33;11262:140;;;11330:4;11319:15;;11361:1;11353:9;;11381:5;;11262:140;11242:3;;;;;;;11193:220;;;11436:8;11433:524;;;11477:5;11465:17;;11461:215;11515:1;11488:8;:17;;:24;;;;:28;11484:1;:32;11461:215;;;11564:8;:17;;11586:1;11582;:5;11564:24;;;;;;;;;;;;;;;;;;11541:8;:17;;11559:1;11541:20;;;;;;;;;;;;;;;;;:47;;;;11633:8;:20;;11658:1;11654;:5;11633:27;;;;;;;;;;;;;;;;;;11607:8;:20;;11628:1;11607:23;;;;;;;;;;;;;;;;;:53;;;;11518:3;;;;;;;11461:215;;;11697:8;:17;;11742:1;11715:8;:17;;:24;;;;:28;11697:47;;;;;;;;;;;;;;;;;11690:54;;;11759:8;:17;;:26;;;;;;;;;;;;:::i;:::-;;11807:8;:20;;11858:1;11828:8;:20;;:27;;;;:31;11807:53;;;;;;;;;;;;;;;;;11800:60;;;11875:8;:20;;:29;;;;;;;;;;;;:::i;:::-;;11433:524;;;11937:8;;;11433:524;10950:1024;;;;;;;;;:::o;6591:301::-;6672:4;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;6707:1;6697:6;:11;:54;;;;6750:1;6712:4;:16;6717:10;6712:16;;;;;;;;;;;;;;;:24;;:34;6737:8;6712:34;;;;;;;;;;;;;;;;:39;6697:54;6689:63;;;;;;;;6801:6;6764:4;:16;6769:10;6764:16;;;;;;;;;;;;;;;:24;;:34;6789:8;6764:34;;;;;;;;;;;;;;;:43;;;;6845:8;6824:38;;6833:10;6824:38;;;6855:6;6824:38;;;;;;;;;;;;;;;;;;6880:4;6873:11;;6591:301;;;;:::o;7783:90::-;7827:7;7854:11;;7847:18;;7783:90;:::o;6898:504::-;6994:4;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;7011:39;7025:5;7032:3;7037:6;7045:4;7011:13;:39::i;:::-;;7080:4;:11;7085:5;7080:11;;;;;;;;;;;;;;;:19;;:31;7100:10;7080:31;;;;;;;;;;;;;;;;7069:6;:42;;7061:51;;;;;;;;7147:31;7171:6;7147:4;:11;7152:5;7147:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;7125:4;:11;7130:5;7125:11;;;;;;;;;;;;;;;:19;;:53;;;;7209:29;7231:6;7209:4;:9;7214:3;7209:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;7189:4;:9;7194:3;7189:9;;;;;;;;;;;;;;;:17;;:49;;;;7285:43;7321:6;7285:4;:11;7290:5;7285:11;;;;;;;;;;;;;;;:19;;:31;7305:10;7285:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;7251:4;:11;7256:5;7251:11;;;;;;;;;;;;;;;:19;;:31;7271:10;7251:31;;;;;;;;;;;;;;;:77;;;;7360:3;7344:28;;7353:5;7344:28;;;7365:6;7344:28;;;;;;;;;;;;;;;;;;7390:4;7383:11;;6898:504;;;;;:::o;3724:233::-;3785:10;3814;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3798:5;3785:18;;3827:1;3814:14;;3856:19;3871:3;3856:14;:19::i;:::-;3839:36;;;;;;;;3905:5;3904:6;3896:15;;;;;;;;3932:7;3945:3;3932:17;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3932:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3724:233;;;:::o;1904:232::-;1965:10;1994;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1978:5;1965:18;;2007:1;1994:14;;2036:17;2049:3;2036:12;:17::i;:::-;2019:34;;;;;;;;2083:5;2082:6;2074:15;;;;;;;;2110:8;2124:3;2110:18;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2110:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:232;;;:::o;6098:177::-;6159:4;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;6205:4;6184:25;;:4;:12;6189:6;6184:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:25;;;6176:34;;;;;;;;6241:5;6221:4;:12;6226:6;6221:12;;;;;;;;;;;;;;;:17;;;:25;;;;;;;;;;;;;;;;;;6263:4;6256:11;;6098:177;;;;;:::o;5272:21::-;;;;;;;;;;;;;:::o;15578:85::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;15650:4;15634:13;;:20;;;;;;;;;;;;;;;;;;15578:85::o;2923:108::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;2774:6;;;;;;;;;;;2766:15;;;;;;;;2993:5;2984:6;;:14;;;;;;;;;;;;;;;;;;3014:9;;;;;;;;;;2923:108;;:::o;16454:523::-;16549:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;16575:13;;;;;;;;;;;16574:14;16566:23;;;;;;;;16609:16;16619:5;16609:9;:16::i;:::-;16608:17;16600:26;;;;;;;;16670:4;16655:20;;:3;:20;;;;16647:29;;;;;;;;16710:1;16695:17;;:3;:17;;;;16687:26;;;;;;;;16755:6;16732:4;:11;16737:5;16732:11;;;;;;;;;;;;;;;:19;;;:29;;16724:38;;;;;;;;16805:31;16829:6;16805:4;:11;16810:5;16805:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;16783:4;:11;16788:5;16783:11;;;;;;;;;;;;;;;:19;;:53;;;;16867:29;16889:6;16867:4;:9;16872:3;16867:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;16847:4;:9;16852:3;16847:9;;;;;;;;;;;;;;;:17;;:49;;;;16935:3;16914:33;;16923:10;16914:33;;;16940:6;16914:33;;;;;;;;;;;;;;;;;;16965:4;16958:11;;16454:523;;;;;:::o;6284:296::-;6340:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;6375:4;:16;6380:10;6375:16;;;;;;;;;;;;;;;:24;;;6365:6;:34;;6357:43;;;;;;;;6438:36;6467:6;6438:4;:16;6443:10;6438:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;6411:4;:16;6416:10;6411:16;;;;;;;;;;;;;;;:24;;:63;;;;6499:23;6515:6;6499:11;;:15;;:23;;;;:::i;:::-;6485:11;:37;;;;6538:12;6543:6;6538:12;;;;;;;;;;;;;;;;;;6568:4;6561:11;;6284:296;;;:::o;3114:93::-;3157:9;3192:7;3185:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3114:93;:::o;2618:26::-;;;;;;;;;;;;;:::o;11980:1536::-;12113:13;12145;12177:9;12574;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;12129:5;12113:21;;12161:1;12145:17;;12189:1;12177:13;;12173:357;12196:8;:13;12205:3;12196:13;;;;;;;;;;;;;;;:22;;:29;;;;12192:1;:33;12173:357;;;12287:9;12279:18;;;;;;;;12250:8;:13;12259:3;12250:13;;;;;;;;;;;;;;;:22;;12273:1;12250:25;;;;;;;;;;;;;;;;;;:47;:108;;;;;12348:10;12318:8;:13;12327:3;12318:13;;;;;;;;;;;;;;;:23;;12342:1;12318:26;;;;;;;;;;;;;;;;;;:40;12250:108;:165;;;;;12407:8;12379;:13;12388:3;12379:13;;;;;;;;;;;;;;;:21;;12401:1;12379:24;;;;;;;;;;;;;;;;;;:36;12250:165;12247:272;;;12447:4;12436:15;;12478:1;12470:9;;12498:5;;12247:272;12227:3;;;;;;;12173:357;;;12548:8;12540:17;;;;;;;;12586:5;12574:17;;12570:388;12629:1;12597:8;:13;12606:3;12597:13;;;;;;;;;;;;;;;:22;;:29;;;;:33;12593:1;:37;12570:388;;;12679:8;:13;12688:3;12679:13;;;;;;;;;;;;;;;:22;;12706:1;12702;:5;12679:29;;;;;;;;;;;;;;;;;;12651:8;:13;12660:3;12651:13;;;;;;;;;;;;;;;:22;;12674:1;12651:25;;;;;;;;;;;;;;;;;:57;;;;12762:8;:13;12771:3;12762:13;;;;;;;;;;;;;;;:33;;12800:1;12796;:5;12762:40;;;;;;;;;;;;;;;;;;12723:8;:13;12732:3;12723:13;;;;;;;;;;;;;;;:33;;12757:1;12723:36;;;;;;;;;;;;;;;;;:79;;;;12846:8;:13;12855:3;12846:13;;;;;;;;;;;;;;;:23;;12874:1;12870;:5;12846:30;;;;;;;;;;;;;;;;;;12817:8;:13;12826:3;12817:13;;;;;;;;;;;;;;;:23;;12841:1;12817:26;;;;;;;;;;;;;;;;;:59;;;;12918:8;:13;12927:3;12918:13;;;;;;;;;;;;;;;:21;;12944:1;12940;:5;12918:28;;;;;;;;;;;;;;;;;;12891:8;:13;12900:3;12891:13;;;;;;;;;;;;;;;:21;;12913:1;12891:24;;;;;;;;;;;;;;;;;:55;;;;12632:3;;;;;;;12570:388;;;12985:8;:13;12994:3;12985:13;;;;;;;;;;;;;;;:22;;13040:1;13008:8;:13;13017:3;13008:13;;;;;;;;;;;;;;;:22;;:29;;;;:33;12985:57;;;;;;;;;;;;;;;;;12978:64;;;13053:8;:13;13062:3;13053:13;;;;;;;;;;;;;;;:22;;:31;;;;;;;;;;;;:::i;:::-;;13112:8;:13;13121:3;13112:13;;;;;;;;;;;;;;;:33;;13189:1;13146:8;:13;13155:3;13146:13;;;;;;;;;;;;;;;:33;;:40;;;;:44;13112:79;;;;;;;;;;;;;;;;;13105:86;;;13202:8;:13;13211:3;13202:13;;;;;;;;;;;;;;;:33;;:42;;;;;;;;;;;;:::i;:::-;;13272:8;:13;13281:3;13272:13;;;;;;;;;;;;;;;:23;;13329:1;13296:8;:13;13305:3;13296:13;;;;;;;;;;;;;;;:23;;:30;;;;:34;13272:59;;;;;;;;;;;;;;;;;13265:66;;;13342:8;:13;13351:3;13342:13;;;;;;;;;;;;;;;:23;;:32;;;;;;;;;;;;:::i;:::-;;13402:8;:13;13411:3;13402:13;;;;;;;;;;;;;;;:21;;13455:1;13424:8;:13;13433:3;13424:13;;;;;;;;;;;;;;;:21;;:28;;;;:32;13402:55;;;;;;;;;;;;;;;;;13395:62;;;13468:8;:13;13477:3;13468:13;;;;;;;;;;;;;;;:21;;:30;;;;;;;;;;;;:::i;:::-;;11980:1536;;;;;;;;;;:::o;16983:139::-;17042:7;17069:45;17091:22;17106:6;17091:14;:22::i;:::-;17069:17;17079:6;17069:9;:17::i;:::-;:21;;:45;;;;:::i;:::-;17062:52;;16983:139;;;:::o;7879:111::-;7935:7;7962:4;:12;7967:6;7962:12;;;;;;;;;;;;;;;:20;;;7955:27;;7879:111;;;:::o;3963:383::-;4027:10;4056;4168:21;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;4040:5;4027:18;;4069:1;4056:14;;4098:19;4113:3;4098:14;:19::i;:::-;4081:36;;;;;;;;4146:5;4138:14;;;;;;;;4209:1;4192:7;:14;;;;:18;4168:42;;4239:7;4247:16;4239:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4222:7;4230:5;4222:14;;;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;4284:7;4309:1;4292:7;:14;;;;:18;4284:27;;;;;;;;;;;;;;;;;;4277:34;;;;;;;;;;;4322:7;:16;;;;;;;;;;;;:::i;:::-;;3963:383;;;;:::o;2809:106::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;2880:4;2871:6;;:13;;;;;;;;;;;;;;;;;;2900:7;;;;;;;;;;2809:106;;:::o;701:20::-;;;;;;;;;;;;;:::o;13524:213::-;13589:9;13600;13622:11;13644:5;13636:14;;;;;;;;13622:28;;13669:13;:18;13683:3;13669:18;;;;;;;;;;;:27;;13698:13;:18;13712:3;13698:18;;;;;;;;;;;:30;;13661:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13524:213;;;;:::o;15531:33::-;;;;;;;;;;;;;:::o;7996:105::-;8052:4;8076;:12;8081:6;8076:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;8069:24;;7996:105;;;:::o;5245:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2142:387::-;2206:10;2235;2345:21;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;2219:5;2206:18;;2248:1;2235:14;;2277:17;2290:3;2277:12;:17::i;:::-;2260:34;;;;;;;;2323:5;2315:14;;;;;;;;2387:1;2369:8;:15;;;;:19;2345:43;;2418:8;2427:16;2418:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:8;2409:5;2400:15;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2464:8;2491:1;2473:8;:15;;;;:19;2464:29;;;;;;;;;;;;;;;;;;2457:36;;;;;;;;;;;2504:8;:17;;;;;;;;;;;;:::i;:::-;;2142:387;;;;:::o;15959:483::-;16281:9;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;16105:1;16092:3;:10;:14;16084:23;;;;;;;;16140:6;:13;16126:3;:10;:27;16118:36;;;;;;;;16187:8;:15;16173:3;:10;:29;16165:38;;;;;;;;16231:14;16222:23;;;;;;;;:5;:23;;;;;;;;;;16214:32;;;;;;;;16293:1;16281:13;;16277:158;16300:3;:10;16296:1;:14;16277:158;;;16340:17;16350:3;16354:1;16350:6;;;;;;;;;;;;;;;;;;16340:9;:17::i;:::-;16339:18;16331:27;;;;;;;;16373:50;16385:3;16389:1;16385:6;;;;;;;;;;;;;;;;;;16393:5;16400:6;16407:1;16400:9;;;;;;;;;;;;;;;;;;16411:8;16420:1;16411:11;;;;;;;;;;;;;;;;;;16373;:50::i;:::-;16312:3;;;;;;;16277:158;;;15959:483;;;;;;;:::o;10349:589::-;10457:31;10535:13;10571:9;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;10491:13;:33;10513:9;10505:18;;;;;;;;10491:33;;;;;;;;;;;10457:67;;10551:5;10535:21;;10583:1;10571:13;;10567:183;10590:8;:17;;:24;;;;10586:1;:28;10567:183;;;10663:7;10639:8;:17;;10657:1;10639:20;;;;;;;;;;;;;;;;;;:31;10636:103;;;10691:8;;;10636:103;10616:3;;;;;;;10567:183;;;10773:8;10770:161;;;10797:8;;;10770:161;10838:8;:17;;10861:7;10838:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10838:31:0;;;;;;;;;;;;;;;;;;;;;;10884:8;:20;;10910:8;10884:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10884:35:0;;;;;;;;;;;;;;;;;;;;;;10349:589;;;;;;;;:::o;1531:95::-;1575:9;1610:8;1603:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:95;:::o;7414:355::-;7491:4;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;7508:44;7522:10;7534:3;7539:6;7547:4;7508:13;:44::i;:::-;;7592:36;7621:6;7592:4;:16;7597:10;7592:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;7565:4;:16;7570:10;7565:16;;;;;;;;;;;;;;;:24;;:63;;;;7659:29;7681:6;7659:4;:9;7664:3;7659:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;7639:4;:9;7644:3;7639:9;;;;;;;;;;;;;;;:17;;:49;;;;7727:3;7706:33;;7715:10;7706:33;;;7732:6;7706:33;;;;;;;;;;;;;;;;;;7757:4;7750:11;;7414:355;;;;:::o;13743:825::-;13802:9;13813;13824;13835;13846;13878:24;13967:9;13919:8;:16;13928:6;13919:16;;;;;;;;;;;;;;;:25;;:32;;;;13905: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;13905:47:0;;;;13878:74;;13979:1;13967:13;;13963:406;13986:8;:16;13995:6;13986:16;;;;;;;;;;;;;;;:25;;:32;;;;13982:1;:36;13963:406;;;14082:20;14074:29;;;;;;;;14042:8;:16;14051:6;14042:16;;;;;;;;;;;;;;;:25;;14068:1;14042:28;;;;;;;;;;;;;;;;;;:61;14039:319;;;14137:48;14152:32;14174:6;14182:1;14152:21;:32::i;:::-;14137:7;14145:1;14137:10;;;;;;;;;;;;;;;;;;:14;;:48;;;;:::i;:::-;14124:7;14132:1;14124:10;;;;;;;;;;;;;;;;;:61;;;;;14039:319;;;14250:14;14242:23;;;;;;;;14210:8;:16;14219:6;14210:16;;;;;;;;;;;;;;;:25;;14236:1;14210:28;;;;;;;;;;;;;;;;;;:55;;14207:151;;;14299:43;14314:27;14331:6;14339:1;14314:16;:27::i;:::-;14299:7;14307:1;14299:10;;;;;;;;;;;;;;;;;;:14;;:43;;;;:::i;:::-;14286:7;14294:1;14286:10;;;;;;;;;;;;;;;;;:56;;;;;14207:151;14039:319;14020:3;;;;;;;13963:406;;;14397:8;:16;14406:6;14397:16;;;;;;;;;;;;;;;:25;;14433:8;:16;14442:6;14433:16;;;;;;;;;;;;;;;:36;;14480:7;14498:8;:16;14507:6;14498:16;;;;;;;;;;;;;;;:26;;14535:8;:16;14544:6;14535:16;;;;;;;;;;;;;;;:24;;14389:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13743:825;;;;;;;;;:::o;3213:238::-;3266:4;3288:6;3297:1;3288:10;;3283:138;3305:7;:14;;;;3301:1;:18;3283:138;;;3359:3;3345:17;;:7;3353:1;3345:10;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;3341:69;;;3390:4;3383:11;;;;3341:69;3321:3;;;;;;;3283:138;;;3438:5;3431:12;;3213:238;;;;;:::o;8107:139::-;8181:7;8208:4;:12;8213:6;8208:12;;;;;;;;;;;;;;;:20;;:30;8229:8;8208:30;;;;;;;;;;;;;;;;8201:37;;8107:139;;;;:::o;976:192::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1077:1;1057:22;;:8;:22;;;;1049:31;;;;;;;;1124:8;1096:37;;1117:5;;;;;;;;;;;1096:37;;;;;;;;;;;;1152:8;1144:5;;:16;;;;;;;;;;;;;;;;;;976:192;:::o;5868:224::-;5927:4;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;5973:5;5952:26;;:4;:12;5957:6;5952:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:26;;;5944:35;;;;;;;;5999:17;6009:6;5999:9;:17::i;:::-;5998:18;5990:27;;;;;;;;6058:4;6038;:12;6043:6;6038:12;;;;;;;;;;;;;;;:17;;;:24;;;;;;;;;;;;;;;;;;6080:4;6073:11;;5868:224;;;;;:::o;10061:272::-;10144:7;10173:8;:16;10182:6;10173:16;;;;;;;;;;;;;;;:24;;10198:6;10173:32;;;;;;;;;;;;;;;;;;10167:3;:38;10164:162;;;10229:8;:16;10238:6;10229:16;;;;;;;;;;;;;;;:36;;10266:6;10229:44;;;;;;;;;;;;;;;;;;10222:51;;;;10164:162;10313:1;10306:8;;10061:272;;;;;:::o;523:147::-;581:7;601:9;617:1;613;:5;601:17;;641:1;636;:6;;629:14;;;;;;661:1;654:8;;523:147;;;;;:::o;9268:785::-;9346:7;9366:15;9396:11;9465:12;9506:9;9384:1;9366:19;;9418:8;:16;9427:6;9418:16;;;;;;;;;;;;;;;:25;;9444:6;9418:33;;;;;;;;;;;;;;;;;;9396:56;;9480:11;9465:26;;9518:1;9506:13;;9502:358;9526:13;:18;9540:3;9526:18;;;;;;;;;;;:27;;:34;;;;9522:1;:38;9502:358;;;9591:13;:18;9605:3;9591:18;;;;;;;;;;;:27;;9619:1;9591:30;;;;;;;;;;;;;;;;;;9585:3;:36;9582:267;;;9678:4;9645:13;:18;9659:3;9645:18;;;;;;;;;;;:27;;9673:1;9645:30;;;;;;;;;;;;;;;;;;:37;9642:192;;;9714:13;:18;9728:3;9714:18;;;;;;;;;;;:27;;9742:1;9714:30;;;;;;;;;;;;;;;;;;9707:37;;9777:13;:18;9791:3;9777:18;;;;;;;;;;;:30;;9808:1;9777:33;;;;;;;;;;;;;;;;;;9767:43;;9642:192;9582:267;9562:3;;;;;;;9502:358;;;9894:1;9883:7;:12;9880:166;;;9918:1;9911:8;;;;9880:166;9959:75;10025:7;9959:53;10008:3;9959:8;:16;9968:6;9959:16;;;;;;;;;;;;;;;:36;;9996:6;9959:44;;;;;;;;;;;;;;;;;;:48;;:53;;;;:::i;:::-;:57;;:75;;;;:::i;:::-;9952:82;;9268:785;;;;;;;;;:::o;1638:260::-;1695:4;1701;1723:6;1732:1;1723:10;;1718:145;1740:8;:15;;;;1736:1;:19;1718:145;;;1796:3;1781:18;;:8;1790:1;1781:11;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1777:75;;;1828:4;1834:1;1820:16;;;;;;1777:75;1757:3;;;;;;;1718:145;;;1881:5;1888:1;1873:17;;;;;;;1638:260;;;;;:::o;15678:273::-;15785:4;15802:51;15822:5;15829:3;15834:6;15842:10;15802:19;:51::i;:::-;;15867:10;15864:80;;;15912:19;15925:5;15912:12;:19::i;:::-;15902:6;:29;;15894:38;;;;;;;;15864:80;15678:273;;;;;;:::o;394:123::-;452:7;484:1;479;:6;;472:14;;;;;;508:1;504;:5;497:12;;394:123;;;;:::o;3457:261::-;3517:4;3523;3545:6;3554:1;3545:10;;3540:143;3562:7;:14;;;;3558:1;:18;3540:143;;;3616:3;3602:17;;:7;3610:1;3602:10;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;3598:74;;;3648:4;3654:1;3640:16;;;;;;3598:74;3578:3;;;;;;;3540:143;;;3701:5;3708:1;3693:17;;;;;;;3457:261;;;;;:::o;8837:423::-;8965:3;8954:8;:14;8946:23;;;;;;;;8998:1;8989:6;:10;8981:19;;;;;;;;9012:8;:13;9021:3;9012:13;;;;;;;;;;;;;;;:22;;9048:9;9040:18;;;;;;;;9012:47;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9012:47:0;;;;;;;;;;;;;;;;;;;;;;9070:8;:13;9079:3;9070:13;;;;;;;;;;;;;;;:33;;9109:6;9070:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9070:46:0;;;;;;;;;;;;;;;;;;;;;;9127:8;:13;9136:3;9127:13;;;;;;;;;;;;;;;:23;;9156:3;9127:33;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9127:33:0;;;;;;;;;;;;;;;;;;;;;;9171:8;:13;9180:3;9171:13;;;;;;;;;;;;;;;:21;;9198:8;9171:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9171:36:0;;;;;;;;;;;;;;;;;;;;;;9230:3;9225:27;;;9235:6;9243:8;9225:27;;;;;;;;;;;;;;;;;;;;;;;;8837:423;;;;:::o;266:122::-;324:7;344:9;360:1;356;:5;;;;;;;;344:17;;379:1;372:8;;266:122;;;;;:::o;52:208::-;110:7;187:9;139:1;134;:6;130:47;;;164:1;157:8;;;;130:47;203:1;199;:5;187:17;;231:1;226;222;:5;;;;;;;;:10;215:18;;;;;;251:1;244:8;;52:208;;;;;;:::o;5527:333::-;5634:4;5674;5659:20;;:3;:20;;;;5651:29;;;;;;;;5714:1;5699:17;;:3;:17;;;;5691:26;;;;;;;;5759:6;5736:4;:11;5741:5;5736:11;;;;;;;;;;;;;;;:19;;;:29;;5728:38;;;;;;;;5780:10;5777:76;;;5835:5;5815:25;;:4;:11;5820:5;5815:11;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:25;;;5807:34;;;;;;;;5777:76;5527:333;;;;;;:::o;15148:1983::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://b88bfe271524ebf8d6ea0fcf19c717e02acd957b3e699872b779bc672dca215e
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.