ETH Price: $3,326.33 (-4.08%)

Token

Ethereum GOAT (eGOAT)
 

Overview

Max Total Supply

1,000,000,000,000 eGOAT

Holders

248

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
181,104.136850819 eGOAT

Value
$0.00
0xb23967853e831765872df929cf2e90bd9f53dfe0
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:
eGOAT

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-25
*/

/*
SPDX-License-Identifier: Unlicensed
*/

pragma solidity ^0.8.4;

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract eGOAT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    address payable public _teamAddress;
    string private constant _name = "Ethereum GOAT";
    string private constant _symbol = "eGOAT";
    uint8 private constant _decimals = 9;
    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 = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 6; 
    mapping(address => bool) private bots;
    mapping(address => uint256) private buycooldown;
    address payable private _burnAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private liquidityAdded = false;
    bool private cooldownEnabled = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _maxTxPct = 2;
    event MaxTxPctUpdated(uint256 _maxTxPct);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
        _isExcludedFromFee[address(this)] = true;
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 removeAllFee() private {
        if (_taxFee == 0 && _teamFee == 0) return;
        _taxFee = 0;
        _teamFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = 2;
        _teamFee = 6;
    }

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

        bool takeFee = true;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            _taxFee = 2;
            _teamFee = 6;
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _tTotal.mul(_maxTxPct).div(10**3));
                if (cooldownEnabled) {
                    require(buycooldown[to] < block.timestamp);
                }
                buycooldown[to] = block.timestamp + (30 seconds);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(amount <= balanceOf(uniswapV2Pair).mul(6).div(100));
                if (contractTokenBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        } else {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee;
    }

    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 {
        _teamAddress.transfer(amount);
    }
    
    function maxTxAmount() public view returns (uint256) {
       return _tTotal.mul(_maxTxPct).div(10**3);
    }

    function addLiquidity() external onlyOwner() {
        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;
        liquidityAdded = true;
        cooldownEnabled = true;
        _maxTxPct = 2;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
    }
    
    function setBurnAddress(address payable burnAddress) external onlyOwner {
        _burnAddress = burnAddress;
        _isExcludedFromFee[_burnAddress] = true;
    }
    
    function setTeamAddress(address payable teamAddress) external onlyOwner {
        _teamAddress = teamAddress;
        _isExcludedFromFee[_teamAddress] = true;
    }

    function manualswap() external {
        require(_isExcludedFromFee[_msgSender()]);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_isExcludedFromFee[_msgSender()]);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    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(sender, 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(address sender, uint256 rFee, uint256 tFee) private {
        //burn
        _tOwned[_burnAddress] = _tOwned[_burnAddress].add(tFee);
        _rOwned[_burnAddress] = _rOwned[_burnAddress].add(rFee);
        emit Transfer(sender, _burnAddress, tFee); // tFee == burn == 2%
        
        //reflect
        _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, _taxFee, _teamFee);
        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(tFee).sub(tTeam); //sub tFee twice because burn + redistribution is 2% each
        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(rFee).sub(rTeam); //sub rFee twice because burn + redistribution is 2% each
        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);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxPct = maxTxPercent * 10;
        emit MaxTxPctUpdated(_maxTxPct);
    }
    
    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
}

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":"_maxTxPct","type":"uint256"}],"name":"MaxTxPctUpdated","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":"_teamAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"burnAddress","type":"address"}],"name":"setBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"teamAddress","type":"address"}],"name":"setTeamAddress","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"}]

