ETH Price: $2,498.39 (-1.88%)

Token

PROOF UTILITY (PRF)
 

Overview

Max Total Supply

114,420,402.294665 PRF

Holders

100

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ProofUtilityToken

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 256000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*****************************

** PROOF UTILITY TOKEN (PRF) **
   Developed by @cryptocreater
   Produced by PROOF CAPITAL GROUP

** TOKEN INFO **
   Name:     PROOF UTILITY
   Code:     PRF
   Decimals: 6

** PRF TOKEN MARKETING **
    1. The maximum emission of the PROOF UTILITY token is 1 000 000 000 PRF.
    2. Initial emission of PROOF UTILITY token to replace PROOF TOKEN - 350 000 PRF.
    3. Renumeration for the founders of the PRF (bounty) - 1% of the total emission of PRF (accrued as the release of PRF tokens).
    4. The minimum balance to receive a staking profit is 10 PRF.
    5. The maximum balance for receiving staking profit is 999 999 PRF.
    6. The profit for holding the token, depending on the balance, per 1 day is: from 10 PRF - 0.10%, from 100 PRF - 0.13%, from 500 PRF - 0.17%, from 1 000 PRF - 0.22%, from 5 000 PRF - 0.28%, from 10 000 PRF - 0.35%, from 50 000 PRF - 0.43%, from 100 000 PRF - 0.52%, from 500 000 PRF - 0.62% and is fixed per second for each transaction at the address, excluding the PROOF ASSET smart contract profit, which receives a reward of 0.62% regardless of the amount of the balance.
    7. When transferring PRF to an address that has not previously received PRF tokens, this address becomes a follower (referral) of the address from which the PRFs were received (referrer).
    8. When calculating a profit for a referral, the referrer receives a referral reward from the amount received by the referral for holding the PRF token.
    9. The minimum balance to receive a referral reward is 100 PRF.
   10. The maximum balance for receiving a referral reward is 1 000 000 PRF.
   11. Referral reward is calculated from the amount of the referral profit and depends on the referrer balance: from 100 PRF - 5.2%, from 1 000 PRF - 7.5%, from 10 000 PRF - 12.8%, from 100 000 PRF - 26.5%.
   12. When calculating all types of profits and rewards, the rule of complication applies, which reduces the income by the percentage of the current supply of the PRF token to it's maximum supply.

** PRF TOKEN MECHANICS **
   1. To receive PRF tokens, you need to send the required number of ETH tokens to the address of the PROOF UTILITY smart contract.
   2. The smart contract issues the required number of PRF tokens to the address from which the ETH tokens came according to the average exchange rate of the UNISWAP exchange in the equivalent of ETH to stable coins equivalent to the equivalent of 1 USD.
   3. To fix the reward and withdraw it to the address, it is necessary to send a zero transaction (0 PRF or 0 ETH) from the address to itself.
   4. To bind a follower (referral), you need to send any number of PRF tokens to its address. The referral will be linked only if he has not previously been linked to another address.
   5. The administrator of the smart contract can, without warning and at his own discretion, stop and start the exchange of ETH for PRF on the smart contract, while the process of calculating rewards and profits for existing tokens does not stop.
   6. To exchange PRF for a PRS token, send PRF to the PROOF ASSET smart contract address to register the exchange and wait for submission of this operation, then send 0 (zero) ETH to the PROOF ASSET smart contract address from the same address to credit PRS tokens to it.
   7. The initial minimum amount of exchanging a PRF token for a PRS token is 1 (one) PRS or 1 000 (one thousand) PRF and can be reduced without warning and at the discretion of the administrator of the PROOF UTILITY smart contract without the possibility of further increase.
   8. The administrator of the smart contract can, without warning and at his discretion, raise and lower the exchange rate multiply of ETH tokens for PRF tokens, but not less than 1 PRF to the equivalent of 1 USD.

*****************************/

