ETH Price: $2,359.83 (+0.30%)

Token

Kasei Inu (KASEI)
 

Overview

Max Total Supply

1,000,000,000,000 KASEI

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,496,967,265.623314383 KASEI

Value
$0.00
0xc0bedf14ae86d023dd3b392b3eac0c109c3eacce
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:
KASEI

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*

Kasei Inu (KASEI)

Website: https://kaseiinu.space
Telegram: https://t.me/kaseiInuETH

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract KASEI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Kasei Inu";
    string private constant _symbol = "KASEI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisReward = 2;
    uint256 private _marsFee = 4;
    uint256 private _previousredisReward = _redisReward;
    uint256 private _previousmarsFee = _marsFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private cooldown;
    address payable private _marsAddress;
    address payable private _marketingAddress;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256 public _maxTxAmount = 5000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 50000000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address payable addr1, address payable addr2) {
        _marsAddress = addr1;
        _marketingAddress = addr2;
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marsAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

    function removeAllFee() private {
        if (_redisReward == 0 && _marsFee == 0) return;
    
        _previousredisReward = _redisReward;
        _previousmarsFee = _marsFee;
        
        _redisReward = 0;
        _marsFee = 0;
    }

    function restoreAllFee() private {
        _redisReward = _previousredisReward;
        _marsFee = _previousmarsFee;
    }

    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()) {
            
            //Trade start check
            if (from == uniswapV2Pair || to == uniswapV2Pair) { 
                require(tradingOpen, "Trading is not enabled yet");
            }
              
            require(amount <= _maxTxAmount);
            require(!bots[from] && !bots[to]);
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marsAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }

    function launchProject() external onlyOwner() {
        require(!tradingOpen, "trading is already started");
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _marsAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _marsAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

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

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

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

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

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisReward, _marsFee);
        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 redisReward,
        uint256 marsFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisReward).div(100);
        uint256 tTeam = tAmount.mul(marsFee).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);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
    
    function setRedisRewardPercent(uint256 redisReward) external onlyOwner() {
        require(redisReward >= 0 && redisReward <= 25, 'redisReward should be in 0 - 25');
        _redisReward = redisReward;
    }

    function setMarsRewardPercent(uint256 marsFee) external onlyOwner() {
        require(marsFee >= 0 && marsFee <= 25, 'marsFee should be in 0 - 25');
        _marsFee = marsFee;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 newValue) external {
        require(_msgSender() == _marsAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        _swapTokensAtAmount = newValue;
    }
 
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","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":"_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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"launchProject","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marsFee","type":"uint256"}],"name":"setMarsRewardPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisReward","type":"uint256"}],"name":"setRedisRewardPercent","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":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200087c565b6000196200002c9190620007ef565b60065560026008556004600955600854600a55600954600b556000601160156101000a81548160ff0219169083151502179055506001601160166101000a81548160ff021916908315150217905550674563918244f4000060125566b1a2bc2ec500006013553480156200009f57600080fd5b5060405162003e6c38038062003e6c8339818101604052810190620000c5919062000742565b6000620000d7620006b760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200020e620006b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ed57600080fd5b505afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000328919062000716565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038b57600080fd5b505afa158015620003a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c6919062000716565b6040518363ffffffff1660e01b8152600401620003e5929190620007a5565b602060405180830381600087803b1580156200040057600080fd5b505af115801562000415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043b919062000716565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000491620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200063e620006b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006a69190620007d2565b60405180910390a350505062000946565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006f98162000912565b92915050565b60008151905062000710816200092c565b92915050565b6000602082840312156200072957600080fd5b60006200073984828501620006e8565b91505092915050565b600080604083850312156200075657600080fd5b60006200076685828601620006ff565b92505060206200077985828601620006ff565b9150509250929050565b6200078e816200082a565b82525050565b6200079f8162000872565b82525050565b6000604082019050620007bc600083018562000783565b620007cb602083018462000783565b9392505050565b6000602082019050620007e9600083018462000794565b92915050565b6000620007fc8262000872565b9150620008098362000872565b9250828210156200081f576200081e620008b4565b5b828203905092915050565b6000620008378262000852565b9050919050565b60006200084b8262000852565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008898262000872565b9150620008968362000872565b925082620008a957620008a8620008e3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200091d816200082a565b81146200092957600080fd5b50565b62000937816200083e565b81146200094357600080fd5b50565b61351680620009566000396000f3fe60806040526004361061014e5760003560e01c806370a08231116100b657806398a5c3151161006f57806398a5c31514610466578063a9059cbb1461048f578063c3c8cd80146104cc578063c68ece1d146104e3578063d543dbeb146104fa578063dd62ed3e1461052357610155565b806370a0823114610368578063715018a6146103a55780637d1db4a5146103bc578063800f47e6146103e75780638da5cb5b1461041057806395d89b411461043b57610155565b80632fd689e3116101085780632fd689e31461027e578063313ce567146102a95780633353f4d5146102d457806349bd5a5e146102fd5780636b999053146103285780636fc3eaec1461035157610155565b8062b8cf2a1461015a57806306fdde0314610183578063095ea7b3146101ae5780631694505e146101eb57806318160ddd1461021657806323b872dd1461024157610155565b3661015557005b600080fd5b34801561016657600080fd5b50610181600480360381019061017c9190612782565b610560565b005b34801561018f57600080fd5b506101986106b0565b6040516101a59190612b3f565b60405180910390f35b3480156101ba57600080fd5b506101d560048036038101906101d09190612746565b6106ed565b6040516101e29190612b09565b60405180910390f35b3480156101f757600080fd5b5061020061070b565b60405161020d9190612b24565b60405180910390f35b34801561022257600080fd5b5061022b610731565b6040516102389190612d21565b60405180910390f35b34801561024d57600080fd5b50610268600480360381019061026391906126f7565b610742565b6040516102759190612b09565b60405180910390f35b34801561028a57600080fd5b5061029361081b565b6040516102a09190612d21565b60405180910390f35b3480156102b557600080fd5b506102be610821565b6040516102cb9190612d96565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f691906127c3565b61082a565b005b34801561030957600080fd5b5061031261091a565b60405161031f9190612aee565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612669565b610940565b005b34801561035d57600080fd5b50610366610a30565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612669565b610b01565b60405161039c9190612d21565b60405180910390f35b3480156103b157600080fd5b506103ba610b52565b005b3480156103c857600080fd5b506103d1610ca5565b6040516103de9190612d21565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906127c3565b610cab565b005b34801561041c57600080fd5b50610425610d9b565b6040516104329190612aee565b60405180910390f35b34801561044757600080fd5b50610450610dc4565b60405161045d9190612b3f565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906127c3565b610e01565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612746565b610f0f565b6040516104c39190612b09565b60405180910390f35b3480156104d857600080fd5b506104e1610f2d565b005b3480156104ef57600080fd5b506104f8611006565b005b34801561050657600080fd5b50610521600480360381019061051c91906127c3565b611108565b005b34801561052f57600080fd5b5061054a600480360381019061054591906126bb565b611251565b6040516105579190612d21565b60405180910390f35b6105686112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec90612c81565b60405180910390fd5b60005b81518110156106ac576001600c6000848481518110610640577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106a49061305b565b9150506105f8565b5050565b60606040518060400160405280600981526020017f4b6173656920496e750000000000000000000000000000000000000000000000815250905090565b60006107016106fa6112d8565b84846112e0565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600061074f8484846114ab565b6108108461075b6112d8565b61080b856040518060600160405280602881526020016134b960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c16112d8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a39092919063ffffffff16565b6112e0565b600190509392505050565b60135481565b60006009905090565b6108326112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690612c81565b60405180910390fd5b600081101580156108d1575060198111155b610910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090790612c41565b60405180910390fd5b8060098190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109486112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90612c81565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a716112d8565b73ffffffffffffffffffffffffffffffffffffffff161480610ae75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acf6112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b610af057600080fd5b6000479050610afe81611a07565b50565b6000610b4b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b02565b9050919050565b610b5a6112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90612c81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b610cb36112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3790612c81565b60405180910390fd5b60008110158015610d52575060198111155b610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890612d01565b60405180910390fd5b8060088190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4b41534549000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e426112d8565b73ffffffffffffffffffffffffffffffffffffffff161480610eb85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea06112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b80610efc5750610ec6610d9b565b73ffffffffffffffffffffffffffffffffffffffff16610ee46112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b610f0557600080fd5b8060138190555050565b6000610f23610f1c6112d8565b84846114ab565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6e6112d8565b73ffffffffffffffffffffffffffffffffffffffff161480610fe45750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fcc6112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b610fed57600080fd5b6000610ff830610b01565b905061100381611b70565b50565b61100e6112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290612c81565b60405180910390fd5b601160149054906101000a900460ff16156110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612b81565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b6111106112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612c81565b60405180910390fd5b600081116111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790612c21565b60405180910390fd5b61120f606461120183683635c9adc5dea00000611e6a90919063ffffffff16565b611ee590919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012546040516112469190612d21565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612ce1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612be1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161149e9190612d21565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612cc1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290612b61565b60405180910390fd5b600081116115ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c590612ca1565b60405180910390fd5b6115d6610d9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116445750611614610d9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118e057601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806116f25750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561174757601160149054906101000a900460ff16611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d90612ba1565b60405180910390fd5b5b60125481111561175657600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117fa5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61180357600080fd5b600061180e30610b01565b90506000601354821015905060125482106118295760125491505b8080156118435750601160159054906101000a900460ff16155b801561189d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118b55750601160169054906101000a900460ff165b156118dd576118c382611b70565b600047905060008111156118db576118da47611a07565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119875750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561199157600090505b61199d84848484611f2f565b50505050565b60008383111582906119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e29190612b3f565b60405180910390fd5b50600083856119fa9190612f38565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a57600284611ee590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a82573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ad3600284611ee590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611afe573d6000803e3d6000fd5b5050565b6000600654821115611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090612bc1565b60405180910390fd5b6000611b53611f5c565b9050611b688184611ee590919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611bce577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611bfc5781602001602082028036833780820191505090505b5090503081600081518110611c3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611cdc57600080fd5b505afa158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d149190612692565b81600181518110611d4e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611db530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e0565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e19959493929190612d3c565b600060405180830381600087803b158015611e3357600080fd5b505af1158015611e47573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611e7d5760009050611edf565b60008284611e8b9190612ede565b9050828482611e9a9190612ead565b14611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed190612c61565b60405180910390fd5b809150505b92915050565b6000611f2783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f87565b905092915050565b80611f3d57611f3c611fea565b5b611f4884848461202d565b80611f5657611f556121f8565b5b50505050565b6000806000611f6961220c565b91509150611f808183611ee590919063ffffffff16565b9250505090565b60008083118290611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc59190612b3f565b60405180910390fd5b5060008385611fdd9190612ead565b9050809150509392505050565b6000600854148015611ffe57506000600954145b156120085761202b565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b60008060008060008061203f8761226e565b95509550955095509550955061209d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217e8161237e565b612188848361243b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121e59190612d21565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b600080600060065490506000683635c9adc5dea000009050612242683635c9adc5dea00000600654611ee590919063ffffffff16565b82101561226157600654683635c9adc5dea0000093509350505061226a565b81819350935050505b9091565b600080600080600080600080600061228b8a600854600954612475565b925092509250600061229b611f5c565b905060008060006122ae8e87878761250b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061231883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a3565b905092915050565b600080828461232f9190612e57565b905083811015612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90612c01565b60405180910390fd5b8091505092915050565b6000612388611f5c565b9050600061239f8284611e6a90919063ffffffff16565b90506123f381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612450826006546122d690919063ffffffff16565b60068190555061246b8160075461232090919063ffffffff16565b6007819055505050565b6000806000806124a16064612493888a611e6a90919063ffffffff16565b611ee590919063ffffffff16565b905060006124cb60646124bd888b611e6a90919063ffffffff16565b611ee590919063ffffffff16565b905060006124f4826124e6858c6122d690919063ffffffff16565b6122d690919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806125248589611e6a90919063ffffffff16565b9050600061253b8689611e6a90919063ffffffff16565b905060006125528789611e6a90919063ffffffff16565b9050600061257b8261256d85876122d690919063ffffffff16565b6122d690919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006125a76125a284612dd6565b612db1565b905080838252602082019050828560208602820111156125c657600080fd5b60005b858110156125f657816125dc8882612600565b8452602084019350602083019250506001810190506125c9565b5050509392505050565b60008135905061260f8161348a565b92915050565b6000815190506126248161348a565b92915050565b600082601f83011261263b57600080fd5b813561264b848260208601612594565b91505092915050565b600081359050612663816134a1565b92915050565b60006020828403121561267b57600080fd5b600061268984828501612600565b91505092915050565b6000602082840312156126a457600080fd5b60006126b284828501612615565b91505092915050565b600080604083850312156126ce57600080fd5b60006126dc85828601612600565b92505060206126ed85828601612600565b9150509250929050565b60008060006060848603121561270c57600080fd5b600061271a86828701612600565b935050602061272b86828701612600565b925050604061273c86828701612654565b9150509250925092565b6000806040838503121561275957600080fd5b600061276785828601612600565b925050602061277885828601612654565b9150509250929050565b60006020828403121561279457600080fd5b600082013567ffffffffffffffff8111156127ae57600080fd5b6127ba8482850161262a565b91505092915050565b6000602082840312156127d557600080fd5b60006127e384828501612654565b91505092915050565b60006127f88383612804565b60208301905092915050565b61280d81612f6c565b82525050565b61281c81612f6c565b82525050565b600061282d82612e12565b6128378185612e35565b935061284283612e02565b8060005b8381101561287357815161285a88826127ec565b975061286583612e28565b925050600181019050612846565b5085935050505092915050565b61288981612f7e565b82525050565b61289881612fc1565b82525050565b6128a781612fe5565b82525050565b60006128b882612e1d565b6128c28185612e46565b93506128d2818560208601612ff7565b6128db81613131565b840191505092915050565b60006128f3602383612e46565b91506128fe82613142565b604082019050919050565b6000612916601a83612e46565b915061292182613191565b602082019050919050565b6000612939601a83612e46565b9150612944826131ba565b602082019050919050565b600061295c602a83612e46565b9150612967826131e3565b604082019050919050565b600061297f602283612e46565b915061298a82613232565b604082019050919050565b60006129a2601b83612e46565b91506129ad82613281565b602082019050919050565b60006129c5601d83612e46565b91506129d0826132aa565b602082019050919050565b60006129e8601b83612e46565b91506129f3826132d3565b602082019050919050565b6000612a0b602183612e46565b9150612a16826132fc565b604082019050919050565b6000612a2e602083612e46565b9150612a398261334b565b602082019050919050565b6000612a51602983612e46565b9150612a5c82613374565b604082019050919050565b6000612a74602583612e46565b9150612a7f826133c3565b604082019050919050565b6000612a97602483612e46565b9150612aa282613412565b604082019050919050565b6000612aba601f83612e46565b9150612ac582613461565b602082019050919050565b612ad981612faa565b82525050565b612ae881612fb4565b82525050565b6000602082019050612b036000830184612813565b92915050565b6000602082019050612b1e6000830184612880565b92915050565b6000602082019050612b39600083018461288f565b92915050565b60006020820190508181036000830152612b5981846128ad565b905092915050565b60006020820190508181036000830152612b7a816128e6565b9050919050565b60006020820190508181036000830152612b9a81612909565b9050919050565b60006020820190508181036000830152612bba8161292c565b9050919050565b60006020820190508181036000830152612bda8161294f565b9050919050565b60006020820190508181036000830152612bfa81612972565b9050919050565b60006020820190508181036000830152612c1a81612995565b9050919050565b60006020820190508181036000830152612c3a816129b8565b9050919050565b60006020820190508181036000830152612c5a816129db565b9050919050565b60006020820190508181036000830152612c7a816129fe565b9050919050565b60006020820190508181036000830152612c9a81612a21565b9050919050565b60006020820190508181036000830152612cba81612a44565b9050919050565b60006020820190508181036000830152612cda81612a67565b9050919050565b60006020820190508181036000830152612cfa81612a8a565b9050919050565b60006020820190508181036000830152612d1a81612aad565b9050919050565b6000602082019050612d366000830184612ad0565b92915050565b600060a082019050612d516000830188612ad0565b612d5e602083018761289e565b8181036040830152612d708186612822565b9050612d7f6060830185612813565b612d8c6080830184612ad0565b9695505050505050565b6000602082019050612dab6000830184612adf565b92915050565b6000612dbb612dcc565b9050612dc7828261302a565b919050565b6000604051905090565b600067ffffffffffffffff821115612df157612df0613102565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612e6282612faa565b9150612e6d83612faa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ea257612ea16130a4565b5b828201905092915050565b6000612eb882612faa565b9150612ec383612faa565b925082612ed357612ed26130d3565b5b828204905092915050565b6000612ee982612faa565b9150612ef483612faa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f2d57612f2c6130a4565b5b828202905092915050565b6000612f4382612faa565b9150612f4e83612faa565b925082821015612f6157612f606130a4565b5b828203905092915050565b6000612f7782612f8a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612fcc82612fd3565b9050919050565b6000612fde82612f8a565b9050919050565b6000612ff082612faa565b9050919050565b60005b83811015613015578082015181840152602081019050612ffa565b83811115613024576000848401525b50505050565b61303382613131565b810181811067ffffffffffffffff8211171561305257613051613102565b5b80604052505050565b600061306682612faa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613099576130986130a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c72656164792073746172746564000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f6d6172734665652073686f756c6420626520696e2030202d2032350000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f72656469735265776172642073686f756c6420626520696e2030202d20323500600082015250565b61349381612f6c565b811461349e57600080fd5b50565b6134aa81612faa565b81146134b557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220900bfabe5e22a3d141f769e18947eb5ed5f8c1b337a6e2c473d6100bcf69045964736f6c63430008040033000000000000000000000000e2bccdf5f2e2b74c23be4d0c89e245e8f1d37077000000000000000000000000ebe16752d84fe0a30aa062757cc53878dda54291

