ETH Price: $2,425.62 (+0.25%)

Token

Universal Trade Interface (UTRIN)
 

Overview

Max Total Supply

542,574.609675 UTRIN

Holders

153 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14.05479943726926786 UTRIN

Value
$0.00
0x7bee023c5d8ad5ec9907184538e9bb26ce29895f
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A native application built to trade conventionally on decentralized exchange protocols.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UTRINToken

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-28
*/

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.7.4;

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

}

interface ItokenRecipient { 
    function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external returns (bool); 
}

interface IstakeContract { 
    function createStake(address _wallet, uint8 _timeFrame, uint256 _value) external returns (bool); 
}

interface IERC20Token {
    function totalSupply() external view returns (uint256 supply);
    function transfer(address _to, uint256 _value) external  returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
    function balanceOf(address _owner) external view returns (uint256 balance);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint256 remaining);
}

contract Ownable {

    address private owner;
    address private priceManager;
    
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(msg.sender == owner, "Caller is not owner");
        _;
    }
    
    modifier onlyPriceManager() {
        require(msg.sender == priceManager, "Caller is not priceManager");
        _;
    }
    
    

    constructor() {
        owner = msg.sender; 
        emit OwnerSet(address(0), owner);
    }


    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }
    
    function setPriceManager (address newPriceManager) public onlyOwner {
        priceManager = newPriceManager;
    }

    function getOwner() external view returns (address) {
        return owner;
    }
}

contract StandardToken is IERC20Token {
    
    using SafeMath for uint256;
    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    uint256 public _totalSupply;
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    
    function totalSupply() override public view returns (uint256 supply) {
        return _totalSupply;
    }

    function transfer(address _to, uint256 _value) override virtual public returns (bool success) {
        require(_to != address(0x0), "Use burn function instead");                               // Prevent transfer to 0x0 address. Use burn() instead
		require(_value >= 0, "Invalid amount"); 
		require(balances[msg.sender] >= _value, "Not enough balance");
		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) override virtual public returns (bool success) {
        require(_to != address(0x0), "Use burn function instead");                               // Prevent transfer to 0x0 address. Use burn() instead
		require(_value >= 0, "Invalid amount"); 
		require(balances[_from] >= _value, "Not enough balance");
		require(allowed[_from][msg.sender] >= _value, "You need to increase allowance");
		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(_from, _to, _value);
        return true;
    }

    function balanceOf(address _owner) override public view returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) override public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

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