6080604052683635c9adc5dea000006000196200001d919062000316565b6000196200002c9190620002d1565b60075560026009556006600a556000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff0219169083151502179055506002601055348015620000b757600080fd5b506000620000ca6200029b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060075460036000620001d76200029b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002256200029b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200028d9190620002b4565b60405180910390a3620003ac565b600033905090565b620002ae816200030c565b82525050565b6000602082019050620002cb6000830184620002a3565b92915050565b6000620002de826200030c565b9150620002eb836200030c565b9250828210156200030157620003006200034e565b5b828203905092915050565b6000819050919050565b600062000323826200030c565b915062000330836200030c565b9250826200034357620003426200037d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61368080620003bc6000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103bc578063c3c8cd80146103f9578063d543dbeb14610410578063dd62ed3e14610439578063e8078d94146104765761012a565b8063715018a6146102f95780638c0b5e22146103105780638c97ca761461033b5780638da5cb5b1461036657806395d89b41146103915761012a565b80634b0e7216116100e75780634b0e72161461022a5780635932ead1146102535780636690864e1461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461048d565b6040516101519190612eab565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612a2b565b6104ca565b60405161018e9190612e90565b60405180910390f35b3480156101a357600080fd5b506101ac6104e8565b6040516101b9919061300d565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e491906129dc565b6104f9565b6040516101f69190612e90565b60405180910390f35b34801561020b57600080fd5b506102146105d2565b6040516102219190613082565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190612977565b6105db565b005b34801561025f57600080fd5b5061027a60048036038101906102759190612a67565b61072e565b005b34801561028857600080fd5b506102a3600480360381019061029e9190612977565b6107e0565b005b3480156102b157600080fd5b506102ba610933565b005b3480156102c857600080fd5b506102e360048036038101906102de9190612925565b6109a1565b6040516102f0919061300d565b60405180910390f35b34801561030557600080fd5b5061030e6109f2565b005b34801561031c57600080fd5b50610325610b45565b604051610332919061300d565b60405180910390f35b34801561034757600080fd5b50610350610b7e565b60405161035d9190612dc2565b60405180910390f35b34801561037257600080fd5b5061037b610ba4565b6040516103889190612da7565b60405180910390f35b34801561039d57600080fd5b506103a6610bcd565b6040516103b39190612eab565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190612a2b565b610c0a565b6040516103f09190612e90565b60405180910390f35b34801561040557600080fd5b5061040e610c28565b005b34801561041c57600080fd5b5061043760048036038101906104329190612ab9565b610c9e565b005b34801561044557600080fd5b50610460600480360381019061045b91906129a0565b610dc5565b60405161046d919061300d565b60405180910390f35b34801561048257600080fd5b5061048b610e4c565b005b60606040518060400160405280600d81526020017f457468657265756d20474f415400000000000000000000000000000000000000815250905090565b60006104de6104d7611351565b8484611359565b6001905092915050565b6000683635c9adc5dea00000905090565b6000610506848484611524565b6105c784610512611351565b6105c28560405180606001604052806028815260200161362360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610578611351565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae59092919063ffffffff16565b611359565b600190509392505050565b60006009905090565b6105e3611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066790612f8d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610736611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba90612f8d565b60405180910390fd5b80600f60156101000a81548160ff02191690831515021790555050565b6107e8611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612f8d565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6006600061093f611351565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661099057600080fd5b600047905061099e81611b49565b50565b60006109eb600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb5565b9050919050565b6109fa611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612f8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610b796103e8610b6b601054683635c9adc5dea00000611c2390919063ffffffff16565b611c9e90919063ffffffff16565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f65474f4154000000000000000000000000000000000000000000000000000000815250905090565b6000610c1e610c17611351565b8484611524565b6001905092915050565b60066000610c34611351565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c8557600080fd5b6000610c90306109a1565b9050610c9b81611ce8565b50565b610ca6611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612f8d565b60405180910390fd5b60008111610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612f4d565b60405180910390fd5b600a81610d839190613179565b6010819055507f99595f7d7537e27b903b443c0377f3a393eb12be4cd03427d4cbee063053c23e601054604051610dba919061300d565b60405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e54611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed890612f8d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f7130600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611359565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb757600080fd5b505afa158015610fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fef919061294e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561105157600080fd5b505afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611089919061294e565b6040518363ffffffff1660e01b81526004016110a6929190612ddd565b602060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f8919061294e565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611181306109a1565b60008061118c610ba4565b426040518863ffffffff1660e01b81526004016111ae96959493929190612e2f565b6060604051808303818588803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112009190612ae2565b5050506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff0219169083151502179055506002601081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112fb929190612e06565b602060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134d9190612a90565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612fed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612f0d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611517919061300d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b90612fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612ecd565b60405180910390fd5b60008111611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90612fad565b60405180910390fd5b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f15750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ace5760026009819055506006600a81905550600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117aa5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117b357600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561185e5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a9576118eb6103e86118dd601054683635c9adc5dea00000611c2390919063ffffffff16565b611c9e90919063ffffffff16565b8211156118f757600080fd5b600f60159054906101000a900460ff16156119585742600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061195757600080fd5b5b601e4261196591906130f2565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006119b4306109a1565b9050600f60169054906101000a900460ff16158015611a215750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a395750600f60179054906101000a900460ff165b15611ac857611a8f6064611a816006611a73600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109a1565b611c2390919063ffffffff16565b611c9e90919063ffffffff16565b831115611a9b57600080fd5b6000811115611aae57611aad81611ce8565b5b60004790506000811115611ac657611ac547611b49565b5b505b50611ad3565b600090505b611adf84848484611fe2565b50505050565b6000838311158290611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b249190612eab565b60405180910390fd5b5060008385611b3c91906131d3565b9050809150509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bb1573d6000803e3d6000fd5b5050565b6000600754821115611bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf390612eed565b60405180910390fd5b6000611c06612021565b9050611c1b8184611c9e90919063ffffffff16565b915050919050565b600080831415611c365760009050611c98565b60008284611c449190613179565b9050828482611c539190613148565b14611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a90612f6d565b60405180910390fd5b809150505b92915050565b6000611ce083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061204c565b905092915050565b6001600f60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d46577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611d745781602001602082028036833780820191505090505b5090503081600081518110611db2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5457600080fd5b505afa158015611e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8c919061294e565b81600181518110611ec6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2d30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611359565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f91959493929190613028565b600060405180830381600087803b158015611fab57600080fd5b505af1158015611fbf573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b80611ff057611fef6120af565b5b611ffb8484846120e0565b806120095761200861200f565b5b50505050565b60026009819055506006600a81905550565b600080600061202e6122ac565b915091506120458183611c9e90919063ffffffff16565b9250505090565b60008083118290612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a9190612eab565b60405180910390fd5b50600083856120a29190613148565b9050809150509392505050565b60006009541480156120c357506000600a54145b156120cd576120de565b60006009819055506000600a819055505b565b6000806000806000806120f28761230e565b95509550955095509550955061215086600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237690919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e585600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122318161241e565b61223c8985846124db565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612299919061300d565b60405180910390a3505050505050505050565b600080600060075490506000683635c9adc5dea0000090506122e2683635c9adc5dea00000600754611c9e90919063ffffffff16565b82101561230157600754683635c9adc5dea0000093509350505061230a565b81819350935050505b9091565b600080600080600080600080600061232b8a600954600a5461274f565b925092509250600061233b612021565b9050600080600061234e8e8787876127f7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ae5565b905092915050565b60008082846123cf91906130f2565b905083811015612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b90612f2d565b60405180910390fd5b8091505092915050565b6000612428612021565b9050600061243f8284611c2390919063ffffffff16565b905061249381600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61254f8160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b60046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126288260036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b60036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161270c919061300d565b60405180910390a36127298260075461237690919063ffffffff16565b600781905550612744816008546123c090919063ffffffff16565b600881905550505050565b60008060008061277b606461276d888a611c2390919063ffffffff16565b611c9e90919063ffffffff16565b905060006127a56064612797888b611c2390919063ffffffff16565b611c9e90919063ffffffff16565b905060006127e0826127d2856127c4878e61237690919063ffffffff16565b61237690919063ffffffff16565b61237690919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128108589611c2390919063ffffffff16565b905060006128278689611c2390919063ffffffff16565b9050600061283e8789611c2390919063ffffffff16565b905060006128798261286b8561285d878961237690919063ffffffff16565b61237690919063ffffffff16565b61237690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506128a1816135c6565b92915050565b6000815190506128b6816135c6565b92915050565b6000813590506128cb816135dd565b92915050565b6000813590506128e0816135f4565b92915050565b6000815190506128f5816135f4565b92915050565b60008135905061290a8161360b565b92915050565b60008151905061291f8161360b565b92915050565b60006020828403121561293757600080fd5b600061294584828501612892565b91505092915050565b60006020828403121561296057600080fd5b600061296e848285016128a7565b91505092915050565b60006020828403121561298957600080fd5b6000612997848285016128bc565b91505092915050565b600080604083850312156129b357600080fd5b60006129c185828601612892565b92505060206129d285828601612892565b9150509250929050565b6000806000606084860312156129f157600080fd5b60006129ff86828701612892565b9350506020612a1086828701612892565b9250506040612a21868287016128fb565b9150509250925092565b60008060408385031215612a3e57600080fd5b6000612a4c85828601612892565b9250506020612a5d858286016128fb565b9150509250929050565b600060208284031215612a7957600080fd5b6000612a87848285016128d1565b91505092915050565b600060208284031215612aa257600080fd5b6000612ab0848285016128e6565b91505092915050565b600060208284031215612acb57600080fd5b6000612ad9848285016128fb565b91505092915050565b600080600060608486031215612af757600080fd5b6000612b0586828701612910565b9350506020612b1686828701612910565b9250506040612b2786828701612910565b9150509250925092565b6000612b3d8383612b58565b60208301905092915050565b612b5281613219565b82525050565b612b6181613207565b82525050565b612b7081613207565b82525050565b6000612b81826130ad565b612b8b81856130d0565b9350612b968361309d565b8060005b83811015612bc7578151612bae8882612b31565b9750612bb9836130c3565b925050600181019050612b9a565b5085935050505092915050565b612bdd8161322b565b82525050565b612bec8161326e565b82525050565b6000612bfd826130b8565b612c0781856130e1565b9350612c17818560208601613280565b612c2081613311565b840191505092915050565b6000612c386023836130e1565b9150612c4382613322565b604082019050919050565b6000612c5b602a836130e1565b9150612c6682613371565b604082019050919050565b6000612c7e6022836130e1565b9150612c89826133c0565b604082019050919050565b6000612ca1601b836130e1565b9150612cac8261340f565b602082019050919050565b6000612cc4601d836130e1565b9150612ccf82613438565b602082019050919050565b6000612ce76021836130e1565b9150612cf282613461565b604082019050919050565b6000612d0a6020836130e1565b9150612d15826134b0565b602082019050919050565b6000612d2d6029836130e1565b9150612d38826134d9565b604082019050919050565b6000612d506025836130e1565b9150612d5b82613528565b604082019050919050565b6000612d736024836130e1565b9150612d7e82613577565b604082019050919050565b612d9281613257565b82525050565b612da181613261565b82525050565b6000602082019050612dbc6000830184612b67565b92915050565b6000602082019050612dd76000830184612b49565b92915050565b6000604082019050612df26000830185612b67565b612dff6020830184612b67565b9392505050565b6000604082019050612e1b6000830185612b67565b612e286020830184612d89565b9392505050565b600060c082019050612e446000830189612b67565b612e516020830188612d89565b612e5e6040830187612be3565b612e6b6060830186612be3565b612e786080830185612b67565b612e8560a0830184612d89565b979650505050505050565b6000602082019050612ea56000830184612bd4565b92915050565b60006020820190508181036000830152612ec58184612bf2565b905092915050565b60006020820190508181036000830152612ee681612c2b565b9050919050565b60006020820190508181036000830152612f0681612c4e565b9050919050565b60006020820190508181036000830152612f2681612c71565b9050919050565b60006020820190508181036000830152612f4681612c94565b9050919050565b60006020820190508181036000830152612f6681612cb7565b9050919050565b60006020820190508181036000830152612f8681612cda565b9050919050565b60006020820190508181036000830152612fa681612cfd565b9050919050565b60006020820190508181036000830152612fc681612d20565b9050919050565b60006020820190508181036000830152612fe681612d43565b9050919050565b6000602082019050818103600083015261300681612d66565b9050919050565b60006020820190506130226000830184612d89565b92915050565b600060a08201905061303d6000830188612d89565b61304a6020830187612be3565b818103604083015261305c8186612b76565b905061306b6060830185612b67565b6130786080830184612d89565b9695505050505050565b60006020820190506130976000830184612d98565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130fd82613257565b915061310883613257565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561313d5761313c6132b3565b5b828201905092915050565b600061315382613257565b915061315e83613257565b92508261316e5761316d6132e2565b5b828204905092915050565b600061318482613257565b915061318f83613257565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c8576131c76132b3565b5b828202905092915050565b60006131de82613257565b91506131e983613257565b9250828210156131fc576131fb6132b3565b5b828203905092915050565b600061321282613237565b9050919050565b600061322482613237565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061327982613257565b9050919050565b60005b8381101561329e578082015181840152602081019050613283565b838111156132ad576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6135cf81613207565b81146135da57600080fd5b50565b6135e681613219565b81146135f157600080fd5b50565b6135fd8161322b565b811461360857600080fd5b50565b61361481613257565b811461361f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7fabb39c3b89324dbf99709a1b475d817d0e7193b418fac42bda728863d374864736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103bc578063c3c8cd80146103f9578063d543dbeb14610410578063dd62ed3e14610439578063e8078d94146104765761012a565b8063715018a6146102f95780638c0b5e22146103105780638c97ca761461033b5780638da5cb5b1461036657806395d89b41146103915761012a565b80634b0e7216116100e75780634b0e72161461022a5780635932ead1146102535780636690864e1461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461048d565b6040516101519190612eab565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612a2b565b6104ca565b60405161018e9190612e90565b60405180910390f35b3480156101a357600080fd5b506101ac6104e8565b6040516101b9919061300d565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e491906129dc565b6104f9565b6040516101f69190612e90565b60405180910390f35b34801561020b57600080fd5b506102146105d2565b6040516102219190613082565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190612977565b6105db565b005b34801561025f57600080fd5b5061027a60048036038101906102759190612a67565b61072e565b005b34801561028857600080fd5b506102a3600480360381019061029e9190612977565b6107e0565b005b3480156102b157600080fd5b506102ba610933565b005b3480156102c857600080fd5b506102e360048036038101906102de9190612925565b6109a1565b6040516102f0919061300d565b60405180910390f35b34801561030557600080fd5b5061030e6109f2565b005b34801561031c57600080fd5b50610325610b45565b604051610332919061300d565b60405180910390f35b34801561034757600080fd5b50610350610b7e565b60405161035d9190612dc2565b60405180910390f35b34801561037257600080fd5b5061037b610ba4565b6040516103889190612da7565b60405180910390f35b34801561039d57600080fd5b506103a6610bcd565b6040516103b39190612eab565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190612a2b565b610c0a565b6040516103f09190612e90565b60405180910390f35b34801561040557600080fd5b5061040e610c28565b005b34801561041c57600080fd5b5061043760048036038101906104329190612ab9565b610c9e565b005b34801561044557600080fd5b50610460600480360381019061045b91906129a0565b610dc5565b60405161046d919061300d565b60405180910390f35b34801561048257600080fd5b5061048b610e4c565b005b60606040518060400160405280600d81526020017f457468657265756d20474f415400000000000000000000000000000000000000815250905090565b60006104de6104d7611351565b8484611359565b6001905092915050565b6000683635c9adc5dea00000905090565b6000610506848484611524565b6105c784610512611351565b6105c28560405180606001604052806028815260200161362360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610578611351565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae59092919063ffffffff16565b611359565b600190509392505050565b60006009905090565b6105e3611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066790612f8d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610736611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba90612f8d565b60405180910390fd5b80600f60156101000a81548160ff02191690831515021790555050565b6107e8611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086c90612f8d565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6006600061093f611351565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661099057600080fd5b600047905061099e81611b49565b50565b60006109eb600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb5565b9050919050565b6109fa611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612f8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610b796103e8610b6b601054683635c9adc5dea00000611c2390919063ffffffff16565b611c9e90919063ffffffff16565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f65474f4154000000000000000000000000000000000000000000000000000000815250905090565b6000610c1e610c17611351565b8484611524565b6001905092915050565b60066000610c34611351565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c8557600080fd5b6000610c90306109a1565b9050610c9b81611ce8565b50565b610ca6611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612f8d565b60405180910390fd5b60008111610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612f4d565b60405180910390fd5b600a81610d839190613179565b6010819055507f99595f7d7537e27b903b443c0377f3a393eb12be4cd03427d4cbee063053c23e601054604051610dba919061300d565b60405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e54611351565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed890612f8d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f7130600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611359565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb757600080fd5b505afa158015610fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fef919061294e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561105157600080fd5b505afa158015611065573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611089919061294e565b6040518363ffffffff1660e01b81526004016110a6929190612ddd565b602060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f8919061294e565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611181306109a1565b60008061118c610ba4565b426040518863ffffffff1660e01b81526004016111ae96959493929190612e2f565b6060604051808303818588803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112009190612ae2565b5050506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff0219169083151502179055506002601081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112fb929190612e06565b602060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134d9190612a90565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612fed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612f0d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611517919061300d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b90612fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612ecd565b60405180910390fd5b60008111611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90612fad565b60405180910390fd5b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f15750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ace5760026009819055506006600a81905550600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117aa5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117b357600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561185e5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a9576118eb6103e86118dd601054683635c9adc5dea00000611c2390919063ffffffff16565b611c9e90919063ffffffff16565b8211156118f757600080fd5b600f60159054906101000a900460ff16156119585742600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061195757600080fd5b5b601e4261196591906130f2565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006119b4306109a1565b9050600f60169054906101000a900460ff16158015611a215750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a395750600f60179054906101000a900460ff165b15611ac857611a8f6064611a816006611a73600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109a1565b611c2390919063ffffffff16565b611c9e90919063ffffffff16565b831115611a9b57600080fd5b6000811115611aae57611aad81611ce8565b5b60004790506000811115611ac657611ac547611b49565b5b505b50611ad3565b600090505b611adf84848484611fe2565b50505050565b6000838311158290611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b249190612eab565b60405180910390fd5b5060008385611b3c91906131d3565b9050809150509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bb1573d6000803e3d6000fd5b5050565b6000600754821115611bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf390612eed565b60405180910390fd5b6000611c06612021565b9050611c1b8184611c9e90919063ffffffff16565b915050919050565b600080831415611c365760009050611c98565b60008284611c449190613179565b9050828482611c539190613148565b14611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a90612f6d565b60405180910390fd5b809150505b92915050565b6000611ce083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061204c565b905092915050565b6001600f60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d46577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611d745781602001602082028036833780820191505090505b5090503081600081518110611db2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e5457600080fd5b505afa158015611e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8c919061294e565b81600181518110611ec6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f2d30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611359565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f91959493929190613028565b600060405180830381600087803b158015611fab57600080fd5b505af1158015611fbf573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b80611ff057611fef6120af565b5b611ffb8484846120e0565b806120095761200861200f565b5b50505050565b60026009819055506006600a81905550565b600080600061202e6122ac565b915091506120458183611c9e90919063ffffffff16565b9250505090565b60008083118290612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a9190612eab565b60405180910390fd5b50600083856120a29190613148565b9050809150509392505050565b60006009541480156120c357506000600a54145b156120cd576120de565b60006009819055506000600a819055505b565b6000806000806000806120f28761230e565b95509550955095509550955061215086600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237690919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e585600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122318161241e565b61223c8985846124db565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612299919061300d565b60405180910390a3505050505050505050565b600080600060075490506000683635c9adc5dea0000090506122e2683635c9adc5dea00000600754611c9e90919063ffffffff16565b82101561230157600754683635c9adc5dea0000093509350505061230a565b81819350935050505b9091565b600080600080600080600080600061232b8a600954600a5461274f565b925092509250600061233b612021565b9050600080600061234e8e8787876127f7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ae5565b905092915050565b60008082846123cf91906130f2565b905083811015612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b90612f2d565b60405180910390fd5b8091505092915050565b6000612428612021565b9050600061243f8284611c2390919063ffffffff16565b905061249381600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61254f8160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b60046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126288260036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c090919063ffffffff16565b60036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161270c919061300d565b60405180910390a36127298260075461237690919063ffffffff16565b600781905550612744816008546123c090919063ffffffff16565b600881905550505050565b60008060008061277b606461276d888a611c2390919063ffffffff16565b611c9e90919063ffffffff16565b905060006127a56064612797888b611c2390919063ffffffff16565b611c9e90919063ffffffff16565b905060006127e0826127d2856127c4878e61237690919063ffffffff16565b61237690919063ffffffff16565b61237690919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128108589611c2390919063ffffffff16565b905060006128278689611c2390919063ffffffff16565b9050600061283e8789611c2390919063ffffffff16565b905060006128798261286b8561285d878961237690919063ffffffff16565b61237690919063ffffffff16565b61237690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506128a1816135c6565b92915050565b6000815190506128b6816135c6565b92915050565b6000813590506128cb816135dd565b92915050565b6000813590506128e0816135f4565b92915050565b6000815190506128f5816135f4565b92915050565b60008135905061290a8161360b565b92915050565b60008151905061291f8161360b565b92915050565b60006020828403121561293757600080fd5b600061294584828501612892565b91505092915050565b60006020828403121561296057600080fd5b600061296e848285016128a7565b91505092915050565b60006020828403121561298957600080fd5b6000612997848285016128bc565b91505092915050565b600080604083850312156129b357600080fd5b60006129c185828601612892565b92505060206129d285828601612892565b9150509250929050565b6000806000606084860312156129f157600080fd5b60006129ff86828701612892565b9350506020612a1086828701612892565b9250506040612a21868287016128fb565b9150509250925092565b60008060408385031215612a3e57600080fd5b6000612a4c85828601612892565b9250506020612a5d858286016128fb565b9150509250929050565b600060208284031215612a7957600080fd5b6000612a87848285016128d1565b91505092915050565b600060208284031215612aa257600080fd5b6000612ab0848285016128e6565b91505092915050565b600060208284031215612acb57600080fd5b6000612ad9848285016128fb565b91505092915050565b600080600060608486031215612af757600080fd5b6000612b0586828701612910565b9350506020612b1686828701612910565b9250506040612b2786828701612910565b9150509250925092565b6000612b3d8383612b58565b60208301905092915050565b612b5281613219565b82525050565b612b6181613207565b82525050565b612b7081613207565b82525050565b6000612b81826130ad565b612b8b81856130d0565b9350612b968361309d565b8060005b83811015612bc7578151612bae8882612b31565b9750612bb9836130c3565b925050600181019050612b9a565b5085935050505092915050565b612bdd8161322b565b82525050565b612bec8161326e565b82525050565b6000612bfd826130b8565b612c0781856130e1565b9350612c17818560208601613280565b612c2081613311565b840191505092915050565b6000612c386023836130e1565b9150612c4382613322565b604082019050919050565b6000612c5b602a836130e1565b9150612c6682613371565b604082019050919050565b6000612c7e6022836130e1565b9150612c89826133c0565b604082019050919050565b6000612ca1601b836130e1565b9150612cac8261340f565b602082019050919050565b6000612cc4601d836130e1565b9150612ccf82613438565b602082019050919050565b6000612ce76021836130e1565b9150612cf282613461565b604082019050919050565b6000612d0a6020836130e1565b9150612d15826134b0565b602082019050919050565b6000612d2d6029836130e1565b9150612d38826134d9565b604082019050919050565b6000612d506025836130e1565b9150612d5b82613528565b604082019050919050565b6000612d736024836130e1565b9150612d7e82613577565b604082019050919050565b612d9281613257565b82525050565b612da181613261565b82525050565b6000602082019050612dbc6000830184612b67565b92915050565b6000602082019050612dd76000830184612b49565b92915050565b6000604082019050612df26000830185612b67565b612dff6020830184612b67565b9392505050565b6000604082019050612e1b6000830185612b67565b612e286020830184612d89565b9392505050565b600060c082019050612e446000830189612b67565b612e516020830188612d89565b612e5e6040830187612be3565b612e6b6060830186612be3565b612e786080830185612b67565b612e8560a0830184612d89565b979650505050505050565b6000602082019050612ea56000830184612bd4565b92915050565b60006020820190508181036000830152612ec58184612bf2565b905092915050565b60006020820190508181036000830152612ee681612c2b565b9050919050565b60006020820190508181036000830152612f0681612c4e565b9050919050565b60006020820190508181036000830152612f2681612c71565b9050919050565b60006020820190508181036000830152612f4681612c94565b9050919050565b60006020820190508181036000830152612f6681612cb7565b9050919050565b60006020820190508181036000830152612f8681612cda565b9050919050565b60006020820190508181036000830152612fa681612cfd565b9050919050565b60006020820190508181036000830152612fc681612d20565b9050919050565b60006020820190508181036000830152612fe681612d43565b9050919050565b6000602082019050818103600083015261300681612d66565b9050919050565b60006020820190506130226000830184612d89565b92915050565b600060a08201905061303d6000830188612d89565b61304a6020830187612be3565b818103604083015261305c8186612b76565b905061306b6060830185612b67565b6130786080830184612d89565b9695505050505050565b60006020820190506130976000830184612d98565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130fd82613257565b915061310883613257565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561313d5761313c6132b3565b5b828201905092915050565b600061315382613257565b915061315e83613257565b92508261316e5761316d6132e2565b5b828204905092915050565b600061318482613257565b915061318f83613257565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c8576131c76132b3565b5b828202905092915050565b60006131de82613257565b91506131e983613257565b9250828210156131fc576131fb6132b3565b5b828203905092915050565b600061321282613237565b9050919050565b600061322482613237565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061327982613257565b9050919050565b60005b8381101561329e578082015181840152602081019050613283565b838111156132ad576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6135cf81613207565b81146135da57600080fd5b50565b6135e681613219565b81146135f157600080fd5b50565b6135fd8161322b565b811461360857600080fd5b50565b61361481613257565b811461361f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7fabb39c3b89324dbf99709a1b475d817d0e7193b418fac42bda728863d374864736f6c63430008040033

