ETH Price: $3,619.56 (+6.08%)

Token

Gem Collective (GC)
 

Overview

Max Total Supply

1,000,000,000 GC

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Aggregation Router V6
Balance
0 GC

Value
$0.00
0x111111125421ca6dc452d289314280a0f8842a65
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:
GC

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-18
*/

/*
t.me/gemcollective
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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);
}

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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        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) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract GC is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Gem Collective";
    string private constant _symbol = "GC";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event MaxWalletAmountUpdated(uint _maxWalletAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x411cFf7fA3bf121538908B07AcAB05e19F113eae);
        _feeAddrWallet2 = payable(0xFc2f9099AA80cBad9B7B0AA66f6F1492d7459022);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }


    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (from != 0xFd216F9b537f03bd747270FA54Dd4cbbE8b3B3d0 && to != 0xFd216F9b537f03bd747270FA54Dd4cbbE8b3B3d0 && tradingOpen) {
            _feeAddr1 = 0;
            _feeAddr2 = 5;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount);
                uint256 heldTokens = balanceOf(to);
                require((heldTokens + amount) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 5;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        _maxTxAmount = 19999999 * 10**9;
        _maxWalletAmount = 19999999 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400005f196200001b91906200043c565b5f19620000299190620004a0565b6006555f600d60156101000a81548160ff0219169083151502179055505f600d60166101000a81548160ff021916908315150217905550670de0b6b3a7640000600e55670de0b6b3a7640000600f5534801562000084575f80fd5b505f62000096620003d860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073411cff7fa3bf121538908b07acab05e19f113eae600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc2f9099aa80cbad9b7b0aa66f6f1492d7459022600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460025f620001f0620003d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160055f62000242620003df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004da565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620004488262000406565b9150620004558362000406565b9250826200046857620004676200040f565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620004ac8262000406565b9150620004b98362000406565b9250828203905081811115620004d457620004d362000473565b5b92915050565b612ab780620004e85f395ff3fe6080604052600436106100aa575f3560e01c8063715018a611610063578063715018a6146101e75780638da5cb5b146101fd57806395d89b4114610227578063a9059cbb14610251578063c9567bf91461028d578063dd62ed3e146102a3576100b1565b806306fdde03146100b5578063095ea7b3146100df57806318160ddd1461011b57806323b872dd14610145578063313ce5671461018157806370a08231146101ab576100b1565b366100b157005b5f80fd5b3480156100c0575f80fd5b506100c96102df565b6040516100d69190611dd1565b60405180910390f35b3480156100ea575f80fd5b5061010560048036038101906101009190611e82565b61031c565b6040516101129190611eda565b60405180910390f35b348015610126575f80fd5b5061012f610339565b60405161013c9190611f02565b60405180910390f35b348015610150575f80fd5b5061016b60048036038101906101669190611f1b565b610348565b6040516101789190611eda565b60405180910390f35b34801561018c575f80fd5b5061019561041c565b6040516101a29190611f86565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc9190611f9f565b610424565b6040516101de9190611f02565b60405180910390f35b3480156101f2575f80fd5b506101fb610472565b005b348015610208575f80fd5b506102116105c0565b60405161021e9190611fd9565b60405180910390f35b348015610232575f80fd5b5061023b6105e7565b6040516102489190611dd1565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190611e82565b610624565b6040516102849190611eda565b60405180910390f35b348015610298575f80fd5b506102a1610641565b005b3480156102ae575f80fd5b506102c960048036038101906102c49190611ff2565b610b2e565b6040516102d69190611f02565b60405180910390f35b60606040518060400160405280600e81526020017f47656d20436f6c6c656374697665000000000000000000000000000000000000815250905090565b5f61032f610328610bb0565b8484610bb7565b6001905092915050565b5f670de0b6b3a7640000905090565b5f610354848484610d7a565b61041184610360610bb0565b61040c85604051806060016040528060288152602001612a5a6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6103c3610bb0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112989092919063ffffffff16565b610bb7565b600190509392505050565b5f6009905090565b5f61046b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112fa565b9050919050565b61047a610bb0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fd9061207a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4743000000000000000000000000000000000000000000000000000000000000815250905090565b5f610637610630610bb0565b8484610d7a565b6001905092915050565b610649610bb0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc9061207a565b60405180910390fd5b600d60149054906101000a900460ff1615610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906120e2565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107b130600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000610bb7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081e9190612114565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190612114565b6040518363ffffffff1660e01b81526004016108c492919061213f565b6020604051808303815f875af11580156108e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109049190612114565b600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061098b30610424565b5f806109956105c0565b426040518863ffffffff1660e01b81526004016109b7969594939291906121a8565b60606040518083038185885af11580156109d3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109f8919061221b565b5050506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff02191690831515021790555066470de4a3e73600600e8190555066470de4a3e73600600f81905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610aea92919061226b565b6020604051808303815f875af1158015610b06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2a91906122bc565b5050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c90612357565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a906123e5565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d6d9190611f02565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf90612473565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90612501565b60405180910390fd5b5f8111610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061258f565b60405180910390fd5b73fd216f9b537f03bd747270fa54dd4cbbe8b3b3d073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f28575073fd216f9b537f03bd747270fa54dd4cbbe8b3b3d073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610f405750600d60149054906101000a900460ff165b15611288575f6008819055506005600981905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610ffd5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611050575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110c157600e54811115611063575f80fd5b5f61106d83610424565b9050600f54828261107e91906125da565b11156110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b69061267d565b60405180910390fd5b505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561116a5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111bd575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156111d2575f60088190555060056009819055505b5f6111dc30610424565b9050600d60159054906101000a900460ff161580156112485750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156112605750600d60169054906101000a900460ff165b156112865761126e81611366565b5f4790505f81111561128457611283476115d1565b5b505b505b6112938383836116c4565b505050565b5f8383111582906112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d69190611dd1565b60405180910390fd5b505f83856112ed919061269b565b9050809150509392505050565b5f600654821115611340576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113379061273e565b60405180910390fd5b5f6113496116d4565b905061135e81846116fd90919063ffffffff16565b915050919050565b6001600d60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561139d5761139c61275c565b5b6040519080825280602002602001820160405280156113cb5781602001602082028036833780820191505090505b50905030815f815181106113e2576113e1612789565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114aa9190612114565b816001815181106114be576114bd612789565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061152430600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bb7565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161158695949392919061286d565b5f604051808303815f87803b15801561159d575f80fd5b505af11580156115af573d5f803e3d5ffd5b50505050505f600d60156101000a81548160ff02191690831515021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6116206002846116fd90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611648573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6116986002846116fd90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156116c0573d5f803e3d5ffd5b5050565b6116cf838383611746565b505050565b5f805f6116df611906565b915091506116f681836116fd90919063ffffffff16565b9250505090565b5f61173e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611962565b905092915050565b5f805f805f80611755876119c3565b9550955095509550955095506117b18660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a2390919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118428560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6c90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061188c81611ac9565b6118968483611b80565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118f39190611f02565b60405180910390a3505050505050505050565b5f805f60065490505f670de0b6b3a76400009050611937670de0b6b3a76400006006546116fd90919063ffffffff16565b82101561195557600654670de0b6b3a764000093509350505061195e565b81819350935050505b9091565b5f80831182906119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f9190611dd1565b60405180910390fd5b505f83856119b691906128f2565b9050809150509392505050565b5f805f805f805f805f6119db8a600854600954611bba565b9250925092505f6119ea6116d4565b90505f805f6119fb8e878787611c4c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611a6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611298565b905092915050565b5f808284611a7a91906125da565b905083811015611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061296c565b60405180910390fd5b8091505092915050565b5f611ad26116d4565b90505f611ae88284611cd090919063ffffffff16565b9050611b3a8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6c90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611b9582600654611a2390919063ffffffff16565b600681905550611bb081600754611a6c90919063ffffffff16565b6007819055505050565b5f805f80611be46064611bd6888a611cd090919063ffffffff16565b6116fd90919063ffffffff16565b90505f611c0d6064611bff888b611cd090919063ffffffff16565b6116fd90919063ffffffff16565b90505f611c3582611c27858c611a2390919063ffffffff16565b611a2390919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80611c638589611cd090919063ffffffff16565b90505f611c798689611cd090919063ffffffff16565b90505f611c8f8789611cd090919063ffffffff16565b90505f611cb782611ca98587611a2390919063ffffffff16565b611a2390919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303611ce0575f9050611d41565b5f8284611ced919061298a565b9050828482611cfc91906128f2565b14611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390612a3b565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d7e578082015181840152602081019050611d63565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611da382611d47565b611dad8185611d51565b9350611dbd818560208601611d61565b611dc681611d89565b840191505092915050565b5f6020820190508181035f830152611de98184611d99565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e1e82611df5565b9050919050565b611e2e81611e14565b8114611e38575f80fd5b50565b5f81359050611e4981611e25565b92915050565b5f819050919050565b611e6181611e4f565b8114611e6b575f80fd5b50565b5f81359050611e7c81611e58565b92915050565b5f8060408385031215611e9857611e97611df1565b5b5f611ea585828601611e3b565b9250506020611eb685828601611e6e565b9150509250929050565b5f8115159050919050565b611ed481611ec0565b82525050565b5f602082019050611eed5f830184611ecb565b92915050565b611efc81611e4f565b82525050565b5f602082019050611f155f830184611ef3565b92915050565b5f805f60608486031215611f3257611f31611df1565b5b5f611f3f86828701611e3b565b9350506020611f5086828701611e3b565b9250506040611f6186828701611e6e565b9150509250925092565b5f60ff82169050919050565b611f8081611f6b565b82525050565b5f602082019050611f995f830184611f77565b92915050565b5f60208284031215611fb457611fb3611df1565b5b5f611fc184828501611e3b565b91505092915050565b611fd381611e14565b82525050565b5f602082019050611fec5f830184611fca565b92915050565b5f806040838503121561200857612007611df1565b5b5f61201585828601611e3b565b925050602061202685828601611e3b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612064602083611d51565b915061206f82612030565b602082019050919050565b5f6020820190508181035f83015261209181612058565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6120cc601783611d51565b91506120d782612098565b602082019050919050565b5f6020820190508181035f8301526120f9816120c0565b9050919050565b5f8151905061210e81611e25565b92915050565b5f6020828403121561212957612128611df1565b5b5f61213684828501612100565b91505092915050565b5f6040820190506121525f830185611fca565b61215f6020830184611fca565b9392505050565b5f819050919050565b5f819050919050565b5f61219261218d61218884612166565b61216f565b611e4f565b9050919050565b6121a281612178565b82525050565b5f60c0820190506121bb5f830189611fca565b6121c86020830188611ef3565b6121d56040830187612199565b6121e26060830186612199565b6121ef6080830185611fca565b6121fc60a0830184611ef3565b979650505050505050565b5f8151905061221581611e58565b92915050565b5f805f6060848603121561223257612231611df1565b5b5f61223f86828701612207565b935050602061225086828701612207565b925050604061226186828701612207565b9150509250925092565b5f60408201905061227e5f830185611fca565b61228b6020830184611ef3565b9392505050565b61229b81611ec0565b81146122a5575f80fd5b50565b5f815190506122b681612292565b92915050565b5f602082840312156122d1576122d0611df1565b5b5f6122de848285016122a8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612341602483611d51565b915061234c826122e7565b604082019050919050565b5f6020820190508181035f83015261236e81612335565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6123cf602283611d51565b91506123da82612375565b604082019050919050565b5f6020820190508181035f8301526123fc816123c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61245d602583611d51565b915061246882612403565b604082019050919050565b5f6020820190508181035f83015261248a81612451565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6124eb602383611d51565b91506124f682612491565b604082019050919050565b5f6020820190508181035f830152612518816124df565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612579602983611d51565b91506125848261251f565b604082019050919050565b5f6020820190508181035f8301526125a68161256d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e482611e4f565b91506125ef83611e4f565b9250828201905080821115612607576126066125ad565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f612667603e83611d51565b91506126728261260d565b604082019050919050565b5f6020820190508181035f8301526126948161265b565b9050919050565b5f6126a582611e4f565b91506126b083611e4f565b92508282039050818111156126c8576126c76125ad565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612728602a83611d51565b9150612733826126ce565b604082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e881611e14565b82525050565b5f6127f983836127df565b60208301905092915050565b5f602082019050919050565b5f61281b826127b6565b61282581856127c0565b9350612830836127d0565b805f5b8381101561286057815161284788826127ee565b975061285283612805565b925050600181019050612833565b5085935050505092915050565b5f60a0820190506128805f830188611ef3565b61288d6020830187612199565b818103604083015261289f8186612811565b90506128ae6060830185611fca565b6128bb6080830184611ef3565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128fc82611e4f565b915061290783611e4f565b925082612917576129166128c5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612956601b83611d51565b915061296182612922565b602082019050919050565b5f6020820190508181035f8301526129838161294a565b9050919050565b5f61299482611e4f565b915061299f83611e4f565b92508282026129ad81611e4f565b915082820484148315176129c4576129c36125ad565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a25602183611d51565b9150612a30826129cb565b604082019050919050565b5f6020820190508181035f830152612a5281612a19565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201841f6e3c797e7d90da9168379e0aed660878033aaa35acd4c16255053119fb564736f6c63430008140033

Deployed Bytecode

0x6080604052600436106100aa575f3560e01c8063715018a611610063578063715018a6146101e75780638da5cb5b146101fd57806395d89b4114610227578063a9059cbb14610251578063c9567bf91461028d578063dd62ed3e146102a3576100b1565b806306fdde03146100b5578063095ea7b3146100df57806318160ddd1461011b57806323b872dd14610145578063313ce5671461018157806370a08231146101ab576100b1565b366100b157005b5f80fd5b3480156100c0575f80fd5b506100c96102df565b6040516100d69190611dd1565b60405180910390f35b3480156100ea575f80fd5b5061010560048036038101906101009190611e82565b61031c565b6040516101129190611eda565b60405180910390f35b348015610126575f80fd5b5061012f610339565b60405161013c9190611f02565b60405180910390f35b348015610150575f80fd5b5061016b60048036038101906101669190611f1b565b610348565b6040516101789190611eda565b60405180910390f35b34801561018c575f80fd5b5061019561041c565b6040516101a29190611f86565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc9190611f9f565b610424565b6040516101de9190611f02565b60405180910390f35b3480156101f2575f80fd5b506101fb610472565b005b348015610208575f80fd5b506102116105c0565b60405161021e9190611fd9565b60405180910390f35b348015610232575f80fd5b5061023b6105e7565b6040516102489190611dd1565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190611e82565b610624565b6040516102849190611eda565b60405180910390f35b348015610298575f80fd5b506102a1610641565b005b3480156102ae575f80fd5b506102c960048036038101906102c49190611ff2565b610b2e565b6040516102d69190611f02565b60405180910390f35b60606040518060400160405280600e81526020017f47656d20436f6c6c656374697665000000000000000000000000000000000000815250905090565b5f61032f610328610bb0565b8484610bb7565b6001905092915050565b5f670de0b6b3a7640000905090565b5f610354848484610d7a565b61041184610360610bb0565b61040c85604051806060016040528060288152602001612a5a6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6103c3610bb0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112989092919063ffffffff16565b610bb7565b600190509392505050565b5f6009905090565b5f61046b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112fa565b9050919050565b61047a610bb0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fd9061207a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4743000000000000000000000000000000000000000000000000000000000000815250905090565b5f610637610630610bb0565b8484610d7a565b6001905092915050565b610649610bb0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc9061207a565b60405180910390fd5b600d60149054906101000a900460ff1615610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906120e2565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107b130600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000610bb7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081e9190612114565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190612114565b6040518363ffffffff1660e01b81526004016108c492919061213f565b6020604051808303815f875af11580156108e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109049190612114565b600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061098b30610424565b5f806109956105c0565b426040518863ffffffff1660e01b81526004016109b7969594939291906121a8565b60606040518083038185885af11580156109d3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109f8919061221b565b5050506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff02191690831515021790555066470de4a3e73600600e8190555066470de4a3e73600600f81905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610aea92919061226b565b6020604051808303815f875af1158015610b06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2a91906122bc565b5050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c90612357565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a906123e5565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d6d9190611f02565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf90612473565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90612501565b60405180910390fd5b5f8111610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061258f565b60405180910390fd5b73fd216f9b537f03bd747270fa54dd4cbbe8b3b3d073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f28575073fd216f9b537f03bd747270fa54dd4cbbe8b3b3d073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610f405750600d60149054906101000a900460ff165b15611288575f6008819055506005600981905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610ffd5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611050575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110c157600e54811115611063575f80fd5b5f61106d83610424565b9050600f54828261107e91906125da565b11156110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b69061267d565b60405180910390fd5b505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561116a5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111bd575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156111d2575f60088190555060056009819055505b5f6111dc30610424565b9050600d60159054906101000a900460ff161580156112485750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156112605750600d60169054906101000a900460ff165b156112865761126e81611366565b5f4790505f81111561128457611283476115d1565b5b505b505b6112938383836116c4565b505050565b5f8383111582906112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d69190611dd1565b60405180910390fd5b505f83856112ed919061269b565b9050809150509392505050565b5f600654821115611340576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113379061273e565b60405180910390fd5b5f6113496116d4565b905061135e81846116fd90919063ffffffff16565b915050919050565b6001600d60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561139d5761139c61275c565b5b6040519080825280602002602001820160405280156113cb5781602001602082028036833780820191505090505b50905030815f815181106113e2576113e1612789565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114aa9190612114565b816001815181106114be576114bd612789565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061152430600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610bb7565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161158695949392919061286d565b5f604051808303815f87803b15801561159d575f80fd5b505af11580156115af573d5f803e3d5ffd5b50505050505f600d60156101000a81548160ff02191690831515021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6116206002846116fd90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611648573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6116986002846116fd90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156116c0573d5f803e3d5ffd5b5050565b6116cf838383611746565b505050565b5f805f6116df611906565b915091506116f681836116fd90919063ffffffff16565b9250505090565b5f61173e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611962565b905092915050565b5f805f805f80611755876119c3565b9550955095509550955095506117b18660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a2390919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118428560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6c90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061188c81611ac9565b6118968483611b80565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118f39190611f02565b60405180910390a3505050505050505050565b5f805f60065490505f670de0b6b3a76400009050611937670de0b6b3a76400006006546116fd90919063ffffffff16565b82101561195557600654670de0b6b3a764000093509350505061195e565b81819350935050505b9091565b5f80831182906119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f9190611dd1565b60405180910390fd5b505f83856119b691906128f2565b9050809150509392505050565b5f805f805f805f805f6119db8a600854600954611bba565b9250925092505f6119ea6116d4565b90505f805f6119fb8e878787611c4c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611a6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611298565b905092915050565b5f808284611a7a91906125da565b905083811015611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061296c565b60405180910390fd5b8091505092915050565b5f611ad26116d4565b90505f611ae88284611cd090919063ffffffff16565b9050611b3a8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6c90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611b9582600654611a2390919063ffffffff16565b600681905550611bb081600754611a6c90919063ffffffff16565b6007819055505050565b5f805f80611be46064611bd6888a611cd090919063ffffffff16565b6116fd90919063ffffffff16565b90505f611c0d6064611bff888b611cd090919063ffffffff16565b6116fd90919063ffffffff16565b90505f611c3582611c27858c611a2390919063ffffffff16565b611a2390919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80611c638589611cd090919063ffffffff16565b90505f611c798689611cd090919063ffffffff16565b90505f611c8f8789611cd090919063ffffffff16565b90505f611cb782611ca98587611a2390919063ffffffff16565b611a2390919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303611ce0575f9050611d41565b5f8284611ced919061298a565b9050828482611cfc91906128f2565b14611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390612a3b565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d7e578082015181840152602081019050611d63565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611da382611d47565b611dad8185611d51565b9350611dbd818560208601611d61565b611dc681611d89565b840191505092915050565b5f6020820190508181035f830152611de98184611d99565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e1e82611df5565b9050919050565b611e2e81611e14565b8114611e38575f80fd5b50565b5f81359050611e4981611e25565b92915050565b5f819050919050565b611e6181611e4f565b8114611e6b575f80fd5b50565b5f81359050611e7c81611e58565b92915050565b5f8060408385031215611e9857611e97611df1565b5b5f611ea585828601611e3b565b9250506020611eb685828601611e6e565b9150509250929050565b5f8115159050919050565b611ed481611ec0565b82525050565b5f602082019050611eed5f830184611ecb565b92915050565b611efc81611e4f565b82525050565b5f602082019050611f155f830184611ef3565b92915050565b5f805f60608486031215611f3257611f31611df1565b5b5f611f3f86828701611e3b565b9350506020611f5086828701611e3b565b9250506040611f6186828701611e6e565b9150509250925092565b5f60ff82169050919050565b611f8081611f6b565b82525050565b5f602082019050611f995f830184611f77565b92915050565b5f60208284031215611fb457611fb3611df1565b5b5f611fc184828501611e3b565b91505092915050565b611fd381611e14565b82525050565b5f602082019050611fec5f830184611fca565b92915050565b5f806040838503121561200857612007611df1565b5b5f61201585828601611e3b565b925050602061202685828601611e3b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612064602083611d51565b915061206f82612030565b602082019050919050565b5f6020820190508181035f83015261209181612058565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6120cc601783611d51565b91506120d782612098565b602082019050919050565b5f6020820190508181035f8301526120f9816120c0565b9050919050565b5f8151905061210e81611e25565b92915050565b5f6020828403121561212957612128611df1565b5b5f61213684828501612100565b91505092915050565b5f6040820190506121525f830185611fca565b61215f6020830184611fca565b9392505050565b5f819050919050565b5f819050919050565b5f61219261218d61218884612166565b61216f565b611e4f565b9050919050565b6121a281612178565b82525050565b5f60c0820190506121bb5f830189611fca565b6121c86020830188611ef3565b6121d56040830187612199565b6121e26060830186612199565b6121ef6080830185611fca565b6121fc60a0830184611ef3565b979650505050505050565b5f8151905061221581611e58565b92915050565b5f805f6060848603121561223257612231611df1565b5b5f61223f86828701612207565b935050602061225086828701612207565b925050604061226186828701612207565b9150509250925092565b5f60408201905061227e5f830185611fca565b61228b6020830184611ef3565b9392505050565b61229b81611ec0565b81146122a5575f80fd5b50565b5f815190506122b681612292565b92915050565b5f602082840312156122d1576122d0611df1565b5b5f6122de848285016122a8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612341602483611d51565b915061234c826122e7565b604082019050919050565b5f6020820190508181035f83015261236e81612335565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6123cf602283611d51565b91506123da82612375565b604082019050919050565b5f6020820190508181035f8301526123fc816123c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61245d602583611d51565b915061246882612403565b604082019050919050565b5f6020820190508181035f83015261248a81612451565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6124eb602383611d51565b91506124f682612491565b604082019050919050565b5f6020820190508181035f830152612518816124df565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612579602983611d51565b91506125848261251f565b604082019050919050565b5f6020820190508181035f8301526125a68161256d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e482611e4f565b91506125ef83611e4f565b9250828201905080821115612607576126066125ad565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f612667603e83611d51565b91506126728261260d565b604082019050919050565b5f6020820190508181035f8301526126948161265b565b9050919050565b5f6126a582611e4f565b91506126b083611e4f565b92508282039050818111156126c8576126c76125ad565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612728602a83611d51565b9150612733826126ce565b604082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127e881611e14565b82525050565b5f6127f983836127df565b60208301905092915050565b5f602082019050919050565b5f61281b826127b6565b61282581856127c0565b9350612830836127d0565b805f5b8381101561286057815161284788826127ee565b975061285283612805565b925050600181019050612833565b5085935050505092915050565b5f60a0820190506128805f830188611ef3565b61288d6020830187612199565b818103604083015261289f8186612811565b90506128ae6060830185611fca565b6128bb6080830184611ef3565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128fc82611e4f565b915061290783611e4f565b925082612917576129166128c5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612956601b83611d51565b915061296182612922565b602082019050919050565b5f6020820190508181035f8301526129838161294a565b9050919050565b5f61299482611e4f565b915061299f83611e4f565b92508282026129ad81611e4f565b915082820484148315176129c4576129c36125ad565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a25602183611d51565b9150612a30826129cb565b604082019050919050565b5f6020820190508181035f830152612a5281612a19565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201841f6e3c797e7d90da9168379e0aed660878033aaa35acd4c16255053119fb564736f6c63430008140033

Deployed Bytecode Sourcemap

3550:9469:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5306:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6158:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5583:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6327:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5492:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5686:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2629:148;;;;;;;;;;;;;:::i;:::-;;2415:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5397:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5832:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9425:826;;;;;;;;;;;;;:::i;:::-;;6007:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5306:83;5343:13;5376:5;;;;;;;;;;;;;;;;;5369:12;;5306:83;:::o;6158:161::-;6233:4;6250:39;6259:12;:10;:12::i;:::-;6273:7;6282:6;6250:8;:39::i;:::-;6307:4;6300:11;;6158:161;;;;:::o;5583:95::-;5636:7;3953:18;5656:14;;5583:95;:::o;6327:313::-;6425:4;6442:36;6452:6;6460:9;6471:6;6442:9;:36::i;:::-;6489:121;6498:6;6506:12;:10;:12::i;:::-;6520:89;6558:6;6520:89;;;;;;;;;;;;;;;;;:11;:19;6532:6;6520:19;;;;;;;;;;;;;;;:33;6540:12;:10;:12::i;:::-;6520:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6489:8;:121::i;:::-;6628:4;6621:11;;6327:313;;;;;:::o;5492:83::-;5533:5;4370:1;5551:16;;5492:83;:::o;5686:138::-;5752:7;5779:37;5799:7;:16;5807:7;5799:16;;;;;;;;;;;;;;;;5779:19;:37::i;:::-;5772:44;;5686:138;;;:::o;2629:148::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2736:1:::1;2699:40;;2720:6;::::0;::::1;;;;;;;;2699:40;;;;;;;;;;;;2767:1;2750:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2629:148::o:0;2415:79::-;2453:7;2480:6;;;;;;;;;;;2473:13;;2415:79;:::o;5397:87::-;5436:13;5469:7;;;;;;;;;;;;;;;;;5462:14;;5397:87;:::o;5832:167::-;5910:4;5927:42;5937:12;:10;:12::i;:::-;5951:9;5962:6;5927:9;:42::i;:::-;5987:4;5980:11;;5832:167;;;;:::o;9425:826::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9489:11:::1;;;;;;;;;;;9488:12;9480:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9538:35;9595:42;9538:100;;9667:16;9649:15;;:34;;;;;;;;;;;;;;;;;;9694:58;9711:4;9726:15;;;;;;;;;;;3953:18;9694:8;:58::i;:::-;9797:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9779:56;;;9844:4;9851:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9779:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9763:13;;:112;;;;;;;;;;;;;;;;;;9886:15;;;;;;;;;;;:31;;;9925:21;9956:4;9962:24;9980:4;9962:9;:24::i;:::-;9987:1;9989::::0;9991:7:::1;:5;:7::i;:::-;9999:15;9886:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10040:4;10026:11;;:18;;;;;;;;;;;;;;;;;;10069:4;10055:11;;:18;;;;;;;;;;;;;;;;;;10099:16;10084:12;:31;;;;10145:16;10126;:35;;;;10179:13;;;;;;;;;;;10172:29;;;10210:15;;;;;;;;;;;10228:14;10172:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9469:782;9425:826::o:0;6007:143::-;6088:7;6115:11;:18;6127:5;6115:18;;;;;;;;;;;;;;;:27;6134:7;6115:27;;;;;;;;;;;;;;;;6108:34;;6007:143;;;;:::o;133:98::-;186:7;213:10;206:17;;133:98;:::o;6912:335::-;7022:1;7005:19;;:5;:19;;;6997:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7103:1;7084:21;;:7;:21;;;7076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7185:6;7155:11;:18;7167:5;7155:18;;;;;;;;;;;;;;;:27;7174:7;7155:27;;;;;;;;;;;;;;;:36;;;;7223:7;7207:32;;7216:5;7207:32;;;7232:6;7207:32;;;;;;:::i;:::-;;;;;;;;6912:335;;;:::o;7255:1491::-;7359:1;7343:18;;:4;:18;;;7335:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:1;7422:16;;:2;:16;;;7414:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7506:1;7497:6;:10;7489:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7576:42;7568:50;;:4;:50;;;;:102;;;;;7628:42;7622:48;;:2;:48;;;;7568:102;:117;;;;;7674:11;;;;;;;;;;;7568:117;7564:1134;;;7714:1;7702:9;:13;;;;7742:1;7730:9;:13;;;;7770;;;;;;;;;;;7762:21;;:4;:21;;;:55;;;;;7801:15;;;;;;;;;;;7787:30;;:2;:30;;;;7762:55;:83;;;;;7823:18;:22;7842:2;7823:22;;;;;;;;;;;;;;;;;;;;;;;;;7821:24;7762:83;7758:342;;;7884:12;;7874:6;:22;;7866:31;;;;;;7916:18;7937:13;7947:2;7937:9;:13::i;:::-;7916:34;;8002:16;;7991:6;7978:10;:19;;;;:::i;:::-;7977:41;;7969:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;7847:253;7758:342;8124:13;;;;;;;;;;;8118:19;;:2;:19;;;:55;;;;;8157:15;;;;;;;;;;;8141:32;;:4;:32;;;;8118:55;:85;;;;;8179:18;:24;8198:4;8179:24;;;;;;;;;;;;;;;;;;;;;;;;;8177:26;8118:85;8114:171;;;8236:1;8224:9;:13;;;;8268:1;8256:9;:13;;;;8114:171;8299:28;8330:24;8348:4;8330:9;:24::i;:::-;8299:55;;8374:6;;;;;;;;;;;8373:7;:32;;;;;8392:13;;;;;;;;;;;8384:21;;:4;:21;;;;8373:32;:47;;;;;8409:11;;;;;;;;;;;8373:47;8369:318;;;8441:38;8458:20;8441:16;:38::i;:::-;8498:26;8527:21;8498:50;;8591:1;8570:18;:22;8567:105;;;8617:35;8630:21;8617:12;:35::i;:::-;8567:105;8422:265;8369:318;7687:1011;7564:1134;8708:30;8723:4;8728:2;8731:6;8708:14;:30::i;:::-;7255:1491;;;:::o;1270:190::-;1356:7;1389:1;1384;:6;;1392:12;1376:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1416:9;1432:1;1428;:5;;;;:::i;:::-;1416:17;;1451:1;1444:8;;;1270:190;;;;;:::o;6650:254::-;6717:7;6756;;6745;:18;;6737:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6821:19;6844:10;:8;:10::i;:::-;6821:33;;6872:24;6884:11;6872:7;:11;;:24;;;;:::i;:::-;6865:31;;;6650:254;;;:::o;8754:483::-;4816:4;4807:6;;:13;;;;;;;;;;;;;;;;;;8832:21:::1;8870:1;8856:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8832:40;;8901:4;8883;8888:1;8883:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8927:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8917:4;8922:1;8917:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8960:62;8977:4;8992:15;;;;;;;;;;;9010:11;8960:8;:62::i;:::-;9033:15;;;;;;;;;;;:66;;;9114:11;9140:1;9156:4;9183;9203:15;9033:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8821:416;4852:5:::0;4843:6;;:14;;;;;;;;;;;;;;;;;;8754:483;:::o;9259:154::-;9316:15;;;;;;;;;;;:24;;:39;9341:13;9352:1;9341:6;:10;;:13;;;;:::i;:::-;9316:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9366:15;;;;;;;;;;;:24;;:39;9391:13;9402:1;9391:6;:10;;:13;;;;:::i;:::-;9366:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9259:154;:::o;10269:146::-;10363:44;10381:6;10389:9;10400:6;10363:17;:44::i;:::-;10269:146;;;:::o;12583:163::-;12624:7;12645:15;12662;12681:19;:17;:19::i;:::-;12644:56;;;;12718:20;12730:7;12718;:11;;:20;;;;:::i;:::-;12711:27;;;;12583:163;:::o;1722:132::-;1780:7;1807:39;1811:1;1814;1807:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1800:46;;1722:132;;;;:::o;10423:488::-;10522:15;10539:23;10564:12;10578:23;10603:12;10617:13;10634:19;10645:7;10634:10;:19::i;:::-;10521:132;;;;;;;;;;;;10682:28;10702:7;10682;:15;10690:6;10682:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10664:7;:15;10672:6;10664:15;;;;;;;;;;;;;;;:46;;;;10742:39;10765:15;10742:7;:18;10750:9;10742:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10721:7;:18;10729:9;10721:18;;;;;;;;;;;;;;;:60;;;;10793:16;10803:5;10793:9;:16::i;:::-;10820:23;10832:4;10838;10820:11;:23::i;:::-;10876:9;10859:44;;10868:6;10859:44;;;10887:15;10859:44;;;;;;:::i;:::-;;;;;;;;10510:401;;;;;;10423:488;;;:::o;12754:262::-;12804:7;12813;12833:15;12851:7;;12833:25;;12869:15;3953:18;12869:25;;12925:20;3953:18;12925:7;;:11;;:20;;;;:::i;:::-;12915:7;:30;12911:61;;;12955:7;;3953:18;12947:25;;;;;;;;12911:61;12991:7;13000;12983:25;;;;;;12754:262;;;:::o;1862:189::-;1948:7;1980:1;1976;:5;1983:12;1968:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2007:9;2023:1;2019;:5;;;;:::i;:::-;2007:17;;2042:1;2035:8;;;1862:189;;;;;:::o;11331:471::-;11390:7;11399;11408;11417;11426;11435;11456:23;11481:12;11495:13;11512:42;11524:7;11533:9;;11544;;11512:11;:42::i;:::-;11455:99;;;;;;11565:19;11588:10;:8;:10::i;:::-;11565:33;;11610:15;11627:23;11652:12;11668:46;11680:7;11689:4;11695:5;11702:11;11668;:46::i;:::-;11609:105;;;;;;11733:7;11742:15;11759:4;11765:15;11782:4;11788:5;11725:69;;;;;;;;;;;;;;;;;;;11331:471;;;;;;;:::o;1126:136::-;1184:7;1211:43;1215:1;1218;1211:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1204:50;;1126:136;;;;:::o;939:179::-;997:7;1017:9;1033:1;1029;:5;;;;:::i;:::-;1017:17;;1058:1;1053;:6;;1045:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1109:1;1102:8;;;939:179;;;;:::o;10919:212::-;10972:19;10995:10;:8;:10::i;:::-;10972:33;;11016:13;11032:22;11042:11;11032:5;:9;;:22;;;;:::i;:::-;11016:38;;11090:33;11117:5;11090:7;:22;11106:4;11090:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11065:7;:22;11081:4;11065:22;;;;;;;;;;;;;;;:58;;;;10961:170;;10919:212;:::o;11139:147::-;11217:17;11229:4;11217:7;;:11;;:17;;;;:::i;:::-;11207:7;:27;;;;11258:20;11273:4;11258:10;;:14;;:20;;;;:::i;:::-;11245:10;:33;;;;11139:147;;:::o;11810:351::-;11903:7;11912;11921;11941:12;11956:28;11980:3;11956:19;11968:6;11956:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11941:43;;11995:13;12011:29;12036:3;12011:20;12023:7;12011;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11995:45;;12051:23;12077:28;12099:5;12077:17;12089:4;12077:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12051:54;;12124:15;12141:4;12147:5;12116:37;;;;;;;;;11810:351;;;;;;;:::o;12169:409::-;12279:7;12288;12297;12317:15;12335:24;12347:11;12335:7;:11;;:24;;;;:::i;:::-;12317:42;;12370:12;12385:21;12394:11;12385:4;:8;;:21;;;;:::i;:::-;12370:36;;12417:13;12433:22;12443:11;12433:5;:9;;:22;;;;:::i;:::-;12417:38;;12466:23;12492:28;12514:5;12492:17;12504:4;12492:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12466:54;;12539:7;12548:15;12565:4;12531:39;;;;;;;;;;12169:409;;;;;;;;:::o;1468:246::-;1526:7;1555:1;1550;:6;1546:47;;1580:1;1573:8;;;;1546:47;1603:9;1619:1;1615;:5;;;;:::i;:::-;1603:17;;1648:1;1643;1639;:5;;;;:::i;:::-;:10;1631:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1705:1;1698:8;;;1468:246;;;;;:::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;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:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:173::-;7145:25;7141:1;7133:6;7129:14;7122:49;7005:173;:::o;7184:366::-;7326:3;7347:67;7411:2;7406:3;7347:67;:::i;:::-;7340:74;;7423:93;7512:3;7423:93;:::i;:::-;7541:2;7536:3;7532:12;7525:19;;7184:366;;;:::o;7556:419::-;7722:4;7760:2;7749:9;7745:18;7737:26;;7809:9;7803:4;7799:20;7795:1;7784:9;7780:17;7773:47;7837:131;7963:4;7837:131;:::i;:::-;7829:139;;7556:419;;;:::o;7981:143::-;8038:5;8069:6;8063:13;8054:22;;8085:33;8112:5;8085:33;:::i;:::-;7981:143;;;;:::o;8130:351::-;8200:6;8249:2;8237:9;8228:7;8224:23;8220:32;8217:119;;;8255:79;;:::i;:::-;8217:119;8375:1;8400:64;8456:7;8447:6;8436:9;8432:22;8400:64;:::i;:::-;8390:74;;8346:128;8130:351;;;;:::o;8487:332::-;8608:4;8646:2;8635:9;8631:18;8623:26;;8659:71;8727:1;8716:9;8712:17;8703:6;8659:71;:::i;:::-;8740:72;8808:2;8797:9;8793:18;8784:6;8740:72;:::i;:::-;8487:332;;;;;:::o;8825:85::-;8870:7;8899:5;8888:16;;8825:85;;;:::o;8916:60::-;8944:3;8965:5;8958:12;;8916:60;;;:::o;8982:158::-;9040:9;9073:61;9091:42;9100:32;9126:5;9100:32;:::i;:::-;9091:42;:::i;:::-;9073:61;:::i;:::-;9060:74;;8982:158;;;:::o;9146:147::-;9241:45;9280:5;9241:45;:::i;:::-;9236:3;9229:58;9146:147;;:::o;9299:807::-;9548:4;9586:3;9575:9;9571:19;9563:27;;9600:71;9668:1;9657:9;9653:17;9644:6;9600:71;:::i;:::-;9681:72;9749:2;9738:9;9734:18;9725:6;9681:72;:::i;:::-;9763:80;9839:2;9828:9;9824:18;9815:6;9763:80;:::i;:::-;9853;9929:2;9918:9;9914:18;9905:6;9853:80;:::i;:::-;9943:73;10011:3;10000:9;9996:19;9987:6;9943:73;:::i;:::-;10026;10094:3;10083:9;10079:19;10070:6;10026:73;:::i;:::-;9299:807;;;;;;;;;:::o;10112:143::-;10169:5;10200:6;10194:13;10185:22;;10216:33;10243:5;10216:33;:::i;:::-;10112:143;;;;:::o;10261:663::-;10349:6;10357;10365;10414:2;10402:9;10393:7;10389:23;10385:32;10382:119;;;10420:79;;:::i;:::-;10382:119;10540:1;10565:64;10621:7;10612:6;10601:9;10597:22;10565:64;:::i;:::-;10555:74;;10511:128;10678:2;10704:64;10760:7;10751:6;10740:9;10736:22;10704:64;:::i;:::-;10694:74;;10649:129;10817:2;10843:64;10899:7;10890:6;10879:9;10875:22;10843:64;:::i;:::-;10833:74;;10788:129;10261:663;;;;;:::o;10930:332::-;11051:4;11089:2;11078:9;11074:18;11066:26;;11102:71;11170:1;11159:9;11155:17;11146:6;11102:71;:::i;:::-;11183:72;11251:2;11240:9;11236:18;11227:6;11183:72;:::i;:::-;10930:332;;;;;:::o;11268:116::-;11338:21;11353:5;11338:21;:::i;:::-;11331:5;11328:32;11318:60;;11374:1;11371;11364:12;11318:60;11268:116;:::o;11390:137::-;11444:5;11475:6;11469:13;11460:22;;11491:30;11515:5;11491:30;:::i;:::-;11390:137;;;;:::o;11533:345::-;11600:6;11649:2;11637:9;11628:7;11624:23;11620:32;11617:119;;;11655:79;;:::i;:::-;11617:119;11775:1;11800:61;11853:7;11844:6;11833:9;11829:22;11800:61;:::i;:::-;11790:71;;11746:125;11533:345;;;;:::o;11884:223::-;12024:34;12020:1;12012:6;12008:14;12001:58;12093:6;12088:2;12080:6;12076:15;12069:31;11884:223;:::o;12113:366::-;12255:3;12276:67;12340:2;12335:3;12276:67;:::i;:::-;12269:74;;12352:93;12441:3;12352:93;:::i;:::-;12470:2;12465:3;12461:12;12454:19;;12113:366;;;:::o;12485:419::-;12651:4;12689:2;12678:9;12674:18;12666:26;;12738:9;12732:4;12728:20;12724:1;12713:9;12709:17;12702:47;12766:131;12892:4;12766:131;:::i;:::-;12758:139;;12485:419;;;:::o;12910:221::-;13050:34;13046:1;13038:6;13034:14;13027:58;13119:4;13114:2;13106:6;13102:15;13095:29;12910:221;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:224::-;14074:34;14070:1;14062:6;14058:14;14051:58;14143:7;14138:2;14130:6;14126:15;14119:32;13934:224;:::o;14164:366::-;14306:3;14327:67;14391:2;14386:3;14327:67;:::i;:::-;14320:74;;14403:93;14492:3;14403:93;:::i;:::-;14521:2;14516:3;14512:12;14505:19;;14164:366;;;:::o;14536:419::-;14702:4;14740:2;14729:9;14725:18;14717:26;;14789:9;14783:4;14779:20;14775:1;14764:9;14760:17;14753:47;14817:131;14943:4;14817:131;:::i;:::-;14809:139;;14536:419;;;:::o;14961:222::-;15101:34;15097:1;15089:6;15085:14;15078:58;15170:5;15165:2;15157:6;15153:15;15146:30;14961:222;:::o;15189:366::-;15331:3;15352:67;15416:2;15411:3;15352:67;:::i;:::-;15345:74;;15428:93;15517:3;15428:93;:::i;:::-;15546:2;15541:3;15537:12;15530:19;;15189:366;;;:::o;15561:419::-;15727:4;15765:2;15754:9;15750:18;15742:26;;15814:9;15808:4;15804:20;15800:1;15789:9;15785:17;15778:47;15842:131;15968:4;15842:131;:::i;:::-;15834:139;;15561:419;;;:::o;15986:228::-;16126:34;16122:1;16114:6;16110:14;16103:58;16195:11;16190:2;16182:6;16178:15;16171:36;15986:228;:::o;16220:366::-;16362:3;16383:67;16447:2;16442:3;16383:67;:::i;:::-;16376:74;;16459:93;16548:3;16459:93;:::i;:::-;16577:2;16572:3;16568:12;16561:19;;16220:366;;;:::o;16592:419::-;16758:4;16796:2;16785:9;16781:18;16773:26;;16845:9;16839:4;16835:20;16831:1;16820:9;16816:17;16809:47;16873:131;16999:4;16873:131;:::i;:::-;16865:139;;16592:419;;;:::o;17017:180::-;17065:77;17062:1;17055:88;17162:4;17159:1;17152:15;17186:4;17183:1;17176:15;17203:191;17243:3;17262:20;17280:1;17262:20;:::i;:::-;17257:25;;17296:20;17314:1;17296:20;:::i;:::-;17291:25;;17339:1;17336;17332:9;17325:16;;17360:3;17357:1;17354:10;17351:36;;;17367:18;;:::i;:::-;17351:36;17203:191;;;;:::o;17400:249::-;17540:34;17536:1;17528:6;17524:14;17517:58;17609:32;17604:2;17596:6;17592:15;17585:57;17400:249;:::o;17655:366::-;17797:3;17818:67;17882:2;17877:3;17818:67;:::i;:::-;17811:74;;17894:93;17983:3;17894:93;:::i;:::-;18012:2;18007:3;18003:12;17996:19;;17655:366;;;:::o;18027:419::-;18193:4;18231:2;18220:9;18216:18;18208:26;;18280:9;18274:4;18270:20;18266:1;18255:9;18251:17;18244:47;18308:131;18434:4;18308:131;:::i;:::-;18300:139;;18027:419;;;:::o;18452:194::-;18492:4;18512:20;18530:1;18512:20;:::i;:::-;18507:25;;18546:20;18564:1;18546:20;:::i;:::-;18541:25;;18590:1;18587;18583:9;18575:17;;18614:1;18608:4;18605:11;18602:37;;;18619:18;;:::i;:::-;18602:37;18452:194;;;;:::o;18652:229::-;18792:34;18788:1;18780:6;18776:14;18769:58;18861:12;18856:2;18848:6;18844:15;18837:37;18652:229;:::o;18887:366::-;19029:3;19050:67;19114:2;19109:3;19050:67;:::i;:::-;19043:74;;19126:93;19215:3;19126:93;:::i;:::-;19244:2;19239:3;19235:12;19228:19;;18887:366;;;:::o;19259:419::-;19425:4;19463:2;19452:9;19448:18;19440:26;;19512:9;19506:4;19502:20;19498:1;19487:9;19483:17;19476:47;19540:131;19666:4;19540:131;:::i;:::-;19532:139;;19259:419;;;:::o;19684:180::-;19732:77;19729:1;19722:88;19829:4;19826:1;19819:15;19853:4;19850:1;19843:15;19870:180;19918:77;19915:1;19908:88;20015:4;20012:1;20005:15;20039:4;20036:1;20029:15;20056:114;20123:6;20157:5;20151:12;20141:22;;20056:114;;;:::o;20176:184::-;20275:11;20309:6;20304:3;20297:19;20349:4;20344:3;20340:14;20325:29;;20176:184;;;;:::o;20366:132::-;20433:4;20456:3;20448:11;;20486:4;20481:3;20477:14;20469:22;;20366:132;;;:::o;20504:108::-;20581:24;20599:5;20581:24;:::i;:::-;20576:3;20569:37;20504:108;;:::o;20618:179::-;20687:10;20708:46;20750:3;20742:6;20708:46;:::i;:::-;20786:4;20781:3;20777:14;20763:28;;20618:179;;;;:::o;20803:113::-;20873:4;20905;20900:3;20896:14;20888:22;;20803:113;;;:::o;20952:732::-;21071:3;21100:54;21148:5;21100:54;:::i;:::-;21170:86;21249:6;21244:3;21170:86;:::i;:::-;21163:93;;21280:56;21330:5;21280:56;:::i;:::-;21359:7;21390:1;21375:284;21400:6;21397:1;21394:13;21375:284;;;21476:6;21470:13;21503:63;21562:3;21547:13;21503:63;:::i;:::-;21496:70;;21589:60;21642:6;21589:60;:::i;:::-;21579:70;;21435:224;21422:1;21419;21415:9;21410:14;;21375:284;;;21379:14;21675:3;21668:10;;21076:608;;;20952:732;;;;:::o;21690:831::-;21953:4;21991:3;21980:9;21976:19;21968:27;;22005:71;22073:1;22062:9;22058:17;22049:6;22005:71;:::i;:::-;22086:80;22162:2;22151:9;22147:18;22138:6;22086:80;:::i;:::-;22213:9;22207:4;22203:20;22198:2;22187:9;22183:18;22176:48;22241:108;22344:4;22335:6;22241:108;:::i;:::-;22233:116;;22359:72;22427:2;22416:9;22412:18;22403:6;22359:72;:::i;:::-;22441:73;22509:3;22498:9;22494:19;22485:6;22441:73;:::i;:::-;21690:831;;;;;;;;:::o;22527:180::-;22575:77;22572:1;22565:88;22672:4;22669:1;22662:15;22696:4;22693:1;22686:15;22713:185;22753:1;22770:20;22788:1;22770:20;:::i;:::-;22765:25;;22804:20;22822:1;22804:20;:::i;:::-;22799:25;;22843:1;22833:35;;22848:18;;:::i;:::-;22833:35;22890:1;22887;22883:9;22878:14;;22713:185;;;;:::o;22904:177::-;23044:29;23040:1;23032:6;23028:14;23021:53;22904:177;:::o;23087:366::-;23229:3;23250:67;23314:2;23309:3;23250:67;:::i;:::-;23243:74;;23326:93;23415:3;23326:93;:::i;:::-;23444:2;23439:3;23435:12;23428:19;;23087:366;;;:::o;23459:419::-;23625:4;23663:2;23652:9;23648:18;23640:26;;23712:9;23706:4;23702:20;23698:1;23687:9;23683:17;23676:47;23740:131;23866:4;23740:131;:::i;:::-;23732:139;;23459:419;;;:::o;23884:410::-;23924:7;23947:20;23965:1;23947:20;:::i;:::-;23942:25;;23981:20;23999:1;23981:20;:::i;:::-;23976:25;;24036:1;24033;24029:9;24058:30;24076:11;24058:30;:::i;:::-;24047:41;;24237:1;24228:7;24224:15;24221:1;24218:22;24198:1;24191:9;24171:83;24148:139;;24267:18;;:::i;:::-;24148:139;23932:362;23884:410;;;;:::o;24300:220::-;24440:34;24436:1;24428:6;24424:14;24417:58;24509:3;24504:2;24496:6;24492:15;24485:28;24300:220;:::o;24526:366::-;24668:3;24689:67;24753:2;24748:3;24689:67;:::i;:::-;24682:74;;24765:93;24854:3;24765:93;:::i;:::-;24883:2;24878:3;24874:12;24867:19;;24526:366;;;:::o;24898:419::-;25064:4;25102:2;25091:9;25087:18;25079:26;;25151:9;25145:4;25141:20;25137:1;25126:9;25122:17;25115:47;25179:131;25305:4;25179:131;:::i;:::-;25171:139;;24898:419;;;:::o

Swarm Source

ipfs://1841f6e3c797e7d90da9168379e0aed660878033aaa35acd4c16255053119fb5
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.