contract UTRINToken is Ownable, StandardToken {

    using SafeMath for uint256;
    string public name;
    uint8 public decimals;
    string public symbol;
    uint256 public subscriptionPrice;
    address public stakeContract;
    address public crowdSaleContract;
    address public preSaleContract;
    address public dividendPool;
    uint256 public soldTokensUnlockTime;
    mapping (address => uint256) frozenBalances;
    mapping (address => uint256) timelock;
    
    event Burn(address indexed from, uint256 value);
    event StakeContractSet(address indexed contractAddress);

    
    constructor() {
        name = "Universal Trade Interface";
        decimals = 18;
        symbol = "UTRIN";
        
        address teamWallet = 0x41dA08f916Fc534C25FB3B388a0859b9e4A42ADa;
        address legalAndLiquidity = 0x298843E6C4Cedd1Eae5327A39847F0A170D32D26;
        address developmentFund = 0x0e70bB808E549147E3073937f13eCdc08E5d5775; 
        dividendPool = 0xd1c16226FF031Fcd961221aD25c6a43B4FB96d7E;
        
        balances[teamWallet] = 1500000 ether;                                           
        emit Transfer(address(0x0), teamWallet, (1500000 ether));                       
        
        balances[legalAndLiquidity] = 1000000 ether;                                           
        emit Transfer(address(0x0), legalAndLiquidity, (1000000 ether));
        
        balances[developmentFund] = 1500000 ether;                                    
        emit Transfer(address(0x0), developmentFund, (1500000 ether));     
        

        _totalSupply = 4000000 ether;

    }
    
    function frozenBalanceOf(address _owner) public view returns (uint256 balance) {
        return frozenBalances[_owner];
    }

    function unlockTimeOf(address _owner) public view returns (uint256 time) {
        return timelock[_owner];
    }
    
    function transfer(address _to, uint256 _value) override public  returns (bool success) {
        require(txAllowed(msg.sender, _value), "Tokens are still frozen");
        return super.transfer(_to, _value);
    }
    
    function transferFrom(address _from, address _to, uint256 _value) override public returns (bool success) { ///??
        require(txAllowed(msg.sender, _value), "Crowdsale tokens are still frozen");
        return super.transferFrom(_from, _to, _value);
    }
    
    function setStakeContract(address _contractAddress) onlyOwner public {
        stakeContract = _contractAddress;
        emit StakeContractSet(_contractAddress);
    }
    
    function setDividenPool(address _DividenPool) onlyOwner public {
        dividendPool = _DividenPool;
    }
    
        // Tokens sold by crowdsale contract will be frozen ultil crowdsale ends
    function txAllowed(address sender, uint256 amount) private returns (bool isAllowed) {
        if (timelock[sender] > block.timestamp) {
            return isBalanceFree(sender, amount);
        } else {
            if (frozenBalances[sender] > 0) frozenBalances[sender] = 0;
            return true;
        }
        
    }
    
    function isBalanceFree(address sender, uint256 amount) private view returns (bool isfree) {
        if (amount <= (balances[sender] - frozenBalances[sender])) {
            return true;
        } else {
            return false;
        }
    }
    
    function burn(uint256 _value) public onlyOwner returns (bool success) {
        require(balances[msg.sender] >= _value, "Not enough balance");
		require(_value >= 0, "Invalid amount"); 
        balances[msg.sender] = balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        return true;
    }

    function approveStake(uint8 _timeFrame, uint256 _value) public returns (bool success) {
        require(stakeContract != address(0x0));
        allowed[msg.sender][stakeContract] = _value;
        emit Approval(msg.sender, stakeContract, _value);
        IstakeContract recipient = IstakeContract(stakeContract);
        require(recipient.createStake(msg.sender, _timeFrame, _value));
        return true;
    }
    
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        ItokenRecipient recipient = ItokenRecipient(_spender);
        require(recipient.receiveApproval(msg.sender, _value, address(this), _extraData));
        return true;
    }
   
    function tokensSoldCrowdSale(address buyer, uint256 amount) public returns (bool success) {
        require(msg.sender == crowdSaleContract, "Error with tokensSoldCrowdSale function.");
        frozenBalances[buyer] += amount;
        if (timelock[buyer] == 0 ) timelock[buyer] = soldTokensUnlockTime;
        return super.transfer(buyer, amount);
    }
    
    function tokensSoldPreSale(address buyer, uint256 amount) public returns (bool success) {
        require(msg.sender == preSaleContract, "Error with tokensSoldPreSale function.");
        frozenBalances[buyer] += amount;
        if (timelock[buyer] == 0 ) timelock[buyer] = soldTokensUnlockTime;
        return super.transfer(buyer, amount);
    }
    
	function setPrice(uint256 newPrice) public onlyPriceManager {
		subscriptionPrice = newPrice;
	}

	function redeemTokens(uint256 amount) public{
	    require(amount > subscriptionPrice, "Insufficient Utrin tokens sent to cover your fee!");
		    address account = msg.sender;        	

        	balances[account] = balances[account].sub(amount);
        	emit Transfer(account, dividendPool, amount);
	}
	
	


    

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"}],"name":"StakeContractSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_timeFrame","type":"uint8"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approveStake","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"crowdSaleContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"frozenBalanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preSaleContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"redeemTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_DividenPool","type":"address"}],"name":"setDividenPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPriceManager","type":"address"}],"name":"setPriceManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"setStakeContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldTokensUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"subscriptionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSoldCrowdSale","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSoldPreSale","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"unlockTimeOf","outputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a36040518060400160405280601981526020017f556e6976657273616c20547261646520496e7465726661636500000000000000815250600590805190602001906200011a9291906200047e565b506012600660006101000a81548160ff021916908360ff1602179055506040518060400160405280600581526020017f555452494e00000000000000000000000000000000000000000000000000000081525060079080519060200190620001849291906200047e565b5060007341da08f916fc534c25fb3b388a0859b9e4a42ada9050600073298843e6c4cedd1eae5327a39847f0a170d32d2690506000730e70bb808e549147e3073937f13ecdc08e5d5775905073d1c16226ff031fcd961221ad25c6a43b4fb96d7e600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a013da329b6336471800000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a013da329b63364718000006040518082815260200191505060405180910390a369d3c21bcecceda1000000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040518082815260200191505060405180910390a36a013da329b6336471800000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a013da329b63364718000006040518082815260200191505060405180910390a36a034f086f3b33b68400000060048190555050505062000534565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620004b6576000855562000502565b82601f10620004d157805160ff191683800117855562000502565b8280016001018555821562000502579182015b8281111562000501578251825591602001919060010190620004e4565b5b50905062000511919062000515565b5090565b5b808211156200053057600081600090555060010162000516565b5090565b612e4580620005446000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636cf9282f11610104578063a9059cbb116100a2578063be91de5311610071578063be91de53146108e3578063cae9ca511461093b578063da5bc0b014610a36578063dd62ed3e14610a9a576101da565b8063a9059cbb1461080f578063b2c6b6dd14610873578063b9981608146108a7578063bdc8e54c146108c5576101da565b806391b7f5ed116100de57806391b7f5ed146106ec57806395d89b411461071a578063a6e158f81461079d578063a6f9dae1146107cb576101da565b80636cf9282f1461061c57806370a0823114610660578063893d20e8146106b8576101da565b8063313ce5671161017c578063509484d51161014b578063509484d5146104fc57806351aadcdf146105405780635511e33514610574578063630ff776146105d8576101da565b8063313ce567146104215780633eaaf86b1461044257806342966c6814610460578063469a6947146104a4576101da565b806318160ddd116101b857806318160ddd146103175780631a1862271461033557806323b872dd1461036957806330d172d5146103ed576101da565b806306fdde03146101df578063095ea7b3146102625780630ef096ed146102c6575b600080fd5b6101e7610b12565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb0565b60405180821515815260200191505060405180910390f35b6102ff600480360360408110156102dc57600080fd5b81019080803560ff16906020019092919080359060200190929190505050610ca2565b60405180821515815260200191505060405180910390f35b61031f610f1b565b6040518082815260200191505060405180910390f35b61033d610f25565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d56004803603606081101561037f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4b565b60405180821515815260200191505060405180910390f35b6103f5610fc0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610429610fe6565b604051808260ff16815260200191505060405180910390f35b61044a610ff9565b6040518082815260200191505060405180910390f35b61048c6004803603602081101561047657600080fd5b8101908080359060200190929190505050610fff565b60405180821515815260200191505060405180910390f35b6104e6600480360360208110156104ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f6565b6040518082815260200191505060405180910390f35b61053e6004803603602081101561051257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b005b610548611487565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105c06004803603604081101561058a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114ad565b60405180821515815260200191505060405180910390f35b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611643565b005b61065e6004803603602081101561063257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611748565b005b6106a26004803603602081101561067657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061184d565b6040518082815260200191505060405180910390f35b6106c0611896565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107186004803603602081101561070257600080fd5b81019080803590602001909291905050506118bf565b005b61072261198c565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610762578082015181840152602081019050610747565b50505050905090810190601f16801561078f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107c9600480360360208110156107b357600080fd5b8101908080359060200190929190505050611a2a565b005b61080d600480360360208110156107e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ba9565b005b61085b6004803603604081101561082557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d27565b60405180821515815260200191505060405180910390f35b61087b611db7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108af611ddd565b6040518082815260200191505060405180910390f35b6108cd611de3565b6040518082815260200191505060405180910390f35b610925600480360360208110156108f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611de9565b6040518082815260200191505060405180910390f35b610a1e6004803603606081101561095157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561099857600080fd5b8201836020820111156109aa57600080fd5b803590602001918460018302840111640100000000831117156109cc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e32565b60405180821515815260200191505060405180910390f35b610a8260048036036040811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061206b565b60405180821515815260200191505060405180910390f35b610afc60048036036040811015610ab057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612201565b6040518082815260200191505060405180910390f35b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ba85780601f10610b7d57610100808354040283529160200191610ba8565b820191906000526020600020905b815481529060010190602001808311610b8b57829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610cff57600080fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16637e3172903386866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1681526020018281526020019350505050602060405180830381600087803b158015610ecc57600080fd5b505af1158015610ee0573d6000803e3d6000fd5b505050506040513d6020811015610ef657600080fd5b8101908080519060200190929190505050610f1057600080fd5b600191505092915050565b6000600454905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f573383612288565b610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dc76021913960400191505060405180910390fd5b610fb784848461237b565b90509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900460ff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611178576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b60008210156111ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b61124182600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611299826004546127d790919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fcf229ad20569d02c4a6cd3b3ae6130cb9e6257558e22a670804b6a6eb866b71460405160405180910390a250565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612da16026913960400191505060405180910390fd5b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561163157600d54600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61163b8383612821565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43616c6c6572206973206e6f742070726963654d616e6167657200000000000081525060200191505060405180910390fd5b8060088190555050565b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a225780601f106119f757610100808354040283529160200191611a22565b820191906000526020600020905b815481529060010190602001808311611a0557829003601f168201915b505050505081565b6008548111611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180612d706031913960400191505060405180910390fd5b6000339050611adb82600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611d333383612288565b611da5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f546f6b656e7320617265207374696c6c2066726f7a656e00000000000000000081525060200191505060405180910390fd5b611daf8383612821565b905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60085481565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600082600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a360008490508073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fcc578082015181840152602081019050611fb1565b50505050905090810190601f168015611ff95780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561201b57600080fd5b505af115801561202f573d6000803e3d6000fd5b505050506040513d602081101561204557600080fd5b810190808051906020019092919050505061205f57600080fd5b60019150509392505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612de86028913960400191505060405180910390fd5b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156121ef57600d54600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6121f98383612821565b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600042600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156122e2576122db8383612b8a565b9050612375565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612370576000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561241f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f557365206275726e2066756e6374696f6e20696e73746561640000000000000081525060200191505060405180910390fd5b6000821015612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561254b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561263d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f596f75206e65656420746f20696e63726561736520616c6c6f77616e6365000081525060200191505060405180910390fd5b61268f82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600061281983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612caf565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f557365206275726e2066756e6374696f6e20696e73746561640000000000000081525060200191505060405180910390fd5b600082101561293c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156129f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b612a4382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ad882600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054038211612c1c5760019050612c21565b600090505b92915050565b600080828401905083811015612ca5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290612d5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d21578082015181840152602081019050612d06565b50505050905090810190601f168015612d4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe496e73756666696369656e7420557472696e20746f6b656e732073656e7420746f20636f76657220796f757220666565214572726f72207769746820746f6b656e73536f6c6450726553616c652066756e6374696f6e2e43726f776473616c6520746f6b656e7320617265207374696c6c2066726f7a656e4572726f72207769746820746f6b656e73536f6c6443726f776453616c652066756e6374696f6e2ea2646970667358221220f7ad6ecb88ce5594e25c106b1094381d0e2753f4a4a206e3c517c47535a3795764736f6c63430007040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636cf9282f11610104578063a9059cbb116100a2578063be91de5311610071578063be91de53146108e3578063cae9ca511461093b578063da5bc0b014610a36578063dd62ed3e14610a9a576101da565b8063a9059cbb1461080f578063b2c6b6dd14610873578063b9981608146108a7578063bdc8e54c146108c5576101da565b806391b7f5ed116100de57806391b7f5ed146106ec57806395d89b411461071a578063a6e158f81461079d578063a6f9dae1146107cb576101da565b80636cf9282f1461061c57806370a0823114610660578063893d20e8146106b8576101da565b8063313ce5671161017c578063509484d51161014b578063509484d5146104fc57806351aadcdf146105405780635511e33514610574578063630ff776146105d8576101da565b8063313ce567146104215780633eaaf86b1461044257806342966c6814610460578063469a6947146104a4576101da565b806318160ddd116101b857806318160ddd146103175780631a1862271461033557806323b872dd1461036957806330d172d5146103ed576101da565b806306fdde03146101df578063095ea7b3146102625780630ef096ed146102c6575b600080fd5b6101e7610b12565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb0565b60405180821515815260200191505060405180910390f35b6102ff600480360360408110156102dc57600080fd5b81019080803560ff16906020019092919080359060200190929190505050610ca2565b60405180821515815260200191505060405180910390f35b61031f610f1b565b6040518082815260200191505060405180910390f35b61033d610f25565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d56004803603606081101561037f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4b565b60405180821515815260200191505060405180910390f35b6103f5610fc0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610429610fe6565b604051808260ff16815260200191505060405180910390f35b61044a610ff9565b6040518082815260200191505060405180910390f35b61048c6004803603602081101561047657600080fd5b8101908080359060200190929190505050610fff565b60405180821515815260200191505060405180910390f35b6104e6600480360360208110156104ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f6565b6040518082815260200191505060405180910390f35b61053e6004803603602081101561051257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b005b610548611487565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105c06004803603604081101561058a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114ad565b60405180821515815260200191505060405180910390f35b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611643565b005b61065e6004803603602081101561063257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611748565b005b6106a26004803603602081101561067657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061184d565b6040518082815260200191505060405180910390f35b6106c0611896565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107186004803603602081101561070257600080fd5b81019080803590602001909291905050506118bf565b005b61072261198c565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610762578082015181840152602081019050610747565b50505050905090810190601f16801561078f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107c9600480360360208110156107b357600080fd5b8101908080359060200190929190505050611a2a565b005b61080d600480360360208110156107e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ba9565b005b61085b6004803603604081101561082557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d27565b60405180821515815260200191505060405180910390f35b61087b611db7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108af611ddd565b6040518082815260200191505060405180910390f35b6108cd611de3565b6040518082815260200191505060405180910390f35b610925600480360360208110156108f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611de9565b6040518082815260200191505060405180910390f35b610a1e6004803603606081101561095157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561099857600080fd5b8201836020820111156109aa57600080fd5b803590602001918460018302840111640100000000831117156109cc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e32565b60405180821515815260200191505060405180910390f35b610a8260048036036040811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061206b565b60405180821515815260200191505060405180910390f35b610afc60048036036040811015610ab057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612201565b6040518082815260200191505060405180910390f35b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ba85780601f10610b7d57610100808354040283529160200191610ba8565b820191906000526020600020905b815481529060010190602001808311610b8b57829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610cff57600080fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16637e3172903386866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1681526020018281526020019350505050602060405180830381600087803b158015610ecc57600080fd5b505af1158015610ee0573d6000803e3d6000fd5b505050506040513d6020811015610ef657600080fd5b8101908080519060200190929190505050610f1057600080fd5b600191505092915050565b6000600454905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f573383612288565b610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dc76021913960400191505060405180910390fd5b610fb784848461237b565b90509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900460ff1681565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611178576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b60008210156111ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b61124182600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611299826004546127d790919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fcf229ad20569d02c4a6cd3b3ae6130cb9e6257558e22a670804b6a6eb866b71460405160405180910390a250565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612da16026913960400191505060405180910390fd5b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561163157600d54600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61163b8383612821565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43616c6c6572206973206e6f742070726963654d616e6167657200000000000081525060200191505060405180910390fd5b8060088190555050565b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a225780601f106119f757610100808354040283529160200191611a22565b820191906000526020600020905b815481529060010190602001808311611a0557829003601f168201915b505050505081565b6008548111611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180612d706031913960400191505060405180910390fd5b6000339050611adb82600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43616c6c6572206973206e6f74206f776e65720000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611d333383612288565b611da5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f546f6b656e7320617265207374696c6c2066726f7a656e00000000000000000081525060200191505060405180910390fd5b611daf8383612821565b905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60085481565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600082600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a360008490508073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fcc578082015181840152602081019050611fb1565b50505050905090810190601f168015611ff95780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561201b57600080fd5b505af115801561202f573d6000803e3d6000fd5b505050506040513d602081101561204557600080fd5b810190808051906020019092919050505061205f57600080fd5b60019150509392505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612113576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612de86028913960400191505060405180910390fd5b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156121ef57600d54600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6121f98383612821565b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600042600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156122e2576122db8383612b8a565b9050612375565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612370576000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561241f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f557365206275726e2066756e6374696f6e20696e73746561640000000000000081525060200191505060405180910390fd5b6000821015612496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561254b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561263d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f596f75206e65656420746f20696e63726561736520616c6c6f77616e6365000081525060200191505060405180910390fd5b61268f82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272482600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600061281983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612caf565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f557365206275726e2066756e6374696f6e20696e73746561640000000000000081525060200191505060405180910390fd5b600082101561293c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c696420616d6f756e7400000000000000000000000000000000000081525060200191505060405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156129f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b612a4382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ad882600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054038211612c1c5760019050612c21565b600090505b92915050565b600080828401905083811015612ca5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000838311158290612d5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d21578082015181840152602081019050612d06565b50505050905090810190601f168015612d4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe496e73756666696369656e7420557472696e20746f6b656e732073656e7420746f20636f76657220796f757220666565214572726f72207769746820746f6b656e73536f6c6450726553616c652066756e6374696f6e2e43726f776473616c6520746f6b656e7320617265207374696c6c2066726f7a656e4572726f72207769746820746f6b656e73536f6c6443726f776453616c652066756e6374696f6e2ea2646970667358221220f7ad6ecb88ce5594e25c106b1094381d0e2753f4a4a206e3c517c47535a3795764736f6c63430007040033

