Token BRIKkoala

 

Overview [ERC-20]

Max Total Supply:
40,000 BRIKkoala

Holders:
1

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ERC1404TokenMinKYC

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-24
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;




/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20Token {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}




abstract contract IERC1404 {
    /// @notice Detects if a transfer will be reverted and if so returns an appropriate reference code
    /// @param from Sending address
    /// @param to Receiving address
    /// @param value Amount of tokens being transferred
    /// @return Code by which to reference message for rejection reasoning
    /// @dev Overwrite with your custom transfer restriction logic
    function  detectTransferRestriction (address from, address to, uint256 value) public virtual view returns (uint8);

    /// @notice Returns a human-readable message for a given restriction code
    /// @param restrictionCode Identifier for looking up a message
    /// @return Text showing the restriction's reasoning
    /// @dev Overwrite with your custom message and restrictionCode handling
    function  messageForTransferRestriction  (uint8 restrictionCode) public virtual view returns (string memory);
}



contract ERC1404TokenMinKYC is IERC20Token, IERC1404 {
	
	// Set buy and sell restrictions on investors.  
	// date is Linux Epoch datetime
	// Both date must be less than current date time to allow the respective operation. Like to get tokens from others, receiver's buy restriction
	// must be less than current date time. 
	// 0 means investor is not allowed to buy or sell his token.  0 indicates buyer or seller is not whitelisted. 
	// this condition is checked in detectTransferRestriction
    mapping (address => uint256) private _buyRestriction;  
	mapping (address => uint256) private _sellRestriction;	
	
	mapping (address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
	address private _owner;
	
	// These addresses can control addresses that can manage whitelisting of investor or in otherwords can call modifyKYCData
    mapping (address => bool) private _whitelistControlAuthority;  	
	

    //event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens);
    //event Transfer(address indexed from, address indexed to, uint256 tokens);

	
	// ERC20 related functions
	uint256 public decimals = 18;
    uint256 private _totalSupply;
    string public name;
    string public symbol;
	
	// Custom functions
	string public ShareCertificate;
	string public CompanyHomepage;
	string public CompanyLegalDocs;

	
	// These variables control how many investors can have tokens
	// if allowedInvestors = 0 then there is no limit of investors 
	uint256 public currentTotalInvestors = 0;		
	uint256 public allowedInvestors = 0;

	// Transfer Allowed = true
	// Transfer not allowed = false
	bool public isTradingAllowed = true;
	
	
	constructor(uint256 _initialSupply, string memory _name,  string memory _symbol, uint256 _allowedInvestors, uint256 _decimals, string memory _ShareCertificate, string memory _CompanyHomepage, string memory _CompanyLegalDocs ) {

			name = _name;
			symbol = _symbol;

			decimals = _decimals;

			_owner = msg.sender;
			_buyRestriction[_owner] = 1;
			_sellRestriction[_owner] = 1;

			allowedInvestors = _allowedInvestors;

			// Minting tokens for initial supply
			_totalSupply = _initialSupply;
			_balances[_owner] = _totalSupply;

			// add message sender to whitelist authority list
			_whitelistControlAuthority[_owner] = true;

			ShareCertificate = _ShareCertificate;
			CompanyHomepage = _CompanyHomepage;
			CompanyLegalDocs = _CompanyLegalDocs;

			emit Transfer(address(0), _owner, _totalSupply);

	}



    function resetShareCertificate(string memory _ShareCertificate) 
	external 
	onlyOwner {
		 ShareCertificate = _ShareCertificate;
    }

    function resetCompanyHomepage(string memory _CompanyHomepage) 
	external 
	onlyOwner {
		 CompanyHomepage = _CompanyHomepage;
    }
	
    function resetCompanyLegalDocs(string memory _CompanyLegalDocs) 
	external 
	onlyOwner {
		 CompanyLegalDocs = _CompanyLegalDocs;
    }




	// _allowedInvestors = 0    No limit on number of investors        
	// _allowedInvestors > 0 only X number of investors can have positive balance 
    function resetAllowedInvestors(uint256 _allowedInvestors) 
	external 
	onlyOwner {
		if( _allowedInvestors != 0 )
			require(_allowedInvestors >= currentTotalInvestors, "Allowed Investors cannot be less than Current holders");

		 allowedInvestors = _allowedInvestors;
    }


    function flipTradingStatus() 
	external 
	onlyOwner {
		 isTradingAllowed = !isTradingAllowed;
    }


	//-----------------------------------------------------------------------
	// Get or set current owner of this smart contract
    function owner() 
	external 
	view 
	returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == msg.sender, "Only owner can call function");
        _;
    }
    function transferOwnership(address newOwner) 
	external 
	onlyOwner {
        require(newOwner != address(0), "Zero address not allowed");
		_owner = newOwner;
    }
	//-----------------------------------------------------------------------
	
  
  

	  


	  
 
	//-----------------------------------------------------------------------
    // Manage whitelist autority and KYC status
	
	function setWhitelistAuthorityStatus(address user)
	external 
	onlyOwner {
		_whitelistControlAuthority[user] = true;
	}
	function removeWhitelistAuthorityStatus(address user)
	external 
	onlyOwner {
		delete _whitelistControlAuthority[user];
	}	
	function getWhitelistAuthorityStatus(address user)
	external 
	view
	returns (bool) {
		 return _whitelistControlAuthority[user];
	}	
	

  	// Set buy and sell restrictions on investors 
	function modifyKYCData (address user, uint256 buyRestriction, uint256 sellRestriction) 
	external 
	{ 
	  	    require(_whitelistControlAuthority[msg.sender] == true, "Not Whitelist Authority");
			
		   _buyRestriction[user] = buyRestriction;
		   _sellRestriction[user] = sellRestriction;
	}
	  	  
	function getKYCData(address user) 
	external 
	view
	returns (uint256, uint256 ) {
		   return (_buyRestriction[user] , _sellRestriction[user] );
	}
	//-----------------------------------------------------------------------





	//-----------------------------------------------------------------------
	// These are ERC1404 interface implementations 
	
    modifier notRestricted (address from, address to, uint256 value) {
        uint8 restrictionCode = detectTransferRestriction(from, to, value);
        require(restrictionCode == 1, messageForTransferRestriction(restrictionCode));
        _;
    }
	
    function detectTransferRestriction (address _from, address _to, uint256 value) 
	override
	public 
	view 
	returns (uint8 status)
    {	
	      // check if trading is allowed 
		  require(isTradingAllowed == true, "Transfer not allowed"); 	

		  require( value > 0, "Value bring transferred cannot be 0");
		  
		  require( _sellRestriction[_from] != 0  && _buyRestriction[_to] != 0, "Not Whitelisted" );
		  require( _sellRestriction[_from] <= block.timestamp && _buyRestriction[_to] <= block.timestamp, "KYC Time Restriction" );
		  
			// Following conditions make sure if number of token holders are within limit if enabled 
			// allowedInvestors = 0 means no restriction on token holders
			if(allowedInvestors == 0)
				return 1;
			else {
				if( _balances[_to] > 0 || _to == _owner) 
					// token can be transferred if the reciver is alreay holding tokens and already counted in currentTotalInvestors
					// or receiver is the company account. Company account do not count in currentTotalInvestors
					return 1;
				else {
					if(  currentTotalInvestors < allowedInvestors  )
						// currentTotalInvestors is within limits of allowedInvestors
						return 1;
					else {
						// In this section currentTotalInvestors = allowedInvestors and no more transaction are allowed,  
						// except following conditions 
						// if whole balance is being transferred from sender to another whitelisted investor with 0 balance  and sender is no owner
						// in this situation any sender cannot send partial balance to new receiver as it will exceed allowedInvestors limt 
						// sending the whole balance will exclude current holder from allowedInvestors and new receiver will be added in allowedInvestors 
						// owner is excluded in this situation because if he send partial or full balance to new investor then it will exceed allowedInvestors
						if( _balances[_from] == value && _balances[_to] == 0 && _from != _owner)    
							return 1;
						else
							return 0;
					}
				}
			}

    }

    function messageForTransferRestriction (uint8 restrictionCode)
	override
    public	
    pure 
	returns (string memory message)
    {
        if (restrictionCode == 1) 
            message = "Whitelisted";
         else 
            message = "Not Whitelisted";
    }
	//-----------------------------------------------------------------------




 	function totalSupply() 
	override
	external 
	view 
	returns (uint256) {
		return _totalSupply;
	}


    function balanceOf(address account) 
	override
    external 
    view 
    returns (uint256) {
        return _balances[account];
    }
	


    function approve(
        address spender,
        uint256 amount
    )  
	override
	external 
	returns (bool)
	{
        require(spender != address(0), "Zero address not allowed");
		require(amount > 0, "Amount cannot be 0");

        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
		return true;
    }


 
    function allowance(address ownby, address spender) 
	override
	external 
	view 
	returns (uint256) {
        return _allowances[ownby][spender];
    }



    function transfer(
        address recipient,
        uint256 amount
    ) 	
	override
	external 
	notRestricted (msg.sender, recipient, amount)
	returns (bool)
	{
		transferSharesBetweenInvestors ( msg.sender, recipient, amount );
		return true;
    }




    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) 
	override
	external 
	notRestricted (sender, recipient, amount)
	returns (bool)	
	{	
        require(_allowances[sender][msg.sender] >= amount, "Amount cannot be greater than Allowance" );
		transferSharesBetweenInvestors ( sender, recipient, amount );
        _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;

		return true;
    }


	// Transfer tokens from one account to other
	// Also manage current number of account holders
	function transferSharesBetweenInvestors (
        address sender,
        address recipient,
        uint256 amount	
	)
	internal
	{
        	require(_balances[sender] >= amount, " Amount greater than sender balance");
			
			// owner account is not counted in currentTotalInvestors in below conditions
			
			_balances[sender] = _balances[sender] - amount;
			if( _balances[sender] == 0 && sender != _owner )
				currentTotalInvestors = currentTotalInvestors - 1;		

			if( _balances[recipient] == 0 && recipient != _owner )
				currentTotalInvestors = currentTotalInvestors + 1;
			_balances[recipient] = _balances[recipient] + amount;

			emit Transfer(sender, recipient, amount);
	}



    function mint(address account, uint256 amount) 
	onlyOwner 
	external 
	returns (bool)	{
        require(account != address(0), "Zero address not allowed");

        _totalSupply = _totalSupply + amount;
        _balances[account] = _balances[account] + amount;
        emit Transfer(address(0), account, amount);
		return true;
    }


    function burn(address account, uint256 amount) 
	onlyOwner
	external 
	returns (bool)	{
        require(account != address(0), "Zero address not allowed");
        require(_balances[account] >= amount, "Amount greater than balance");

        _totalSupply = _totalSupply - amount;
        _balances[account] = _balances[account] - amount;
        emit Transfer(account, address(0), amount);
		return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_initialSupply","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_allowedInvestors","type":"uint256"},{"internalType":"uint256","name":"_decimals","type":"uint256"},{"internalType":"string","name":"_ShareCertificate","type":"string"},{"internalType":"string","name":"_CompanyHomepage","type":"string"},{"internalType":"string","name":"_CompanyLegalDocs","type":"string"}],"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":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CompanyHomepage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CompanyLegalDocs","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ShareCertificate","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ownby","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowedInvestors","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentTotalInvestors","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"detectTransferRestriction","outputs":[{"internalType":"uint8","name":"status","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getKYCData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getWhitelistAuthorityStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"restrictionCode","type":"uint8"}],"name":"messageForTransferRestriction","outputs":[{"internalType":"string","name":"message","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"buyRestriction","type":"uint256"},{"internalType":"uint256","name":"sellRestriction","type":"uint256"}],"name":"modifyKYCData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeWhitelistAuthorityStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allowedInvestors","type":"uint256"}],"name":"resetAllowedInvestors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_CompanyHomepage","type":"string"}],"name":"resetCompanyHomepage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_CompanyLegalDocs","type":"string"}],"name":"resetCompanyLegalDocs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ShareCertificate","type":"string"}],"name":"resetShareCertificate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"setWhitelistAuthorityStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260126006556000600d556000600e556001600f60006101000a81548160ff0219169083151502179055503480156200003b57600080fd5b50604051620037bf380380620037bf8339818101604052810190620000619190620004b5565b8660089080519060200190620000799291906200037c565b508560099080519060200190620000929291906200037c565b508360068190555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001806000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600e819055508760078190555060075460026000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082600a9080519060200190620002af9291906200037c565b5081600b9080519060200190620002c89291906200037c565b5080600c9080519060200190620002e19291906200037c565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000366919062000606565b60405180910390a3505050505050505062000778565b8280546200038a90620006ca565b90600052602060002090601f016020900481019282620003ae5760008555620003fa565b82601f10620003c957805160ff1916838001178555620003fa565b82800160010185558215620003fa579182015b82811115620003f9578251825591602001919060010190620003dc565b5b5090506200040991906200040d565b5090565b5b80821115620004285760008160009055506001016200040e565b5090565b6000620004436200043d8462000657565b62000623565b9050828152602081018484840111156200045c57600080fd5b6200046984828562000694565b509392505050565b600082601f8301126200048357600080fd5b8151620004958482602086016200042c565b91505092915050565b600081519050620004af816200075e565b92915050565b600080600080600080600080610100898b031215620004d357600080fd5b6000620004e38b828c016200049e565b985050602089015167ffffffffffffffff8111156200050157600080fd5b6200050f8b828c0162000471565b975050604089015167ffffffffffffffff8111156200052d57600080fd5b6200053b8b828c0162000471565b96505060606200054e8b828c016200049e565b9550506080620005618b828c016200049e565b94505060a089015167ffffffffffffffff8111156200057f57600080fd5b6200058d8b828c0162000471565b93505060c089015167ffffffffffffffff811115620005ab57600080fd5b620005b98b828c0162000471565b92505060e089015167ffffffffffffffff811115620005d757600080fd5b620005e58b828c0162000471565b9150509295985092959890939650565b62000600816200068a565b82525050565b60006020820190506200061d6000830184620005f5565b92915050565b6000604051905081810181811067ffffffffffffffff821117156200064d576200064c6200072f565b5b8060405250919050565b600067ffffffffffffffff8211156200067557620006746200072f565b5b601f19601f8301169050602081019050919050565b6000819050919050565b60005b83811015620006b457808201518184015260208101905062000697565b83811115620006c4576000848401525b50505050565b60006002820490506001821680620006e357607f821691505b60208210811415620006fa57620006f962000700565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000769816200068a565b81146200077557600080fd5b50565b61303780620007886000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806384f9007f1161010f578063ac893db1116100a2578063da76e2f311610071578063da76e2f314610597578063dd62ed3e146105b3578063e8379421146105e3578063f2fde38b14610613576101e5565b8063ac893db114610511578063b1b5932a1461052d578063c319e41c1461054b578063d4ce141514610567576101e5565b8063a48179ff116100de578063a48179ff14610476578063a9059cbb14610494578063ab47a2f9146104c4578063abc30a4b146104f5576101e5565b806384f9007f146103ec5780638da5cb5b1461040a57806395d89b41146104285780639dc29fac14610446576101e5565b806340c10f191161018757806362a3d4bd1161015657806362a3d4bd146103525780636401ca761461036e57806370a082311461038c5780637f4ab1dd146103bc576101e5565b806340c10f19146102ca57806345968836146102fa57806351aebcd41461031857806359a72ddc14610334576101e5565b806320b6a50f116101c357806320b6a50f1461025657806323b872dd146102605780632b8e797a14610290578063313ce567146102ac576101e5565b806306fdde03146101ea578063095ea7b31461020857806318160ddd14610238575b600080fd5b6101f261062f565b6040516101ff9190612b4d565b60405180910390f35b610222600480360381019061021d91906125ec565b6106bd565b60405161022f9190612b32565b60405180910390f35b610240610861565b60405161024d9190612cef565b60405180910390f35b61025e61086b565b005b61027a6004803603810190610275919061259d565b610927565b6040516102879190612b32565b60405180910390f35b6102aa60048036038101906102a59190612628565b610b6e565b005b6102b4610c8d565b6040516102c19190612cef565b60405180910390f35b6102e460048036038101906102df91906125ec565b610c93565b6040516102f19190612b32565b60405180910390f35b610302610ea7565b60405161030f9190612cef565b60405180910390f35b610332600480360381019061032d9190612677565b610ead565b005b61033c610f57565b6040516103499190612b4d565b60405180910390f35b61036c600480360381019061036791906126b8565b610fe5565b005b6103766110cd565b6040516103839190612cef565b60405180910390f35b6103a660048036038101906103a19190612538565b6110d3565b6040516103b39190612cef565b60405180910390f35b6103d660048036038101906103d191906126e1565b61111c565b6040516103e39190612b4d565b60405180910390f35b6103f46111a5565b6040516104019190612b4d565b60405180910390f35b610412611233565b60405161041f9190612b17565b60405180910390f35b61043061125d565b60405161043d9190612b4d565b60405180910390f35b610460600480360381019061045b91906125ec565b6112eb565b60405161046d9190612b32565b60405180910390f35b61047e611581565b60405161048b9190612b32565b60405180910390f35b6104ae60048036038101906104a991906125ec565b611594565b6040516104bb9190612b32565b60405180910390f35b6104de60048036038101906104d99190612538565b611613565b6040516104ec929190612d0a565b60405180910390f35b61050f600480360381019061050a9190612677565b61169e565b005b61052b60048036038101906105269190612677565b611748565b005b6105356117f2565b6040516105429190612b4d565b60405180910390f35b61056560048036038101906105609190612538565b611880565b005b610581600480360381019061057c919061259d565b61196b565b60405161058e9190612d33565b60405180910390f35b6105b160048036038101906105ac9190612538565b611d73565b005b6105cd60048036038101906105c89190612561565b611e55565b6040516105da9190612cef565b60405180910390f35b6105fd60048036038101906105f89190612538565b611edc565b60405161060a9190612b32565b60405180910390f35b61062d60048036038101906106289190612538565b611f32565b005b6008805461063c90612eec565b80601f016020809104026020016040519081016040528092919081815260200182805461066890612eec565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561072e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072590612c2f565b60405180910390fd5b60008211610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612bcf565b60405180910390fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161084f9190612cef565b60405180910390a36001905092915050565b6000600754905090565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f290612b6f565b60405180910390fd5b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b6000838383600061093984848461196b565b905060018160ff161461094b8261111c565b9061098c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109839190612b4d565b60405180910390fd5b5085600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390612bef565b60405180910390fd5b610a57888888612076565b85600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610adf9190612e21565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019450505050509392505050565b60011515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612ccf565b60405180910390fd5b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60065481565b60003373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1c90612b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90612c2f565b60405180910390fd5b81600754610da39190612dcb565b60078190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df49190612dcb565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e959190612cef565b60405180910390a36001905092915050565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490612b6f565b60405180910390fd5b80600c9080519060200190610f539291906123ee565b5050565b600a8054610f6490612eec565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9090612eec565b8015610fdd5780601f10610fb257610100808354040283529160200191610fdd565b820191906000526020600020905b815481529060010190602001808311610fc057829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612b6f565b60405180910390fd5b600081146110c357600d548110156110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990612c8f565b60405180910390fd5b5b80600e8190555050565b600e5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060018260ff161415611167576040518060400160405280600b81526020017f57686974656c697374656400000000000000000000000000000000000000000081525090506111a0565b6040518060400160405280600f81526020017f4e6f742057686974656c6973746564000000000000000000000000000000000081525090505b919050565b600b80546111b290612eec565b80601f01602080910402602001604051908101604052809291908181526020018280546111de90612eec565b801561122b5780601f106112005761010080835404028352916020019161122b565b820191906000526020600020905b81548152906001019060200180831161120e57829003601f168201915b505050505081565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6009805461126a90612eec565b80601f016020809104026020016040519081016040528092919081815260200182805461129690612eec565b80156112e35780601f106112b8576101008083540402835291602001916112e3565b820191906000526020600020905b8154815290600101906020018083116112c657829003601f168201915b505050505081565b60003373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490612c2f565b60405180910390fd5b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146690612c6f565b60405180910390fd5b8160075461147d9190612e21565b60078190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114ce9190612e21565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156f9190612cef565b60405180910390a36001905092915050565b600f60009054906101000a900460ff1681565b600033838360006115a684848461196b565b905060018160ff16146115b88261111c565b906115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f09190612b4d565b60405180910390fd5b50611605338888612076565b600194505050505092915050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491509150915091565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590612b6f565b60405180910390fd5b80600b90805190602001906117449291906123ee565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90612b6f565b60405180910390fd5b80600a90805190602001906117ee9291906123ee565b5050565b600c80546117ff90612eec565b80601f016020809104026020016040519081016040528092919081815260200182805461182b90612eec565b80156118785780601f1061184d57610100808354040283529160200191611878565b820191906000526020600020905b81548152906001019060200180831161185b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190790612b6f565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060011515600f60009054906101000a900460ff161515146119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90612baf565b60405180910390fd5b60008211611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90612b8f565b60405180910390fd5b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611a95575060008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b611ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acb90612caf565b60405180910390fd5b42600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411158015611b615750426000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b611ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9790612c0f565b60405180910390fd5b6000600e541415611bb45760019050611d6c565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180611c4f5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611c5d5760019050611d6c565b600e54600d541015611c725760019050611d6c565b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015611cff57506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015611d595750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d675760019050611d6c565b600090505b9392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfa90612b6f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb990612b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612032576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202990612c2f565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ef90612c4f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121439190612e21565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156122235750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561223e576001600d546122379190612e21565b600d819055505b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156122db5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122f6576001600d546122ef9190612dcb565b600d819055505b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123419190612dcb565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123e19190612cef565b60405180910390a3505050565b8280546123fa90612eec565b90600052602060002090601f01602090048101928261241c5760008555612463565b82601f1061243557805160ff1916838001178555612463565b82800160010185558215612463579182015b82811115612462578251825591602001919060010190612447565b5b5090506124709190612474565b5090565b5b8082111561248d576000816000905550600101612475565b5090565b60006124a461249f84612d7f565b612d4e565b9050828152602081018484840111156124bc57600080fd5b6124c7848285612eaa565b509392505050565b6000813590506124de81612fbc565b92915050565b600082601f8301126124f557600080fd5b8135612505848260208601612491565b91505092915050565b60008135905061251d81612fd3565b92915050565b60008135905061253281612fea565b92915050565b60006020828403121561254a57600080fd5b6000612558848285016124cf565b91505092915050565b6000806040838503121561257457600080fd5b6000612582858286016124cf565b9250506020612593858286016124cf565b9150509250929050565b6000806000606084860312156125b257600080fd5b60006125c0868287016124cf565b93505060206125d1868287016124cf565b92505060406125e28682870161250e565b9150509250925092565b600080604083850312156125ff57600080fd5b600061260d858286016124cf565b925050602061261e8582860161250e565b9150509250929050565b60008060006060848603121561263d57600080fd5b600061264b868287016124cf565b935050602061265c8682870161250e565b925050604061266d8682870161250e565b9150509250925092565b60006020828403121561268957600080fd5b600082013567ffffffffffffffff8111156126a357600080fd5b6126af848285016124e4565b91505092915050565b6000602082840312156126ca57600080fd5b60006126d88482850161250e565b91505092915050565b6000602082840312156126f357600080fd5b600061270184828501612523565b91505092915050565b61271381612e55565b82525050565b61272281612e67565b82525050565b600061273382612daf565b61273d8185612dba565b935061274d818560208601612eb9565b61275681612fab565b840191505092915050565b600061276e601c83612dba565b91507f4f6e6c79206f776e65722063616e2063616c6c2066756e6374696f6e000000006000830152602082019050919050565b60006127ae602383612dba565b91507f56616c7565206272696e67207472616e736665727265642063616e6e6f74206260008301527f65203000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612814601483612dba565b91507f5472616e73666572206e6f7420616c6c6f7765640000000000000000000000006000830152602082019050919050565b6000612854601283612dba565b91507f416d6f756e742063616e6e6f74206265203000000000000000000000000000006000830152602082019050919050565b6000612894602783612dba565b91507f416d6f756e742063616e6e6f742062652067726561746572207468616e20416c60008301527f6c6f77616e6365000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006128fa601483612dba565b91507f4b59432054696d65205265737472696374696f6e0000000000000000000000006000830152602082019050919050565b600061293a601883612dba565b91507f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006000830152602082019050919050565b600061297a602383612dba565b91507f20416d6f756e742067726561746572207468616e2073656e6465722062616c6160008301527f6e636500000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006129e0601b83612dba565b91507f416d6f756e742067726561746572207468616e2062616c616e636500000000006000830152602082019050919050565b6000612a20603583612dba565b91507f416c6c6f77656420496e766573746f72732063616e6e6f74206265206c65737360008301527f207468616e2043757272656e7420686f6c6465727300000000000000000000006020830152604082019050919050565b6000612a86600f83612dba565b91507f4e6f742057686974656c697374656400000000000000000000000000000000006000830152602082019050919050565b6000612ac6601783612dba565b91507f4e6f742057686974656c69737420417574686f726974790000000000000000006000830152602082019050919050565b612b0281612e93565b82525050565b612b1181612e9d565b82525050565b6000602082019050612b2c600083018461270a565b92915050565b6000602082019050612b476000830184612719565b92915050565b60006020820190508181036000830152612b678184612728565b905092915050565b60006020820190508181036000830152612b8881612761565b9050919050565b60006020820190508181036000830152612ba8816127a1565b9050919050565b60006020820190508181036000830152612bc881612807565b9050919050565b60006020820190508181036000830152612be881612847565b9050919050565b60006020820190508181036000830152612c0881612887565b9050919050565b60006020820190508181036000830152612c28816128ed565b9050919050565b60006020820190508181036000830152612c488161292d565b9050919050565b60006020820190508181036000830152612c688161296d565b9050919050565b60006020820190508181036000830152612c88816129d3565b9050919050565b60006020820190508181036000830152612ca881612a13565b9050919050565b60006020820190508181036000830152612cc881612a79565b9050919050565b60006020820190508181036000830152612ce881612ab9565b9050919050565b6000602082019050612d046000830184612af9565b92915050565b6000604082019050612d1f6000830185612af9565b612d2c6020830184612af9565b9392505050565b6000602082019050612d486000830184612b08565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612d7557612d74612f7c565b5b8060405250919050565b600067ffffffffffffffff821115612d9a57612d99612f7c565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612dd682612e93565b9150612de183612e93565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e1657612e15612f1e565b5b828201905092915050565b6000612e2c82612e93565b9150612e3783612e93565b925082821015612e4a57612e49612f1e565b5b828203905092915050565b6000612e6082612e73565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612ed7578082015181840152602081019050612ebc565b83811115612ee6576000848401525b50505050565b60006002820490506001821680612f0457607f821691505b60208210811415612f1857612f17612f4d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b612fc581612e55565b8114612fd057600080fd5b50565b612fdc81612e93565b8114612fe757600080fd5b50565b612ff381612e9d565b8114612ffe57600080fd5b5056fea2646970667358221220eb11865b065ccdd63e994b4d511cde409589256c38e8583c461a71b8c6ad65e264736f6c634300080000330000000000000000000000000000000000000000000000000000000000009c400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000094252494b6b6f616c61000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094252494b6b6f616c610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c68747470733a2f2f7777772e64726f70626f782e636f6d2f732f61687774636a38783061307538326d2f436c6173732532304b25323053686172657300000000000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f7777772e6272696b626370726f6a656374732e636f6d2f7265736964656e7469616c2d70726f706572746965730000000000000000000000000000000000000000000000000000000000000000000000000000000000003a68747470733a2f2f6162722e627573696e6573732e676f762e61752f41626e486973746f72792f566965773f69643d3635363532333539353538000000000000

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

0000000000000000000000000000000000000000000000000000000000009c400000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000094252494b6b6f616c61000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094252494b6b6f616c610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c68747470733a2f2f7777772e64726f70626f782e636f6d2f732f61687774636a38783061307538326d2f436c6173732532304b25323053686172657300000000000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f7777772e6272696b626370726f6a656374732e636f6d2f7265736964656e7469616c2d70726f706572746965730000000000000000000000000000000000000000000000000000000000000000000000000000000000003a68747470733a2f2f6162722e627573696e6573732e676f762e61752f41626e486973746f72792f566965773f69643d3635363532333539353538000000000000

-----Decoded View---------------
Arg [0] : _initialSupply (uint256): 40000
Arg [1] : _name (string): BRIKkoala
Arg [2] : _symbol (string): BRIKkoala
Arg [3] : _allowedInvestors (uint256): 0
Arg [4] : _decimals (uint256): 0
Arg [5] : _ShareCertificate (string): https://www.dropbox.com/s/ahwtcj8x0a0u82m/Class%20K%20Shares
Arg [6] : _CompanyHomepage (string): https://www.brikbcprojects.com/residential-properties
Arg [7] : _CompanyLegalDocs (string): https://abr.business.gov.au/AbnHistory/View?id=65652359558

-----Encoded View---------------
21 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000009c40
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [6] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000240
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [9] : 4252494b6b6f616c610000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [11] : 4252494b6b6f616c610000000000000000000000000000000000000000000000
Arg [12] : 000000000000000000000000000000000000000000000000000000000000003c
Arg [13] : 68747470733a2f2f7777772e64726f70626f782e636f6d2f732f61687774636a
Arg [14] : 38783061307538326d2f436c6173732532304b25323053686172657300000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000035
Arg [16] : 68747470733a2f2f7777772e6272696b626370726f6a656374732e636f6d2f72
Arg [17] : 65736964656e7469616c2d70726f706572746965730000000000000000000000
Arg [18] : 000000000000000000000000000000000000000000000000000000000000003a
Arg [19] : 68747470733a2f2f6162722e627573696e6573732e676f762e61752f41626e48
Arg [20] : 6973746f72792f566965773f69643d3635363532333539353538000000000000


Deployed ByteCode Sourcemap

3762:11363:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5019:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12221:365;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11953:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7263;;;:::i;:::-;;13044:477;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8583:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4949:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14344:344;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5329:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6668:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5093:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6972:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5375:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12067:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11588:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5127:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7506:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5044:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14698:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5479:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12767:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8894:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6524:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6377:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5160:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8128:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9527:2053;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8255:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12599:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8386:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7721:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5019:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12221:365::-;12332:4;12378:1;12359:21;;:7;:21;;;;12351:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12431:1;12422:6;:10;12414:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12503:6;12468:11;:23;12480:10;12468:23;;;;;;;;;;;;;;;:32;12492:7;12468:32;;;;;;;;;;;;;;;:41;;;;12546:7;12525:37;;12534:10;12525:37;;;12555:6;12525:37;;;;;;:::i;:::-;;;;;;;;12574:4;12567:11;;12221:365;;;;:::o;11953:104::-;12019:7;12040:12;;12033:19;;11953:104;:::o;7263:::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7343:16:::1;;;;;;;;;;;7342:17;7323:16;;:36;;;;;;;;;;;;;;;;;;7263:104::o:0;13044:477::-;13230:4;13192:6;13200:9;13211:6;9344:21;9368:42;9394:4;9400:2;9404:5;9368:25;:42::i;:::-;9344:66;;9448:1;9429:15;:20;;;9451:46;9481:15;9451:29;:46::i;:::-;9421:77;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13294:6:::1;13259:11;:19;13271:6;13259:19;;;;;;;;;;;;;;;:31;13279:10;13259:31;;;;;;;;;;;;;;;;:41;;13251:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;13350:60;13383:6;13391:9;13402:6;13350:30;:60::i;:::-;13489:6;13455:11;:19;13467:6;13455:19;;;;;;;;;;;;;;;:31;13475:10;13455:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;13421:11;:19;13433:6;13421:19;;;;;;;;;;;;;;;:31;13441:10;13421:31;;;;;;;;;;;;;;;:74;;;;13509:4;13502:11;;13044:477:::0;;;;;;;;;:::o;8583:300::-;8747:4;8705:46;;:26;:38;8732:10;8705:38;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;8697:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;8816:14;8792:15;:21;8808:4;8792:21;;;;;;;;;;;;;;;:38;;;;8863:15;8838:16;:22;8855:4;8838:22;;;;;;;;;;;;;;;:40;;;;8583:300;;;:::o;4949:28::-;;;;:::o;14344:344::-;14428:4;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14472:1:::1;14453:21;;:7;:21;;;;14445:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14546:6;14531:12;;:21;;;;:::i;:::-;14516:12;:36;;;;14605:6;14584:9;:18;14594:7;14584:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;14563:9;:18;14573:7;14563:18;;;;;;;;;;;;;;;:48;;;;14648:7;14627:37;;14644:1;14627:37;;;14657:6;14627:37;;;;;;:::i;:::-;;;;;;;;14676:4;14669:11;;14344:344:::0;;;;:::o;5329:40::-;;;;:::o;6668:139::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6782:17:::1;6763:16;:36;;;;;;;;;;;;:::i;:::-;;6668:139:::0;:::o;5093:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6972:281::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7085:1:::1;7064:17;:22;7060:141;;7122:21;;7101:17;:42;;7093:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;7060:141;7228:17;7209:16;:36;;;;6972:281:::0;:::o;5375:35::-;;;;:::o;12067:141::-;12155:7;12182:9;:18;12192:7;12182:18;;;;;;;;;;;;;;;;12175:25;;12067:141;;;:::o;11588:277::-;11697:21;11759:1;11740:15;:20;;;11736:121;;;11776:23;;;;;;;;;;;;;;;;;;;11736:121;;;11830:27;;;;;;;;;;;;;;;;;;;11736:121;11588:277;;;:::o;5127:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7506:90::-;7555:7;7582:6;;;;;;;;;;;7575:13;;7506:90;:::o;5044:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14698:422::-;14781:4;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14825:1:::1;14806:21;;:7;:21;;;;14798:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14897:6;14875:9;:18;14885:7;14875:18;;;;;;;;;;;;;;;;:28;;14867:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14978:6;14963:12;;:21;;;;:::i;:::-;14948:12;:36;;;;15037:6;15016:9;:18;15026:7;15016:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;14995:9;:18;15005:7;14995:18;;;;;;;;;;;;;;;:48;;;;15085:1;15059:37;;15068:7;15059:37;;;15089:6;15059:37;;;;;;:::i;:::-;;;;;;;;15108:4;15101:11;;14698:422:::0;;;;:::o;5479:35::-;;;;;;;;;;;;;:::o;12767:263::-;12929:4;12887:10;12899:9;12910:6;9344:21;9368:42;9394:4;9400:2;9404:5;9368:25;:42::i;:::-;9344:66;;9448:1;9429:15;:20;;;9451:46;9481:15;9451:29;:46::i;:::-;9421:77;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12942:64:::1;12975:10;12987:9;12998:6;12942:30;:64::i;:::-;13018:4;13011:11;;12767:263:::0;;;;;;;;:::o;8894:153::-;8959:7;8968;8994:15;:21;9010:4;8994:21;;;;;;;;;;;;;;;;9018:16;:22;9035:4;9018:22;;;;;;;;;;;;;;;;8986:56;;;;8894:153;;;:::o;6524:135::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6635:16:::1;6617:15;:34;;;;;;;;;;;;:::i;:::-;;6524:135:::0;:::o;6377:139::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6491:17:::1;6472:16;:36;;;;;;;;;;;;:::i;:::-;;6377:139:::0;:::o;5160:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8128:124::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8243:4:::1;8208:26;:32;8235:4;8208:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;8128:124:::0;:::o;9527:2053::-;9647:12;9742:4;9722:24;;:16;;;;;;;;;;;:24;;;9714:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9799:1;9791:5;:9;9782:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9889:1;9862:16;:23;9879:5;9862:23;;;;;;;;;;;;;;;;:28;;:58;;;;;9919:1;9895:15;:20;9911:3;9895:20;;;;;;;;;;;;;;;;:25;;9862:58;9853:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9984:15;9957:16;:23;9974:5;9957:23;;;;;;;;;;;;;;;;:42;;:85;;;;;10027:15;10003;:20;10019:3;10003:20;;;;;;;;;;;;;;;;:39;;9957:85;9948:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;10263:1;10243:16;;:21;10240:1331;;;10278:1;10271:8;;;;10240:1331;10318:1;10301:9;:14;10311:3;10301:14;;;;;;;;;;;;;;;;:18;:35;;;;10330:6;;;;;;;;;;;10323:13;;:3;:13;;;10301:35;10297:1268;;;10570:1;10563:8;;;;10297:1268;10620:16;;10596:21;;:40;10591:967;;;10723:1;10716:8;;;;10591:967;11450:5;11430:9;:16;11440:5;11430:16;;;;;;;;;;;;;;;;:25;:48;;;;;11477:1;11459:9;:14;11469:3;11459:14;;;;;;;;;;;;;;;;:19;11430:48;:67;;;;;11491:6;;;;;;;;;;;11482:15;;:5;:15;;;;11430:67;11426:123;;;11518:1;11511:8;;;;11426:123;11548:1;11541:8;;9527:2053;;;;;;:::o;8255:127::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8345:26:::1;:32;8372:4;8345:32;;;;;;;;;;;;;;;;8338:39;;;;;;;;;;;8255:127:::0;:::o;12599:156::-;12693:7;12720:11;:18;12732:5;12720:18;;;;;;;;;;;;;;;:27;12739:7;12720:27;;;;;;;;;;;;;;;;12713:34;;12599:156;;;;:::o;8386:137::-;8467:4;8486:26;:32;8513:4;8486:32;;;;;;;;;;;;;;;;;;;;;;;;;8479:39;;8386:137;;;:::o;7721:170::-;7652:10;7642:20;;:6;;;;;;;;;;;:20;;;7634:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7830:1:::1;7810:22;;:8;:22;;;;7802:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7875:8;7866:6;;:17;;;;;;;;;;;;;;;;;;7721:170:::0;:::o;13626:706::-;13804:6;13783:9;:17;13793:6;13783:17;;;;;;;;;;;;;;;;:27;;13775:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13987:6;13967:9;:17;13977:6;13967:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13947:9;:17;13957:6;13947:17;;;;;;;;;;;;;;;:46;;;;14024:1;14003:9;:17;14013:6;14003:17;;;;;;;;;;;;;;;;:22;:42;;;;;14039:6;;;;;;;;;;;14029:16;;:6;:16;;;;14003:42;13999:103;;;14101:1;14077:21;;:25;;;;:::i;:::-;14053:21;:49;;;;13999:103;14140:1;14116:9;:20;14126:9;14116:20;;;;;;;;;;;;;;;;:25;:48;;;;;14158:6;;;;;;;;;;;14145:19;;:9;:19;;;;14116:48;14112:109;;;14220:1;14196:21;;:25;;;;:::i;:::-;14172:21;:49;;;;14112:109;14273:6;14250:9;:20;14260:9;14250:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;14227:9;:20;14237:9;14227:20;;;;;;;;;;;;;;;:52;;;;14309:9;14292:35;;14301:6;14292:35;;;14320:6;14292:35;;;;;;:::i;:::-;;;;;;;;13626:706;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:344:1:-;;110:65;125:49;167:6;125:49;:::i;:::-;110:65;:::i;:::-;101:74;;198:6;191:5;184:21;236:4;229:5;225:16;274:3;265:6;260:3;256:16;253:25;250:2;;;291:1;288;281:12;250:2;304:41;338:6;333:3;328;304:41;:::i;:::-;91:260;;;;;;:::o;357:139::-;;441:6;428:20;419:29;;457:33;484:5;457:33;:::i;:::-;409:87;;;;:::o;516:273::-;;621:3;614:4;606:6;602:17;598:27;588:2;;639:1;636;629:12;588:2;679:6;666:20;704:79;779:3;771:6;764:4;756:6;752:17;704:79;:::i;:::-;695:88;;578:211;;;;;:::o;795:139::-;;879:6;866:20;857:29;;895:33;922:5;895:33;:::i;:::-;847:87;;;;:::o;940:135::-;;1022:6;1009:20;1000:29;;1038:31;1063:5;1038:31;:::i;:::-;990:85;;;;:::o;1081:262::-;;1189:2;1177:9;1168:7;1164:23;1160:32;1157:2;;;1205:1;1202;1195:12;1157:2;1248:1;1273:53;1318:7;1309:6;1298:9;1294:22;1273:53;:::i;:::-;1263:63;;1219:117;1147:196;;;;:::o;1349:407::-;;;1474:2;1462:9;1453:7;1449:23;1445:32;1442:2;;;1490:1;1487;1480:12;1442:2;1533:1;1558:53;1603:7;1594:6;1583:9;1579:22;1558:53;:::i;:::-;1548:63;;1504:117;1660:2;1686:53;1731:7;1722:6;1711:9;1707:22;1686:53;:::i;:::-;1676:63;;1631:118;1432:324;;;;;:::o;1762:552::-;;;;1904:2;1892:9;1883:7;1879:23;1875:32;1872:2;;;1920:1;1917;1910:12;1872:2;1963:1;1988:53;2033:7;2024:6;2013:9;2009:22;1988:53;:::i;:::-;1978:63;;1934:117;2090:2;2116:53;2161:7;2152:6;2141:9;2137:22;2116:53;:::i;:::-;2106:63;;2061:118;2218:2;2244:53;2289:7;2280:6;2269:9;2265:22;2244:53;:::i;:::-;2234:63;;2189:118;1862:452;;;;;:::o;2320:407::-;;;2445:2;2433:9;2424:7;2420:23;2416:32;2413:2;;;2461:1;2458;2451:12;2413:2;2504:1;2529:53;2574:7;2565:6;2554:9;2550:22;2529:53;:::i;:::-;2519:63;;2475:117;2631:2;2657:53;2702:7;2693:6;2682:9;2678:22;2657:53;:::i;:::-;2647:63;;2602:118;2403:324;;;;;:::o;2733:552::-;;;;2875:2;2863:9;2854:7;2850:23;2846:32;2843:2;;;2891:1;2888;2881:12;2843:2;2934:1;2959:53;3004:7;2995:6;2984:9;2980:22;2959:53;:::i;:::-;2949:63;;2905:117;3061:2;3087:53;3132:7;3123:6;3112:9;3108:22;3087:53;:::i;:::-;3077:63;;3032:118;3189:2;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3160:118;2833:452;;;;;:::o;3291:375::-;;3409:2;3397:9;3388:7;3384:23;3380:32;3377:2;;;3425:1;3422;3415:12;3377:2;3496:1;3485:9;3481:17;3468:31;3526:18;3518:6;3515:30;3512:2;;;3558:1;3555;3548:12;3512:2;3586:63;3641:7;3632:6;3621:9;3617:22;3586:63;:::i;:::-;3576:73;;3439:220;3367:299;;;;:::o;3672:262::-;;3780:2;3768:9;3759:7;3755:23;3751:32;3748:2;;;3796:1;3793;3786:12;3748:2;3839:1;3864:53;3909:7;3900:6;3889:9;3885:22;3864:53;:::i;:::-;3854:63;;3810:117;3738:196;;;;:::o;3940:258::-;;4046:2;4034:9;4025:7;4021:23;4017:32;4014:2;;;4062:1;4059;4052:12;4014:2;4105:1;4130:51;4173:7;4164:6;4153:9;4149:22;4130:51;:::i;:::-;4120:61;;4076:115;4004:194;;;;:::o;4204:118::-;4291:24;4309:5;4291:24;:::i;:::-;4286:3;4279:37;4269:53;;:::o;4328:109::-;4409:21;4424:5;4409:21;:::i;:::-;4404:3;4397:34;4387:50;;:::o;4443:364::-;;4559:39;4592:5;4559:39;:::i;:::-;4614:71;4678:6;4673:3;4614:71;:::i;:::-;4607:78;;4694:52;4739:6;4734:3;4727:4;4720:5;4716:16;4694:52;:::i;:::-;4771:29;4793:6;4771:29;:::i;:::-;4766:3;4762:39;4755:46;;4535:272;;;;;:::o;4813:326::-;;4976:67;5040:2;5035:3;4976:67;:::i;:::-;4969:74;;5073:30;5069:1;5064:3;5060:11;5053:51;5130:2;5125:3;5121:12;5114:19;;4959:180;;;:::o;5145:367::-;;5308:67;5372:2;5367:3;5308:67;:::i;:::-;5301:74;;5405:34;5401:1;5396:3;5392:11;5385:55;5471:5;5466:2;5461:3;5457:12;5450:27;5503:2;5498:3;5494:12;5487:19;;5291:221;;;:::o;5518:318::-;;5681:67;5745:2;5740:3;5681:67;:::i;:::-;5674:74;;5778:22;5774:1;5769:3;5765:11;5758:43;5827:2;5822:3;5818:12;5811:19;;5664:172;;;:::o;5842:316::-;;6005:67;6069:2;6064:3;6005:67;:::i;:::-;5998:74;;6102:20;6098:1;6093:3;6089:11;6082:41;6149:2;6144:3;6140:12;6133:19;;5988:170;;;:::o;6164:371::-;;6327:67;6391:2;6386:3;6327:67;:::i;:::-;6320:74;;6424:34;6420:1;6415:3;6411:11;6404:55;6490:9;6485:2;6480:3;6476:12;6469:31;6526:2;6521:3;6517:12;6510:19;;6310:225;;;:::o;6541:318::-;;6704:67;6768:2;6763:3;6704:67;:::i;:::-;6697:74;;6801:22;6797:1;6792:3;6788:11;6781:43;6850:2;6845:3;6841:12;6834:19;;6687:172;;;:::o;6865:322::-;;7028:67;7092:2;7087:3;7028:67;:::i;:::-;7021:74;;7125:26;7121:1;7116:3;7112:11;7105:47;7178:2;7173:3;7169:12;7162:19;;7011:176;;;:::o;7193:367::-;;7356:67;7420:2;7415:3;7356:67;:::i;:::-;7349:74;;7453:34;7449:1;7444:3;7440:11;7433:55;7519:5;7514:2;7509:3;7505:12;7498:27;7551:2;7546:3;7542:12;7535:19;;7339:221;;;:::o;7566:325::-;;7729:67;7793:2;7788:3;7729:67;:::i;:::-;7722:74;;7826:29;7822:1;7817:3;7813:11;7806:50;7882:2;7877:3;7873:12;7866:19;;7712:179;;;:::o;7897:385::-;;8060:67;8124:2;8119:3;8060:67;:::i;:::-;8053:74;;8157:34;8153:1;8148:3;8144:11;8137:55;8223:23;8218:2;8213:3;8209:12;8202:45;8273:2;8268:3;8264:12;8257:19;;8043:239;;;:::o;8288:313::-;;8451:67;8515:2;8510:3;8451:67;:::i;:::-;8444:74;;8548:17;8544:1;8539:3;8535:11;8528:38;8592:2;8587:3;8583:12;8576:19;;8434:167;;;:::o;8607:321::-;;8770:67;8834:2;8829:3;8770:67;:::i;:::-;8763:74;;8867:25;8863:1;8858:3;8854:11;8847:46;8919:2;8914:3;8910:12;8903:19;;8753:175;;;:::o;8934:118::-;9021:24;9039:5;9021:24;:::i;:::-;9016:3;9009:37;8999:53;;:::o;9058:112::-;9141:22;9157:5;9141:22;:::i;:::-;9136:3;9129:35;9119:51;;:::o;9176:222::-;;9307:2;9296:9;9292:18;9284:26;;9320:71;9388:1;9377:9;9373:17;9364:6;9320:71;:::i;:::-;9274:124;;;;:::o;9404:210::-;;9529:2;9518:9;9514:18;9506:26;;9542:65;9604:1;9593:9;9589:17;9580:6;9542:65;:::i;:::-;9496:118;;;;:::o;9620:313::-;;9771:2;9760:9;9756:18;9748:26;;9820:9;9814:4;9810:20;9806:1;9795:9;9791:17;9784:47;9848:78;9921:4;9912:6;9848:78;:::i;:::-;9840:86;;9738:195;;;;:::o;9939:419::-;;10143:2;10132:9;10128:18;10120:26;;10192:9;10186:4;10182:20;10178:1;10167:9;10163:17;10156:47;10220:131;10346:4;10220:131;:::i;:::-;10212:139;;10110:248;;;:::o;10364:419::-;;10568:2;10557:9;10553:18;10545:26;;10617:9;10611:4;10607:20;10603:1;10592:9;10588:17;10581:47;10645:131;10771:4;10645:131;:::i;:::-;10637:139;;10535:248;;;:::o;10789:419::-;;10993:2;10982:9;10978:18;10970:26;;11042:9;11036:4;11032:20;11028:1;11017:9;11013:17;11006:47;11070:131;11196:4;11070:131;:::i;:::-;11062:139;;10960:248;;;:::o;11214:419::-;;11418:2;11407:9;11403:18;11395:26;;11467:9;11461:4;11457:20;11453:1;11442:9;11438:17;11431:47;11495:131;11621:4;11495:131;:::i;:::-;11487:139;;11385:248;;;:::o;11639:419::-;;11843:2;11832:9;11828:18;11820:26;;11892:9;11886:4;11882:20;11878:1;11867:9;11863:17;11856:47;11920:131;12046:4;11920:131;:::i;:::-;11912:139;;11810:248;;;:::o;12064:419::-;;12268:2;12257:9;12253:18;12245:26;;12317:9;12311:4;12307:20;12303:1;12292:9;12288:17;12281:47;12345:131;12471:4;12345:131;:::i;:::-;12337:139;;12235:248;;;:::o;12489:419::-;;12693:2;12682:9;12678:18;12670:26;;12742:9;12736:4;12732:20;12728:1;12717:9;12713:17;12706:47;12770:131;12896:4;12770:131;:::i;:::-;12762:139;;12660:248;;;:::o;12914:419::-;;13118:2;13107:9;13103:18;13095:26;;13167:9;13161:4;13157:20;13153:1;13142:9;13138:17;13131:47;13195:131;13321:4;13195:131;:::i;:::-;13187:139;;13085:248;;;:::o;13339:419::-;;13543:2;13532:9;13528:18;13520:26;;13592:9;13586:4;13582:20;13578:1;13567:9;13563:17;13556:47;13620:131;13746:4;13620:131;:::i;:::-;13612:139;;13510:248;;;:::o;13764:419::-;;13968:2;13957:9;13953:18;13945:26;;14017:9;14011:4;14007:20;14003:1;13992:9;13988:17;13981:47;14045:131;14171:4;14045:131;:::i;:::-;14037:139;;13935:248;;;:::o;14189:419::-;;14393:2;14382:9;14378:18;14370:26;;14442:9;14436:4;14432:20;14428:1;14417:9;14413:17;14406:47;14470:131;14596:4;14470:131;:::i;:::-;14462:139;;14360:248;;;:::o;14614:419::-;;14818:2;14807:9;14803:18;14795:26;;14867:9;14861:4;14857:20;14853:1;14842:9;14838:17;14831:47;14895:131;15021:4;14895:131;:::i;:::-;14887:139;;14785:248;;;:::o;15039:222::-;;15170:2;15159:9;15155:18;15147:26;;15183:71;15251:1;15240:9;15236:17;15227:6;15183:71;:::i;:::-;15137:124;;;;:::o;15267:332::-;;15426:2;15415:9;15411:18;15403:26;;15439:71;15507:1;15496:9;15492:17;15483:6;15439:71;:::i;:::-;15520:72;15588:2;15577:9;15573:18;15564:6;15520:72;:::i;:::-;15393:206;;;;;:::o;15605:214::-;;15732:2;15721:9;15717:18;15709:26;;15745:67;15809:1;15798:9;15794:17;15785:6;15745:67;:::i;:::-;15699:120;;;;:::o;15825:283::-;;15891:2;15885:9;15875:19;;15933:4;15925:6;15921:17;16040:6;16028:10;16025:22;16004:18;15992:10;15989:34;15986:62;15983:2;;;16051:18;;:::i;:::-;15983:2;16091:10;16087:2;16080:22;15865:243;;;;:::o;16114:332::-;;16266:18;16258:6;16255:30;16252:2;;;16288:18;;:::i;:::-;16252:2;16373:4;16369:9;16362:4;16354:6;16350:17;16346:33;16338:41;;16434:4;16428;16424:15;16416:23;;16181:265;;;:::o;16452:99::-;;16538:5;16532:12;16522:22;;16511:40;;;:::o;16557:169::-;;16675:6;16670:3;16663:19;16715:4;16710:3;16706:14;16691:29;;16653:73;;;;:::o;16732:305::-;;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:2;;;16985:18;;:::i;:::-;16898:2;17029:1;17026;17022:9;17015:16;;16776:261;;;;:::o;17043:191::-;;17103:20;17121:1;17103:20;:::i;:::-;17098:25;;17137:20;17155:1;17137:20;:::i;:::-;17132:25;;17176:1;17173;17170:8;17167:2;;;17181:18;;:::i;:::-;17167:2;17226:1;17223;17219:9;17211:17;;17088:146;;;;:::o;17240:96::-;;17306:24;17324:5;17306:24;:::i;:::-;17295:35;;17285:51;;;:::o;17342:90::-;;17419:5;17412:13;17405:21;17394:32;;17384:48;;;:::o;17438:126::-;;17515:42;17508:5;17504:54;17493:65;;17483:81;;;:::o;17570:77::-;;17636:5;17625:16;;17615:32;;;:::o;17653:86::-;;17728:4;17721:5;17717:16;17706:27;;17696:43;;;:::o;17745:154::-;17829:6;17824:3;17819;17806:30;17891:1;17882:6;17877:3;17873:16;17866:27;17796:103;;;:::o;17905:307::-;17973:1;17983:113;17997:6;17994:1;17991:13;17983:113;;;18082:1;18077:3;18073:11;18067:18;18063:1;18058:3;18054:11;18047:39;18019:2;18016:1;18012:10;18007:15;;17983:113;;;18114:6;18111:1;18108:13;18105:2;;;18194:1;18185:6;18180:3;18176:16;18169:27;18105:2;17954:258;;;;:::o;18218:320::-;;18299:1;18293:4;18289:12;18279:22;;18346:1;18340:4;18336:12;18367:18;18357:2;;18423:4;18415:6;18411:17;18401:27;;18357:2;18485;18477:6;18474:14;18454:18;18451:38;18448:2;;;18504:18;;:::i;:::-;18448:2;18269:269;;;;:::o;18544:180::-;18592:77;18589:1;18582:88;18689:4;18686:1;18679:15;18713:4;18710:1;18703:15;18730:180;18778:77;18775:1;18768:88;18875:4;18872:1;18865:15;18899:4;18896:1;18889:15;18916:180;18964:77;18961:1;18954:88;19061:4;19058:1;19051:15;19085:4;19082:1;19075:15;19102:102;;19194:2;19190:7;19185:2;19178:5;19174:14;19170:28;19160:38;;19150:54;;;:::o;19210:122::-;19283:24;19301:5;19283:24;:::i;:::-;19276:5;19273:35;19263:2;;19322:1;19319;19312:12;19263:2;19253:79;:::o;19338:122::-;19411:24;19429:5;19411:24;:::i;:::-;19404:5;19401:35;19391:2;;19450:1;19447;19440:12;19391:2;19381:79;:::o;19466:118::-;19537:22;19553:5;19537:22;:::i;:::-;19530:5;19527:33;19517:2;;19574:1;19571;19564:12;19517:2;19507:77;:::o

Swarm Source

ipfs://eb11865b065ccdd63e994b4d511cde409589256c38e8583c461a71b8c6ad65e2

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.