pragma solidity 0.6.6;
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);
    event Swap(address indexed account, uint256 amount);
    event Swaped(address indexed account, uint256 amount);
}
interface EthRateInterface {
    function EthToUsdRate() external view returns(uint256);
}
library SafeMath {
    function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {
        require(a + b >= a, "Addition overflow");
        return a + b;
    }
    function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(a >= b, "Substruction overflow");
        return a - b;
    }  
}
contract ERC20 is IERC20 {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;    
    mapping (address => uint256) private _sto;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name = "PROOF UTILITY";
    string private _symbol = "PRF";
    uint8 private _decimals = 6;
    function name() public view returns (string memory) { return _name; }    
    function symbol() public view returns (string memory) { return _symbol; }    
    function decimals() public view returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function swapOf(address account) public view returns (uint256) { return _sto[account]; }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _afterTransferFrom(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].safeSub(amount));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].safeAdd(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].safeSub(subtractedValue));
        return true;
    }
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "Zero address");
        require(recipient != address(0), "Zero address");
        _beforeTokenTransfer(sender, recipient, amount);
        _balances[sender] = _balances[sender].safeSub(amount);
        _balances[recipient] = _balances[recipient].safeAdd(amount);
        emit Transfer(sender, recipient, amount);
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "Zero account");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply = _totalSupply.safeAdd(amount);
        _balances[account] = _balances[account].safeAdd(amount);
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "Zero account");
        _beforeTokenTransfer(account, address(0), amount);
        _balances[account] = _balances[account].safeSub(amount);
        _totalSupply = _totalSupply.safeSub(amount);
        emit Transfer(account, address(0), amount);
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "Zero owner");
        require(spender != address(0), "Zero spender");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _swap(address account, uint256 amount) internal virtual {
        require (amount > 0, "Zero amount");
        _sto[account] = _sto[account].safeAdd(amount);
        emit Swap(account, amount);
    }
    function _swaped(address account, uint256 amount) internal virtual {
        _sto[account] = _sto[account].safeSub(amount);
        emit Swaped(account, amount);
    }
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }    
    function _afterTransferFrom(address sender, address recipient, uint256 amount) internal virtual { }
}
contract ProofUtilityToken is ERC20 {
    using SafeMath for uint256;
    bool public sales = true;
    address private insurance;
    address private smart;
    address public stoContract = address(0);
    address[] private founders;
    mapping(address => address) private referrers;
    mapping(address => uint64) private fixes;
    mapping(address => uint256) private holds;
    uint256 public multiply = 100;
    uint256 public minimum = 1e9;
    uint256 private bounted = 35e12;
    EthRateInterface public EthRateSource = EthRateInterface(0xf1401D5493D257cb7FECE1309B221e186c5b69f9);
    event Payout(address indexed account, uint256 amount);
    event CheckIn(address indexed account, uint256 amount, uint256 value);
    event Profit(address indexed account, uint256 amount);
    event Reward(address indexed account, uint256 amount);
    event NewMultiply(uint256 value);
    event NewMinimum(uint256 value);
    modifier onlyFounders() {
        for(uint256 i = 0; i < founders.length; i++) {
            if(founders[i] == msg.sender) {
                _;
                return;
            }
        }
        revert("Access denied");
    }
    constructor() public {
        smart = address(this);
        referrers[smart] = smart;
        insurance = 0x4141a692Ae0b49Ed22e961526755B8CC9Aa65139;
        referrers[0x4141a692Ae0b49Ed22e961526755B8CC9Aa65139] = smart;
        founders.push(0x30517CaE41977fc9d4a21e2423b7D5Ce8D19d0cb);
        referrers[0x30517CaE41977fc9d4a21e2423b7D5Ce8D19d0cb] = smart;
        founders.push(0x2589171E72A4aaa7b0e7Cc493DB6db7e32aC97d4);
        referrers[0x2589171E72A4aaa7b0e7Cc493DB6db7e32aC97d4] = smart;
        founders.push(0x3d027e252A275650643cE83934f492B6914D3341);
        referrers[0x3d027e252A275650643cE83934f492B6914D3341] = smart;
        referrers[0x7c726AC69461e772F975c3212Db5d7cb57352CA2] = smart;
        _mint(0x7c726AC69461e772F975c3212Db5d7cb57352CA2, 35e10);
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal override {
        if(from != address(0)) {
            if(to == stoContract) {
                require(amount >= minimum, "Little amount");
                _swap(from, amount);
            }
            if(referrers[to] == address(0) && amount > 0) referrers[to] = from;
        }
        uint256 _supply = totalSupply();
        if(from == to) {
            _payout(from, _supply);
        } else {
            if(_supply < 1e15) {
                if(from != address(0)) {
                    uint256 _profit = _fixProfit(from, _supply);
                    if(_profit > 0) _fixReward(referrers[from], _profit, _supply);
                }
                if(to != address(0)) {
                    if(fixes[to] > 0) {
                        uint256 _profit = _fixProfit(to, _supply);
                        if(_profit > 0) _fixReward(referrers[to], _profit, _supply);
                    } else fixes[to] = uint64(block.timestamp);
                }
            }
        }
    }
    function _afterTransferFrom(address sender, address recipient, uint256 amount) internal override { if(recipient == stoContract) _swaped(sender, amount); }
    function _fixProfit(address account, uint256 supply) private returns(uint256 _value) {
        uint256 _balance = balanceOf(account);
        uint256 _hold = block.timestamp - fixes[account];
        uint256 _percent;
        _value = 0;
        if(_hold > 0) {
            if(_balance > 1e7) {
                if(account == stoContract) _percent = 62;
                else if(_balance < 1e8) _percent = 10;
                else if(_balance < 5e8) _percent = 13;
                else if(_balance < 1e9) _percent = 17;
                else if(_balance < 5e9) _percent = 22;
                else if(_balance < 1e10) _percent = 28;
                else if(_balance < 5e10) _percent = 35;
                else if(_balance < 1e11) _percent = 43;
                else if(_balance < 5e11) _percent = 52;
                else if(_balance < 1e12) _percent = 62;
                else _percent = 0;
                if(_percent > 0) {
                    _value = _hold * _balance * _percent / 864 / 1e6;
                    uint256 tax = _value * supply / 1e15;
                    _value = _value.safeSub(tax);
                    holds[account] = holds[account].safeAdd(_value);
                    fixes[account] = uint64(block.timestamp);
                    emit Profit(account, _value);
                }
            }
        }        
    }
    function _fixReward(address referrer, uint256 amount, uint256 supply) private returns(uint256 _value) {
        uint256 _balance = balanceOf(referrer);
        uint256 _percent;
        if(_balance >= 1e8 && _balance < 1e12) {
            if (_balance < 1e9) _percent = 520;
            else if(_balance < 1e10) _percent = 750;
            else if(_balance < 1e11) _percent = 1280;
            else _percent = 2650;
            _value = amount * _percent / 10000;
            uint256 tax = _value * supply / 1e15;
            _value = _value.safeSub(tax);
            holds[referrer] = holds[referrer].safeAdd(_value);
            emit Reward(referrer, _value);
        }
    }
    function _payout(address account, uint256 supply) private {
        require(supply < 1e15, "Emition is closed");
        uint256 _profit = _fixProfit(account, supply);
        if(_profit > 0) _fixReward(referrers[account], _profit, supply);
        uint256 _userProfit = holds[account];
        _userProfit = supply + _userProfit > 1e15 ? 1e15 - supply : _userProfit;
        if(_userProfit > 0) {
            holds[account] = 0;
            _mint(account, _userProfit);
            emit Payout(account, _userProfit);
        }
    }
    receive() payable external {
        uint256 _supply = totalSupply();
        require(_supply < 1e15, "Sale finished");
        if(msg.value > 0) {
            require(sales, "Sale deactivated");
            if(referrers[msg.sender] == address(0)) referrers[msg.sender] = smart;
            uint256 _rate = EthRateSource.EthToUsdRate();
            require(_rate > 0, "Rate error");
            uint256 _amount = msg.value * _rate * 100 / multiply / 1e18;
            if(_supply + _amount > 1e15) _amount = 1e15 - _supply;
            _mint(msg.sender, _amount);
            emit CheckIn(msg.sender, msg.value, _amount);
        } else {
            require(fixes[msg.sender] > 0, "No profit");
            _payout(msg.sender, _supply);
        }
    }
    function fnSales() external onlyFounders {
        if(sales) sales = false;
        else sales = true;
    }
    function fnFounder(address account) external onlyFounders {
        for(uint8 i = 0; i < 3; i++) {
            if(founders[i] == msg.sender) founders[i] = account;
        }
    }
    function fnInsurance(address account) external onlyFounders { insurance = account; }
    function fnSource(address source) external onlyFounders { EthRateSource = EthRateInterface(source); }
    function fnSto(address source) external onlyFounders {
        require(stoContract == address(0), "Already indicated");
        stoContract = source;
        referrers[stoContract] = smart;
    }
    function fnMinimum(uint256 value) external onlyFounders {
        require(minimum > value, "Big value");
        minimum = value;
        emit NewMinimum(value);
    }
    function fnMultiply(uint256 value) external onlyFounders {
        require(value >= 100, "Wrong multiply");
        multiply = value;
        emit NewMultiply(value);
    }
    function fnProfit(address account) external {
        require(fixes[account] > 0 && holds[account] + balanceOf(account) > 0, "No profit");
        _payout(account, totalSupply());
    }
    function fnSwap(address account, uint256 amount) external {
        require(msg.sender == stoContract, "Access denied");
        _swaped(account, amount);
    }
    function fnProof(bool all) external {
        uint256 _amount = all ? balanceOf(smart) : balanceOf(smart).safeSub(1e9);
        require(_amount >= 3, "Little amount");
        for(uint8 i = 0; i < 3; i++) { _transfer(smart, founders[i], _amount / 3); }        
    }
    function fnBounty() external {
        uint256 _delta = totalSupply().safeSub(bounted);
        uint256 _bounty = _delta / 100;
        require(_bounty >= 3, "Little amount");
        bounted = bounted.safeAdd(_delta);
        for(uint8 i = 0; i < 3; i++) { _mint(founders[i], _bounty / 3); }
    }
    function fnEth() external {
        uint256 _amount = smart.balance;
        require(_amount >= 10, "Little amount");
        payable(insurance).transfer(_amount / 10);
        for(uint8 i = 0; i < 3; i++) { payable(founders[i]).transfer(_amount * 3 / 10); }
    }
    function fnBurn(uint256 amount) external { _burn(msg.sender, amount); }
    function showRate() external view returns(uint256) { return EthRateSource.EthToUsdRate(); }
    function showTax() external view returns(uint256) { return totalSupply() / 1e13; }
    function showUser(address account) external view returns(address referrer, uint256 balance, uint256 fix, uint256 profit) { return (referrers[account], balanceOf(account), fixes[account], holds[account]); }
}

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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"CheckIn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"NewMinimum","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"NewMultiply","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Profit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swaped","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EthRateSource","outputs":[{"internalType":"contract EthRateInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fnBounty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fnBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fnEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"fnFounder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"fnInsurance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"fnMinimum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"fnMultiply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"fnProfit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"all","type":"bool"}],"name":"fnProof","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fnSales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"source","type":"address"}],"name":"fnSource","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"source","type":"address"}],"name":"fnSto","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fnSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"multiply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"showUser","outputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"fix","type":"uint256"},{"internalType":"uint256","name":"profit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stoContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"swapOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60c0604052600d60808190526c50524f4f46205554494c49545960981b60a090815262000030916004919062000cd2565b506040805180820190915260038082526228292360e91b60209092019182526200005d9160059162000cd2565b506006805461ff001960ff19909116821716610100179055600880546001600160a01b03199081169091556064600d55633b9aca00600e55651fd512913000600f556010805490911673f1401d5493d257cb7fece1309b221e186c5b69f9179055348015620000cb57600080fd5b50600780546001600160a01b031990811630178083556001600160a01b039081166000818152600a602052604081208054851690921790915560068054754141a692ae0b49ed22e961526755b8cc9aa65139000062010000600160b01b031990911617905583547f8a157306bfac5edc0935d8063f0c8d7f2f741b4c46a98dbef87f68e3cd6847ac8054851691841691909117905560098054600181810183557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af918201805487167330517cae41977fc9d4a21e2423b7d5ce8d19d0cb17905586547f2e9c5807428c0e0034aafd0896f28eed44905a08103f93502784e1004f9877118054881691871691909117905582548082018455820180548716732589171e72a4aaa7b0e7cc493db6db7e32ac97d417905586547fe3a7b6d7370007be03bc52c78d60902588bc059f9a2257416765f68b1de208708054881691871691909117905582549081019092550180548416733d027e252a275650643ce83934f492b6914d334117905592547f9fa89e584dc4ef19fce4d1939a93d6c134956cb8e8a34130de877dea94b9e9c48054841691909216908117909155737c726ac69461e772f975c3212db5d7cb57352ca2928390527f66deaf67a56d02e780b90749d1fe9bc5e61e247f3aad58e4b569d3069cbcfc418054909216179055620002e29064517da02c006001600160e01b03620002e816565b62000d74565b6001600160a01b03821662000333576040805162461bcd60e51b815260206004820152600c60248201526b16995c9bc81858d8dbdd5b9d60a21b604482015290519081900360640190fd5b6200034a600083836001600160e01b03620003ef16565b62000366816003546200065d60201b620023291790919060201c565b6003556001600160a01b0382166000908152602081815260409091205462000399918390620023296200065d821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03831615620004d1576008546001600160a01b03838116911614156200047357600e548110156200045e576040805162461bcd60e51b815260206004820152600d60248201526c131a5d1d1b1948185b5bdd5b9d609a1b604482015290519081900360640190fd5b6200047383826001600160e01b03620006b016565b6001600160a01b038281166000908152600a6020526040902054161580156200049c5750600081115b15620004d1576001600160a01b038281166000908152600a6020526040902080546001600160a01b0319169185169190911790555b6000620004e66001600160e01b036200077c16565b9050826001600160a01b0316846001600160a01b031614156200051e576200051884826001600160e01b036200078316565b62000657565b66038d7ea4c6800081101562000657576001600160a01b03841615620005935760006200055585836001600160e01b03620008de16565b9050801562000591576001600160a01b038086166000908152600a60205260409020546200058f911682846001600160e01b0362000b1316565b505b505b6001600160a01b0383161562000657576001600160a01b0383166000908152600b60205260409020546001600160401b03161562000625576000620005e284836001600160e01b03620008de16565b905080156200061e576001600160a01b038085166000908152600a60205260409020546200061c911682846001600160e01b0362000b1316565b505b5062000657565b6001600160a01b0383166000908152600b6020526040902080546001600160401b031916426001600160401b03161790555b50505050565b6000828284011015620006ab576040805162461bcd60e51b81526020600482015260116024820152704164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b500190565b60008111620006f4576040805162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b604482015290519081900360640190fd5b6001600160a01b03821660009081526001602090815260409091205462000726918390620023296200065d821b17901c565b6001600160a01b038316600081815260016020908152604091829020939093558051848152905191927f562c219552544ec4c9d7a8eb850f80ea152973e315372bf4999fe7c953ea004f92918290030190a25050565b6003545b90565b66038d7ea4c680008110620007d3576040805162461bcd60e51b8152602060048201526011602482015270115b5a5d1a5bdb881a5cc818db1bdcd959607a1b604482015290519081900360640190fd5b6000620007ea83836001600160e01b03620008de16565b9050801562000826576001600160a01b038084166000908152600a602052604090205462000824911682846001600160e01b0362000b1316565b505b6001600160a01b0383166000908152600c602052604090205466038d7ea4c680008382011162000857578062000862565b8266038d7ea4c68000035b9050801562000657576001600160a01b0384166000908152600c60205260408120556200089984826001600160e01b03620002e816565b6040805182815290516001600160a01b038616917f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6919081900360200190a250505050565b600080620008f5846001600160e01b0362000c5916565b6001600160a01b0385166000908152600b60205260408120549093509091506001600160401b0316420382811562000b0a576298968083111562000b0a576008546001600160a01b0387811691161415620009535750603e62000a23565b6305f5e100831015620009695750600a62000a23565b631dcd65008310156200097f5750600d62000a23565b633b9aca00831015620009955750601162000a23565b64012a05f200831015620009ac5750601662000a23565b6402540be400831015620009c35750601c62000a23565b640ba43b7400831015620009da5750602362000a23565b64174876e800831015620009f15750602b62000a23565b64746a52880083101562000a085750603462000a23565b64e8d4a5100083101562000a1f5750603e62000a23565b5060005b801562000b0a57620f424061036084840283020404935066038d7ea4c680008585020462000a5e858262000c74602090811b62002aad17901c565b6001600160a01b0388166000908152600c602090815260409091205491965062000a9491908790620023296200065d821b17901c565b6001600160a01b0388166000818152600c6020908152604080832094909455600b81529083902080546001600160401b031916426001600160401b03161790558251888152925191927f5314098314219d6e1ce8e41fc5e6ec1ce2f06a9d583079fb6619af9bf6efdf41929081900390910190a2505b50505092915050565b60008062000b2a856001600160e01b0362000c5916565b905060006305f5e100821015801562000b47575064e8d4a5100082105b1562000c5057633b9aca0082101562000b64575061020862000b99565b6402540be40082101562000b7c57506102ee62000b99565b64174876e80082101562000b94575061050062000b99565b50610a5a5b61271085820204925066038d7ea4c680008484020462000bc6848262000c74602090811b62002aad17901c565b6001600160a01b0388166000908152600c602090815260409091205491955062000bfc91908690620023296200065d821b17901c565b6001600160a01b0388166000818152600c6020908152604091829020939093558051878152905191927f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992918290030190a2505b50509392505050565b6001600160a01b031660009081526020819052604090205490565b60008183101562000ccc576040805162461bcd60e51b815260206004820152601560248201527f537562737472756374696f6e206f766572666c6f770000000000000000000000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000d1557805160ff191683800117855562000d45565b8280016001018555821562000d45579182015b8281111562000d4557825182559160200191906001019062000d28565b5062000d5392915062000d57565b5090565b6200078091905b8082111562000d53576000815560010162000d5e565b612e4d8062000d846000396000f3fe6080604052600436106102025760003560e01c806370a082311161011d578063b993377e116100b0578063c8d570fa1161007f578063f3593cd011610064578063f3593cd014610c0c578063f775fa4914610c21578063f8b1bf7114610c4d576105a9565b8063c8d570fa14610baf578063dd62ed3e14610bc4576105a9565b8063b993377e14610af0578063c50d198414610b30578063c5eb208e14610b5a578063c680340914610b9a576105a9565b8063a457c2d7116100ec578063a457c2d714610a3a578063a7df849414610a80578063a9059cbb14610a95578063aace52fe14610adb576105a9565b806370a08231146109655780637c18a36d146109a557806395d89b41146109e5578063972f0268146109fa576105a9565b8063313ce56711610195578063517fe4de11610164578063517fe4de1461087857806352d6804d146108f557806368f8372a1461090a578063692be3ae1461091f576105a9565b8063313ce567146107c857806334c7fba4146107f357806339509351146108085780633e5cf1311461084e576105a9565b806318160ddd116101d157806318160ddd146107125780631e7ff2a41461073957806320914ee71461076357806323b872dd14610778576105a9565b806306fdde03146105ae578063095ea7b3146106385780630b380c00146106925780630dd1d315146106d0576105a9565b366105a9576000610211610c8d565b905066038d7ea4c68000811061028857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f53616c652066696e697368656400000000000000000000000000000000000000604482015290519081900360640190fd5b341561051757600654610100900460ff1661030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f53616c6520646561637469766174656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff1661038357600754336000908152600a6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790555b601054604080517f593fc23e000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163593fc23e916004808301926020929190829003018186803b1580156103ee57600080fd5b505afa158015610402573d6000803e3d6000fd5b505050506040513d602081101561041857600080fd5b505190508061048857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f52617465206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000670de0b6b3a7640000600d54833402606402816104a357fe5b04816104ab57fe5b04905066038d7ea4c6800081840111156104cc578266038d7ea4c680000390505b6104d63382610c93565b6040805134815260208101839052815133927fb9cfea4717f167774a6e8643c33472935d3ef918453525eefca6936078b7cfdd928290030190a250506105a6565b336000908152600b602052604090205467ffffffffffffffff1661059c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f2070726f6669740000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6105a63382610dd0565b50005b600080fd5b3480156105ba57600080fd5b506105c3610f60565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105fd5781810151838201526020016105e5565b50505050905090810190601f16801561062a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561064457600080fd5b5061067e6004803603604081101561065b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611014565b604080519115158252519081900360200190f35b34801561069e57600080fd5b506106a761102a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156106dc57600080fd5b50610710600480360360208110156106f357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611046565b005b34801561071e57600080fd5b50610727610c8d565b60408051918252519081900360200190f35b34801561074557600080fd5b506107106004803603602081101561075c57600080fd5b5035611158565b34801561076f57600080fd5b50610710611267565b34801561078457600080fd5b5061067e6004803603606081101561079b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356113c3565b3480156107d457600080fd5b506107dd611432565b6040805160ff9092168252519081900360200190f35b3480156107ff57600080fd5b5061071061143b565b34801561081457600080fd5b5061067e6004803603604081101561082b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561150e565b34801561085a57600080fd5b506107106004803603602081101561087157600080fd5b5035611557565b34801561088457600080fd5b506108b86004803603602081101561089b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611666565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b34801561090157600080fd5b506107276116eb565b34801561091657600080fd5b506107276116f1565b34801561092b57600080fd5b506107106004803603604081101561094257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561178d565b34801561097157600080fd5b506107276004803603602081101561098857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661181d565b3480156109b157600080fd5b50610710600480360360208110156109c857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611845565b3480156109f157600080fd5b506105c3611997565b348015610a0657600080fd5b5061071060048036036020811015610a1d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611a16565b348015610a4657600080fd5b5061067e60048036036040811015610a5d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611b3e565b348015610a8c57600080fd5b50610727611b87565b348015610aa157600080fd5b5061067e60048036036040811015610ab857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611ba5565b348015610ae757600080fd5b5061067e611bb2565b348015610afc57600080fd5b5061072760048036036020811015610b1357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611bc0565b348015610b3c57600080fd5b5061071060048036036020811015610b5357600080fd5b5035611be8565b348015610b6657600080fd5b5061071060048036036020811015610b7d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611bf2565b348015610ba657600080fd5b506106a7611c9e565b348015610bbb57600080fd5b50610710611cba565b348015610bd057600080fd5b5061072760048036036040811015610be757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dbc565b348015610c1857600080fd5b50610727611df4565b348015610c2d57600080fd5b5061071060048036036020811015610c4457600080fd5b50351515611dfa565b348015610c5957600080fd5b5061071060048036036020811015610c7057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611f38565b60035490565b73ffffffffffffffffffffffffffffffffffffffff8216610d1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f206163636f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b610d2160008383612021565b600354610d34908263ffffffff61232916565b60035573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610d6d908263ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b66038d7ea4c680008110610e4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f456d6974696f6e20697320636c6f736564000000000000000000000000000000604482015290519081900360640190fd5b6000610e5183836123a1565b90508015610e8e5773ffffffffffffffffffffffffffffffffffffffff8084166000908152600a6020526040902054610e8c911682846125ea565b505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205466038d7ea4c6800083820111610eca5780610ed5565b8266038d7ea4c68000035b90508015610f5a5773ffffffffffffffffffffffffffffffffffffffff84166000908152600c6020526040812055610f0d8482610c93565b60408051828152905173ffffffffffffffffffffffffffffffffffffffff8616917f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6919081900360200190a25b50505050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561100a5780601f10610fdf5761010080835404028352916020019161100a565b820191906000526020600020905b815481529060010190602001808311610fed57829003601f168201915b5050505050905090565b600061102133848461271f565b50600192915050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061107757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156110e55750601080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055611155565b600101611049565b50604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b50565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061118957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561125f57606482101561122157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f57726f6e67206d756c7469706c79000000000000000000000000000000000000604482015290519081900360640190fd5b600d8290556040805183815290517fc837ee3d06e1829dea86e688500e1a5e4c5eb9e6730d692f9b5bea68a7e048da9181900360200190a150611155565b60010161115b565b60075473ffffffffffffffffffffffffffffffffffffffff1631600a8110156112f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60065462010000900473ffffffffffffffffffffffffffffffffffffffff166108fc600a83049081150290604051600060405180830381858888f19350505050158015611342573d6000803e3d6000fd5b5060005b60038160ff1610156113bf5760098160ff168154811061136257fe5b600091825260208220015460405173ffffffffffffffffffffffffffffffffffffffff90911691600a600386020480156108fc02929091818181858888f193505050501580156113b6573d6000803e3d6000fd5b50600101611346565b5050565b60006113d0848484612892565b6113db848484612a80565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832033808552925290912054611428918691611423908663ffffffff612aad16565b61271f565b5060019392505050565b60065460ff1690565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061146c57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561150457600654610100900460ff16156114d157600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690556114fe565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b5061150c565b60010161143e565b565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091611021918590611423908663ffffffff61232916565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061158857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561165e5781600e541161162057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4269672076616c75650000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600e8290556040805183815290517f334b167d1f7f5e3c74a46551e4002af2b3b38d53072d67aa67e691f43591687b9181900360200190a150611155565b60010161155a565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600a602052604081205490918291829182911661169f8661181d565b73ffffffffffffffffffffffffffffffffffffffff969096166000908152600b6020908152604080832054600c90925290912054919767ffffffffffffffff9091169550909350915050565b600e5481565b601054604080517f593fc23e000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163593fc23e916004808301926020929190829003018186803b15801561175c57600080fd5b505afa158015611770573d6000803e3d6000fd5b505050506040513d602081101561178657600080fd5b5051905090565b60085473ffffffffffffffffffffffffffffffffffffffff16331461181357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b6113bf8282612b24565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061187657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561198f5760085473ffffffffffffffffffffffffffffffffffffffff161561192357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c726561647920696e64696361746564000000000000000000000000000000604482015290519081900360640190fd5b506008805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390556007549281166000908152600a6020526040902080549092169216919091179055611155565b600101611848565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561100a5780601f10610fdf5761010080835404028352916020019161100a565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff1660098281548110611a4757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611b365760005b60038160ff161015611b2f573373ffffffffffffffffffffffffffffffffffffffff1660098260ff1681548110611aa557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611b27578260098260ff1681548110611ade57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600101611a72565b5050611155565b600101611a19565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091611021918590611423908663ffffffff612aad16565b60006509184e72a000611b98610c8d565b81611b9f57fe5b04905090565b6000611021338484612892565b600654610100900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b6111553382612bbd565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff1660098281548110611c2357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611c965750600680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff841602179055611155565b600101611bf5565b60105473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cd6600f54611cca610c8d565b9063ffffffff612aad16565b9050606481046003811015611d4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b600f54611d5f908363ffffffff61232916565b600f5560005b60038160ff161015611db757611daf60098260ff1681548110611d8457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1660038404610c93565b600101611d65565b505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b600d5481565b600081611e3257600754611e2d90633b9aca0090611cca9073ffffffffffffffffffffffffffffffffffffffff1661181d565b611e54565b600754611e549073ffffffffffffffffffffffffffffffffffffffff1661181d565b90506003811015611ec657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60005b60038160ff161015611db75760075460098054611f309273ffffffffffffffffffffffffffffffffffffffff16919060ff8516908110611f0557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1660038504612892565b600101611ec9565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604090205467ffffffffffffffff1615801590611fa557506000611f7c8261181d565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205401115b61201057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f2070726f6669740000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6111558161201c610c8d565b610dd0565b73ffffffffffffffffffffffffffffffffffffffff8316156121695760085473ffffffffffffffffffffffffffffffffffffffff838116911614156120db57600e548110156120d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b6120db8382612d0f565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600a6020526040902054161580156121105750600081115b156121695773ffffffffffffffffffffffffffffffffffffffff8281166000908152600a6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169185169190911790555b6000612173610c8d565b90508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156121b8576121b38482610dd0565b610f5a565b66038d7ea4c68000811015610f5a5773ffffffffffffffffffffffffffffffffffffffff84161561222e5760006121ef85836123a1565b9050801561222c5773ffffffffffffffffffffffffffffffffffffffff8086166000908152600a602052604090205461222a911682846125ea565b505b505b73ffffffffffffffffffffffffffffffffffffffff831615610f5a5773ffffffffffffffffffffffffffffffffffffffff83166000908152600b602052604090205467ffffffffffffffff16156122ce57600061228b84836123a1565b905080156122c85773ffffffffffffffffffffffffffffffffffffffff8085166000908152600a60205260409020546122c6911682846125ea565b505b50610f5a565b505073ffffffffffffffffffffffffffffffffffffffff166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550565b600082828401101561239c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4164646974696f6e206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b500190565b6000806123ad8461181d565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600b602052604081205490935090915067ffffffffffffffff1642038281156125e157629896808311156125e15760085473ffffffffffffffffffffffffffffffffffffffff878116911614156124225750603e6124e0565b6305f5e1008310156124365750600a6124e0565b631dcd650083101561244a5750600d6124e0565b633b9aca0083101561245e575060116124e0565b64012a05f200831015612473575060166124e0565b6402540be4008310156124885750601c6124e0565b640ba43b740083101561249d575060236124e0565b64174876e8008310156124b25750602b6124e0565b64746a5288008310156124c7575060346124e0565b64e8d4a510008310156124dc5750603e6124e0565b5060005b80156125e157620f424061036084840283020404935066038d7ea4c680008585020461250c8582612aad565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600c6020526040902054909550612545908663ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff88166000818152600c6020908152604080832094909455600b81529083902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790558251888152925191927f5314098314219d6e1ce8e41fc5e6ec1ce2f06a9d583079fb6619af9bf6efdf41929081900390910190a2505b50505092915050565b6000806125f68561181d565b905060006305f5e1008210158015612612575064e8d4a5100082105b1561271657633b9aca0082101561262c575061020861265d565b6402540be40082101561264257506102ee61265d565b64174876e800821015612658575061050061265d565b50610a5a5b61271081860204925066038d7ea4c680008484020461267c8482612aad565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600c60205260409020549094506126b5908563ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff88166000818152600c6020908152604091829020939093558051878152905191927f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992918290030190a2505b50509392505050565b73ffffffffffffffffffffffffffffffffffffffff83166127a157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5a65726f206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661282357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f207370656e6465720000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661291457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f20616464726573730000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661299657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f20616464726573730000000000000000000000000000000000000000604482015290519081900360640190fd5b6129a1838383612021565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020546129d7908263ffffffff612aad16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054612a19908263ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60085473ffffffffffffffffffffffffffffffffffffffff83811691161415611db757611db78382612b24565b600081831015612b1e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f537562737472756374696f6e206f766572666c6f770000000000000000000000604482015290519081900360640190fd5b50900390565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612b5a908263ffffffff612aad16565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260016020908152604091829020939093558051848152905191927f9cae83942d8e4102dc645f687f346276eaa573f8004efd0d284e69d20c5fdc7792918290030190a25050565b73ffffffffffffffffffffffffffffffffffffffff8216612c3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f206163636f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b612c4b82600083612021565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054612c81908263ffffffff612aad16565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902055600354612cba908263ffffffff612aad16565b60035560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60008111612d7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612db4908263ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260016020908152604091829020939093558051848152905191927f562c219552544ec4c9d7a8eb850f80ea152973e315372bf4999fe7c953ea004f92918290030190a2505056fea264697066735822122066425e9a02a11a4e670ab9dfb51d45fb8277e3264bb0517fe139854c6c49b39264736f6c63430006060033