Deployed Bytecode

0x60806040526004361061014e5760003560e01c806370a08231116100b657806398a5c3151161006f57806398a5c31514610466578063a9059cbb1461048f578063c3c8cd80146104cc578063c68ece1d146104e3578063d543dbeb146104fa578063dd62ed3e1461052357610155565b806370a0823114610368578063715018a6146103a55780637d1db4a5146103bc578063800f47e6146103e75780638da5cb5b1461041057806395d89b411461043b57610155565b80632fd689e3116101085780632fd689e31461027e578063313ce567146102a95780633353f4d5146102d457806349bd5a5e146102fd5780636b999053146103285780636fc3eaec1461035157610155565b8062b8cf2a1461015a57806306fdde0314610183578063095ea7b3146101ae5780631694505e146101eb57806318160ddd1461021657806323b872dd1461024157610155565b3661015557005b600080fd5b34801561016657600080fd5b50610181600480360381019061017c9190612782565b610560565b005b34801561018f57600080fd5b506101986106b0565b6040516101a59190612b3f565b60405180910390f35b3480156101ba57600080fd5b506101d560048036038101906101d09190612746565b6106ed565b6040516101e29190612b09565b60405180910390f35b3480156101f757600080fd5b5061020061070b565b60405161020d9190612b24565b60405180910390f35b34801561022257600080fd5b5061022b610731565b6040516102389190612d21565b60405180910390f35b34801561024d57600080fd5b50610268600480360381019061026391906126f7565b610742565b6040516102759190612b09565b60405180910390f35b34801561028a57600080fd5b5061029361081b565b6040516102a09190612d21565b60405180910390f35b3480156102b557600080fd5b506102be610821565b6040516102cb9190612d96565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f691906127c3565b61082a565b005b34801561030957600080fd5b5061031261091a565b60405161031f9190612aee565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612669565b610940565b005b34801561035d57600080fd5b50610366610a30565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612669565b610b01565b60405161039c9190612d21565b60405180910390f35b3480156103b157600080fd5b506103ba610b52565b005b3480156103c857600080fd5b506103d1610ca5565b6040516103de9190612d21565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906127c3565b610cab565b005b34801561041c57600080fd5b50610425610d9b565b6040516104329190612aee565b60405180910390f35b34801561044757600080fd5b50610450610dc4565b60405161045d9190612b3f565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906127c3565b610e01565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612746565b610f0f565b6040516104c39190612b09565b60405180910390f35b3480156104d857600080fd5b506104e1610f2d565b005b3480156104ef57600080fd5b506104f8611006565b005b34801561050657600080fd5b50610521600480360381019061051c91906127c3565b611108565b005b34801561052f57600080fd5b5061054a600480360381019061054591906126bb565b611251565b6040516105579190612d21565b60405180910390f35b6105686112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec90612c81565b60405180910390fd5b60005b81518110156106ac576001600c6000848481518110610640577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106a49061305b565b9150506105f8565b5050565b60606040518060400160405280600981526020017f4b6173656920496e750000000000000000000000000000000000000000000000815250905090565b60006107016106fa6112d8565b84846112e0565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b600061074f8484846114ab565b6108108461075b6112d8565b61080b856040518060600160405280602881526020016134b960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c16112d8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a39092919063ffffffff16565b6112e0565b600190509392505050565b60135481565b60006009905090565b6108326112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690612c81565b60405180910390fd5b600081101580156108d1575060198111155b610910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090790612c41565b60405180910390fd5b8060098190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109486112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc90612c81565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a716112d8565b73ffffffffffffffffffffffffffffffffffffffff161480610ae75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acf6112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b610af057600080fd5b6000479050610afe81611a07565b50565b6000610b4b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b02565b9050919050565b610b5a6112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90612c81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b610cb36112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3790612c81565b60405180910390fd5b60008110158015610d52575060198111155b610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890612d01565b60405180910390fd5b8060088190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4b41534549000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e426112d8565b73ffffffffffffffffffffffffffffffffffffffff161480610eb85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea06112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b80610efc5750610ec6610d9b565b73ffffffffffffffffffffffffffffffffffffffff16610ee46112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b610f0557600080fd5b8060138190555050565b6000610f23610f1c6112d8565b84846114ab565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f6e6112d8565b73ffffffffffffffffffffffffffffffffffffffff161480610fe45750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fcc6112d8565b73ffffffffffffffffffffffffffffffffffffffff16145b610fed57600080fd5b6000610ff830610b01565b905061100381611b70565b50565b61100e6112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290612c81565b60405180910390fd5b601160149054906101000a900460ff16156110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612b81565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b6111106112d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119490612c81565b60405180910390fd5b600081116111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790612c21565b60405180910390fd5b61120f606461120183683635c9adc5dea00000611e6a90919063ffffffff16565b611ee590919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012546040516112469190612d21565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612ce1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612be1565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161149e9190612d21565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612cc1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158290612b61565b60405180910390fd5b600081116115ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c590612ca1565b60405180910390fd5b6115d6610d9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116445750611614610d9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118e057601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806116f25750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561174757601160149054906101000a900460ff16611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d90612ba1565b60405180910390fd5b5b60125481111561175657600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117fa5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61180357600080fd5b600061180e30610b01565b90506000601354821015905060125482106118295760125491505b8080156118435750601160159054906101000a900460ff16155b801561189d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118b55750601160169054906101000a900460ff165b156118dd576118c382611b70565b600047905060008111156118db576118da47611a07565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119875750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561199157600090505b61199d84848484611f2f565b50505050565b60008383111582906119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e29190612b3f565b60405180910390fd5b50600083856119fa9190612f38565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a57600284611ee590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a82573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ad3600284611ee590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611afe573d6000803e3d6000fd5b5050565b6000600654821115611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090612bc1565b60405180910390fd5b6000611b53611f5c565b9050611b688184611ee590919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611bce577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611bfc5781602001602082028036833780820191505090505b5090503081600081518110611c3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611cdc57600080fd5b505afa158015611cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d149190612692565b81600181518110611d4e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611db530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e0565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e19959493929190612d3c565b600060405180830381600087803b158015611e3357600080fd5b505af1158015611e47573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611e7d5760009050611edf565b60008284611e8b9190612ede565b9050828482611e9a9190612ead565b14611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed190612c61565b60405180910390fd5b809150505b92915050565b6000611f2783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f87565b905092915050565b80611f3d57611f3c611fea565b5b611f4884848461202d565b80611f5657611f556121f8565b5b50505050565b6000806000611f6961220c565b91509150611f808183611ee590919063ffffffff16565b9250505090565b60008083118290611fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc59190612b3f565b60405180910390fd5b5060008385611fdd9190612ead565b9050809150509392505050565b6000600854148015611ffe57506000600954145b156120085761202b565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b60008060008060008061203f8761226e565b95509550955095509550955061209d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217e8161237e565b612188848361243b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121e59190612d21565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b600080600060065490506000683635c9adc5dea000009050612242683635c9adc5dea00000600654611ee590919063ffffffff16565b82101561226157600654683635c9adc5dea0000093509350505061226a565b81819350935050505b9091565b600080600080600080600080600061228b8a600854600954612475565b925092509250600061229b611f5c565b905060008060006122ae8e87878761250b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061231883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a3565b905092915050565b600080828461232f9190612e57565b905083811015612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90612c01565b60405180910390fd5b8091505092915050565b6000612388611f5c565b9050600061239f8284611e6a90919063ffffffff16565b90506123f381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612450826006546122d690919063ffffffff16565b60068190555061246b8160075461232090919063ffffffff16565b6007819055505050565b6000806000806124a16064612493888a611e6a90919063ffffffff16565b611ee590919063ffffffff16565b905060006124cb60646124bd888b611e6a90919063ffffffff16565b611ee590919063ffffffff16565b905060006124f4826124e6858c6122d690919063ffffffff16565b6122d690919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806125248589611e6a90919063ffffffff16565b9050600061253b8689611e6a90919063ffffffff16565b905060006125528789611e6a90919063ffffffff16565b9050600061257b8261256d85876122d690919063ffffffff16565b6122d690919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006125a76125a284612dd6565b612db1565b905080838252602082019050828560208602820111156125c657600080fd5b60005b858110156125f657816125dc8882612600565b8452602084019350602083019250506001810190506125c9565b5050509392505050565b60008135905061260f8161348a565b92915050565b6000815190506126248161348a565b92915050565b600082601f83011261263b57600080fd5b813561264b848260208601612594565b91505092915050565b600081359050612663816134a1565b92915050565b60006020828403121561267b57600080fd5b600061268984828501612600565b91505092915050565b6000602082840312156126a457600080fd5b60006126b284828501612615565b91505092915050565b600080604083850312156126ce57600080fd5b60006126dc85828601612600565b92505060206126ed85828601612600565b9150509250929050565b60008060006060848603121561270c57600080fd5b600061271a86828701612600565b935050602061272b86828701612600565b925050604061273c86828701612654565b9150509250925092565b6000806040838503121561275957600080fd5b600061276785828601612600565b925050602061277885828601612654565b9150509250929050565b60006020828403121561279457600080fd5b600082013567ffffffffffffffff8111156127ae57600080fd5b6127ba8482850161262a565b91505092915050565b6000602082840312156127d557600080fd5b60006127e384828501612654565b91505092915050565b60006127f88383612804565b60208301905092915050565b61280d81612f6c565b82525050565b61281c81612f6c565b82525050565b600061282d82612e12565b6128378185612e35565b935061284283612e02565b8060005b8381101561287357815161285a88826127ec565b975061286583612e28565b925050600181019050612846565b5085935050505092915050565b61288981612f7e565b82525050565b61289881612fc1565b82525050565b6128a781612fe5565b82525050565b60006128b882612e1d565b6128c28185612e46565b93506128d2818560208601612ff7565b6128db81613131565b840191505092915050565b60006128f3602383612e46565b91506128fe82613142565b604082019050919050565b6000612916601a83612e46565b915061292182613191565b602082019050919050565b6000612939601a83612e46565b9150612944826131ba565b602082019050919050565b600061295c602a83612e46565b9150612967826131e3565b604082019050919050565b600061297f602283612e46565b915061298a82613232565b604082019050919050565b60006129a2601b83612e46565b91506129ad82613281565b602082019050919050565b60006129c5601d83612e46565b91506129d0826132aa565b602082019050919050565b60006129e8601b83612e46565b91506129f3826132d3565b602082019050919050565b6000612a0b602183612e46565b9150612a16826132fc565b604082019050919050565b6000612a2e602083612e46565b9150612a398261334b565b602082019050919050565b6000612a51602983612e46565b9150612a5c82613374565b604082019050919050565b6000612a74602583612e46565b9150612a7f826133c3565b604082019050919050565b6000612a97602483612e46565b9150612aa282613412565b604082019050919050565b6000612aba601f83612e46565b9150612ac582613461565b602082019050919050565b612ad981612faa565b82525050565b612ae881612fb4565b82525050565b6000602082019050612b036000830184612813565b92915050565b6000602082019050612b1e6000830184612880565b92915050565b6000602082019050612b39600083018461288f565b92915050565b60006020820190508181036000830152612b5981846128ad565b905092915050565b60006020820190508181036000830152612b7a816128e6565b9050919050565b60006020820190508181036000830152612b9a81612909565b9050919050565b60006020820190508181036000830152612bba8161292c565b9050919050565b60006020820190508181036000830152612bda8161294f565b9050919050565b60006020820190508181036000830152612bfa81612972565b9050919050565b60006020820190508181036000830152612c1a81612995565b9050919050565b60006020820190508181036000830152612c3a816129b8565b9050919050565b60006020820190508181036000830152612c5a816129db565b9050919050565b60006020820190508181036000830152612c7a816129fe565b9050919050565b60006020820190508181036000830152612c9a81612a21565b9050919050565b60006020820190508181036000830152612cba81612a44565b9050919050565b60006020820190508181036000830152612cda81612a67565b9050919050565b60006020820190508181036000830152612cfa81612a8a565b9050919050565b60006020820190508181036000830152612d1a81612aad565b9050919050565b6000602082019050612d366000830184612ad0565b92915050565b600060a082019050612d516000830188612ad0565b612d5e602083018761289e565b8181036040830152612d708186612822565b9050612d7f6060830185612813565b612d8c6080830184612ad0565b9695505050505050565b6000602082019050612dab6000830184612adf565b92915050565b6000612dbb612dcc565b9050612dc7828261302a565b919050565b6000604051905090565b600067ffffffffffffffff821115612df157612df0613102565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612e6282612faa565b9150612e6d83612faa565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ea257612ea16130a4565b5b828201905092915050565b6000612eb882612faa565b9150612ec383612faa565b925082612ed357612ed26130d3565b5b828204905092915050565b6000612ee982612faa565b9150612ef483612faa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f2d57612f2c6130a4565b5b828202905092915050565b6000612f4382612faa565b9150612f4e83612faa565b925082821015612f6157612f606130a4565b5b828203905092915050565b6000612f7782612f8a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612fcc82612fd3565b9050919050565b6000612fde82612f8a565b9050919050565b6000612ff082612faa565b9050919050565b60005b83811015613015578082015181840152602081019050612ffa565b83811115613024576000848401525b50505050565b61303382613131565b810181811067ffffffffffffffff8211171561305257613051613102565b5b80604052505050565b600061306682612faa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613099576130986130a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c72656164792073746172746564000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f6d6172734665652073686f756c6420626520696e2030202d2032350000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f72656469735265776172642073686f756c6420626520696e2030202d20323500600082015250565b61349381612f6c565b811461349e57600080fd5b50565b6134aa81612faa565b81146134b557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220900bfabe5e22a3d141f769e18947eb5ed5f8c1b337a6e2c473d6100bcf69045964736f6c63430008040033

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