Deployed Bytecode Sourcemap

3547:11050:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5072:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5924:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5349:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6093:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5258:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10239:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14491:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10418:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10797:195;;;;;;;;;;;;;:::i;:::-;;5452:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2600:148;;;;;;;;;;;;;:::i;:::-;;9365:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3630:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2386:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5163:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5598:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10593:196;;;;;;;;;;;;;:::i;:::-;;14252:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5773:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9484:743;;;;;;;;;;;;;:::i;:::-;;5072:83;5109:13;5142:5;;;;;;;;;;;;;;;;;5135:12;;5072:83;:::o;5924:161::-;5999:4;6016:39;6025:12;:10;:12::i;:::-;6039:7;6048:6;6016:8;:39::i;:::-;6073:4;6066:11;;5924:161;;;;:::o;5349:95::-;5402:7;4133:21;5422:14;;5349:95;:::o;6093:310::-;6191:4;6208:36;6218:6;6226:9;6237:6;6208:9;:36::i;:::-;6255:118;6264:6;6271:12;:10;:12::i;:::-;6284:88;6322:6;6284:88;;;;;;;;;;;;;;;;;:11;:19;6296:6;6284:19;;;;;;;;;;;;;;;:33;6304:12;:10;:12::i;:::-;6284:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;6255:8;:118::i;:::-;6391:4;6384:11;;6093:310;;;;;:::o;5258:83::-;5299:5;3809:1;5317:16;;5258:83;:::o;10239:167::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10337:11:::1;10322:12;;:26;;;;;;;;;;;;;;;;;;10394:4;10359:18;:32;10378:12;;;;;;;;;;;10359:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;10239:167:::0;:::o;14491:103::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14581:5:::1;14563:15;;:23;;;;;;;;;;;;;;;;;;14491:103:::0;:::o;10418:167::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10516:11:::1;10501:12;;:26;;;;;;;;;;;;;;;;;;10573:4;10538:18;:32;10557:12;;;;;;;;;;;10538:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;10418:167:::0;:::o;10797:195::-;10847:18;:32;10866:12;:10;:12::i;:::-;10847:32;;;;;;;;;;;;;;;;;;;;;;;;;10839:41;;;;;;10891:26;10920:21;10891:50;;10952:32;10965:18;10952:12;:32::i;:::-;10797:195;:::o;5452:138::-;5518:7;5545:37;5565:7;:16;5573:7;5565:16;;;;;;;;;;;;;;;;5545:19;:37::i;:::-;5538:44;;5452:138;;;:::o;2600:148::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2707:1:::1;2670:40;;2691:6;::::0;::::1;;;;;;;;2670:40;;;;;;;;;;;;2738:1;2721:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2600:148::o:0;9365:111::-;9409:7;9435:33;9462:5;9435:22;9447:9;;4133:21;9435:11;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;9428:40;;9365:111;:::o;3630:35::-;;;;;;;;;;;;;:::o;2386:79::-;2424:7;2451:6;;;;;;;;;;;2444:13;;2386:79;:::o;5163:87::-;5202:13;5235:7;;;;;;;;;;;;;;;;;5228:14;;5163:87;:::o;5598:167::-;5676:4;5693:42;5703:12;:10;:12::i;:::-;5717:9;5728:6;5693:9;:42::i;:::-;5753:4;5746:11;;5598:167;;;;:::o;10593:196::-;10643:18;:32;10662:12;:10;:12::i;:::-;10643:32;;;;;;;;;;;;;;;;;;;;;;;;;10635:41;;;;;;10687:23;10713:24;10731:4;10713:9;:24::i;:::-;10687:50;;10748:33;10765:15;10748:16;:33::i;:::-;10593:196;:::o;14252:227::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14354:1:::1;14339:12;:16;14331:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14427:2;14412:12;:17;;;;:::i;:::-;14400:9;:29;;;;14445:26;14461:9;;14445:26;;;;;;:::i;:::-;;;;;;;;14252:227:::0;:::o;5773:143::-;5854:7;5881:11;:18;5893:5;5881:18;;;;;;;;;;;;;;;:27;5900:7;5881:27;;;;;;;;;;;;;;;;5874:34;;5773:143;;;;:::o;9484:743::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9540:35:::1;9597:42;9540:100;;9669:16;9651:15;;:34;;;;;;;;;;;;;;;;;;9696:58;9713:4;9728:15;;;;;;;;;;;4133:21;9696:8;:58::i;:::-;9799:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9781:56;;;9846:4;9853:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9781:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9765:13;;:112;;;;;;;;;;;;;;;;;;9888:15;;;;;;;;;;;:31;;;9927:21;9958:4;9964:24;9982:4;9964:9;:24::i;:::-;9989:1;9991::::0;9993:7:::1;:5;:7::i;:::-;10001:15;9888:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10042:4;10028:11;;:18;;;;;;;;;;;;;;;;;;10074:4;10057:14;;:21;;;;;;;;;;;;;;;;;;10107:4;10089:15;;:22;;;;;;;;;;;;;;;;;;10134:1;10122:9;:13;;;;10153;;;;;;;;;;;10146:29;;;10184:15;;;;;;;;;;;10201:17;10146:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2583:1;9484:743::o:0;107:98::-;160:7;187:10;180:17;;107:98;:::o;6915:335::-;7025:1;7008:19;;:5;:19;;;;7000:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7106:1;7087:21;;:7;:21;;;;7079:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7188:6;7158:11;:18;7170:5;7158:18;;;;;;;;;;;;;;;:27;7177:7;7158:27;;;;;;;;;;;;;;;:36;;;;7226:7;7210:32;;7219:5;7210:32;;;7235:6;7210:32;;;;;;:::i;:::-;;;;;;;;6915:335;;;:::o;7258:1578::-;7362:1;7346:18;;:4;:18;;;;7338:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7439:1;7425:16;;:2;:16;;;;7417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7509:1;7500:6;:10;7492:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7569:12;7584:4;7569:19;;7604:18;:24;7623:4;7604:24;;;;;;;;;;;;;;;;;;;;;;;;;7603:25;:52;;;;;7633:18;:22;7652:2;7633:22;;;;;;;;;;;;;;;;;;;;;;;;;7632:23;7603:52;7599:1152;;;7682:1;7672:7;:11;;;;7709:1;7698:8;:12;;;;7734:4;:10;7739:4;7734:10;;;;;;;;;;;;;;;;;;;;;;;;;7733:11;:24;;;;;7749:4;:8;7754:2;7749:8;;;;;;;;;;;;;;;;;;;;;;;;;7748:9;7733:24;7725:33;;;;;;7785:13;;;;;;;;;;;7777:21;;:4;:21;;;:55;;;;;7816:15;;;;;;;;;;;7802:30;;:2;:30;;;;7777:55;:82;;;;;7837:18;:22;7856:2;7837:22;;;;;;;;;;;;;;;;;;;;;;;;;7836:23;7777:82;7773:366;;;7898:33;7925:5;7898:22;7910:9;;4133:21;7898:11;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;7888:6;:43;;7880:52;;;;;;7955:15;;;;;;;;;;;7951:106;;;8021:15;8003:11;:15;8015:2;8003:15;;;;;;;;;;;;;;;;:33;7995:42;;;;;;7951:106;8112:10;8093:15;:30;;;;:::i;:::-;8075:11;:15;8087:2;8075:15;;;;;;;;;;;;;;;:48;;;;7773:366;8153:28;8184:24;8202:4;8184:9;:24::i;:::-;8153:55;;8228:6;;;;;;;;;;;8227:7;:32;;;;;8246:13;;;;;;;;;;;8238:21;;:4;:21;;;;8227:32;:47;;;;;8263:11;;;;;;;;;;;8227:47;8223:469;;;8313:40;8349:3;8313:31;8342:1;8313:24;8323:13;;;;;;;;;;;8313:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;8303:6;:50;;8295:59;;;;;;8400:1;8377:20;:24;8373:111;;;8426:38;8443:20;8426:16;:38::i;:::-;8373:111;8502:26;8531:21;8502:50;;8596:1;8575:18;:22;8571:106;;;8622:35;8635:21;8622:12;:35::i;:::-;8571:106;8223:469;;7599:1152;;;;8734:5;8724:15;;7599:1152;8763:41;8778:4;8784:2;8788:6;8796:7;8763:14;:41::i;:::-;7258:1578;;;;:::o;1244:190::-;1330:7;1363:1;1358;:6;;1366:12;1350:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1390:9;1406:1;1402;:5;;;;:::i;:::-;1390:17;;1425:1;1418:8;;;1244:190;;;;;:::o;9259:94::-;9316:12;;;;;;;;;;;:21;;:29;9338:6;9316:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9259:94;:::o;6411:253::-;6479:7;6518;;6507;:18;;6499:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6582:19;6604:10;:8;:10::i;:::-;6582:32;;6632:24;6644:11;6632:7;:11;;:24;;;;:::i;:::-;6625:31;;;6411:253;;;:::o;1442:246::-;1500:7;1529:1;1524;:6;1520:47;;;1554:1;1547:8;;;;1520:47;1577:9;1593:1;1589;:5;;;;:::i;:::-;1577:17;;1622:1;1617;1613;:5;;;;:::i;:::-;:10;1605:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1679:1;1672:8;;;1442:246;;;;;:::o;1696:132::-;1754:7;1781:39;1785:1;1788;1781:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1774:46;;1696:132;;;;:::o;8844:407::-;4828:4;4819:6;;:13;;;;;;;;;;;;;;;;;;8922:21:::1;8960:1;8946:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8922:40;;8991:4;8973;8978:1;8973:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9017:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9007:4;9012:1;9007:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9050:62;9067:4;9082:15;;;;;;;;;;;9100:11;9050:8;:62::i;:::-;9123:15;;;;;;;;;;;:66;;;9190:11;9203:1;9206:4;9220;9227:15;9123:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4843:1;4864:5:::0;4855:6;;:14;;;;;;;;;;;;;;;;;;8844:407;:::o;11000:239::-;11113:7;11108:28;;11122:14;:12;:14::i;:::-;11108:28;11147:44;11165:6;11173:9;11184:6;11147:17;:44::i;:::-;11207:7;11202:29;;11216:15;:13;:15::i;:::-;11202:29;11000:239;;;;:::o;6821:86::-;6875:1;6865:7;:11;;;;6898:1;6887:8;:12;;;;6821:86::o;13815:164::-;13857:7;13878:15;13895;13914:19;:17;:19::i;:::-;13877:56;;;;13951:20;13963:7;13951;:11;;:20;;;;:::i;:::-;13944:27;;;;13815:164;:::o;1836:189::-;1922:7;1954:1;1950;:5;1957:12;1942:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1981:9;1997:1;1993;:5;;;;:::i;:::-;1981:17;;2016:1;2009:8;;;1836:189;;;;;:::o;6676:137::-;6734:1;6723:7;;:12;:29;;;;;6751:1;6739:8;;:13;6723:29;6719:42;;;6754:7;;6719:42;6781:1;6771:7;:11;;;;6804:1;6793:8;:12;;;;6676:137;:::o;11247:495::-;11346:15;11363:23;11388:12;11402:23;11427:12;11441:13;11458:19;11469:7;11458:10;:19::i;:::-;11345:132;;;;;;;;;;;;11506:28;11526:7;11506;:15;11514:6;11506:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11488:7;:15;11496:6;11488:15;;;;;;;;;;;;;;;:46;;;;11566:39;11589:15;11566:7;:18;11574:9;11566:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11545:7;:18;11553:9;11545:18;;;;;;;;;;;;;;;:60;;;;11616:16;11626:5;11616:9;:16::i;:::-;11643:31;11655:6;11663:4;11669;11643:11;:31::i;:::-;11707:9;11690:44;;11699:6;11690:44;;;11718:15;11690:44;;;;;;:::i;:::-;;;;;;;;11247:495;;;;;;;;;:::o;13987:257::-;14038:7;14047;14067:15;14085:7;;14067:25;;14103:15;4133:21;14103:25;;14153:20;4133:21;14153:7;;:11;;:20;;;;:::i;:::-;14143:7;:30;14139:61;;;14183:7;;4133:21;14175:25;;;;;;;;14139:61;14219:7;14228;14211:25;;;;;;13987:257;;;:::o;12428:467::-;12487:7;12496;12505;12514;12523;12532;12553:23;12578:12;12592:13;12609:39;12621:7;12630;;12639:8;;12609:11;:39::i;:::-;12552:96;;;;;;12659:19;12681:10;:8;:10::i;:::-;12659:32;;12703:15;12720:23;12745:12;12761:46;12773:7;12782:4;12788:5;12795:11;12761;:46::i;:::-;12702:105;;;;;;12826:7;12835:15;12852:4;12858:15;12875:4;12881:5;12818:69;;;;;;;;;;;;;;;;;;;12428:467;;;;;;;:::o;1100:136::-;1158:7;1185:43;1189:1;1192;1185:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1178:50;;1100:136;;;;:::o;913:179::-;971:7;991:9;1007:1;1003;:5;;;;:::i;:::-;991:17;;1032:1;1027;:6;;1019:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1083:1;1076:8;;;913:179;;;;:::o;11750:211::-;11803:19;11825:10;:8;:10::i;:::-;11803:32;;11846:13;11862:22;11872:11;11862:5;:9;;:22;;;;:::i;:::-;11846:38;;11920:33;11947:5;11920:7;:22;11936:4;11920:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11895:7;:22;11911:4;11895:22;;;;;;;;;;;;;;;:58;;;;11750:211;;;:::o;11969:414::-;12093:31;12119:4;12093:7;:21;12101:12;;;;;;;;;;;12093:21;;;;;;;;;;;;;;;;:25;;:31;;;;:::i;:::-;12069:7;:21;12077:12;;;;;;;;;;;12069:21;;;;;;;;;;;;;;;:55;;;;12159:31;12185:4;12159:7;:21;12167:12;;;;;;;;;;;12159:21;;;;;;;;;;;;;;;;:25;;:31;;;;:::i;:::-;12135:7;:21;12143:12;;;;;;;;;;;12135:21;;;;;;;;;;;;;;;:55;;;;12223:12;;;;;;;;;;;12206:36;;12215:6;12206:36;;;12237:4;12206:36;;;;;;:::i;:::-;;;;;;;;12314:17;12326:4;12314:7;;:11;;:17;;;;:::i;:::-;12304:7;:27;;;;12355:20;12370:4;12355:10;;:14;;:20;;;;:::i;:::-;12342:10;:33;;;;11969:414;;;:::o;12903:419::-;12996:7;13005;13014;13034:12;13049:28;13073:3;13049:19;13061:6;13049:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13034:43;;13088:13;13104:29;13129:3;13104:20;13116:7;13104;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13088:45;;13144:23;13170:38;13202:5;13170:27;13192:4;13170:17;13182:4;13170:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;13144:64;;13285:15;13302:4;13308:5;13277:37;;;;;;;;;12903:419;;;;;;;:::o;13330:477::-;13440:7;13449;13458;13478:15;13496:24;13508:11;13496:7;:11;;:24;;;;:::i;:::-;13478:42;;13531:12;13546:21;13555:11;13546:4;:8;;:21;;;;:::i;:::-;13531:36;;13578:13;13594:22;13604:11;13594:5;:9;;:22;;;;:::i;:::-;13578:38;;13627:23;13653:38;13685:5;13653:27;13675:4;13653:17;13665:4;13653:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;13627:64;;13768:7;13777:15;13794:4;13760:39;;;;;;;;;;13330:477;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;511:84;;;;:::o;601:137::-;655:5;686:6;680:13;671:22;;702:30;726:5;702:30;:::i;:::-;661:77;;;;:::o;744:139::-;790:5;828:6;815:20;806:29;;844:33;871:5;844:33;:::i;:::-;796:87;;;;:::o;889:143::-;946:5;977:6;971:13;962:22;;993:33;1020:5;993:33;:::i;:::-;952:80;;;;:::o;1038:262::-;1097:6;1146:2;1134:9;1125:7;1121:23;1117:32;1114:2;;;1162:1;1159;1152:12;1114:2;1205:1;1230:53;1275:7;1266:6;1255:9;1251:22;1230:53;:::i;:::-;1220:63;;1176:117;1104:196;;;;:::o;1306:284::-;1376:6;1425:2;1413:9;1404:7;1400:23;1396:32;1393:2;;;1441:1;1438;1431:12;1393:2;1484:1;1509:64;1565:7;1556:6;1545:9;1541:22;1509:64;:::i;:::-;1499:74;;1455:128;1383:207;;;;:::o;1596:278::-;1663:6;1712:2;1700:9;1691:7;1687:23;1683:32;1680:2;;;1728:1;1725;1718:12;1680:2;1771:1;1796:61;1849:7;1840:6;1829:9;1825:22;1796:61;:::i;:::-;1786:71;;1742:125;1670:204;;;;:::o;1880:407::-;1948:6;1956;2005:2;1993:9;1984:7;1980:23;1976:32;1973:2;;;2021:1;2018;2011:12;1973:2;2064:1;2089:53;2134:7;2125:6;2114:9;2110:22;2089:53;:::i;:::-;2079:63;;2035:117;2191:2;2217:53;2262:7;2253:6;2242:9;2238:22;2217:53;:::i;:::-;2207:63;;2162:118;1963:324;;;;;:::o;2293:552::-;2370:6;2378;2386;2435:2;2423:9;2414:7;2410:23;2406:32;2403:2;;;2451:1;2448;2441:12;2403:2;2494:1;2519:53;2564:7;2555:6;2544:9;2540:22;2519:53;:::i;:::-;2509:63;;2465:117;2621:2;2647:53;2692:7;2683:6;2672:9;2668:22;2647:53;:::i;:::-;2637:63;;2592:118;2749:2;2775:53;2820:7;2811:6;2800:9;2796:22;2775:53;:::i;:::-;2765:63;;2720:118;2393:452;;;;;:::o;2851:407::-;2919:6;2927;2976:2;2964:9;2955:7;2951:23;2947:32;2944:2;;;2992:1;2989;2982:12;2944:2;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2934:324;;;;;:::o;3264:256::-;3320:6;3369:2;3357:9;3348:7;3344:23;3340:32;3337:2;;;3385:1;3382;3375:12;3337:2;3428:1;3453:50;3495:7;3486:6;3475:9;3471:22;3453:50;:::i;:::-;3443:60;;3399:114;3327:193;;;;:::o;3526:278::-;3593:6;3642:2;3630:9;3621:7;3617:23;3613:32;3610:2;;;3658:1;3655;3648:12;3610:2;3701:1;3726:61;3779:7;3770:6;3759:9;3755:22;3726:61;:::i;:::-;3716:71;;3672:125;3600:204;;;;:::o;3810:262::-;3869:6;3918:2;3906:9;3897:7;3893:23;3889:32;3886:2;;;3934:1;3931;3924:12;3886:2;3977:1;4002:53;4047:7;4038:6;4027:9;4023:22;4002:53;:::i;:::-;3992:63;;3948:117;3876:196;;;;:::o;4078:596::-;4166:6;4174;4182;4231:2;4219:9;4210:7;4206:23;4202:32;4199:2;;;4247:1;4244;4237:12;4199:2;4290:1;4315:64;4371:7;4362:6;4351:9;4347:22;4315:64;:::i;:::-;4305:74;;4261:128;4428:2;4454:64;4510:7;4501:6;4490:9;4486:22;4454:64;:::i;:::-;4444:74;;4399:129;4567:2;4593:64;4649:7;4640:6;4629:9;4625:22;4593:64;:::i;:::-;4583:74;;4538:129;4189:485;;;;;:::o;4680:179::-;4749:10;4770:46;4812:3;4804:6;4770:46;:::i;:::-;4848:4;4843:3;4839:14;4825:28;;4760:99;;;;:::o;4865:142::-;4968:32;4994:5;4968:32;:::i;:::-;4963:3;4956:45;4946:61;;:::o;5013:108::-;5090:24;5108:5;5090:24;:::i;:::-;5085:3;5078:37;5068:53;;:::o;5127:118::-;5214:24;5232:5;5214:24;:::i;:::-;5209:3;5202:37;5192:53;;:::o;5281:732::-;5400:3;5429:54;5477:5;5429:54;:::i;:::-;5499:86;5578:6;5573:3;5499:86;:::i;:::-;5492:93;;5609:56;5659:5;5609:56;:::i;:::-;5688:7;5719:1;5704:284;5729:6;5726:1;5723:13;5704:284;;;5805:6;5799:13;5832:63;5891:3;5876:13;5832:63;:::i;:::-;5825:70;;5918:60;5971:6;5918:60;:::i;:::-;5908:70;;5764:224;5751:1;5748;5744:9;5739:14;;5704:284;;;5708:14;6004:3;5997:10;;5405:608;;;;;;;:::o;6019:109::-;6100:21;6115:5;6100:21;:::i;:::-;6095:3;6088:34;6078:50;;:::o;6134:147::-;6229:45;6268:5;6229:45;:::i;:::-;6224:3;6217:58;6207:74;;:::o;6287:364::-;6375:3;6403:39;6436:5;6403:39;:::i;:::-;6458:71;6522:6;6517:3;6458:71;:::i;:::-;6451:78;;6538:52;6583:6;6578:3;6571:4;6564:5;6560:16;6538:52;:::i;:::-;6615:29;6637:6;6615:29;:::i;:::-;6610:3;6606:39;6599:46;;6379:272;;;;;:::o;6657:366::-;6799:3;6820:67;6884:2;6879:3;6820:67;:::i;:::-;6813:74;;6896:93;6985:3;6896:93;:::i;:::-;7014:2;7009:3;7005:12;6998:19;;6803:220;;;:::o;7029:366::-;7171:3;7192:67;7256:2;7251:3;7192:67;:::i;:::-;7185:74;;7268:93;7357:3;7268:93;:::i;:::-;7386:2;7381:3;7377:12;7370:19;;7175:220;;;:::o;7401:366::-;7543:3;7564:67;7628:2;7623:3;7564:67;:::i;:::-;7557:74;;7640:93;7729:3;7640:93;:::i;:::-;7758:2;7753:3;7749:12;7742:19;;7547:220;;;:::o;7773:366::-;7915:3;7936:67;8000:2;7995:3;7936:67;:::i;:::-;7929:74;;8012:93;8101:3;8012:93;:::i;:::-;8130:2;8125:3;8121:12;8114:19;;7919:220;;;:::o;8145:366::-;8287:3;8308:67;8372:2;8367:3;8308:67;:::i;:::-;8301:74;;8384:93;8473:3;8384:93;:::i;:::-;8502:2;8497:3;8493:12;8486:19;;8291:220;;;:::o;8517:366::-;8659:3;8680:67;8744:2;8739:3;8680:67;:::i;:::-;8673:74;;8756:93;8845:3;8756:93;:::i;:::-;8874:2;8869:3;8865:12;8858:19;;8663:220;;;:::o;8889:366::-;9031:3;9052:67;9116:2;9111:3;9052:67;:::i;:::-;9045:74;;9128:93;9217:3;9128:93;:::i;:::-;9246:2;9241:3;9237:12;9230:19;;9035:220;;;:::o;9261:366::-;9403:3;9424:67;9488:2;9483:3;9424:67;:::i;:::-;9417:74;;9500:93;9589:3;9500:93;:::i;:::-;9618:2;9613:3;9609:12;9602:19;;9407:220;;;:::o;9633:366::-;9775:3;9796:67;9860:2;9855:3;9796:67;:::i;:::-;9789:74;;9872:93;9961:3;9872:93;:::i;:::-;9990:2;9985:3;9981:12;9974:19;;9779:220;;;:::o;10005:366::-;10147:3;10168:67;10232:2;10227:3;10168:67;:::i;:::-;10161:74;;10244:93;10333:3;10244:93;:::i;:::-;10362:2;10357:3;10353:12;10346:19;;10151:220;;;:::o;10377:118::-;10464:24;10482:5;10464:24;:::i;:::-;10459:3;10452:37;10442:53;;:::o;10501:112::-;10584:22;10600:5;10584:22;:::i;:::-;10579:3;10572:35;10562:51;;:::o;10619:222::-;10712:4;10750:2;10739:9;10735:18;10727:26;;10763:71;10831:1;10820:9;10816:17;10807:6;10763:71;:::i;:::-;10717:124;;;;:::o;10847:254::-;10956:4;10994:2;10983:9;10979:18;10971:26;;11007:87;11091:1;11080:9;11076:17;11067:6;11007:87;:::i;:::-;10961:140;;;;:::o;11107:332::-;11228:4;11266:2;11255:9;11251:18;11243:26;;11279:71;11347:1;11336:9;11332:17;11323:6;11279:71;:::i;:::-;11360:72;11428:2;11417:9;11413:18;11404:6;11360:72;:::i;:::-;11233:206;;;;;:::o;11445:332::-;11566:4;11604:2;11593:9;11589:18;11581:26;;11617:71;11685:1;11674:9;11670:17;11661:6;11617:71;:::i;:::-;11698:72;11766:2;11755:9;11751:18;11742:6;11698:72;:::i;:::-;11571:206;;;;;:::o;11783:807::-;12032:4;12070:3;12059:9;12055:19;12047:27;;12084:71;12152:1;12141:9;12137:17;12128:6;12084:71;:::i;:::-;12165:72;12233:2;12222:9;12218:18;12209:6;12165:72;:::i;:::-;12247:80;12323:2;12312:9;12308:18;12299:6;12247:80;:::i;:::-;12337;12413:2;12402:9;12398:18;12389:6;12337:80;:::i;:::-;12427:73;12495:3;12484:9;12480:19;12471:6;12427:73;:::i;:::-;12510;12578:3;12567:9;12563:19;12554:6;12510:73;:::i;:::-;12037:553;;;;;;;;;:::o;12596:210::-;12683:4;12721:2;12710:9;12706:18;12698:26;;12734:65;12796:1;12785:9;12781:17;12772:6;12734:65;:::i;:::-;12688:118;;;;:::o;12812:313::-;12925:4;12963:2;12952:9;12948:18;12940:26;;13012:9;13006:4;13002:20;12998:1;12987:9;12983:17;12976:47;13040:78;13113:4;13104:6;13040:78;:::i;:::-;13032:86;;12930:195;;;;:::o;13131:419::-;13297:4;13335:2;13324:9;13320:18;13312:26;;13384:9;13378:4;13374:20;13370:1;13359:9;13355:17;13348:47;13412:131;13538:4;13412:131;:::i;:::-;13404:139;;13302:248;;;:::o;13556:419::-;13722:4;13760:2;13749:9;13745:18;13737:26;;13809:9;13803:4;13799:20;13795:1;13784:9;13780:17;13773:47;13837:131;13963:4;13837:131;:::i;:::-;13829:139;;13727:248;;;:::o;13981:419::-;14147:4;14185:2;14174:9;14170:18;14162:26;;14234:9;14228:4;14224:20;14220:1;14209:9;14205:17;14198:47;14262:131;14388:4;14262:131;:::i;:::-;14254:139;;14152:248;;;:::o;14406:419::-;14572:4;14610:2;14599:9;14595:18;14587:26;;14659:9;14653:4;14649:20;14645:1;14634:9;14630:17;14623:47;14687:131;14813:4;14687:131;:::i;:::-;14679:139;;14577:248;;;:::o;14831:419::-;14997:4;15035:2;15024:9;15020:18;15012:26;;15084:9;15078:4;15074:20;15070:1;15059:9;15055:17;15048:47;15112:131;15238:4;15112:131;:::i;:::-;15104:139;;15002:248;;;:::o;15256:419::-;15422:4;15460:2;15449:9;15445:18;15437:26;;15509:9;15503:4;15499:20;15495:1;15484:9;15480:17;15473:47;15537:131;15663:4;15537:131;:::i;:::-;15529:139;;15427:248;;;:::o;15681:419::-;15847:4;15885:2;15874:9;15870:18;15862:26;;15934:9;15928:4;15924:20;15920:1;15909:9;15905:17;15898:47;15962:131;16088:4;15962:131;:::i;:::-;15954:139;;15852:248;;;:::o;16106:419::-;16272:4;16310:2;16299:9;16295:18;16287:26;;16359:9;16353:4;16349:20;16345:1;16334:9;16330:17;16323:47;16387:131;16513:4;16387:131;:::i;:::-;16379:139;;16277:248;;;:::o;16531:419::-;16697:4;16735:2;16724:9;16720:18;16712:26;;16784:9;16778:4;16774:20;16770:1;16759:9;16755:17;16748:47;16812:131;16938:4;16812:131;:::i;:::-;16804:139;;16702:248;;;:::o;16956:419::-;17122:4;17160:2;17149:9;17145:18;17137:26;;17209:9;17203:4;17199:20;17195:1;17184:9;17180:17;17173:47;17237:131;17363:4;17237:131;:::i;:::-;17229:139;;17127:248;;;:::o;17381:222::-;17474:4;17512:2;17501:9;17497:18;17489:26;;17525:71;17593:1;17582:9;17578:17;17569:6;17525:71;:::i;:::-;17479:124;;;;:::o;17609:831::-;17872:4;17910:3;17899:9;17895:19;17887:27;;17924:71;17992:1;17981:9;17977:17;17968:6;17924:71;:::i;:::-;18005:80;18081:2;18070:9;18066:18;18057:6;18005:80;:::i;:::-;18132:9;18126:4;18122:20;18117:2;18106:9;18102:18;18095:48;18160:108;18263:4;18254:6;18160:108;:::i;:::-;18152:116;;18278:72;18346:2;18335:9;18331:18;18322:6;18278:72;:::i;:::-;18360:73;18428:3;18417:9;18413:19;18404:6;18360:73;:::i;:::-;17877:563;;;;;;;;:::o;18446:214::-;18535:4;18573:2;18562:9;18558:18;18550:26;;18586:67;18650:1;18639:9;18635:17;18626:6;18586:67;:::i;:::-;18540:120;;;;:::o;18666:132::-;18733:4;18756:3;18748:11;;18786:4;18781:3;18777:14;18769:22;;18738:60;;;:::o;18804:114::-;18871:6;18905:5;18899:12;18889:22;;18878:40;;;:::o;18924:99::-;18976:6;19010:5;19004:12;18994:22;;18983:40;;;:::o;19029:113::-;19099:4;19131;19126:3;19122:14;19114:22;;19104:38;;;:::o;19148:184::-;19247:11;19281:6;19276:3;19269:19;19321:4;19316:3;19312:14;19297:29;;19259:73;;;;:::o;19338:169::-;19422:11;19456:6;19451:3;19444:19;19496:4;19491:3;19487:14;19472:29;;19434:73;;;;:::o;19513:305::-;19553:3;19572:20;19590:1;19572:20;:::i;:::-;19567:25;;19606:20;19624:1;19606:20;:::i;:::-;19601:25;;19760:1;19692:66;19688:74;19685:1;19682:81;19679:2;;;19766:18;;:::i;:::-;19679:2;19810:1;19807;19803:9;19796:16;;19557:261;;;;:::o;19824:185::-;19864:1;19881:20;19899:1;19881:20;:::i;:::-;19876:25;;19915:20;19933:1;19915:20;:::i;:::-;19910:25;;19954:1;19944:2;;19959:18;;:::i;:::-;19944:2;20001:1;19998;19994:9;19989:14;;19866:143;;;;:::o;20015:348::-;20055:7;20078:20;20096:1;20078:20;:::i;:::-;20073:25;;20112:20;20130:1;20112:20;:::i;:::-;20107:25;;20300:1;20232:66;20228:74;20225:1;20222:81;20217:1;20210:9;20203:17;20199:105;20196:2;;;20307:18;;:::i;:::-;20196:2;20355:1;20352;20348:9;20337:20;;20063:300;;;;:::o;20369:191::-;20409:4;20429:20;20447:1;20429:20;:::i;:::-;20424:25;;20463:20;20481:1;20463:20;:::i;:::-;20458:25;;20502:1;20499;20496:8;20493:2;;;20507:18;;:::i;:::-;20493:2;20552:1;20549;20545:9;20537:17;;20414:146;;;;:::o;20566:96::-;20603:7;20632:24;20650:5;20632:24;:::i;:::-;20621:35;;20611:51;;;:::o;20668:104::-;20713:7;20742:24;20760:5;20742:24;:::i;:::-;20731:35;;20721:51;;;:::o;20778:90::-;20812:7;20855:5;20848:13;20841:21;20830:32;;20820:48;;;:::o;20874:126::-;20911:7;20951:42;20944:5;20940:54;20929:65;;20919:81;;;:::o;21006:77::-;21043:7;21072:5;21061:16;;21051:32;;;:::o;21089:86::-;21124:7;21164:4;21157:5;21153:16;21142:27;;21132:43;;;:::o;21181:121::-;21239:9;21272:24;21290:5;21272:24;:::i;:::-;21259:37;;21249:53;;;:::o;21308:307::-;21376:1;21386:113;21400:6;21397:1;21394:13;21386:113;;;21485:1;21480:3;21476:11;21470:18;21466:1;21461:3;21457:11;21450:39;21422:2;21419:1;21415:10;21410:15;;21386:113;;;21517:6;21514:1;21511:13;21508:2;;;21597:1;21588:6;21583:3;21579:16;21572:27;21508:2;21357:258;;;;:::o;21621:180::-;21669:77;21666:1;21659:88;21766:4;21763:1;21756:15;21790:4;21787:1;21780:15;21807:180;21855:77;21852:1;21845:88;21952:4;21949:1;21942:15;21976:4;21973:1;21966:15;21993:102;22034:6;22085:2;22081:7;22076:2;22069:5;22065:14;22061:28;22051:38;;22041:54;;;:::o;22101:222::-;22241:34;22237:1;22229:6;22225:14;22218:58;22310:5;22305:2;22297:6;22293:15;22286:30;22207:116;:::o;22329:229::-;22469:34;22465:1;22457:6;22453:14;22446:58;22538:12;22533:2;22525:6;22521:15;22514:37;22435:123;:::o;22564:221::-;22704:34;22700:1;22692:6;22688:14;22681:58;22773:4;22768:2;22760:6;22756:15;22749:29;22670:115;:::o;22791:177::-;22931:29;22927:1;22919:6;22915:14;22908:53;22897:71;:::o;22974:179::-;23114:31;23110:1;23102:6;23098:14;23091:55;23080:73;:::o;23159:220::-;23299:34;23295:1;23287:6;23283:14;23276:58;23368:3;23363:2;23355:6;23351:15;23344:28;23265:114;:::o;23385:182::-;23525:34;23521:1;23513:6;23509:14;23502:58;23491:76;:::o;23573:228::-;23713:34;23709:1;23701:6;23697:14;23690:58;23782:11;23777:2;23769:6;23765:15;23758:36;23679:122;:::o;23807:224::-;23947:34;23943:1;23935:6;23931:14;23924:58;24016:7;24011:2;24003:6;23999:15;23992:32;23913:118;:::o;24037:223::-;24177:34;24173:1;24165:6;24161:14;24154:58;24246:6;24241:2;24233:6;24229:15;24222:31;24143:117;:::o;24266:122::-;24339:24;24357:5;24339:24;:::i;:::-;24332:5;24329:35;24319:2;;24378:1;24375;24368:12;24319:2;24309:79;:::o;24394:138::-;24475:32;24501:5;24475:32;:::i;:::-;24468:5;24465:43;24455:2;;24522:1;24519;24512:12;24455:2;24445:87;:::o;24538:116::-;24608:21;24623:5;24608:21;:::i;:::-;24601:5;24598:32;24588:2;;24644:1;24641;24634:12;24588:2;24578:76;:::o;24660:122::-;24733:24;24751:5;24733:24;:::i;:::-;24726:5;24723:35;24713:2;;24772:1;24769;24762:12;24713:2;24703:79;:::o

Swarm Source

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