Deployed Bytecode Sourcemap

4672:5802:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4760:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4275:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8466:418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2857:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4879:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6822:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4990:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4785:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2643:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8086:372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6467:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7095:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4914:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9679:352;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7277:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2236:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4143:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2361:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10040:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4813:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10143:310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2092:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6594:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4953:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5024:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4840:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6332:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8896:402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9309:358;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4506:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4760:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4275:223::-;4351:12;4408:6;4376:7;:19;4384:10;4376:19;;;;;;;;;;;;;;;:29;4396:8;4376:29;;;;;;;;;;;;;;;:38;;;;4451:8;4430:38;;4439:10;4430:38;;;4461:6;4430:38;;;;;;;;;;;;;;;;;;4486:4;4479:11;;4275:223;;;;:::o;8466:418::-;8538:12;8596:3;8571:29;;:13;;;;;;;;;;;:29;;;;8563:38;;;;;;8649:6;8612:7;:19;8620:10;8612:19;;;;;;;;;;;;;;;:34;8632:13;;;;;;;;;;;8612:34;;;;;;;;;;;;;;;:43;;;;8692:13;;;;;;;;;;;8671:43;;8680:10;8671:43;;;8707:6;8671:43;;;;;;;;;;;;;;;;;;8725:24;8767:13;;;;;;;;;;;8725:56;;8800:9;:21;;;8822:10;8834;8846:6;8800:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8792:62;;;;;;8872:4;8865:11;;;8466:418;;;;:::o;2857:107::-;2910:14;2944:12;;2937:19;;2857:107;:::o;4879:28::-;;;;;;;;;;;;;:::o;6822:261::-;6913:12;6952:29;6962:10;6974:6;6952:9;:29::i;:::-;6944:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7037:38;7056:5;7063:3;7068:6;7037:18;:38::i;:::-;7030:45;;6822:261;;;;;:::o;4990:27::-;;;;;;;;;;;;;:::o;4785:21::-;;;;;;;;;;;;;:::o;2643:27::-;;;;:::o;8086:372::-;8142:12;1782:5;;;;;;;;;;;1768:19;;:10;:19;;;1760:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8199:6:::1;8175:8;:20;8184:10;8175:20;;;;;;;;;;;;;;;;:30;;8167:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8251:1;8241:6;:11;;8233:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8306:32;8331:6;8306:8;:20;8315:10;8306:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8283:8;:20;8292:10;8283:20;;;;;;;;;;;;;;;:55;;;;8364:24;8381:6;8364:12;;:16;;:24;;;;:::i;:::-;8349:12;:39;;;;8409:10;8404:24;;;8421:6;8404:24;;;;;;;;;;;;;;;;;;8446:4;8439:11;;8086:372:::0;;;:::o;6467:115::-;6526:12;6558:8;:16;6567:6;6558:16;;;;;;;;;;;;;;;;6551:23;;6467:115;;;:::o;7095:170::-;1782:5;;;;;;;;;;1768:19;;:10;:19;;;1760:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7191:16:::1;7175:13;;:32;;;;;;;;;;;;;;;;;;7240:16;7223:34;;;;;;;;;;;;7095:170:::0;:::o;4914:32::-;;;;;;;;;;;;;:::o;9679:352::-;9753:12;9800:15;;;;;;;;;;;9786:29;;:10;:29;;;9778:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9894:6;9869:14;:21;9884:5;9869:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;9934:1;9915:8;:15;9924:5;9915:15;;;;;;;;;;;;;;;;:20;9911:65;;;9956:20;;9938:8;:15;9947:5;9938:15;;;;;;;;;;;;;;;:38;;;;9911:65;9994:29;10009:5;10016:6;9994:14;:29::i;:::-;9987:36;;9679:352;;;;:::o;7277:109::-;1782:5;;;;;;;;;;1768:19;;:10;:19;;;1760:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7366:12:::1;7351;;:27;;;;;;;;;;;;;;;;;;7277:109:::0;:::o;2236:117::-;1782:5;;;;;;;;;;1768:19;;:10;:19;;;1760:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2330:15:::1;2315:12;;:30;;;;;;;;;;;;;;;;;;2236:117:::0;:::o;4143:124::-;4208:15;4243:8;:16;4252:6;4243:16;;;;;;;;;;;;;;;;4236:23;;4143:124;;;:::o;2361:83::-;2404:7;2431:5;;;;;;;;;;;2424:12;;2361:83;:::o;10040:98::-;1904:12;;;;;;;;;;;1890:26;;:10;:26;;;1882:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10125:8:::1;10105:17;:28;;;;10040:98:::0;:::o;4813:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10143:310::-;10212:17;;10203:6;:26;10195:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10292:15;10310:10;10292:28;;10363:29;10385:6;10363:8;:17;10372:7;10363:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;10343:8;:17;10352:7;10343:17;;;;;;;;;;;;;;;:49;;;;10427:12;;;;;;;;;;;10409:39;;10418:7;10409:39;;;10441:6;10409:39;;;;;;;;;;;;;;;;;;10143:310;;:::o;2092:132::-;1782:5;;;;;;;;;;1768:19;;:10;:19;;;1760:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:8:::1;2164:25;;2173:5;::::0;::::1;;;;;;;;2164:25;;;;;;;;;;;;2208:8;2200:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2092:132:::0;:::o;6594:216::-;6667:12;6700:29;6710:10;6722:6;6700:9;:29::i;:::-;6692:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6775:27;6790:3;6795:6;6775:14;:27::i;:::-;6768:34;;6594:216;;;;:::o;4953:30::-;;;;;;;;;;;;;:::o;5024:35::-;;;;:::o;4840:32::-;;;;:::o;6332:127::-;6394:15;6429:14;:22;6444:6;6429:22;;;;;;;;;;;;;;;;6422:29;;6332:127;;;:::o;8896:402::-;8995:12;9052:6;9020:7;:19;9028:10;9020:19;;;;;;;;;;;;;;;:29;9040:8;9020:29;;;;;;;;;;;;;;;:38;;;;9095:8;9074:38;;9083:10;9074:38;;;9105:6;9074:38;;;;;;;;;;;;;;;;;;9123:25;9167:8;9123:53;;9195:9;:25;;;9221:10;9233:6;9249:4;9256:10;9195:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9187:81;;;;;;9286:4;9279:11;;;8896:402;;;;;:::o;9309:358::-;9385:12;9432:17;;;;;;;;;;;9418:31;;:10;:31;;;9410:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9530:6;9505:14;:21;9520:5;9505:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;9570:1;9551:8;:15;9560:5;9551:15;;;;;;;;;;;;;;;;:20;9547:65;;;9592:20;;9574:8;:15;9583:5;9574:15;;;;;;;;;;;;;;;:38;;;;9547:65;9630:29;9645:5;9652:6;9630:14;:29::i;:::-;9623:36;;9309:358;;;;:::o;4506:153::-;4589:17;4626:7;:15;4634:6;4626:15;;;;;;;;;;;;;;;:25;4642:8;4626:25;;;;;;;;;;;;;;;;4619:32;;4506:153;;;;:::o;7480:332::-;7548:14;7598:15;7579:8;:16;7588:6;7579:16;;;;;;;;;;;;;;;;:34;7575:220;;;7637:29;7651:6;7659;7637:13;:29::i;:::-;7630:36;;;;7575:220;7728:1;7703:14;:22;7718:6;7703:22;;;;;;;;;;;;;;;;:26;7699:58;;;7756:1;7731:14;:22;7746:6;7731:22;;;;;;;;;;;;;;;:26;;;;7699:58;7779:4;7772:11;;7480:332;;;;;:::o;3516:619::-;3615:12;3663:3;3648:19;;:3;:19;;;;3640:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3805:1;3795:6;:11;;3787:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3858:6;3839:8;:15;3848:5;3839:15;;;;;;;;;;;;;;;;:25;;3831:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3930:6;3900:7;:14;3908:5;3900:14;;;;;;;;;;;;;;;:26;3915:10;3900:26;;;;;;;;;;;;;;;;:36;;3892:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3994:27;4014:6;3994:8;:15;4003:5;3994:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;3976:8;:15;3985:5;3976:15;;;;;;;;;;;;;;;:45;;;;4042:25;4060:6;4042:8;:13;4051:3;4042:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;4026:8;:13;4035:3;4026:13;;;;;;;;;;;;;;;:41;;;;4093:3;4077:28;;4086:5;4077:28;;;4098:6;4077:28;;;;;;;;;;;;;;;;;;4123:4;4116:11;;3516:619;;;;;:::o;348:136::-;406:7;433:43;437:1;440;433:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;426:50;;348:136;;;;:::o;2972:536::-;3052:12;3100:3;3085:19;;:3;:19;;;;3077:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3242:1;3232:6;:11;;3224:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:6;3276:8;:20;3285:10;3276:20;;;;;;;;;;;;;;;;:30;;3268:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3357:32;3382:6;3357:8;:20;3366:10;3357:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3334:8;:20;3343:10;3334:20;;;;;;;;;;;;;;;:55;;;;3410:25;3428:6;3410:8;:13;3419:3;3410:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3394:8;:13;3403:3;3394:13;;;;;;;;;;;;;;;:41;;;;3466:3;3445:33;;3454:10;3445:33;;;3471:6;3445:33;;;;;;;;;;;;;;;;;;3496:4;3489:11;;2972:536;;;;:::o;7824:250::-;7901:11;7959:14;:22;7974:6;7959:22;;;;;;;;;;;;;;;;7940:8;:16;7949:6;7940:16;;;;;;;;;;;;;;;;:41;7929:6;:53;7925:142;;8006:4;7999:11;;;;7925:142;8050:5;8043:12;;7824:250;;;;;:::o;159:181::-;217:7;237:9;253:1;249;:5;237:17;;278:1;273;:6;;265:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:1;324:8;;;159:181;;;;:::o;492:192::-;578:7;611:1;606;:6;;614:12;598:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;638:9;654:1;650;:5;638:17;;675:1;668:8;;;492:192;;;;;:::o

Swarm Source

ipfs://f7ad6ecb88ce5594e25c106b1094381d0e2753f4a4a206e3c517c47535a37957
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.