000000000000000000000000e2bccdf5f2e2b74c23be4d0c89e245e8f1d37077000000000000000000000000ebe16752d84fe0a30aa062757cc53878dda54291

-----Decoded View---------------
Arg [0] : addr1 (address): 0xe2bcCDf5F2e2B74c23be4D0c89e245E8F1D37077
Arg [1] : addr2 (address): 0xEbe16752d84fe0A30AA062757CC53878ddA54291

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e2bccdf5f2e2b74c23be4d0c89e245e8f1d37077
Arg [1] : 000000000000000000000000ebe16752d84fe0a30aa062757cc53878dda54291


Deployed Bytecode Sourcemap

3920:12411:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11671:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6151:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7076:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4949:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6428:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7277:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6337:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15865:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4997:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11848:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11435:228;;;;;;;;;;;;;:::i;:::-;;6531:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1661:148;;;;;;;;;;;;;:::i;:::-;;5135:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15647:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1447:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6242:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16102:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6677:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11198:229;;;;;;;;;;;;;:::i;:::-;;11045:145;;;;;;;;;;;;;:::i;:::-;;15380:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6884:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11671:169;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11747:9:::1;11742:91;11766:5;:12;11762:1;:16;11742:91;;;11817:4;11800;:14;11805:5;11811:1;11805:8;;;;;;;;;;;;;;;;;;;;;;11800:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11780:3;;;;;:::i;:::-;;;;11742:91;;;;11671:169:::0;:::o;6151:83::-;6188:13;6221:5;;;;;;;;;;;;;;;;;6214:12;;6151:83;:::o;7076:193::-;7178:4;7200:39;7209:12;:10;:12::i;:::-;7223:7;7232:6;7200:8;:39::i;:::-;7257:4;7250:11;;7076:193;;;;:::o;4949:41::-;;;;;;;;;;;;;:::o;6428:95::-;6481:7;4464:21;6501:14;;6428:95;:::o;7277:446::-;7409:4;7426:36;7436:6;7444:9;7455:6;7426:9;:36::i;:::-;7473:220;7496:6;7517:12;:10;:12::i;:::-;7544:138;7600:6;7544:138;;;;;;;;;;;;;;;;;:11;:19;7556:6;7544:19;;;;;;;;;;;;;;;:33;7564:12;:10;:12::i;:::-;7544:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7473:8;:220::i;:::-;7711:4;7704:11;;7277:446;;;;;:::o;5190:53::-;;;;:::o;6337:83::-;6378:5;4138:1;6396:16;;6337:83;:::o;15865:185::-;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15963:1:::1;15952:7;:12;;:29;;;;;15979:2;15968:7;:13;;15952:29;15944:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;16035:7;16024:8;:18;;;;15865:185:::0;:::o;4997:28::-;;;;;;;;;;;;;:::o;11848:92::-;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11927:5:::1;11912:4;:12;11917:6;11912:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11848:92:::0;:::o;11435:228::-;11501:12;;;;;;;;;;;11485:28;;:12;:10;:12::i;:::-;:28;;;:65;;;;11533:17;;;;;;;;;;;11517:33;;:12;:10;:12::i;:::-;:33;;;11485:65;11477:74;;;;;;11562:26;11591:21;11562:50;;11623:32;11636:18;11623:12;:32::i;:::-;11435:228;:::o;6531:138::-;6597:7;6624:37;6644:7;:16;6652:7;6644:16;;;;;;;;;;;;;;;;6624:19;:37::i;:::-;6617:44;;6531:138;;;:::o;1661:148::-;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1768:1:::1;1731:40;;1752:6;::::0;::::1;;;;;;;;1731:40;;;;;;;;;;;;1799:1;1782:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1661:148::o:0;5135:48::-;;;;:::o;15647:210::-;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15754:1:::1;15739:11;:16;;:37;;;;;15774:2;15759:11;:17;;15739:37;15731:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;15838:11;15823:12;:26;;;;15647:210:::0;:::o;1447:79::-;1485:7;1512:6;;;;;;;;;;;1505:13;;1447:79;:::o;6242:87::-;6281:13;6314:7;;;;;;;;;;;;;;;;;6307:14;;6242:87;:::o;16102:223::-;16199:12;;;;;;;;;;;16183:28;;:12;:10;:12::i;:::-;:28;;;:65;;;;16231:17;;;;;;;;;;;16215:33;;:12;:10;:12::i;:::-;:33;;;16183:65;:92;;;;16268:7;:5;:7::i;:::-;16252:23;;:12;:10;:12::i;:::-;:23;;;16183:92;16175:101;;;;;;16309:8;16287:19;:30;;;;16102:223;:::o;6677:199::-;6782:4;6804:42;6814:12;:10;:12::i;:::-;6828:9;6839:6;6804:9;:42::i;:::-;6864:4;6857:11;;6677:199;;;;:::o;11198:229::-;11264:12;;;;;;;;;;;11248:28;;:12;:10;:12::i;:::-;:28;;;:65;;;;11296:17;;;;;;;;;;;11280:33;;:12;:10;:12::i;:::-;:33;;;11248:65;11240:74;;;;;;11325:23;11351:24;11369:4;11351:9;:24::i;:::-;11325:50;;11386:33;11403:15;11386:16;:33::i;:::-;11198:229;:::o;11045:145::-;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11111:11:::1;;;;;;;;;;;11110:12;11102:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11178:4;11164:11;;:18;;;;;;;;;;;;;;;;;;11045:145::o:0;15380:255::-;1584:12;:10;:12::i;:::-;1574:22;;:6;;;;;;;;;;:22;;;1566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15482:1:::1;15467:12;:16;15459:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15543:36;15573:5;15543:25;15555:12;4464:21;15543:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15528:12;:51;;;;15595:32;15614:12;;15595:32;;;;;;:::i;:::-;;;;;;;;15380:255:::0;:::o;6884:184::-;7001:7;7033:11;:18;7045:5;7033:18;;;;;;;;;;;;;;;:27;7052:7;7033:27;;;;;;;;;;;;;;;;7026:34;;6884:184;;;;:::o;206:98::-;259:7;286:10;279:17;;206:98;:::o;8450:369::-;8594:1;8577:19;;:5;:19;;;;8569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8675:1;8656:21;;:7;:21;;;;8648:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8757:6;8727:11;:18;8739:5;8727:18;;;;;;;;;;;;;;;:27;8746:7;8727:27;;;;;;;;;;;;;;;:36;;;;8795:7;8779:32;;8788:5;8779:32;;;8804:6;8779:32;;;;;;:::i;:::-;;;;;;;;8450:369;;;:::o;8827:1558::-;8965:1;8949:18;;:4;:18;;;;8941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9042:1;9028:16;;:2;:16;;;;9020:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9112:1;9103:6;:10;9095:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9184:7;:5;:7::i;:::-;9176:15;;:4;:15;;;;:32;;;;;9201:7;:5;:7::i;:::-;9195:13;;:2;:13;;;;9176:32;9172:1012;;;9284:13;;;;;;;;;;;9276:21;;:4;:21;;;:44;;;;9307:13;;;;;;;;;;;9301:19;;:2;:19;;;9276:44;9272:136;;;9350:11;;;;;;;;;;;9342:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9272:136;9456:12;;9446:6;:22;;9438:31;;;;;;9493:4;:10;9498:4;9493:10;;;;;;;;;;;;;;;;;;;;;;;;;9492:11;:24;;;;;9508:4;:8;9513:2;9508:8;;;;;;;;;;;;;;;;;;;;;;;;;9507:9;9492:24;9484:33;;;;;;9546:28;9577:24;9595:4;9577:9;:24::i;:::-;9546:55;;9616:12;9655:19;;9631:20;:43;;9616:58;;9718:12;;9694:20;:36;9691:124;;9787:12;;9764:35;;9691:124;9847:7;:18;;;;;9859:6;;;;;;;;;;;9858:7;9847:18;:43;;;;;9877:13;;;;;;;;;;;9869:21;;:4;:21;;;;9847:43;:58;;;;;9894:11;;;;;;;;;;;9847:58;9843:330;;;9926:38;9943:20;9926:16;:38::i;:::-;9983:26;10012:21;9983:50;;10077:1;10056:18;:22;10052:106;;;10103:35;10116:21;10103:12;:35::i;:::-;10052:106;9843:330;;9172:1012;;;10194:12;10209:4;10194:19;;10230:18;:24;10249:4;10230:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10258:18;:22;10277:2;10258:22;;;;;;;;;;;;;;;;;;;;;;;;;10230:50;10226:98;;;10307:5;10297:15;;10226:98;10336:41;10351:4;10357:2;10361:6;10369:7;10336:14;:41::i;:::-;8827:1558;;;;:::o;2171:224::-;2291:7;2324:1;2319;:6;;2327:12;2311:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2351:9;2367:1;2363;:5;;;;:::i;:::-;2351:17;;2386:1;2379:8;;;2171:224;;;;;:::o;10884:153::-;10941:12;;;;;;;;;;;:21;;:36;10963:13;10974:1;10963:6;:10;;:13;;;;:::i;:::-;10941:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10988:17;;;;;;;;;;;:26;;:41;11015:13;11026:1;11015:6;:10;;:13;;;;:::i;:::-;10988:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10884:153;:::o;7731:323::-;7826:7;7884;;7873;:18;;7851:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7972:19;7994:10;:8;:10::i;:::-;7972:32;;8022:24;8034:11;8022:7;:11;;:24;;;;:::i;:::-;8015:31;;;7731:323;;;:::o;10393:483::-;5346:4;5337:6;;:13;;;;;;;;;;;;;;;;;;10471:21:::1;10509:1;10495:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10471:40;;10540:4;10522;10527:1;10522:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10566:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10556:4;10561:1;10556:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10599:62;10616:4;10631:15;;;;;;;;;;;10649:11;10599:8;:62::i;:::-;10672:15;;;;;;;;;;;:66;;;10753:11;10779:1;10795:4;10822;10842:15;10672:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5361:1;5382:5:::0;5373:6;;:14;;;;;;;;;;;;;;;;;;10393:483;:::o;2403:246::-;2461:7;2490:1;2485;:6;2481:47;;;2515:1;2508:8;;;;2481:47;2538:9;2554:1;2550;:5;;;;:::i;:::-;2538:17;;2583:1;2578;2574;:5;;;;:::i;:::-;:10;2566:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2640:1;2633:8;;;2403:246;;;;;:::o;2657:132::-;2715:7;2742:39;2746:1;2749;2742:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2735:46;;2657:132;;;;:::o;11948:282::-;12104:7;12099:28;;12113:14;:12;:14::i;:::-;12099:28;12138:44;12156:6;12164:9;12175:6;12138:17;:44::i;:::-;12198:7;12193:29;;12207:15;:13;:15::i;:::-;12193:29;11948:282;;;;:::o;14935:166::-;14977:7;14998:15;15015;15034:19;:17;:19::i;:::-;14997:56;;;;15073:20;15085:7;15073;:11;;:20;;;;:::i;:::-;15066:27;;;;14935:166;:::o;2797:223::-;2917:7;2949:1;2945;:5;2952:12;2937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2976:9;2992:1;2988;:5;;;;:::i;:::-;2976:17;;3011:1;3004:8;;;2797:223;;;;;:::o;8062:247::-;8125:1;8109:12;;:17;:34;;;;;8142:1;8130:8;;:13;8109:34;8105:47;;;8145:7;;8105:47;8191:12;;8168:20;:35;;;;8233:8;;8214:16;:27;;;;8277:1;8262:12;:16;;;;8300:1;8289:8;:12;;;;8062:247;:::o;12238:610::-;12385:15;12415:23;12453:12;12480:23;12518:12;12545:13;12572:19;12583:7;12572:10;:19::i;:::-;12370:221;;;;;;;;;;;;12620:28;12640:7;12620;:15;12628:6;12620:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12602:7;:15;12610:6;12602:15;;;;;;;;;;;;;;;:46;;;;12680:39;12703:15;12680:7;:18;12688:9;12680:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12659:7;:18;12667:9;12659:18;;;;;;;;;;;;;;;:60;;;;12730:16;12740:5;12730:9;:16::i;:::-;12757:23;12769:4;12775;12757:11;:23::i;:::-;12813:9;12796:44;;12805:6;12796:44;;;12824:15;12796:44;;;;;;:::i;:::-;;;;;;;;12238:610;;;;;;;;;:::o;8317:125::-;8376:20;;8361:12;:35;;;;8418:16;;8407:8;:27;;;;8317:125::o;15109:263::-;15160:7;15169;15189:15;15207:7;;15189:25;;15225:15;4464:21;15225:25;;15275:20;4464:21;15275:7;;:11;;:20;;;;:::i;:::-;15265:7;:30;15261:61;;;15305:7;;4464:21;15297:25;;;;;;;;15261:61;15347:7;15356;15339:25;;;;;;15109:263;;;:::o;13267:629::-;13367:7;13389;13411;13433;13455;13477;13513:23;13538:12;13552:13;13582:44;13594:7;13603:12;;13617:8;;13582:11;:44::i;:::-;13512:114;;;;;;13637:19;13659:10;:8;:10::i;:::-;13637:32;;13681:15;13698:23;13723:12;13752:46;13764:7;13773:4;13779:5;13786:11;13752;:46::i;:::-;13680:118;;;;;;13827:7;13836:15;13853:4;13859:15;13876:4;13882:5;13819:69;;;;;;;;;;;;;;;;;;;13267:629;;;;;;;:::o;2027:136::-;2085:7;2112:43;2116:1;2119;2112:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2105:50;;2027:136;;;;:::o;1840:179::-;1898:7;1918:9;1934:1;1930;:5;;;;:::i;:::-;1918:17;;1959:1;1954;:6;;1946:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2010:1;2003:8;;;1840:179;;;;:::o;12856:211::-;12909:19;12931:10;:8;:10::i;:::-;12909:32;;12952:13;12968:22;12978:11;12968:5;:9;;:22;;;;:::i;:::-;12952:38;;13026:33;13053:5;13026:7;:22;13042:4;13026:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13001:7;:22;13017:4;13001:22;;;;;;;;;;;;;;;:58;;;;12856:211;;;:::o;13075:147::-;13153:17;13165:4;13153:7;;:11;;:17;;;;:::i;:::-;13143:7;:27;;;;13194:20;13209:4;13194:10;;:14;;:20;;;;:::i;:::-;13181:10;:33;;;;13075:147;;:::o;13904:479::-;14077:7;14099;14121;14156:12;14171:33;14200:3;14171:24;14183:11;14171:7;:11;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;14156:48;;14215:13;14231:29;14256:3;14231:20;14243:7;14231;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14215:45;;14271:23;14297:28;14319:5;14297:17;14309:4;14297:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14271:54;;14346:15;14363:4;14369:5;14338:37;;;;;;;;;13904:479;;;;;;;:::o;14391:536::-;14585:7;14607;14629;14664:15;14682:24;14694:11;14682:7;:11;;:24;;;;:::i;:::-;14664:42;;14717:12;14732:21;14741:11;14732:4;:8;;:21;;;;:::i;:::-;14717:36;;14764:13;14780:22;14790:11;14780:5;:9;;:22;;;;:::i;:::-;14764:38;;14813:23;14839:28;14861:5;14839:17;14851:4;14839:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14813:54;;14888:7;14897:15;14914:4;14880:39;;;;;;;;;;14391:536;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:139::-;1351:5;1389:6;1376:20;1367:29;;1405:33;1432:5;1405:33;:::i;:::-;1357:87;;;;:::o;1450:262::-;1509:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:2;;;1574:1;1571;1564:12;1526:2;1617:1;1642:53;1687:7;1678:6;1667:9;1663:22;1642:53;:::i;:::-;1632:63;;1588:117;1516:196;;;;:::o;1718:284::-;1788:6;1837:2;1825:9;1816:7;1812:23;1808:32;1805:2;;;1853:1;1850;1843:12;1805:2;1896:1;1921:64;1977:7;1968:6;1957:9;1953:22;1921:64;:::i;:::-;1911:74;;1867:128;1795:207;;;;:::o;2008:407::-;2076:6;2084;2133:2;2121:9;2112:7;2108:23;2104:32;2101:2;;;2149:1;2146;2139:12;2101:2;2192:1;2217:53;2262:7;2253:6;2242:9;2238:22;2217:53;:::i;:::-;2207:63;;2163:117;2319:2;2345:53;2390:7;2381:6;2370:9;2366:22;2345:53;:::i;:::-;2335:63;;2290:118;2091:324;;;;;:::o;2421:552::-;2498:6;2506;2514;2563:2;2551:9;2542:7;2538:23;2534:32;2531:2;;;2579:1;2576;2569:12;2531:2;2622:1;2647:53;2692:7;2683:6;2672:9;2668:22;2647:53;:::i;:::-;2637:63;;2593:117;2749:2;2775:53;2820:7;2811:6;2800:9;2796:22;2775:53;:::i;:::-;2765:63;;2720:118;2877:2;2903:53;2948:7;2939:6;2928:9;2924:22;2903:53;:::i;:::-;2893:63;;2848:118;2521:452;;;;;:::o;2979:407::-;3047:6;3055;3104:2;3092:9;3083:7;3079:23;3075:32;3072:2;;;3120:1;3117;3110:12;3072:2;3163:1;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3134:117;3290:2;3316:53;3361:7;3352:6;3341:9;3337:22;3316:53;:::i;:::-;3306:63;;3261:118;3062:324;;;;;:::o;3392:405::-;3476:6;3525:2;3513:9;3504:7;3500:23;3496:32;3493:2;;;3541:1;3538;3531:12;3493:2;3612:1;3601:9;3597:17;3584:31;3642:18;3634:6;3631:30;3628:2;;;3674:1;3671;3664:12;3628:2;3702:78;3772:7;3763:6;3752:9;3748:22;3702:78;:::i;:::-;3692:88;;3555:235;3483:314;;;;:::o;3803:262::-;3862:6;3911:2;3899:9;3890:7;3886:23;3882:32;3879:2;;;3927:1;3924;3917:12;3879:2;3970:1;3995:53;4040:7;4031:6;4020:9;4016:22;3995:53;:::i;:::-;3985:63;;3941:117;3869:196;;;;:::o;4071:179::-;4140:10;4161:46;4203:3;4195:6;4161:46;:::i;:::-;4239:4;4234:3;4230:14;4216:28;;4151:99;;;;:::o;4256:108::-;4333:24;4351:5;4333:24;:::i;:::-;4328:3;4321:37;4311:53;;:::o;4370:118::-;4457:24;4475:5;4457:24;:::i;:::-;4452:3;4445:37;4435:53;;:::o;4524:732::-;4643:3;4672:54;4720:5;4672:54;:::i;:::-;4742:86;4821:6;4816:3;4742:86;:::i;:::-;4735:93;;4852:56;4902:5;4852:56;:::i;:::-;4931:7;4962:1;4947:284;4972:6;4969:1;4966:13;4947:284;;;5048:6;5042:13;5075:63;5134:3;5119:13;5075:63;:::i;:::-;5068:70;;5161:60;5214:6;5161:60;:::i;:::-;5151:70;;5007:224;4994:1;4991;4987:9;4982:14;;4947:284;;;4951:14;5247:3;5240:10;;4648:608;;;;;;;:::o;5262:109::-;5343:21;5358:5;5343:21;:::i;:::-;5338:3;5331:34;5321:50;;:::o;5377:183::-;5490:63;5547:5;5490:63;:::i;:::-;5485:3;5478:76;5468:92;;:::o;5566:147::-;5661:45;5700:5;5661:45;:::i;:::-;5656:3;5649:58;5639:74;;:::o;5719:364::-;5807:3;5835:39;5868:5;5835:39;:::i;:::-;5890:71;5954:6;5949:3;5890:71;:::i;:::-;5883:78;;5970:52;6015:6;6010:3;6003:4;5996:5;5992:16;5970:52;:::i;:::-;6047:29;6069:6;6047:29;:::i;:::-;6042:3;6038:39;6031:46;;5811:272;;;;;:::o;6089:366::-;6231:3;6252:67;6316:2;6311:3;6252:67;:::i;:::-;6245:74;;6328:93;6417:3;6328:93;:::i;:::-;6446:2;6441:3;6437:12;6430:19;;6235:220;;;:::o;6461:366::-;6603:3;6624:67;6688:2;6683:3;6624:67;:::i;:::-;6617:74;;6700:93;6789:3;6700:93;:::i;:::-;6818:2;6813:3;6809:12;6802:19;;6607:220;;;:::o;6833:366::-;6975:3;6996:67;7060:2;7055:3;6996:67;:::i;:::-;6989:74;;7072:93;7161:3;7072:93;:::i;:::-;7190:2;7185:3;7181:12;7174:19;;6979:220;;;:::o;7205:366::-;7347:3;7368:67;7432:2;7427:3;7368:67;:::i;:::-;7361:74;;7444:93;7533:3;7444:93;:::i;:::-;7562:2;7557:3;7553:12;7546:19;;7351:220;;;:::o;7577:366::-;7719:3;7740:67;7804:2;7799:3;7740:67;:::i;:::-;7733:74;;7816:93;7905:3;7816:93;:::i;:::-;7934:2;7929:3;7925:12;7918:19;;7723:220;;;:::o;7949:366::-;8091:3;8112:67;8176:2;8171:3;8112:67;:::i;:::-;8105:74;;8188:93;8277:3;8188:93;:::i;:::-;8306:2;8301:3;8297:12;8290:19;;8095:220;;;:::o;8321:366::-;8463:3;8484:67;8548:2;8543:3;8484:67;:::i;:::-;8477:74;;8560:93;8649:3;8560:93;:::i;:::-;8678:2;8673:3;8669:12;8662:19;;8467:220;;;:::o;8693:366::-;8835:3;8856:67;8920:2;8915:3;8856:67;:::i;:::-;8849:74;;8932:93;9021:3;8932:93;:::i;:::-;9050:2;9045:3;9041:12;9034:19;;8839:220;;;:::o;9065:366::-;9207:3;9228:67;9292:2;9287:3;9228:67;:::i;:::-;9221:74;;9304:93;9393:3;9304:93;:::i;:::-;9422:2;9417:3;9413:12;9406:19;;9211:220;;;:::o;9437:366::-;9579:3;9600:67;9664:2;9659:3;9600:67;:::i;:::-;9593:74;;9676:93;9765:3;9676:93;:::i;:::-;9794:2;9789:3;9785:12;9778:19;;9583:220;;;:::o;9809:366::-;9951:3;9972:67;10036:2;10031:3;9972:67;:::i;:::-;9965:74;;10048:93;10137:3;10048:93;:::i;:::-;10166:2;10161:3;10157:12;10150:19;;9955:220;;;:::o;10181:366::-;10323:3;10344:67;10408:2;10403:3;10344:67;:::i;:::-;10337:74;;10420:93;10509:3;10420:93;:::i;:::-;10538:2;10533:3;10529:12;10522:19;;10327:220;;;:::o;10553:366::-;10695:3;10716:67;10780:2;10775:3;10716:67;:::i;:::-;10709:74;;10792:93;10881:3;10792:93;:::i;:::-;10910:2;10905:3;10901:12;10894:19;;10699:220;;;:::o;10925:366::-;11067:3;11088:67;11152:2;11147:3;11088:67;:::i;:::-;11081:74;;11164:93;11253:3;11164:93;:::i;:::-;11282:2;11277:3;11273:12;11266:19;;11071:220;;;:::o;11297:118::-;11384:24;11402:5;11384:24;:::i;:::-;11379:3;11372:37;11362:53;;:::o;11421:112::-;11504:22;11520:5;11504:22;:::i;:::-;11499:3;11492:35;11482:51;;:::o;11539:222::-;11632:4;11670:2;11659:9;11655:18;11647:26;;11683:71;11751:1;11740:9;11736:17;11727:6;11683:71;:::i;:::-;11637:124;;;;:::o;11767:210::-;11854:4;11892:2;11881:9;11877:18;11869:26;;11905:65;11967:1;11956:9;11952:17;11943:6;11905:65;:::i;:::-;11859:118;;;;:::o;11983:274::-;12102:4;12140:2;12129:9;12125:18;12117:26;;12153:97;12247:1;12236:9;12232:17;12223:6;12153:97;:::i;:::-;12107:150;;;;:::o;12263:313::-;12376:4;12414:2;12403:9;12399:18;12391:26;;12463:9;12457:4;12453:20;12449:1;12438:9;12434:17;12427:47;12491:78;12564:4;12555:6;12491:78;:::i;:::-;12483:86;;12381:195;;;;:::o;12582:419::-;12748:4;12786:2;12775:9;12771:18;12763:26;;12835:9;12829:4;12825:20;12821:1;12810:9;12806:17;12799:47;12863:131;12989:4;12863:131;:::i;:::-;12855:139;;12753:248;;;:::o;13007:419::-;13173:4;13211:2;13200:9;13196:18;13188:26;;13260:9;13254:4;13250:20;13246:1;13235:9;13231:17;13224:47;13288:131;13414:4;13288:131;:::i;:::-;13280:139;;13178:248;;;:::o;13432:419::-;13598:4;13636:2;13625:9;13621:18;13613:26;;13685:9;13679:4;13675:20;13671:1;13660:9;13656:17;13649:47;13713:131;13839:4;13713:131;:::i;:::-;13705:139;;13603:248;;;:::o;13857:419::-;14023:4;14061:2;14050:9;14046:18;14038:26;;14110:9;14104:4;14100:20;14096:1;14085:9;14081:17;14074:47;14138:131;14264:4;14138:131;:::i;:::-;14130:139;;14028:248;;;:::o;14282:419::-;14448:4;14486:2;14475:9;14471:18;14463:26;;14535:9;14529:4;14525:20;14521:1;14510:9;14506:17;14499:47;14563:131;14689:4;14563:131;:::i;:::-;14555:139;;14453:248;;;:::o;14707:419::-;14873:4;14911:2;14900:9;14896:18;14888:26;;14960:9;14954:4;14950:20;14946:1;14935:9;14931:17;14924:47;14988:131;15114:4;14988:131;:::i;:::-;14980:139;;14878:248;;;:::o;15132:419::-;15298:4;15336:2;15325:9;15321:18;15313:26;;15385:9;15379:4;15375:20;15371:1;15360:9;15356:17;15349:47;15413:131;15539:4;15413:131;:::i;:::-;15405:139;;15303:248;;;:::o;15557:419::-;15723:4;15761:2;15750:9;15746:18;15738:26;;15810:9;15804:4;15800:20;15796:1;15785:9;15781:17;15774:47;15838:131;15964:4;15838:131;:::i;:::-;15830:139;;15728:248;;;:::o;15982:419::-;16148:4;16186:2;16175:9;16171:18;16163:26;;16235:9;16229:4;16225:20;16221:1;16210:9;16206:17;16199:47;16263:131;16389:4;16263:131;:::i;:::-;16255:139;;16153:248;;;:::o;16407:419::-;16573:4;16611:2;16600:9;16596:18;16588:26;;16660:9;16654:4;16650:20;16646:1;16635:9;16631:17;16624:47;16688:131;16814:4;16688:131;:::i;:::-;16680:139;;16578:248;;;:::o;16832:419::-;16998:4;17036:2;17025:9;17021:18;17013:26;;17085:9;17079:4;17075:20;17071:1;17060:9;17056:17;17049:47;17113:131;17239:4;17113:131;:::i;:::-;17105:139;;17003:248;;;:::o;17257:419::-;17423:4;17461:2;17450:9;17446:18;17438:26;;17510:9;17504:4;17500:20;17496:1;17485:9;17481:17;17474:47;17538:131;17664:4;17538:131;:::i;:::-;17530:139;;17428:248;;;:::o;17682:419::-;17848:4;17886:2;17875:9;17871:18;17863:26;;17935:9;17929:4;17925:20;17921:1;17910:9;17906:17;17899:47;17963:131;18089:4;17963:131;:::i;:::-;17955:139;;17853:248;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18278:248;;;:::o;18532:222::-;18625:4;18663:2;18652:9;18648:18;18640:26;;18676:71;18744:1;18733:9;18729:17;18720:6;18676:71;:::i;:::-;18630:124;;;;:::o;18760:831::-;19023:4;19061:3;19050:9;19046:19;19038:27;;19075:71;19143:1;19132:9;19128:17;19119:6;19075:71;:::i;:::-;19156:80;19232:2;19221:9;19217:18;19208:6;19156:80;:::i;:::-;19283:9;19277:4;19273:20;19268:2;19257:9;19253:18;19246:48;19311:108;19414:4;19405:6;19311:108;:::i;:::-;19303:116;;19429:72;19497:2;19486:9;19482:18;19473:6;19429:72;:::i;:::-;19511:73;19579:3;19568:9;19564:19;19555:6;19511:73;:::i;:::-;19028:563;;;;;;;;:::o;19597:214::-;19686:4;19724:2;19713:9;19709:18;19701:26;;19737:67;19801:1;19790:9;19786:17;19777:6;19737:67;:::i;:::-;19691:120;;;;:::o;19817:129::-;19851:6;19878:20;;:::i;:::-;19868:30;;19907:33;19935:4;19927:6;19907:33;:::i;:::-;19858:88;;;:::o;19952:75::-;19985:6;20018:2;20012:9;20002:19;;19992:35;:::o;20033:311::-;20110:4;20200:18;20192:6;20189:30;20186:2;;;20222:18;;:::i;:::-;20186:2;20272:4;20264:6;20260:17;20252:25;;20332:4;20326;20322:15;20314:23;;20115:229;;;:::o;20350:132::-;20417:4;20440:3;20432:11;;20470:4;20465:3;20461:14;20453:22;;20422:60;;;:::o;20488:114::-;20555:6;20589:5;20583:12;20573:22;;20562:40;;;:::o;20608:99::-;20660:6;20694:5;20688:12;20678:22;;20667:40;;;:::o;20713:113::-;20783:4;20815;20810:3;20806:14;20798:22;;20788:38;;;:::o;20832:184::-;20931:11;20965:6;20960:3;20953:19;21005:4;21000:3;20996:14;20981:29;;20943:73;;;;:::o;21022:169::-;21106:11;21140:6;21135:3;21128:19;21180:4;21175:3;21171:14;21156:29;;21118:73;;;;:::o;21197:305::-;21237:3;21256:20;21274:1;21256:20;:::i;:::-;21251:25;;21290:20;21308:1;21290:20;:::i;:::-;21285:25;;21444:1;21376:66;21372:74;21369:1;21366:81;21363:2;;;21450:18;;:::i;:::-;21363:2;21494:1;21491;21487:9;21480:16;;21241:261;;;;:::o;21508:185::-;21548:1;21565:20;21583:1;21565:20;:::i;:::-;21560:25;;21599:20;21617:1;21599:20;:::i;:::-;21594:25;;21638:1;21628:2;;21643:18;;:::i;:::-;21628:2;21685:1;21682;21678:9;21673:14;;21550:143;;;;:::o;21699:348::-;21739:7;21762:20;21780:1;21762:20;:::i;:::-;21757:25;;21796:20;21814:1;21796:20;:::i;:::-;21791:25;;21984:1;21916:66;21912:74;21909:1;21906:81;21901:1;21894:9;21887:17;21883:105;21880:2;;;21991:18;;:::i;:::-;21880:2;22039:1;22036;22032:9;22021:20;;21747:300;;;;:::o;22053:191::-;22093:4;22113:20;22131:1;22113:20;:::i;:::-;22108:25;;22147:20;22165:1;22147:20;:::i;:::-;22142:25;;22186:1;22183;22180:8;22177:2;;;22191:18;;:::i;:::-;22177:2;22236:1;22233;22229:9;22221:17;;22098:146;;;;:::o;22250:96::-;22287:7;22316:24;22334:5;22316:24;:::i;:::-;22305:35;;22295:51;;;:::o;22352:90::-;22386:7;22429:5;22422:13;22415:21;22404:32;;22394:48;;;:::o;22448:126::-;22485:7;22525:42;22518:5;22514:54;22503:65;;22493:81;;;:::o;22580:77::-;22617:7;22646:5;22635:16;;22625:32;;;:::o;22663:86::-;22698:7;22738:4;22731:5;22727:16;22716:27;;22706:43;;;:::o;22755:178::-;22831:9;22864:63;22921:5;22864:63;:::i;:::-;22851:76;;22841:92;;;:::o;22939:139::-;23015:9;23048:24;23066:5;23048:24;:::i;:::-;23035:37;;23025:53;;;:::o;23084:121::-;23142:9;23175:24;23193:5;23175:24;:::i;:::-;23162:37;;23152:53;;;:::o;23211:307::-;23279:1;23289:113;23303:6;23300:1;23297:13;23289:113;;;23388:1;23383:3;23379:11;23373:18;23369:1;23364:3;23360:11;23353:39;23325:2;23322:1;23318:10;23313:15;;23289:113;;;23420:6;23417:1;23414:13;23411:2;;;23500:1;23491:6;23486:3;23482:16;23475:27;23411:2;23260:258;;;;:::o;23524:281::-;23607:27;23629:4;23607:27;:::i;:::-;23599:6;23595:40;23737:6;23725:10;23722:22;23701:18;23689:10;23686:34;23683:62;23680:2;;;23748:18;;:::i;:::-;23680:2;23788:10;23784:2;23777:22;23567:238;;;:::o;23811:233::-;23850:3;23873:24;23891:5;23873:24;:::i;:::-;23864:33;;23919:66;23912:5;23909:77;23906:2;;;23989:18;;:::i;:::-;23906:2;24036:1;24029:5;24025:13;24018:20;;23854:190;;;:::o;24050:180::-;24098:77;24095:1;24088:88;24195:4;24192:1;24185:15;24219:4;24216:1;24209:15;24236:180;24284:77;24281:1;24274:88;24381:4;24378:1;24371:15;24405:4;24402:1;24395:15;24422:180;24470:77;24467:1;24460:88;24567:4;24564:1;24557:15;24591:4;24588:1;24581:15;24608:102;24649:6;24700:2;24696:7;24691:2;24684:5;24680:14;24676:28;24666:38;;24656:54;;;:::o;24716:222::-;24856:34;24852:1;24844:6;24840:14;24833:58;24925:5;24920:2;24912:6;24908:15;24901:30;24822:116;:::o;24944:176::-;25084:28;25080:1;25072:6;25068:14;25061:52;25050:70;:::o;25126:176::-;25266:28;25262:1;25254:6;25250:14;25243:52;25232:70;:::o;25308:229::-;25448:34;25444:1;25436:6;25432:14;25425:58;25517:12;25512:2;25504:6;25500:15;25493:37;25414:123;:::o;25543:221::-;25683:34;25679:1;25671:6;25667:14;25660:58;25752:4;25747:2;25739:6;25735:15;25728:29;25649:115;:::o;25770:177::-;25910:29;25906:1;25898:6;25894:14;25887:53;25876:71;:::o;25953:179::-;26093:31;26089:1;26081:6;26077:14;26070:55;26059:73;:::o;26138:177::-;26278:29;26274:1;26266:6;26262:14;26255:53;26244:71;:::o;26321:220::-;26461:34;26457:1;26449:6;26445:14;26438:58;26530:3;26525:2;26517:6;26513:15;26506:28;26427:114;:::o;26547:182::-;26687:34;26683:1;26675:6;26671:14;26664:58;26653:76;:::o;26735:228::-;26875:34;26871:1;26863:6;26859:14;26852:58;26944:11;26939:2;26931:6;26927:15;26920:36;26841:122;:::o;26969:224::-;27109:34;27105:1;27097:6;27093:14;27086:58;27178:7;27173:2;27165:6;27161:15;27154:32;27075:118;:::o;27199:223::-;27339:34;27335:1;27327:6;27323:14;27316:58;27408:6;27403:2;27395:6;27391:15;27384:31;27305:117;:::o;27428:181::-;27568:33;27564:1;27556:6;27552:14;27545:57;27534:75;:::o;27615:122::-;27688:24;27706:5;27688:24;:::i;:::-;27681:5;27678:35;27668:2;;27727:1;27724;27717:12;27668:2;27658:79;:::o;27743:122::-;27816:24;27834:5;27816:24;:::i;:::-;27809:5;27806:35;27796:2;;27855:1;27852;27845:12;27796:2;27786:79;:::o

Swarm Source

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