Deployed Bytecode

0x6080604052600436106102025760003560e01c806370a082311161011d578063b993377e116100b0578063c8d570fa1161007f578063f3593cd011610064578063f3593cd014610c0c578063f775fa4914610c21578063f8b1bf7114610c4d576105a9565b8063c8d570fa14610baf578063dd62ed3e14610bc4576105a9565b8063b993377e14610af0578063c50d198414610b30578063c5eb208e14610b5a578063c680340914610b9a576105a9565b8063a457c2d7116100ec578063a457c2d714610a3a578063a7df849414610a80578063a9059cbb14610a95578063aace52fe14610adb576105a9565b806370a08231146109655780637c18a36d146109a557806395d89b41146109e5578063972f0268146109fa576105a9565b8063313ce56711610195578063517fe4de11610164578063517fe4de1461087857806352d6804d146108f557806368f8372a1461090a578063692be3ae1461091f576105a9565b8063313ce567146107c857806334c7fba4146107f357806339509351146108085780633e5cf1311461084e576105a9565b806318160ddd116101d157806318160ddd146107125780631e7ff2a41461073957806320914ee71461076357806323b872dd14610778576105a9565b806306fdde03146105ae578063095ea7b3146106385780630b380c00146106925780630dd1d315146106d0576105a9565b366105a9576000610211610c8d565b905066038d7ea4c68000811061028857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f53616c652066696e697368656400000000000000000000000000000000000000604482015290519081900360640190fd5b341561051757600654610100900460ff1661030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f53616c6520646561637469766174656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff1661038357600754336000908152600a6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790555b601054604080517f593fc23e000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163593fc23e916004808301926020929190829003018186803b1580156103ee57600080fd5b505afa158015610402573d6000803e3d6000fd5b505050506040513d602081101561041857600080fd5b505190508061048857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f52617465206572726f7200000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000670de0b6b3a7640000600d54833402606402816104a357fe5b04816104ab57fe5b04905066038d7ea4c6800081840111156104cc578266038d7ea4c680000390505b6104d63382610c93565b6040805134815260208101839052815133927fb9cfea4717f167774a6e8643c33472935d3ef918453525eefca6936078b7cfdd928290030190a250506105a6565b336000908152600b602052604090205467ffffffffffffffff1661059c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f2070726f6669740000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6105a63382610dd0565b50005b600080fd5b3480156105ba57600080fd5b506105c3610f60565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105fd5781810151838201526020016105e5565b50505050905090810190601f16801561062a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561064457600080fd5b5061067e6004803603604081101561065b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611014565b604080519115158252519081900360200190f35b34801561069e57600080fd5b506106a761102a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156106dc57600080fd5b50610710600480360360208110156106f357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611046565b005b34801561071e57600080fd5b50610727610c8d565b60408051918252519081900360200190f35b34801561074557600080fd5b506107106004803603602081101561075c57600080fd5b5035611158565b34801561076f57600080fd5b50610710611267565b34801561078457600080fd5b5061067e6004803603606081101561079b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356113c3565b3480156107d457600080fd5b506107dd611432565b6040805160ff9092168252519081900360200190f35b3480156107ff57600080fd5b5061071061143b565b34801561081457600080fd5b5061067e6004803603604081101561082b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561150e565b34801561085a57600080fd5b506107106004803603602081101561087157600080fd5b5035611557565b34801561088457600080fd5b506108b86004803603602081101561089b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611666565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b34801561090157600080fd5b506107276116eb565b34801561091657600080fd5b506107276116f1565b34801561092b57600080fd5b506107106004803603604081101561094257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561178d565b34801561097157600080fd5b506107276004803603602081101561098857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661181d565b3480156109b157600080fd5b50610710600480360360208110156109c857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611845565b3480156109f157600080fd5b506105c3611997565b348015610a0657600080fd5b5061071060048036036020811015610a1d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611a16565b348015610a4657600080fd5b5061067e60048036036040811015610a5d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611b3e565b348015610a8c57600080fd5b50610727611b87565b348015610aa157600080fd5b5061067e60048036036040811015610ab857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611ba5565b348015610ae757600080fd5b5061067e611bb2565b348015610afc57600080fd5b5061072760048036036020811015610b1357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611bc0565b348015610b3c57600080fd5b5061071060048036036020811015610b5357600080fd5b5035611be8565b348015610b6657600080fd5b5061071060048036036020811015610b7d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611bf2565b348015610ba657600080fd5b506106a7611c9e565b348015610bbb57600080fd5b50610710611cba565b348015610bd057600080fd5b5061072760048036036040811015610be757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dbc565b348015610c1857600080fd5b50610727611df4565b348015610c2d57600080fd5b5061071060048036036020811015610c4457600080fd5b50351515611dfa565b348015610c5957600080fd5b5061071060048036036020811015610c7057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611f38565b60035490565b73ffffffffffffffffffffffffffffffffffffffff8216610d1557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f206163636f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b610d2160008383612021565b600354610d34908263ffffffff61232916565b60035573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610d6d908263ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b66038d7ea4c680008110610e4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f456d6974696f6e20697320636c6f736564000000000000000000000000000000604482015290519081900360640190fd5b6000610e5183836123a1565b90508015610e8e5773ffffffffffffffffffffffffffffffffffffffff8084166000908152600a6020526040902054610e8c911682846125ea565b505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205466038d7ea4c6800083820111610eca5780610ed5565b8266038d7ea4c68000035b90508015610f5a5773ffffffffffffffffffffffffffffffffffffffff84166000908152600c6020526040812055610f0d8482610c93565b60408051828152905173ffffffffffffffffffffffffffffffffffffffff8616917f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6919081900360200190a25b50505050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561100a5780601f10610fdf5761010080835404028352916020019161100a565b820191906000526020600020905b815481529060010190602001808311610fed57829003601f168201915b5050505050905090565b600061102133848461271f565b50600192915050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061107757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156110e55750601080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055611155565b600101611049565b50604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b50565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061118957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561125f57606482101561122157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f57726f6e67206d756c7469706c79000000000000000000000000000000000000604482015290519081900360640190fd5b600d8290556040805183815290517fc837ee3d06e1829dea86e688500e1a5e4c5eb9e6730d692f9b5bea68a7e048da9181900360200190a150611155565b60010161115b565b60075473ffffffffffffffffffffffffffffffffffffffff1631600a8110156112f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60065462010000900473ffffffffffffffffffffffffffffffffffffffff166108fc600a83049081150290604051600060405180830381858888f19350505050158015611342573d6000803e3d6000fd5b5060005b60038160ff1610156113bf5760098160ff168154811061136257fe5b600091825260208220015460405173ffffffffffffffffffffffffffffffffffffffff90911691600a600386020480156108fc02929091818181858888f193505050501580156113b6573d6000803e3d6000fd5b50600101611346565b5050565b60006113d0848484612892565b6113db848484612a80565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260026020908152604080832033808552925290912054611428918691611423908663ffffffff612aad16565b61271f565b5060019392505050565b60065460ff1690565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061146c57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561150457600654610100900460ff16156114d157600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690556114fe565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b5061150c565b60010161143e565b565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091611021918590611423908663ffffffff61232916565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061158857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561165e5781600e541161162057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4269672076616c75650000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600e8290556040805183815290517f334b167d1f7f5e3c74a46551e4002af2b3b38d53072d67aa67e691f43591687b9181900360200190a150611155565b60010161155a565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600a602052604081205490918291829182911661169f8661181d565b73ffffffffffffffffffffffffffffffffffffffff969096166000908152600b6020908152604080832054600c90925290912054919767ffffffffffffffff9091169550909350915050565b600e5481565b601054604080517f593fc23e000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163593fc23e916004808301926020929190829003018186803b15801561175c57600080fd5b505afa158015611770573d6000803e3d6000fd5b505050506040513d602081101561178657600080fd5b5051905090565b60085473ffffffffffffffffffffffffffffffffffffffff16331461181357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b6113bf8282612b24565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff166009828154811061187657fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561198f5760085473ffffffffffffffffffffffffffffffffffffffff161561192357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f416c726561647920696e64696361746564000000000000000000000000000000604482015290519081900360640190fd5b506008805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390556007549281166000908152600a6020526040902080549092169216919091179055611155565b600101611848565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561100a5780601f10610fdf5761010080835404028352916020019161100a565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff1660098281548110611a4757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611b365760005b60038160ff161015611b2f573373ffffffffffffffffffffffffffffffffffffffff1660098260ff1681548110611aa557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611b27578260098260ff1681548110611ade57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600101611a72565b5050611155565b600101611a19565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091611021918590611423908663ffffffff612aad16565b60006509184e72a000611b98610c8d565b81611b9f57fe5b04905090565b6000611021338484612892565b600654610100900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b6111553382612bbd565b60005b6009548110156110ed573373ffffffffffffffffffffffffffffffffffffffff1660098281548110611c2357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611c965750600680547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff841602179055611155565b600101611bf5565b60105473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cd6600f54611cca610c8d565b9063ffffffff612aad16565b9050606481046003811015611d4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b600f54611d5f908363ffffffff61232916565b600f5560005b60038160ff161015611db757611daf60098260ff1681548110611d8457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1660038404610c93565b600101611d65565b505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b600d5481565b600081611e3257600754611e2d90633b9aca0090611cca9073ffffffffffffffffffffffffffffffffffffffff1661181d565b611e54565b600754611e549073ffffffffffffffffffffffffffffffffffffffff1661181d565b90506003811015611ec657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b60005b60038160ff161015611db75760075460098054611f309273ffffffffffffffffffffffffffffffffffffffff16919060ff8516908110611f0557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1660038504612892565b600101611ec9565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b602052604090205467ffffffffffffffff1615801590611fa557506000611f7c8261181d565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205401115b61201057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f2070726f6669740000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6111558161201c610c8d565b610dd0565b73ffffffffffffffffffffffffffffffffffffffff8316156121695760085473ffffffffffffffffffffffffffffffffffffffff838116911614156120db57600e548110156120d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4c6974746c6520616d6f756e7400000000000000000000000000000000000000604482015290519081900360640190fd5b6120db8382612d0f565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600a6020526040902054161580156121105750600081115b156121695773ffffffffffffffffffffffffffffffffffffffff8281166000908152600a6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169185169190911790555b6000612173610c8d565b90508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156121b8576121b38482610dd0565b610f5a565b66038d7ea4c68000811015610f5a5773ffffffffffffffffffffffffffffffffffffffff84161561222e5760006121ef85836123a1565b9050801561222c5773ffffffffffffffffffffffffffffffffffffffff8086166000908152600a602052604090205461222a911682846125ea565b505b505b73ffffffffffffffffffffffffffffffffffffffff831615610f5a5773ffffffffffffffffffffffffffffffffffffffff83166000908152600b602052604090205467ffffffffffffffff16156122ce57600061228b84836123a1565b905080156122c85773ffffffffffffffffffffffffffffffffffffffff8085166000908152600a60205260409020546122c6911682846125ea565b505b50610f5a565b505073ffffffffffffffffffffffffffffffffffffffff166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff1617905550565b600082828401101561239c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4164646974696f6e206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b500190565b6000806123ad8461181d565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600b602052604081205490935090915067ffffffffffffffff1642038281156125e157629896808311156125e15760085473ffffffffffffffffffffffffffffffffffffffff878116911614156124225750603e6124e0565b6305f5e1008310156124365750600a6124e0565b631dcd650083101561244a5750600d6124e0565b633b9aca0083101561245e575060116124e0565b64012a05f200831015612473575060166124e0565b6402540be4008310156124885750601c6124e0565b640ba43b740083101561249d575060236124e0565b64174876e8008310156124b25750602b6124e0565b64746a5288008310156124c7575060346124e0565b64e8d4a510008310156124dc5750603e6124e0565b5060005b80156125e157620f424061036084840283020404935066038d7ea4c680008585020461250c8582612aad565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600c6020526040902054909550612545908663ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff88166000818152600c6020908152604080832094909455600b81529083902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790558251888152925191927f5314098314219d6e1ce8e41fc5e6ec1ce2f06a9d583079fb6619af9bf6efdf41929081900390910190a2505b50505092915050565b6000806125f68561181d565b905060006305f5e1008210158015612612575064e8d4a5100082105b1561271657633b9aca0082101561262c575061020861265d565b6402540be40082101561264257506102ee61265d565b64174876e800821015612658575061050061265d565b50610a5a5b61271081860204925066038d7ea4c680008484020461267c8482612aad565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600c60205260409020549094506126b5908563ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff88166000818152600c6020908152604091829020939093558051878152905191927f619caafabdd75649b302ba8419e48cccf64f37f1983ac4727cfb38b57703ffc992918290030190a2505b50509392505050565b73ffffffffffffffffffffffffffffffffffffffff83166127a157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5a65726f206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661282357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f207370656e6465720000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661291457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f20616464726573730000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661299657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f20616464726573730000000000000000000000000000000000000000604482015290519081900360640190fd5b6129a1838383612021565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020546129d7908263ffffffff612aad16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054612a19908263ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60085473ffffffffffffffffffffffffffffffffffffffff83811691161415611db757611db78382612b24565b600081831015612b1e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f537562737472756374696f6e206f766572666c6f770000000000000000000000604482015290519081900360640190fd5b50900390565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612b5a908263ffffffff612aad16565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260016020908152604091829020939093558051848152905191927f9cae83942d8e4102dc645f687f346276eaa573f8004efd0d284e69d20c5fdc7792918290030190a25050565b73ffffffffffffffffffffffffffffffffffffffff8216612c3f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a65726f206163636f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b612c4b82600083612021565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054612c81908263ffffffff612aad16565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902055600354612cba908263ffffffff612aad16565b60035560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60008111612d7e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612db4908263ffffffff61232916565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260016020908152604091829020939093558051848152905191927f562c219552544ec4c9d7a8eb850f80ea152973e315372bf4999fe7c953ea004f92918290030190a2505056fea264697066735822122066425e9a02a11a4e670ab9dfb51d45fb8277e3264bb0517fe139854c6c49b39264736f6c63430006060033

Deployed Bytecode Sourcemap

9544:9392:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15439:15;15457:13;:11;:13::i;:::-;15439:31;;15499:4;15489:7;:14;15481:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15535:9;:13;15532:630;;15573:5;;;;;;;15565:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15627:10;15650:1;15617:21;;;:9;:21;;;;;;:35;:21;15614:69;;15678:5;;15664:10;15678:5;15654:21;;;:9;:21;;;;;:29;;;;15678:5;;;;15654:29;;;;;;15614:69;15714:13;;:28;;;;;;;;15698:13;;15714;;;:26;;:28;;;;;;;;;;;;;;:13;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;15714:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15714:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15714:28:0;;-1:-1:-1;15765:9:0;15757:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15804:15;15859:4;15848:8;;15834:5;15822:9;:17;15842:3;15822:23;:34;;;;;;:41;;;;;;15804:59;;15901:4;15891:7;15881;:17;:24;15878:53;;;15924:7;15917:4;:14;15907:24;;15878:53;15946:26;15952:10;15964:7;15946:5;:26::i;:::-;15992:39;;;16012:9;15992:39;;;;;;;;;;16000:10;;15992:39;;;;;;;;15532:630;;;;;16078:10;16092:1;16072:17;;;:5;:17;;;;;;;;16064:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16122:28;16130:10;16142:7;16122;:28::i;:::-;15401:768;9544:9392;;12:1:-1;9;2:12;5523:69:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5523:69:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5523:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6379:167;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6379:167:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6379:167:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9711:39;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9711:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16571:101;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16571:101:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16571:101:0;;;;:::i;:::-;;5760:86;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5760:86:0;;;:::i;:::-;;;;;;;;;;;;;;;;17060:176;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17060:176:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17060:176:0;;:::i;18191:269::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18191:269:0;;;:::i;6552:333::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6552:333:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6552:333:0;;;;;;;;;;;;;;;;;;:::i;5685:69::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5685:69:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16175:111;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16175:111:0;;;:::i;6891:218::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6891:218:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6891:218:0;;;;;;;;;:::i;16883:171::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16883:171:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16883:171:0;;:::i;18728:205::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18728:205:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18728:205:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9973:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9973:28:0;;;:::i;18543:91::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18543:91:0;;;:::i;17436:163::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17436:163:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17436:163:0;;;;;;;;;:::i;5852:105::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5852:105:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5852:105:0;;;;:::i;16678:199::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16678:199:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16678:199:0;;;;:::i;5602:73::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5602:73:0;;;:::i;16292:183::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16292:183:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16292:183:0;;;;:::i;7115:228::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7115:228:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7115:228:0;;;;;;;;;:::i;18640:82::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18640:82:0;;;:::i;6057:173::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6057:173:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6057:173:0;;;;;;;;;:::i;9620:24::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9620:24:0;;;:::i;5963:88::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5963:88:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5963:88:0;;;;:::i;18466:71::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18466:71:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18466:71:0;;:::i;16481:84::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16481:84:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16481:84:0;;;;:::i;10046:100::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10046:100:0;;;:::i;17881:304::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17881:304:0;;;:::i;6236:137::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6236:137:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6236:137:0;;;;;;;;;;;:::i;9937:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9937:29:0;;;:::i;17605:270::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17605:270:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17605:270:0;;;;:::i;17242:188::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17242:188:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17242:188:0;;;;:::i;5760:86::-;5831:12;;5760:86;:::o;7808:363::-;7892:21;;;7884:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7941:49;7970:1;7974:7;7983:6;7941:20;:49::i;:::-;8016:12;;:28;;8037:6;8016:28;:20;:28;:::i;:::-;8001:12;:43;8076:18;;;:9;:18;;;;;;;;;;;:34;;8103:6;8076:34;:26;:34;:::i;:::-;8055:18;;;:9;:18;;;;;;;;;;;:55;;;;8126:37;;;;;;;8055:18;;:9;;8126:37;;;;;;;;;;7808:363;;:::o;14851:544::-;14937:4;14928:6;:13;14920:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14974:15;14992:27;15003:7;15012:6;14992:10;:27::i;:::-;14974:45;-1:-1:-1;15033:11:0;;15030:63;;15057:18;;;;;;;;:9;:18;;;;;;15046:47;;15057:18;15077:7;15086:6;15046:10;:47::i;:::-;;15030:63;15126:14;;;15104:19;15126:14;;;:5;:14;;;;;;15188:4;15165:20;;;:27;:57;;15211:11;15165:57;;;15202:6;15195:4;:13;15165:57;15151:71;-1:-1:-1;15236:15:0;;15233:155;;15268:14;;;15285:1;15268:14;;;:5;:14;;;;;:18;15301:27;15274:7;15316:11;15301:5;:27::i;:::-;15348:28;;;;;;;;;;;;;;;;;;;;;;15233:155;14851:544;;;;:::o;5523:69::-;5584:5;5577:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5560:13;;5577:12;;5584:5;;5577:12;;5584:5;5577:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5523:69;:::o;6379:167::-;6462:4;6479:37;6488:10;6500:7;6509:6;6479:8;:37::i;:::-;-1:-1:-1;6534:4:0;6379:167;;;;:::o;9711:39::-;;;;;;:::o;16571:101::-;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;-1:-1:-1;16629:13:0::1;:40:::0;;;::::1;;::::0;::::1;;::::0;;10650:7;;10581:91;10561:3;;10521:162;;;-1:-1:-1;10693:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16571:101;;:::o;17060:176::-;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;17145:3:::1;17136:5;:12;;17128:39;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17178:8;:16:::0;;;17210:18:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;10650:7:::0;;;10581:91;10561:3;;10521:162;;18191:269;18246:5;;;;:13;18289:2;18278:13;;;18270:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18328:9;;;;;;;18320:41;18358:2;18348:7;:12;18320:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18376:7:0;18372:81;18393:1;18389;:5;;;18372:81;;;18411:8;18420:1;18411:11;;;;;;;;;;;;;;;;;;;18403:47;;18411:11;;;;;18447:2;18443:1;18433:11;;:16;18403:47;;;;;18433:16;;18403:47;18411:11;18403:47;18433:16;18411:11;18403:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18396:3:0;;18372:81;;;;18191:269;:::o;6552:333::-;6658:4;6675:36;6685:6;6693:9;6704:6;6675:9;:36::i;:::-;6722:45;6741:6;6749:9;6760:6;6722:18;:45::i;:::-;6807:19;;;;;;;:11;:19;;;;;;;;6795:10;6807:31;;;;;;;;;6778:77;;6787:6;;6807:47;;6847:6;6807:47;:39;:47;:::i;:::-;6778:8;:77::i;:::-;-1:-1:-1;6873:4:0;6552:333;;;;;:::o;5685:69::-;5742:9;;;;5685:69;:::o;16175:111::-;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;16230:5:::1;::::0;::::1;::::0;::::1;;;16227:51;;;16237:5;:13:::0;;;::::1;::::0;;16227:51:::1;;;16266:5;:12:::0;;;::::1;;;::::0;;16227:51:::1;10650:7:::0;;;10581:91;10561:3;;10521:162;;16175:111;:::o;6891:218::-;7005:10;6979:4;7026:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;6979:4;;6996:83;;7017:7;;7026:52;;7067:10;7026:52;:40;:52;:::i;16883:171::-;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;16968:5:::1;16958:7;;:15;16950:37;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16998:7;:15:::0;;;17029:17:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;10650:7:::0;;;10581:91;10561:3;;10521:162;;18728:205;18859:18;;;;18785:16;18859:18;;;:9;:18;;;;;;18785:16;;;;;;;;18859:18;18879;18869:7;18879:9;:18::i;:::-;18899:14;;;;;;;;;:5;:14;;;;;;;;;18915:5;:14;;;;;;;18851:79;;18899:14;;;;;-1:-1:-1;18915:14:0;;-1:-1:-1;18728:205:0;-1:-1:-1;;18728:205:0:o;9973:28::-;;;;:::o;18543:91::-;18603:13;;:28;;;;;;;;18585:7;;18603:13;;;:26;;:28;;;;;;;;;;;;;;:13;:28;;;2:2:-1;;;;27:1;24;17:12;2:2;18603:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18603:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18603:28:0;;-1:-1:-1;18543:91:0;:::o;17436:163::-;17527:11;;;;17513:10;:25;17505:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17567:24;17575:7;17584:6;17567:7;:24::i;5852:105::-;5936:18;;5918:7;5936:18;;;;;;;;;;;;5852:105::o;16678:199::-;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;16750:11:::1;::::0;:25:::1;:11;:25:::0;16742:55:::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;16808:11:0::1;:20:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;;16864:5:::1;::::0;16849:11;;::::1;16808;16839:22:::0;;;:9:::1;:22;::::0;;;;:30;;;;::::1;16864:5:::0;::::1;16839:30:::0;;;::::1;::::0;;10650:7;;10581:91;10561:3;;10521:162;;5602:73;5665:7;5658:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5641:13;;5658:14;;5665:7;;5658:14;;5665:7;5658:14;;;;;;;;;;;;;;;;;;;;;;;;16292:183;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;16365:7:::1;16361:107;16382:1;16378;:5;;;16361:107;;;16423:10;16408:25;;:8;16417:1;16408:11;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;;:25;16405:51;;;16449:7;16435:8;16444:1;16435:11;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16405:51;16385:3;;16361:107;;;;10650:7:::0;;;10581:91;10561:3;;10521:162;;7115:228;7234:10;7208:4;7255:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;7208:4;;7225:88;;7246:7;;7255:57;;7296:15;7255:57;:40;:57;:::i;18640:82::-;18681:7;18715:4;18699:13;:11;:13::i;:::-;:20;;;;;;18692:27;;18640:82;:::o;6057:173::-;6143:4;6160:40;6170:10;6182:9;6193:6;6160:9;:40::i;9620:24::-;;;;;;;;;:::o;5963:88::-;6035:13;;6017:7;6035:13;;;:4;:13;;;;;;;5963:88::o;18466:71::-;18509:25;18515:10;18527:6;18509:5;:25::i;16481:84::-;10525:9;10521:162;10544:8;:15;10540:19;;10521:162;;;10599:10;10584:25;;:8;10593:1;10584:11;;;;;;;;;;;;;;;;;;;;:25;10581:91;;;-1:-1:-1;16543:9:0::1;:19:::0;;;::::1;::::0;::::1;::::0;::::1;;;::::0;;10650:7;;10581:91;10561:3;;10521:162;;10046:100;;;;;;:::o;17881:304::-;17921:14;17938:30;17960:7;;17938:13;:11;:13::i;:::-;:21;:30;:21;:30;:::i;:::-;17921:47;-1:-1:-1;18006:3:0;17997:12;;18039:1;18028:12;;;18020:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18079:7;;:23;;18095:6;18079:23;:15;:23;:::i;:::-;18069:7;:33;18117:7;18113:65;18134:1;18130;:5;;;18113:65;;;18144:31;18150:8;18159:1;18150:11;;;;;;;;;;;;;;;;;;;;;;18173:1;18163:7;:11;18144:5;:31::i;:::-;18137:3;;18113:65;;;;17881:304;;:::o;6236:137::-;6343:18;;;;6325:7;6343:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6236:137::o;9937:29::-;;;;:::o;17605:270::-;17652:15;17670:3;:54;;17705:5;;17695:29;;17720:3;;17695:16;;17705:5;;17695:9;:16::i;:29::-;17670:54;;;17686:5;;17676:16;;17686:5;;17676:9;:16::i;:::-;17652:72;;17754:1;17743:7;:12;;17735:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17788:7;17784:76;17805:1;17801;:5;;;17784:76;;;17825:5;;17832:8;:11;;17815:42;;17825:5;;;17832:8;:11;;;;;;;;;;;;;;;;;;;;;;17855:1;17845:7;:11;17815:9;:42::i;:::-;17808:3;;17784:76;;17242:188;17305:14;;;17322:1;17305:14;;;:5;:14;;;;;;;;:18;;;;:61;;;17365:1;17344:18;17354:7;17344:9;:18::i;:::-;17327:14;;;;;;;:5;:14;;;;;;:35;:39;17305:61;17297:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17391:31;17399:7;17408:13;:11;:13::i;:::-;17391:7;:31::i;11528:1089::-;11632:18;;;;11629:268;;11676:11;;;11670:17;;;11676:11;;11670:17;11667:138;;;11726:7;;11716:6;:17;;11708:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11770:19;11776:4;11782:6;11770:5;:19::i;:::-;11822:27;:13;;;11847:1;11822:13;;;:9;:13;;;;;;;:27;:41;;;;;11862:1;11853:6;:10;11822:41;11819:66;;;11865:13;;;;;;;;:9;:13;;;;;:20;;;;;;;;;;;;;11819:66;11907:15;11925:13;:11;:13::i;:::-;11907:31;;11960:2;11952:10;;:4;:10;;;11949:661;;;11979:22;11987:4;11993:7;11979;:22::i;:::-;11949:661;;;12047:4;12037:7;:14;12034:565;;;12075:18;;;;12072:193;;12118:15;12136:25;12147:4;12153:7;12136:10;:25::i;:::-;12118:43;-1:-1:-1;12187:11:0;;12184:61;;12211:15;;;;;;;;:9;:15;;;;;;12200:45;;12211:15;12228:7;12237;12200:10;:45::i;:::-;;12184:61;12072:193;;12286:16;;;;12283:301;;12330:9;;;12342:1;12330:9;;;:5;:9;;;;;;;;:13;12327:237;;12372:15;12390:23;12401:2;12405:7;12390:10;:23::i;:::-;12372:41;-1:-1:-1;12443:11:0;;12440:59;;12467:13;;;;;;;;:9;:13;;;;;;12456:43;;12467:13;12482:7;12491;12456:10;:43::i;:::-;;12440:59;12327:237;;;;-1:-1:-1;;12529:9:0;;;;;;:5;:9;;;;;:35;;;;12548:15;12529:35;;;;;-1:-1:-1;11528:1089:0:o;4807:153::-;4869:7;4906:1;4901;4897;:5;:10;;4889:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4947:5:0;;4807:153::o;12783:1365::-;12852:14;12879:16;12898:18;12908:7;12898:9;:18::i;:::-;12961:14;;;12927:13;12961:14;;;:5;:14;;;;;;12927:13;;-1:-1:-1;12879:37:0;;-1:-1:-1;12961:14:0;;12943:15;:32;12927:13;13037:9;;13034:1099;;13077:3;13066:8;:14;13063:1059;;;13115:11;;;13104:22;;;13115:11;;13104:22;13101:585;;;-1:-1:-1;13139:2:0;13101:585;;;13179:3;13168:8;:14;13165:521;;;-1:-1:-1;13195:2:0;13165:521;;;13235:3;13224:8;:14;13221:465;;;-1:-1:-1;13251:2:0;13221:465;;;13291:3;13280:8;:14;13277:409;;;-1:-1:-1;13307:2:0;13277:409;;;13347:3;13336:8;:14;13333:353;;;-1:-1:-1;13363:2:0;13333:353;;;13403:4;13392:8;:15;13389:297;;;-1:-1:-1;13420:2:0;13389:297;;;13460:4;13449:8;:15;13446:240;;;-1:-1:-1;13477:2:0;13446:240;;;13517:4;13506:8;:15;13503:183;;;-1:-1:-1;13534:2:0;13503:183;;;13574:4;13563:8;:15;13560:126;;;-1:-1:-1;13591:2:0;13560:126;;;13631:4;13620:8;:15;13617:69;;;-1:-1:-1;13648:2:0;13617:69;;;-1:-1:-1;13685:1:0;13617:69;13708:12;;13705:402;;13790:3;13784;13754:16;;;:27;;:33;:39;;-1:-1:-1;13848:4:0;13830:15;;;:22;13884:19;13754:39;13830:22;13884:14;:19::i;:::-;13943:14;;;;;;;:5;:14;;;;;;13875:28;;-1:-1:-1;13943:30:0;;13875:28;13943:30;:22;:30;:::i;:::-;13926:14;;;;;;;:5;:14;;;;;;;;:47;;;;13996:5;:14;;;;;;:40;;;;14020:15;13996:40;;;;;14064:23;;;;;;;13926:14;;14064:23;;;;;;;;;;;13705:402;;12783:1365;;;;;;;:::o;14154:691::-;14240:14;14267:16;14286:19;14296:8;14286:9;:19::i;:::-;14267:38;;14316:16;14358:3;14346:8;:15;;:34;;;;;14376:4;14365:8;:15;14346:34;14343:495;;;14412:3;14401:8;:14;14397:178;;;-1:-1:-1;14428:3:0;14397:178;;;14465:4;14454:8;:15;14451:124;;;-1:-1:-1;14482:3:0;14451:124;;;14519:4;14508:8;:15;14505:70;;;-1:-1:-1;14536:4:0;14505:70;;;-1:-1:-1;14571:4:0;14505:70;14619:5;14599:17;;;:25;;-1:-1:-1;14671:4:0;14653:15;;;:22;14699:19;14599:25;14653:22;14699:14;:19::i;:::-;14751:15;;;;;;;:5;:15;;;;;;14690:28;;-1:-1:-1;14751:31:0;;14690:28;14751:31;:23;:31;:::i;:::-;14733:15;;;;;;;:5;:15;;;;;;;;;:49;;;;14802:24;;;;;;;14733:15;;14802:24;;;;;;;;;14343:495;;14154:691;;;;;;;:::o;8546:296::-;8648:19;;;8640:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8701:21;;;8693:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8750:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8802:32;;;;;;;;;;;;;;;;;8546:296;;;:::o;7349:453::-;7455:20;;;7447:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7511:23;;;7503:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:47;7583:6;7591:9;7602:6;7562:20;:47::i;:::-;7640:17;;;:9;:17;;;;;;;;;;;:33;;7666:6;7640:33;:25;:33;:::i;:::-;7620:17;;;;:9;:17;;;;;;;;;;;:53;;;;7707:20;;;;;;;:36;;7736:6;7707:36;:28;:36;:::i;:::-;7684:20;;;;:9;:20;;;;;;;;;;;;:59;;;;7759:35;;;;;;;7684:20;;7759:35;;;;;;;;;;;;;7349:453;;;:::o;12623:154::-;12738:11;;;12725:24;;;12738:11;;12725:24;12722:52;;;12751:23;12759:6;12767;12751:7;:23::i;4966:153::-;5028:7;5061:1;5056;:6;;5048:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5106:5:0;;;4966:153::o;9066:170::-;9160:13;;;;;;;:4;:13;;;;;;:29;;9182:6;9160:29;:21;:29;:::i;:::-;9144:13;;;;;;;:4;:13;;;;;;;;;:45;;;;9205:23;;;;;;;9144:13;;9205:23;;;;;;;;;9066:170;;:::o;8177:363::-;8261:21;;;8253:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:49;8331:7;8348:1;8352:6;8310:20;:49::i;:::-;8391:18;;;:9;:18;;;;;;;;;;;:34;;8418:6;8391:34;:26;:34;:::i;:::-;8370:18;;;:9;:18;;;;;;;;;;:55;8451:12;;:28;;8472:6;8451:28;:20;:28;:::i;:::-;8436:12;:43;8495:37;;;;;;;;8521:1;;8495:37;;;;;;;;;;;;;8177:363;;:::o;8848:212::-;8942:1;8933:6;:10;8924:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8986:13;;;;;;;:4;:13;;;;;;:29;;9008:6;8986:29;:21;:29;:::i;:::-;8970:13;;;;;;;:4;:13;;;;;;;;;:45;;;;9031:21;;;;;;;8970:13;;9031:21;;;;;;;;;8848:212;;:::o

Swarm Source

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