ETH Price: $2,687.05 (-2.37%)

Token

LIONKONG (LIONKONG)
 

Overview

Max Total Supply

100,000,000,000,000 LIONKONG

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
202,195,848,476.665718323 LIONKONG

Value
$0.00
0x1617e1d560628426946982b4de3652a0072b7d22
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:
LIONKONG

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-15
*/

/*

 🦍 LIONKONG is an ERC-20 Token that seeks to rewards it's holders.
 A community driven token, willing to offer it's investors the safety of investing in a project.
 Just like the king of the jungle, LIONKONG is going to rule the Ethereum Space thanks to our amazing utility and vision... You will achieve financial-freedom.


██╗░░░░░██╗░█████╗░███╗░░██╗██╗░░██╗░█████╗░███╗░░██╗░██████╗░
██║░░░░░██║██╔══██╗████╗░██║██║░██╔╝██╔══██╗████╗░██║██╔════╝░
██║░░░░░██║██║░░██║██╔██╗██║█████═╝░██║░░██║██╔██╗██║██║░░██╗░
██║░░░░░██║██║░░██║██║╚████║██╔═██╗░██║░░██║██║╚████║██║░░╚██╗
███████╗██║╚█████╔╝██║░╚███║██║░╚██╗╚█████╔╝██║░╚███║╚██████╔╝
╚══════╝╚═╝░╚════╝░╚═╝░░╚══╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚══╝░╚═════╝░


- Telegram: https://t.me/LIONKONGeth
- Website: https://lionkongeth.com
- Twitter: https://twitter.com/LIONKONGEth

*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract LIONKONG is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private openBlock;
    uint256 private _swapTokensAtAmount = 100 * 10**9; // 100 tokens
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;

    string private constant _name = "LIONKONG";
    string private constant _symbol = "LIONKONG";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;

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

    constructor(address payable addr1, address payable addr2, address payable addr3, address payable addr4, address payable addr5) {
        _feeAddrWallet1 = addr1;
        _feeAddrWallet2 = addr2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[addr4] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[addr5] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        _isExcludedFromFee[addr3] = 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 setCooldownEnabled(bool onoff) external onlyOwner {
        cooldownEnabled = onoff;
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


        _feeAddr1 = 1;
        _feeAddr2 = 12;
        if (from != owner() && to != owner() && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {


            require(!bots[from] && !bots[to]);
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to] &&
                cooldownEnabled
            ) {

                // Not over max tx amount
                require(amount <= _maxTxAmount, "Over max transaction amount.");
                // Cooldown
                require(cooldown[to] < block.timestamp, "Cooldown enforced.");
                // Max wallet
                require(balanceOf(to) + amount <= _maxWalletAmount, "Over max wallet amount.");
                cooldown[to] = block.timestamp + (30 seconds);
            }

            if (
                to == uniswapV2Pair &&
                from != address(uniswapV2Router) &&
                !_isExcludedFromFee[from]
            ) {
                _feeAddr1 = 1;
                _feeAddr2 = 12;
            }

            if (openBlock + 4 >= block.number && from == uniswapV2Pair) {
                _feeAddr1 = 1;
                _feeAddr2 = 99;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {

                swapTokensForEth(contractTokenBalance);
              uint256 contractETHBalance = address(this).balance;
               if (contractETHBalance > 0) {
                 sendETHToFee(address(this).balance);
            }
            }
        } else {
            // Only if it's not from or to owner or from contract address.
            _feeAddr1 = 0;
            _feeAddr2 = 0;
        }

        _tokenTransfer(from, to, amount);
    }

    function swapAndLiquifyEnabled(bool enabled) public onlyOwner {
        inSwap = enabled;
    }

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

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }

    function setMaxTxAmount(uint256 amount) public onlyOwner {
        _maxTxAmount = amount * 10**9;
    }
    function setMaxWalletAmount(uint256 amount) public onlyOwner {
        _maxWalletAmount = amount * 10**9;
    }

    function whitelist(address payable adr1) external onlyOwner {
    _isExcludedFromFee[adr1] = true;
  }
  function unwhitelist(address payable adr2) external onlyOwner {
  _isExcludedFromFee[adr2] = false;
}

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        swapEnabled = true;
        cooldownEnabled = true;
        // .5%
        _maxTxAmount = 1000000000000 * 10**9;
        _maxWalletAmount = 2000000000000 * 10**9;
        tradingOpen = true;
        openBlock = block.number;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function addBot(address theBot) public onlyOwner {
        bots[theBot] = true;
    }

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

    function setSwapTokens(uint256 swaptokens) public onlyOwner {
        _swapTokensAtAmount = swaptokens;
    }


    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

    receive() external payable {}

    function manualSwap() external {
          uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualSend() external {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

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

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


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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","type":"address"},{"internalType":"address payable","name":"addr3","type":"address"},{"internalType":"address payable","name":"addr4","type":"address"},{"internalType":"address payable","name":"addr5","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":[{"internalType":"address","name":"theBot","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swaptokens","type":"uint256"}],"name":"setSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"swapAndLiquifyEnabled","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 payable","name":"adr2","type":"address"}],"name":"unwhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr1","type":"address"}],"name":"whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269152d02c7e14af68000006000196200001e919062000718565b6000196200002d91906200069f565b60085569152d02c7e14af6800000600a5564174876e800600c5569152d02c7e14af6800000600d556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff021916908315150217905550348015620000b357600080fd5b506040516200426b3803806200426b8339818101604052810190620000d99190620005ef565b6000620000eb620005a760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35084601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008546002600062000222620005a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000276620005af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200052b620005a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af680000060405162000594919062000682565b60405180910390a35050505050620007c8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005e981620007ae565b92915050565b600080600080600060a086880312156200060857600080fd5b60006200061888828901620005d8565b95505060206200062b88828901620005d8565b94505060406200063e88828901620005d8565b93505060606200065188828901620005d8565b92505060806200066488828901620005d8565b9150509295509295909350565b6200067c816200070e565b82525050565b600060208201905062000699600083018462000671565b92915050565b6000620006ac826200070e565b9150620006b9836200070e565b925082821015620006cf57620006ce62000750565b5b828203905092915050565b6000620006e782620006ee565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000725826200070e565b915062000732836200070e565b9250826200074557620007446200077f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620007b981620006da565b8114620007c557600080fd5b50565b613a9380620007d86000396000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf91461043f578063dd62ed3e14610456578063e98391ff14610493578063ec28438a146104bc578063f4293890146104e5578063ffecf516146104fc5761014b565b80638da5cb5b1461033157806395d89b411461035c5780639a590427146103875780639b19251a146103b0578063a9059cbb146103d9578063bf6642e7146104165761014b565b806327a14fc21161010857806327a14fc214610249578063313ce5671461027257806351bc3c851461029d5780635932ead1146102b457806370a08231146102dd578063715018a61461031a5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806323b872dd146101e3578063273123b7146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610525565b60405161017291906131e3565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612d24565b610562565b6040516101af91906131c8565b60405180910390f35b3480156101c457600080fd5b506101cd610580565b6040516101da91906133a5565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612cd5565b610592565b60405161021791906131c8565b60405180910390f35b34801561022c57600080fd5b5061024760048036038101906102429190612c1e565b61066b565b005b34801561025557600080fd5b50610270600480360381019061026b9190612db2565b61075b565b005b34801561027e57600080fd5b50610287610809565b604051610294919061341a565b60405180910390f35b3480156102a957600080fd5b506102b2610812565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612d60565b61082b565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190612c1e565b6108dd565b60405161031191906133a5565b60405180910390f35b34801561032657600080fd5b5061032f61092e565b005b34801561033d57600080fd5b50610346610a81565b60405161035391906130fa565b60405180910390f35b34801561036857600080fd5b50610371610aaa565b60405161037e91906131e3565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190612c70565b610ae7565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612c70565b610bd7565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612d24565b610cc7565b60405161040d91906131c8565b60405180910390f35b34801561042257600080fd5b5061043d60048036038101906104389190612db2565b610ce5565b005b34801561044b57600080fd5b50610454610d84565b005b34801561046257600080fd5b5061047d60048036038101906104789190612c99565b6112f9565b60405161048a91906133a5565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612d60565b611380565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612db2565b611432565b005b3480156104f157600080fd5b506104fa6114e0565b005b34801561050857600080fd5b50610523600480360381019061051e9190612c1e565b6114f1565b005b60606040518060400160405280600881526020017f4c494f4e4b4f4e47000000000000000000000000000000000000000000000000815250905090565b600061057661056f6115e1565b84846115e9565b6001905092915050565b600069152d02c7e14af6800000905090565b600061059f8484846117b4565b610660846105ab6115e1565b61065b85604051806060016040528060288152602001613a3660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106116115e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b9092919063ffffffff16565b6115e9565b600190509392505050565b6106736115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f7906132a5565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6107636115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e7906132a5565b60405180910390fd5b633b9aca00816108009190613511565b600d8190555050565b60006009905090565b600061081d306108dd565b90506108288161206f565b50565b6108336115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b7906132a5565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b6000610927600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612369565b9050919050565b6109366115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ba906132a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4c494f4e4b4f4e47000000000000000000000000000000000000000000000000815250905090565b610aef6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906132a5565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bdf6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c63906132a5565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610cdb610cd46115e1565b84846117b4565b6001905092915050565b610ced6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906132a5565b60405180910390fd5b80600c8190555050565b610d8c6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e10906132a5565b60405180910390fd5b601360149054906101000a900460ff1615610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090613345565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610efa30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000006115e9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4057600080fd5b505afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190612c47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190612c47565b6040518363ffffffff1660e01b815260040161102f929190613115565b602060405180830381600087803b15801561104957600080fd5b505af115801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612c47565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061110a306108dd565b600080611115610a81565b426040518863ffffffff1660e01b815260040161113796959493929190613167565b6060604051808303818588803b15801561115057600080fd5b505af1158015611164573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111899190612ddb565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff021916908315150217905550683635c9adc5dea00000600a81905550686c6b935b8bbd400000600d819055506001601360146101000a81548160ff02191690831515021790555043600b81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112a392919061313e565b602060405180830381600087803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f59190612d89565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113886115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906132a5565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b61143a6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be906132a5565b60405180910390fd5b633b9aca00816114d79190613511565b600a8190555050565b60004790506114ee816123d7565b50565b6114f96115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d906132a5565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165090613325565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c090613245565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a791906133a5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90613305565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90613205565b60405180910390fd5b600081116118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce906132c5565b60405180910390fd5b6001600e81905550600c600f819055506118ef610a81565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195d575061192d610a81565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561199557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119eb5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a415750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fea57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611aea5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611af357600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c0c5750601360179054906101000a900460ff165b15611d8057600a54811115611c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4d90613365565b60405180910390fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce90613385565b60405180910390fd5b600d5481611ce4846108dd565b611cee919061348a565b1115611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d26906132e5565b60405180910390fd5b601e42611d3c919061348a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611e2b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e815750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e97576001600e81905550600c600f819055505b436004600b54611ea7919061348a565b10158015611f025750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611f18576001600e819055506063600f819055505b6000611f23306108dd565b90506000600c548210159050808015611f495750601360159054906101000a900460ff16155b8015611fa35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fbb5750601360169054906101000a900460ff165b15611fe357611fc98261206f565b60004790506000811115611fe157611fe0476123d7565b5b505b5050611ffb565b6000600e819055506000600f819055505b6120068383836124d2565b505050565b6000838311158290612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a91906131e3565b60405180910390fd5b5060008385612062919061356b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120fb5781602001602082028036833780820191505090505b5090503081600081518110612139577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121db57600080fd5b505afa1580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122139190612c47565b8160018151811061224d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122b430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115e9565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123189594939291906133c0565b600060405180830381600087803b15801561233257600080fd5b505af1158015612346573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b60006008548211156123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790613225565b60405180910390fd5b60006123ba6124e2565b90506123cf818461250d90919063ffffffff16565b915050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61242760028461250d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612452573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124a360028461250d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124ce573d6000803e3d6000fd5b5050565b6124dd838383612557565b505050565b60008060006124ef612722565b91509150612506818361250d90919063ffffffff16565b9250505090565b600061254f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612787565b905092915050565b600080600080600080612569876127ea565b9550955095509550955095506125c786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461289c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a8816128fa565b6126b284836129b7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161270f91906133a5565b60405180910390a3505050505050505050565b60008060006008549050600069152d02c7e14af6800000905061275a69152d02c7e14af680000060085461250d90919063ffffffff16565b82101561277a5760085469152d02c7e14af6800000935093505050612783565b81819350935050505b9091565b600080831182906127ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c591906131e3565b60405180910390fd5b50600083856127dd91906134e0565b9050809150509392505050565b60008060008060008060008060006128078a600e54600f546129f1565b92509250925060006128176124e2565b9050600080600061282a8e878787612a87565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061289483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061200b565b905092915050565b60008082846128ab919061348a565b9050838110156128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790613265565b60405180910390fd5b8091505092915050565b60006129046124e2565b9050600061291b8284612b1090919063ffffffff16565b905061296f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461289c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129cc8260085461285290919063ffffffff16565b6008819055506129e78160095461289c90919063ffffffff16565b6009819055505050565b600080600080612a1d6064612a0f888a612b1090919063ffffffff16565b61250d90919063ffffffff16565b90506000612a476064612a39888b612b1090919063ffffffff16565b61250d90919063ffffffff16565b90506000612a7082612a62858c61285290919063ffffffff16565b61285290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa08589612b1090919063ffffffff16565b90506000612ab78689612b1090919063ffffffff16565b90506000612ace8789612b1090919063ffffffff16565b90506000612af782612ae9858761285290919063ffffffff16565b61285290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b235760009050612b85565b60008284612b319190613511565b9050828482612b4091906134e0565b14612b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7790613285565b60405180910390fd5b809150505b92915050565b600081359050612b9a816139d9565b92915050565b600081519050612baf816139d9565b92915050565b600081359050612bc4816139f0565b92915050565b600081359050612bd981613a07565b92915050565b600081519050612bee81613a07565b92915050565b600081359050612c0381613a1e565b92915050565b600081519050612c1881613a1e565b92915050565b600060208284031215612c3057600080fd5b6000612c3e84828501612b8b565b91505092915050565b600060208284031215612c5957600080fd5b6000612c6784828501612ba0565b91505092915050565b600060208284031215612c8257600080fd5b6000612c9084828501612bb5565b91505092915050565b60008060408385031215612cac57600080fd5b6000612cba85828601612b8b565b9250506020612ccb85828601612b8b565b9150509250929050565b600080600060608486031215612cea57600080fd5b6000612cf886828701612b8b565b9350506020612d0986828701612b8b565b9250506040612d1a86828701612bf4565b9150509250925092565b60008060408385031215612d3757600080fd5b6000612d4585828601612b8b565b9250506020612d5685828601612bf4565b9150509250929050565b600060208284031215612d7257600080fd5b6000612d8084828501612bca565b91505092915050565b600060208284031215612d9b57600080fd5b6000612da984828501612bdf565b91505092915050565b600060208284031215612dc457600080fd5b6000612dd284828501612bf4565b91505092915050565b600080600060608486031215612df057600080fd5b6000612dfe86828701612c09565b9350506020612e0f86828701612c09565b9250506040612e2086828701612c09565b9150509250925092565b6000612e368383612e42565b60208301905092915050565b612e4b8161359f565b82525050565b612e5a8161359f565b82525050565b6000612e6b82613445565b612e758185613468565b9350612e8083613435565b8060005b83811015612eb1578151612e988882612e2a565b9750612ea38361345b565b925050600181019050612e84565b5085935050505092915050565b612ec7816135c3565b82525050565b612ed681613606565b82525050565b6000612ee782613450565b612ef18185613479565b9350612f01818560208601613618565b612f0a816136a9565b840191505092915050565b6000612f22602383613479565b9150612f2d826136ba565b604082019050919050565b6000612f45602a83613479565b9150612f5082613709565b604082019050919050565b6000612f68602283613479565b9150612f7382613758565b604082019050919050565b6000612f8b601b83613479565b9150612f96826137a7565b602082019050919050565b6000612fae602183613479565b9150612fb9826137d0565b604082019050919050565b6000612fd1602083613479565b9150612fdc8261381f565b602082019050919050565b6000612ff4602983613479565b9150612fff82613848565b604082019050919050565b6000613017601783613479565b915061302282613897565b602082019050919050565b600061303a602583613479565b9150613045826138c0565b604082019050919050565b600061305d602483613479565b91506130688261390f565b604082019050919050565b6000613080601783613479565b915061308b8261395e565b602082019050919050565b60006130a3601c83613479565b91506130ae82613987565b602082019050919050565b60006130c6601283613479565b91506130d1826139b0565b602082019050919050565b6130e5816135ef565b82525050565b6130f4816135f9565b82525050565b600060208201905061310f6000830184612e51565b92915050565b600060408201905061312a6000830185612e51565b6131376020830184612e51565b9392505050565b60006040820190506131536000830185612e51565b61316060208301846130dc565b9392505050565b600060c08201905061317c6000830189612e51565b61318960208301886130dc565b6131966040830187612ecd565b6131a36060830186612ecd565b6131b06080830185612e51565b6131bd60a08301846130dc565b979650505050505050565b60006020820190506131dd6000830184612ebe565b92915050565b600060208201905081810360008301526131fd8184612edc565b905092915050565b6000602082019050818103600083015261321e81612f15565b9050919050565b6000602082019050818103600083015261323e81612f38565b9050919050565b6000602082019050818103600083015261325e81612f5b565b9050919050565b6000602082019050818103600083015261327e81612f7e565b9050919050565b6000602082019050818103600083015261329e81612fa1565b9050919050565b600060208201905081810360008301526132be81612fc4565b9050919050565b600060208201905081810360008301526132de81612fe7565b9050919050565b600060208201905081810360008301526132fe8161300a565b9050919050565b6000602082019050818103600083015261331e8161302d565b9050919050565b6000602082019050818103600083015261333e81613050565b9050919050565b6000602082019050818103600083015261335e81613073565b9050919050565b6000602082019050818103600083015261337e81613096565b9050919050565b6000602082019050818103600083015261339e816130b9565b9050919050565b60006020820190506133ba60008301846130dc565b92915050565b600060a0820190506133d560008301886130dc565b6133e26020830187612ecd565b81810360408301526133f48186612e60565b90506134036060830185612e51565b61341060808301846130dc565b9695505050505050565b600060208201905061342f60008301846130eb565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613495826135ef565b91506134a0836135ef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134d5576134d461364b565b5b828201905092915050565b60006134eb826135ef565b91506134f6836135ef565b9250826135065761350561367a565b5b828204905092915050565b600061351c826135ef565b9150613527836135ef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135605761355f61364b565b5b828202905092915050565b6000613576826135ef565b9150613581836135ef565b9250828210156135945761359361364b565b5b828203905092915050565b60006135aa826135cf565b9050919050565b60006135bc826135cf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613611826135ef565b9050919050565b60005b8381101561363657808201518184015260208101905061361b565b83811115613645576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4f766572206d61782077616c6c657420616d6f756e742e000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4f766572206d6178207472616e73616374696f6e20616d6f756e742e00000000600082015250565b7f436f6f6c646f776e20656e666f726365642e0000000000000000000000000000600082015250565b6139e28161359f565b81146139ed57600080fd5b50565b6139f9816135b1565b8114613a0457600080fd5b50565b613a10816135c3565b8114613a1b57600080fd5b50565b613a27816135ef565b8114613a3257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204632337927c601ee527cc2caf0213242924a949a6b1e5ddf66c9b745e981657264736f6c63430008040033000000000000000000000000356db5f631732b7994d8257da684da4d4ee0235600000000000000000000000043e9fc8079acb380d985f2158f8b95eb79e90988000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356

Deployed Bytecode

0x6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf91461043f578063dd62ed3e14610456578063e98391ff14610493578063ec28438a146104bc578063f4293890146104e5578063ffecf516146104fc5761014b565b80638da5cb5b1461033157806395d89b411461035c5780639a590427146103875780639b19251a146103b0578063a9059cbb146103d9578063bf6642e7146104165761014b565b806327a14fc21161010857806327a14fc214610249578063313ce5671461027257806351bc3c851461029d5780635932ead1146102b457806370a08231146102dd578063715018a61461031a5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806323b872dd146101e3578063273123b7146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610525565b60405161017291906131e3565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612d24565b610562565b6040516101af91906131c8565b60405180910390f35b3480156101c457600080fd5b506101cd610580565b6040516101da91906133a5565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612cd5565b610592565b60405161021791906131c8565b60405180910390f35b34801561022c57600080fd5b5061024760048036038101906102429190612c1e565b61066b565b005b34801561025557600080fd5b50610270600480360381019061026b9190612db2565b61075b565b005b34801561027e57600080fd5b50610287610809565b604051610294919061341a565b60405180910390f35b3480156102a957600080fd5b506102b2610812565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612d60565b61082b565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190612c1e565b6108dd565b60405161031191906133a5565b60405180910390f35b34801561032657600080fd5b5061032f61092e565b005b34801561033d57600080fd5b50610346610a81565b60405161035391906130fa565b60405180910390f35b34801561036857600080fd5b50610371610aaa565b60405161037e91906131e3565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190612c70565b610ae7565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612c70565b610bd7565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612d24565b610cc7565b60405161040d91906131c8565b60405180910390f35b34801561042257600080fd5b5061043d60048036038101906104389190612db2565b610ce5565b005b34801561044b57600080fd5b50610454610d84565b005b34801561046257600080fd5b5061047d60048036038101906104789190612c99565b6112f9565b60405161048a91906133a5565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612d60565b611380565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612db2565b611432565b005b3480156104f157600080fd5b506104fa6114e0565b005b34801561050857600080fd5b50610523600480360381019061051e9190612c1e565b6114f1565b005b60606040518060400160405280600881526020017f4c494f4e4b4f4e47000000000000000000000000000000000000000000000000815250905090565b600061057661056f6115e1565b84846115e9565b6001905092915050565b600069152d02c7e14af6800000905090565b600061059f8484846117b4565b610660846105ab6115e1565b61065b85604051806060016040528060288152602001613a3660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106116115e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b9092919063ffffffff16565b6115e9565b600190509392505050565b6106736115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f7906132a5565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6107636115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e7906132a5565b60405180910390fd5b633b9aca00816108009190613511565b600d8190555050565b60006009905090565b600061081d306108dd565b90506108288161206f565b50565b6108336115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b7906132a5565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b6000610927600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612369565b9050919050565b6109366115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ba906132a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4c494f4e4b4f4e47000000000000000000000000000000000000000000000000815250905090565b610aef6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906132a5565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bdf6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c63906132a5565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610cdb610cd46115e1565b84846117b4565b6001905092915050565b610ced6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906132a5565b60405180910390fd5b80600c8190555050565b610d8c6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e10906132a5565b60405180910390fd5b601360149054906101000a900460ff1615610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090613345565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610efa30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000006115e9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4057600080fd5b505afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190612c47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fda57600080fd5b505afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190612c47565b6040518363ffffffff1660e01b815260040161102f929190613115565b602060405180830381600087803b15801561104957600080fd5b505af115801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612c47565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061110a306108dd565b600080611115610a81565b426040518863ffffffff1660e01b815260040161113796959493929190613167565b6060604051808303818588803b15801561115057600080fd5b505af1158015611164573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111899190612ddb565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff021916908315150217905550683635c9adc5dea00000600a81905550686c6b935b8bbd400000600d819055506001601360146101000a81548160ff02191690831515021790555043600b81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112a392919061313e565b602060405180830381600087803b1580156112bd57600080fd5b505af11580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f59190612d89565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113886115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c906132a5565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b61143a6115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be906132a5565b60405180910390fd5b633b9aca00816114d79190613511565b600a8190555050565b60004790506114ee816123d7565b50565b6114f96115e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d906132a5565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165090613325565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c090613245565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a791906133a5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90613305565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90613205565b60405180910390fd5b600081116118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce906132c5565b60405180910390fd5b6001600e81905550600c600f819055506118ef610a81565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195d575061192d610a81565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561199557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119eb5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a415750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fea57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611aea5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611af357600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c0c5750601360179054906101000a900460ff165b15611d8057600a54811115611c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4d90613365565b60405180910390fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce90613385565b60405180910390fd5b600d5481611ce4846108dd565b611cee919061348a565b1115611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d26906132e5565b60405180910390fd5b601e42611d3c919061348a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611e2b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e815750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e97576001600e81905550600c600f819055505b436004600b54611ea7919061348a565b10158015611f025750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611f18576001600e819055506063600f819055505b6000611f23306108dd565b90506000600c548210159050808015611f495750601360159054906101000a900460ff16155b8015611fa35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fbb5750601360169054906101000a900460ff165b15611fe357611fc98261206f565b60004790506000811115611fe157611fe0476123d7565b5b505b5050611ffb565b6000600e819055506000600f819055505b6120068383836124d2565b505050565b6000838311158290612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a91906131e3565b60405180910390fd5b5060008385612062919061356b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120fb5781602001602082028036833780820191505090505b5090503081600081518110612139577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121db57600080fd5b505afa1580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122139190612c47565b8160018151811061224d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122b430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115e9565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123189594939291906133c0565b600060405180830381600087803b15801561233257600080fd5b505af1158015612346573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b60006008548211156123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790613225565b60405180910390fd5b60006123ba6124e2565b90506123cf818461250d90919063ffffffff16565b915050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61242760028461250d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612452573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124a360028461250d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124ce573d6000803e3d6000fd5b5050565b6124dd838383612557565b505050565b60008060006124ef612722565b91509150612506818361250d90919063ffffffff16565b9250505090565b600061254f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612787565b905092915050565b600080600080600080612569876127ea565b9550955095509550955095506125c786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461289c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a8816128fa565b6126b284836129b7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161270f91906133a5565b60405180910390a3505050505050505050565b60008060006008549050600069152d02c7e14af6800000905061275a69152d02c7e14af680000060085461250d90919063ffffffff16565b82101561277a5760085469152d02c7e14af6800000935093505050612783565b81819350935050505b9091565b600080831182906127ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c591906131e3565b60405180910390fd5b50600083856127dd91906134e0565b9050809150509392505050565b60008060008060008060008060006128078a600e54600f546129f1565b92509250925060006128176124e2565b9050600080600061282a8e878787612a87565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061289483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061200b565b905092915050565b60008082846128ab919061348a565b9050838110156128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790613265565b60405180910390fd5b8091505092915050565b60006129046124e2565b9050600061291b8284612b1090919063ffffffff16565b905061296f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461289c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129cc8260085461285290919063ffffffff16565b6008819055506129e78160095461289c90919063ffffffff16565b6009819055505050565b600080600080612a1d6064612a0f888a612b1090919063ffffffff16565b61250d90919063ffffffff16565b90506000612a476064612a39888b612b1090919063ffffffff16565b61250d90919063ffffffff16565b90506000612a7082612a62858c61285290919063ffffffff16565b61285290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa08589612b1090919063ffffffff16565b90506000612ab78689612b1090919063ffffffff16565b90506000612ace8789612b1090919063ffffffff16565b90506000612af782612ae9858761285290919063ffffffff16565b61285290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b235760009050612b85565b60008284612b319190613511565b9050828482612b4091906134e0565b14612b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7790613285565b60405180910390fd5b809150505b92915050565b600081359050612b9a816139d9565b92915050565b600081519050612baf816139d9565b92915050565b600081359050612bc4816139f0565b92915050565b600081359050612bd981613a07565b92915050565b600081519050612bee81613a07565b92915050565b600081359050612c0381613a1e565b92915050565b600081519050612c1881613a1e565b92915050565b600060208284031215612c3057600080fd5b6000612c3e84828501612b8b565b91505092915050565b600060208284031215612c5957600080fd5b6000612c6784828501612ba0565b91505092915050565b600060208284031215612c8257600080fd5b6000612c9084828501612bb5565b91505092915050565b60008060408385031215612cac57600080fd5b6000612cba85828601612b8b565b9250506020612ccb85828601612b8b565b9150509250929050565b600080600060608486031215612cea57600080fd5b6000612cf886828701612b8b565b9350506020612d0986828701612b8b565b9250506040612d1a86828701612bf4565b9150509250925092565b60008060408385031215612d3757600080fd5b6000612d4585828601612b8b565b9250506020612d5685828601612bf4565b9150509250929050565b600060208284031215612d7257600080fd5b6000612d8084828501612bca565b91505092915050565b600060208284031215612d9b57600080fd5b6000612da984828501612bdf565b91505092915050565b600060208284031215612dc457600080fd5b6000612dd284828501612bf4565b91505092915050565b600080600060608486031215612df057600080fd5b6000612dfe86828701612c09565b9350506020612e0f86828701612c09565b9250506040612e2086828701612c09565b9150509250925092565b6000612e368383612e42565b60208301905092915050565b612e4b8161359f565b82525050565b612e5a8161359f565b82525050565b6000612e6b82613445565b612e758185613468565b9350612e8083613435565b8060005b83811015612eb1578151612e988882612e2a565b9750612ea38361345b565b925050600181019050612e84565b5085935050505092915050565b612ec7816135c3565b82525050565b612ed681613606565b82525050565b6000612ee782613450565b612ef18185613479565b9350612f01818560208601613618565b612f0a816136a9565b840191505092915050565b6000612f22602383613479565b9150612f2d826136ba565b604082019050919050565b6000612f45602a83613479565b9150612f5082613709565b604082019050919050565b6000612f68602283613479565b9150612f7382613758565b604082019050919050565b6000612f8b601b83613479565b9150612f96826137a7565b602082019050919050565b6000612fae602183613479565b9150612fb9826137d0565b604082019050919050565b6000612fd1602083613479565b9150612fdc8261381f565b602082019050919050565b6000612ff4602983613479565b9150612fff82613848565b604082019050919050565b6000613017601783613479565b915061302282613897565b602082019050919050565b600061303a602583613479565b9150613045826138c0565b604082019050919050565b600061305d602483613479565b91506130688261390f565b604082019050919050565b6000613080601783613479565b915061308b8261395e565b602082019050919050565b60006130a3601c83613479565b91506130ae82613987565b602082019050919050565b60006130c6601283613479565b91506130d1826139b0565b602082019050919050565b6130e5816135ef565b82525050565b6130f4816135f9565b82525050565b600060208201905061310f6000830184612e51565b92915050565b600060408201905061312a6000830185612e51565b6131376020830184612e51565b9392505050565b60006040820190506131536000830185612e51565b61316060208301846130dc565b9392505050565b600060c08201905061317c6000830189612e51565b61318960208301886130dc565b6131966040830187612ecd565b6131a36060830186612ecd565b6131b06080830185612e51565b6131bd60a08301846130dc565b979650505050505050565b60006020820190506131dd6000830184612ebe565b92915050565b600060208201905081810360008301526131fd8184612edc565b905092915050565b6000602082019050818103600083015261321e81612f15565b9050919050565b6000602082019050818103600083015261323e81612f38565b9050919050565b6000602082019050818103600083015261325e81612f5b565b9050919050565b6000602082019050818103600083015261327e81612f7e565b9050919050565b6000602082019050818103600083015261329e81612fa1565b9050919050565b600060208201905081810360008301526132be81612fc4565b9050919050565b600060208201905081810360008301526132de81612fe7565b9050919050565b600060208201905081810360008301526132fe8161300a565b9050919050565b6000602082019050818103600083015261331e8161302d565b9050919050565b6000602082019050818103600083015261333e81613050565b9050919050565b6000602082019050818103600083015261335e81613073565b9050919050565b6000602082019050818103600083015261337e81613096565b9050919050565b6000602082019050818103600083015261339e816130b9565b9050919050565b60006020820190506133ba60008301846130dc565b92915050565b600060a0820190506133d560008301886130dc565b6133e26020830187612ecd565b81810360408301526133f48186612e60565b90506134036060830185612e51565b61341060808301846130dc565b9695505050505050565b600060208201905061342f60008301846130eb565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613495826135ef565b91506134a0836135ef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134d5576134d461364b565b5b828201905092915050565b60006134eb826135ef565b91506134f6836135ef565b9250826135065761350561367a565b5b828204905092915050565b600061351c826135ef565b9150613527836135ef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135605761355f61364b565b5b828202905092915050565b6000613576826135ef565b9150613581836135ef565b9250828210156135945761359361364b565b5b828203905092915050565b60006135aa826135cf565b9050919050565b60006135bc826135cf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613611826135ef565b9050919050565b60005b8381101561363657808201518184015260208101905061361b565b83811115613645576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4f766572206d61782077616c6c657420616d6f756e742e000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4f766572206d6178207472616e73616374696f6e20616d6f756e742e00000000600082015250565b7f436f6f6c646f776e20656e666f726365642e0000000000000000000000000000600082015250565b6139e28161359f565b81146139ed57600080fd5b50565b6139f9816135b1565b8114613a0457600080fd5b50565b613a10816135c3565b8114613a1b57600080fd5b50565b613a27816135ef565b8114613a3257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204632337927c601ee527cc2caf0213242924a949a6b1e5ddf66c9b745e981657264736f6c63430008040033

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

000000000000000000000000356db5f631732b7994d8257da684da4d4ee0235600000000000000000000000043e9fc8079acb380d985f2158f8b95eb79e90988000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356

-----Decoded View---------------
Arg [0] : addr1 (address): 0x356Db5f631732B7994d8257da684Da4D4EE02356
Arg [1] : addr2 (address): 0x43E9Fc8079aCB380d985f2158F8B95Eb79E90988
Arg [2] : addr3 (address): 0x356Db5f631732B7994d8257da684Da4D4EE02356
Arg [3] : addr4 (address): 0x356Db5f631732B7994d8257da684Da4D4EE02356
Arg [4] : addr5 (address): 0x356Db5f631732B7994d8257da684Da4D4EE02356

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356
Arg [1] : 00000000000000000000000043e9fc8079acb380d985f2158f8b95eb79e90988
Arg [2] : 000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356
Arg [3] : 000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356
Arg [4] : 000000000000000000000000356db5f631732b7994d8257da684da4d4ee02356


Deployed Bytecode Sourcemap

5458:13227:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7653:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8578:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7930:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8779:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14783:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13249:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7839:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16217:146;;;;;;;;;;;;;:::i;:::-;;9233:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8033:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4410:148;;;;;;;;;;;;;:::i;:::-;;4196:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13478:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13370:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8179:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14879:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13589:1091;;;;;;;;;;;;;:::i;:::-;;8386:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12380:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13138:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16371:143;;;;;;;;;;;;;:::i;:::-;;14688:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7653:83;7690:13;7723:5;;;;;;;;;;;;;;;;;7716:12;;7653:83;:::o;8578:193::-;8680:4;8702:39;8711:12;:10;:12::i;:::-;8725:7;8734:6;8702:8;:39::i;:::-;8759:4;8752:11;;8578:193;;;;:::o;7930:95::-;7983:7;5955:23;8003:14;;7930:95;:::o;8779:446::-;8911:4;8928:36;8938:6;8946:9;8957:6;8928:9;:36::i;:::-;8975:220;8998:6;9019:12;:10;:12::i;:::-;9046:138;9102:6;9046:138;;;;;;;;;;;;;;;;;:11;:19;9058:6;9046:19;;;;;;;;;;;;;;;:33;9066:12;:10;:12::i;:::-;9046:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8975:8;:220::i;:::-;9213:4;9206:11;;8779:446;;;;;:::o;14783:88::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14858:5:::1;14843:4;:12;14848:6;14843:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14783:88:::0;:::o;13249:113::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13349:5:::1;13340:6;:14;;;;:::i;:::-;13321:16;:33;;;;13249:113:::0;:::o;7839:83::-;7880:5;6563:1;7898:16;;7839:83;:::o;16217:146::-;16261:23;16287:24;16305:4;16287:9;:24::i;:::-;16261:50;;16322:33;16339:15;16322:16;:33::i;:::-;16217:146;:::o;9233:101::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9321:5:::1;9303:15;;:23;;;;;;;;;;;;;;;;;;9233:101:::0;:::o;8033:138::-;8099:7;8126:37;8146:7;:16;8154:7;8146:16;;;;;;;;;;;;;;;;8126:19;:37::i;:::-;8119:44;;8033:138;;;:::o;4410:148::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4517:1:::1;4480:40;;4501:6;::::0;::::1;;;;;;;;4480:40;;;;;;;;;;;;4548:1;4531:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4410:148::o:0;4196:79::-;4234:7;4261:6;;;;;;;;;;;4254:13;;4196:79;:::o;7744:87::-;7783:13;7816:7;;;;;;;;;;;;;;;;;7809:14;;7744:87;:::o;13478:103::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13572:5:::1;13545:18;:24;13564:4;13545:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13478:103:::0;:::o;13370:104::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13464:4:::1;13437:18;:24;13456:4;13437:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13370:104:::0;:::o;8179:199::-;8284:4;8306:42;8316:12;:10;:12::i;:::-;8330:9;8341:6;8306:9;:42::i;:::-;8366:4;8359:11;;8179:199;;;;:::o;14879:111::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14972:10:::1;14950:19;:32;;;;14879:111:::0;:::o;13589:1091::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13651:11:::1;;;;;;;;;;;13650:12;13642:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13701:35;13772:42;13701:124;;13854:16;13836:15;;:34;;;;;;;;;;;;;;;;;;13881:58;13898:4;13913:15;;;;;;;;;;;5955:23;13881:8;:58::i;:::-;13984:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13966:70;;;14045:4;14052:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13966:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13950:13;;:126;;;;;;;;;;;;;;;;;;14087:15;;;;;;;;;;;:31;;;14126:21;14171:4;14191:24;14209:4;14191:9;:24::i;:::-;14230:1;14246::::0;14262:7:::1;:5;:7::i;:::-;14284:15;14087:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14335:4;14321:11;;:18;;;;;;;;;;;;;;;;;;14368:4;14350:15;;:22;;;;;;;;;;;;;;;;;;14414:21;14399:12;:36;;;;14465:21;14446:16;:40;;;;14511:4;14497:11;;:18;;;;;;;;;;;;;;;;;;14538:12;14526:9;:24;;;;14568:13;;;;;;;;;;;14561:29;;;14613:15;;;;;;;;;;;14644:17;14561:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4393:1;13589:1091::o:0;8386:184::-;8503:7;8535:11;:18;8547:5;8535:18;;;;;;;;;;;;;;;:27;8554:7;8535:27;;;;;;;;;;;;;;;;8528:34;;8386:184;;;;:::o;12380:97::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12462:7:::1;12453:6;;:16;;;;;;;;;;;;;;;;;;12380:97:::0;:::o;13138:105::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13230:5:::1;13221:6;:14;;;;:::i;:::-;13206:12;:29;;;;13138:105:::0;:::o;16371:143::-;16413:26;16442:21;16413:50;;16474:32;16487:18;16474:12;:32::i;:::-;16371:143;:::o;14688:87::-;4333:12;:10;:12::i;:::-;4323:22;;:6;;;;;;;;;;:22;;;4315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14763:4:::1;14748;:12;14753:6;14748:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;14688:87:::0;:::o;1699:98::-;1752:7;1779:10;1772:17;;1699:98;:::o;9673:369::-;9817:1;9800:19;;:5;:19;;;;9792:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9898:1;9879:21;;:7;:21;;;;9871:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9980:6;9950:11;:18;9962:5;9950:18;;;;;;;;;;;;;;;:27;9969:7;9950:27;;;;;;;;;;;;;;;:36;;;;10018:7;10002:32;;10011:5;10002:32;;;10027:6;10002:32;;;;;;:::i;:::-;;;;;;;;9673:369;;;:::o;10050:2322::-;10190:1;10174:18;;:4;:18;;;;10166:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10267:1;10253:16;;:2;:16;;;;10245:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10337:1;10328:6;:10;10320:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10411:1;10399:9;:13;;;;10435:2;10423:9;:14;;;;10460:7;:5;:7::i;:::-;10452:15;;:4;:15;;;;:32;;;;;10477:7;:5;:7::i;:::-;10471:13;;:2;:13;;;;10452:32;:57;;;;;10504:4;10488:21;;:4;:21;;;;10452:57;:86;;;;;10514:18;:24;10533:4;10514:24;;;;;;;;;;;;;;;;;;;;;;;;;10513:25;10452:86;:113;;;;;10543:18;:22;10562:2;10543:22;;;;;;;;;;;;;;;;;;;;;;;;;10542:23;10452:113;10448:1872;;;10595:4;:10;10600:4;10595:10;;;;;;;;;;;;;;;;;;;;;;;;;10594:11;:24;;;;;10610:4;:8;10615:2;10610:8;;;;;;;;;;;;;;;;;;;;;;;;;10609:9;10594:24;10586:33;;;;;;10664:13;;;;;;;;;;;10656:21;;:4;:21;;;:72;;;;;10712:15;;;;;;;;;;;10698:30;;:2;:30;;;;10656:72;:116;;;;;10750:18;:22;10769:2;10750:22;;;;;;;;;;;;;;;;;;;;;;;;;10749:23;10656:116;:152;;;;;10793:15;;;;;;;;;;;10656:152;10634:634;;;10906:12;;10896:6;:22;;10888:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11022:15;11007:8;:12;11016:2;11007:12;;;;;;;;;;;;;;;;:30;10999:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11144:16;;11134:6;11118:13;11128:2;11118:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;11110:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11241:10;11222:15;:30;;;;:::i;:::-;11207:8;:12;11216:2;11207:12;;;;;;;;;;;;;;;:45;;;;10634:634;11312:13;;;;;;;;;;;11306:19;;:2;:19;;;:72;;;;;11362:15;;;;;;;;;;;11346:32;;:4;:32;;;;11306:72;:118;;;;;11400:18;:24;11419:4;11400:24;;;;;;;;;;;;;;;;;;;;;;;;;11399:25;11306:118;11284:237;;;11471:1;11459:9;:13;;;;11503:2;11491:9;:14;;;;11284:237;11558:12;11553:1;11541:9;;:13;;;;:::i;:::-;:29;;:54;;;;;11582:13;;;;;;;;;;;11574:21;;:4;:21;;;11541:54;11537:141;;;11628:1;11616:9;:13;;;;11660:2;11648:9;:14;;;;11537:141;11694:28;11725:24;11743:4;11725:9;:24::i;:::-;11694:55;;11764:12;11803:19;;11779:20;:43;;11764:58;;11841:7;:18;;;;;11853:6;;;;;;;;;;;11852:7;11841:18;:43;;;;;11871:13;;;;;;;;;;;11863:21;;:4;:21;;;;11841:43;:58;;;;;11888:11;;;;;;;;;;;11841:58;11837:322;;;11922:38;11939:20;11922:16;:38::i;:::-;11977:26;12006:21;11977:50;;12070:1;12049:18;:22;12045:99;;;12093:35;12106:21;12093:12;:35::i;:::-;12045:99;11837:322;;10448:1872;;;;;12279:1;12267:9;:13;;;;12307:1;12295:9;:13;;;;10448:1872;12332:32;12347:4;12353:2;12357:6;12332:14;:32::i;:::-;10050:2322;;;:::o;2961:224::-;3081:7;3114:1;3109;:6;;3117:12;3101:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3141:9;3157:1;3153;:5;;;;:::i;:::-;3141:17;;3176:1;3169:8;;;2961:224;;;;;:::o;12485:483::-;6903:4;6894:6;;:13;;;;;;;;;;;;;;;;;;12563:21:::1;12601:1;12587:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12563:40;;12632:4;12614;12619:1;12614:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12658:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12648:4;12653:1;12648:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12691:62;12708:4;12723:15;;;;;;;;;;;12741:11;12691:8;:62::i;:::-;12764:15;;;;;;;;;;;:66;;;12845:11;12871:1;12887:4;12914;12934:15;12764:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6918:1;6939:5:::0;6930:6;;:14;;;;;;;;;;;;;;;;;;12485:483;:::o;9342:323::-;9437:7;9495;;9484;:18;;9462:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9583:19;9605:10;:8;:10::i;:::-;9583:32;;9633:24;9645:11;9633:7;:11;;:24;;;;:::i;:::-;9626:31;;;9342:323;;;:::o;12976:154::-;13033:15;;;;;;;;;;;:24;;:39;13058:13;13069:1;13058:6;:10;;:13;;;;:::i;:::-;13033:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13083:15;;;;;;;;;;;:24;;:39;13108:13;13119:1;13108:6;:10;;:13;;;;:::i;:::-;13083:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12976:154;:::o;15000:180::-;15128:44;15146:6;15154:9;15165:6;15128:17;:44::i;:::-;15000:180;;;:::o;18253:164::-;18295:7;18316:15;18333;18352:19;:17;:19::i;:::-;18315:56;;;;18389:20;18401:7;18389;:11;;:20;;;;:::i;:::-;18382:27;;;;18253:164;:::o;3447:132::-;3505:7;3532:39;3536:1;3539;3532:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3525:46;;3447:132;;;;:::o;15188:610::-;15335:15;15365:23;15403:12;15430:23;15468:12;15495:13;15522:19;15533:7;15522:10;:19::i;:::-;15320:221;;;;;;;;;;;;15570:28;15590:7;15570;:15;15578:6;15570:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15552:7;:15;15560:6;15552:15;;;;;;;;;;;;;;;:46;;;;15630:39;15653:15;15630:7;:18;15638:9;15630:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15609:7;:18;15617:9;15609:18;;;;;;;;;;;;;;;:60;;;;15680:16;15690:5;15680:9;:16::i;:::-;15707:23;15719:4;15725;15707:11;:23::i;:::-;15763:9;15746:44;;15755:6;15746:44;;;15774:15;15746:44;;;;;;:::i;:::-;;;;;;;;15188:610;;;;;;;;;:::o;18425:257::-;18476:7;18485;18505:15;18523:7;;18505:25;;18541:15;5955:23;18541:25;;18591:20;5955:23;18591:7;;:11;;:20;;;;:::i;:::-;18581:7;:30;18577:61;;;18621:7;;5955:23;18613:25;;;;;;;;18577:61;18657:7;18666;18649:25;;;;;;18425:257;;;:::o;3587:223::-;3707:7;3739:1;3735;:5;3742:12;3727:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3766:9;3782:1;3778;:5;;;;:::i;:::-;3766:17;;3801:1;3794:8;;;3587:223;;;;;:::o;16522:704::-;16622:7;16644;16666;16688;16710;16732;16768:23;16793:12;16807:13;16824:92;16850:7;16872:9;;16896;;16824:11;:92::i;:::-;16767:149;;;;;;16927:19;16949:10;:8;:10::i;:::-;16927:32;;16971:15;16988:23;17013:12;17029:109;17055:7;17077:4;17096:5;17116:11;17029;:109::i;:::-;16970:168;;;;;;17157:7;17166:15;17183:4;17189:15;17206:4;17212:5;17149:69;;;;;;;;;;;;;;;;;;;16522:704;;;;;;;:::o;2817:136::-;2875:7;2902:43;2906:1;2909;2902:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2895:50;;2817:136;;;;:::o;2630:179::-;2688:7;2708:9;2724:1;2720;:5;;;;:::i;:::-;2708:17;;2749:1;2744;:6;;2736:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2800:1;2793:8;;;2630:179;;;;:::o;15806:211::-;15859:19;15881:10;:8;:10::i;:::-;15859:32;;15902:13;15918:22;15928:11;15918:5;:9;;:22;;;;:::i;:::-;15902:38;;15976:33;16003:5;15976:7;:22;15992:4;15976:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15951:7;:22;15967:4;15951:22;;;;;;;;;;;;;;;:58;;;;15806:211;;;:::o;16025:147::-;16103:17;16115:4;16103:7;;:11;;:17;;;;:::i;:::-;16093:7;:27;;;;16144:20;16159:4;16144:10;;:14;;:20;;;;:::i;:::-;16131:10;:33;;;;16025:147;;:::o;17234:467::-;17402:7;17424;17446;17481:12;17496:28;17520:3;17496:19;17508:6;17496:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17481:43;;17535:13;17551:29;17576:3;17551:20;17563:7;17551;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;17535:45;;17591:23;17617:28;17639:5;17617:17;17629:4;17617:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17591:54;;17664:15;17681:4;17687:5;17656:37;;;;;;;;;17234:467;;;;;;;:::o;17709:534::-;17903:7;17925;17947;17982:15;18000:24;18012:11;18000:7;:11;;:24;;;;:::i;:::-;17982:42;;18035:12;18050:21;18059:11;18050:4;:8;;:21;;;;:::i;:::-;18035:36;;18082:13;18098:22;18108:11;18098:5;:9;;:22;;;;:::i;:::-;18082:38;;18131:23;18157:28;18179:5;18157:17;18169:4;18157:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18131:54;;18204:7;18213:15;18230:4;18196:39;;;;;;;;;;17709:534;;;;;;;;:::o;3193:246::-;3251:7;3280:1;3275;:6;3271:47;;;3305:1;3298:8;;;;3271:47;3328:9;3344:1;3340;:5;;;;:::i;:::-;3328:17;;3373:1;3368;3364;:5;;;;:::i;:::-;:10;3356:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3430:1;3423:8;;;3193:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;511:84;;;;:::o;601:137::-;655:5;686:6;680:13;671:22;;702:30;726:5;702:30;:::i;:::-;661:77;;;;:::o;744:139::-;790:5;828:6;815:20;806:29;;844:33;871:5;844:33;:::i;:::-;796:87;;;;:::o;889:143::-;946:5;977:6;971:13;962:22;;993:33;1020:5;993:33;:::i;:::-;952:80;;;;:::o;1038:262::-;1097:6;1146:2;1134:9;1125:7;1121:23;1117:32;1114:2;;;1162:1;1159;1152:12;1114:2;1205:1;1230:53;1275:7;1266:6;1255:9;1251:22;1230:53;:::i;:::-;1220:63;;1176:117;1104:196;;;;:::o;1306:284::-;1376:6;1425:2;1413:9;1404:7;1400:23;1396:32;1393:2;;;1441:1;1438;1431:12;1393:2;1484:1;1509:64;1565:7;1556:6;1545:9;1541:22;1509:64;:::i;:::-;1499:74;;1455:128;1383:207;;;;:::o;1596:278::-;1663:6;1712:2;1700:9;1691:7;1687:23;1683:32;1680:2;;;1728:1;1725;1718:12;1680:2;1771:1;1796:61;1849:7;1840:6;1829:9;1825:22;1796:61;:::i;:::-;1786:71;;1742:125;1670:204;;;;:::o;1880:407::-;1948:6;1956;2005:2;1993:9;1984:7;1980:23;1976:32;1973:2;;;2021:1;2018;2011:12;1973:2;2064:1;2089:53;2134:7;2125:6;2114:9;2110:22;2089:53;:::i;:::-;2079:63;;2035:117;2191:2;2217:53;2262:7;2253:6;2242:9;2238:22;2217:53;:::i;:::-;2207:63;;2162:118;1963:324;;;;;:::o;2293:552::-;2370:6;2378;2386;2435:2;2423:9;2414:7;2410:23;2406:32;2403:2;;;2451:1;2448;2441:12;2403:2;2494:1;2519:53;2564:7;2555:6;2544:9;2540:22;2519:53;:::i;:::-;2509:63;;2465:117;2621:2;2647:53;2692:7;2683:6;2672:9;2668:22;2647:53;:::i;:::-;2637:63;;2592:118;2749:2;2775:53;2820:7;2811:6;2800:9;2796:22;2775:53;:::i;:::-;2765:63;;2720:118;2393:452;;;;;:::o;2851:407::-;2919:6;2927;2976:2;2964:9;2955:7;2951:23;2947:32;2944:2;;;2992:1;2989;2982:12;2944:2;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2934:324;;;;;:::o;3264:256::-;3320:6;3369:2;3357:9;3348:7;3344:23;3340:32;3337:2;;;3385:1;3382;3375:12;3337:2;3428:1;3453:50;3495:7;3486:6;3475:9;3471:22;3453:50;:::i;:::-;3443:60;;3399:114;3327:193;;;;:::o;3526:278::-;3593:6;3642:2;3630:9;3621:7;3617:23;3613:32;3610:2;;;3658:1;3655;3648:12;3610:2;3701:1;3726:61;3779:7;3770:6;3759:9;3755:22;3726:61;:::i;:::-;3716:71;;3672:125;3600:204;;;;:::o;3810:262::-;3869:6;3918:2;3906:9;3897:7;3893:23;3889:32;3886:2;;;3934:1;3931;3924:12;3886:2;3977:1;4002:53;4047:7;4038:6;4027:9;4023:22;4002:53;:::i;:::-;3992:63;;3948:117;3876:196;;;;:::o;4078:596::-;4166:6;4174;4182;4231:2;4219:9;4210:7;4206:23;4202:32;4199:2;;;4247:1;4244;4237:12;4199:2;4290:1;4315:64;4371:7;4362:6;4351:9;4347:22;4315:64;:::i;:::-;4305:74;;4261:128;4428:2;4454:64;4510:7;4501:6;4490:9;4486:22;4454:64;:::i;:::-;4444:74;;4399:129;4567:2;4593:64;4649:7;4640:6;4629:9;4625:22;4593:64;:::i;:::-;4583:74;;4538:129;4189:485;;;;;:::o;4680:179::-;4749:10;4770:46;4812:3;4804:6;4770:46;:::i;:::-;4848:4;4843:3;4839:14;4825:28;;4760:99;;;;:::o;4865:108::-;4942:24;4960:5;4942:24;:::i;:::-;4937:3;4930:37;4920:53;;:::o;4979:118::-;5066:24;5084:5;5066:24;:::i;:::-;5061:3;5054:37;5044:53;;:::o;5133:732::-;5252:3;5281:54;5329:5;5281:54;:::i;:::-;5351:86;5430:6;5425:3;5351:86;:::i;:::-;5344:93;;5461:56;5511:5;5461:56;:::i;:::-;5540:7;5571:1;5556:284;5581:6;5578:1;5575:13;5556:284;;;5657:6;5651:13;5684:63;5743:3;5728:13;5684:63;:::i;:::-;5677:70;;5770:60;5823:6;5770:60;:::i;:::-;5760:70;;5616:224;5603:1;5600;5596:9;5591:14;;5556:284;;;5560:14;5856:3;5849:10;;5257:608;;;;;;;:::o;5871:109::-;5952:21;5967:5;5952:21;:::i;:::-;5947:3;5940:34;5930:50;;:::o;5986:147::-;6081:45;6120:5;6081:45;:::i;:::-;6076:3;6069:58;6059:74;;:::o;6139:364::-;6227:3;6255:39;6288:5;6255:39;:::i;:::-;6310:71;6374:6;6369:3;6310:71;:::i;:::-;6303:78;;6390:52;6435:6;6430:3;6423:4;6416:5;6412:16;6390:52;:::i;:::-;6467:29;6489:6;6467:29;:::i;:::-;6462:3;6458:39;6451:46;;6231:272;;;;;:::o;6509:366::-;6651:3;6672:67;6736:2;6731:3;6672:67;:::i;:::-;6665:74;;6748:93;6837:3;6748:93;:::i;:::-;6866:2;6861:3;6857:12;6850:19;;6655:220;;;:::o;6881:366::-;7023:3;7044:67;7108:2;7103:3;7044:67;:::i;:::-;7037:74;;7120:93;7209:3;7120:93;:::i;:::-;7238:2;7233:3;7229:12;7222:19;;7027:220;;;:::o;7253:366::-;7395:3;7416:67;7480:2;7475:3;7416:67;:::i;:::-;7409:74;;7492:93;7581:3;7492:93;:::i;:::-;7610:2;7605:3;7601:12;7594:19;;7399:220;;;:::o;7625:366::-;7767:3;7788:67;7852:2;7847:3;7788:67;:::i;:::-;7781:74;;7864:93;7953:3;7864:93;:::i;:::-;7982:2;7977:3;7973:12;7966:19;;7771:220;;;:::o;7997:366::-;8139:3;8160:67;8224:2;8219:3;8160:67;:::i;:::-;8153:74;;8236:93;8325:3;8236:93;:::i;:::-;8354:2;8349:3;8345:12;8338:19;;8143:220;;;:::o;8369:366::-;8511:3;8532:67;8596:2;8591:3;8532:67;:::i;:::-;8525:74;;8608:93;8697:3;8608:93;:::i;:::-;8726:2;8721:3;8717:12;8710:19;;8515:220;;;:::o;8741:366::-;8883:3;8904:67;8968:2;8963:3;8904:67;:::i;:::-;8897:74;;8980:93;9069:3;8980:93;:::i;:::-;9098:2;9093:3;9089:12;9082:19;;8887:220;;;:::o;9113:366::-;9255:3;9276:67;9340:2;9335:3;9276:67;:::i;:::-;9269:74;;9352:93;9441:3;9352:93;:::i;:::-;9470:2;9465:3;9461:12;9454:19;;9259:220;;;:::o;9485:366::-;9627:3;9648:67;9712:2;9707:3;9648:67;:::i;:::-;9641:74;;9724:93;9813:3;9724:93;:::i;:::-;9842:2;9837:3;9833:12;9826:19;;9631:220;;;:::o;9857:366::-;9999:3;10020:67;10084:2;10079:3;10020:67;:::i;:::-;10013:74;;10096:93;10185:3;10096:93;:::i;:::-;10214:2;10209:3;10205:12;10198:19;;10003:220;;;:::o;10229:366::-;10371:3;10392:67;10456:2;10451:3;10392:67;:::i;:::-;10385:74;;10468:93;10557:3;10468:93;:::i;:::-;10586:2;10581:3;10577:12;10570:19;;10375:220;;;:::o;10601:366::-;10743:3;10764:67;10828:2;10823:3;10764:67;:::i;:::-;10757:74;;10840:93;10929:3;10840:93;:::i;:::-;10958:2;10953:3;10949:12;10942:19;;10747:220;;;:::o;10973:366::-;11115:3;11136:67;11200:2;11195:3;11136:67;:::i;:::-;11129:74;;11212:93;11301:3;11212:93;:::i;:::-;11330:2;11325:3;11321:12;11314:19;;11119:220;;;:::o;11345:118::-;11432:24;11450:5;11432:24;:::i;:::-;11427:3;11420:37;11410:53;;:::o;11469:112::-;11552:22;11568:5;11552:22;:::i;:::-;11547:3;11540:35;11530:51;;:::o;11587:222::-;11680:4;11718:2;11707:9;11703:18;11695:26;;11731:71;11799:1;11788:9;11784:17;11775:6;11731:71;:::i;:::-;11685:124;;;;:::o;11815:332::-;11936:4;11974:2;11963:9;11959:18;11951:26;;11987:71;12055:1;12044:9;12040:17;12031:6;11987:71;:::i;:::-;12068:72;12136:2;12125:9;12121:18;12112:6;12068:72;:::i;:::-;11941:206;;;;;:::o;12153:332::-;12274:4;12312:2;12301:9;12297:18;12289:26;;12325:71;12393:1;12382:9;12378:17;12369:6;12325:71;:::i;:::-;12406:72;12474:2;12463:9;12459:18;12450:6;12406:72;:::i;:::-;12279:206;;;;;:::o;12491:807::-;12740:4;12778:3;12767:9;12763:19;12755:27;;12792:71;12860:1;12849:9;12845:17;12836:6;12792:71;:::i;:::-;12873:72;12941:2;12930:9;12926:18;12917:6;12873:72;:::i;:::-;12955:80;13031:2;13020:9;13016:18;13007:6;12955:80;:::i;:::-;13045;13121:2;13110:9;13106:18;13097:6;13045:80;:::i;:::-;13135:73;13203:3;13192:9;13188:19;13179:6;13135:73;:::i;:::-;13218;13286:3;13275:9;13271:19;13262:6;13218:73;:::i;:::-;12745:553;;;;;;;;;:::o;13304:210::-;13391:4;13429:2;13418:9;13414:18;13406:26;;13442:65;13504:1;13493:9;13489:17;13480:6;13442:65;:::i;:::-;13396:118;;;;:::o;13520:313::-;13633:4;13671:2;13660:9;13656:18;13648:26;;13720:9;13714:4;13710:20;13706:1;13695:9;13691:17;13684:47;13748:78;13821:4;13812:6;13748:78;:::i;:::-;13740:86;;13638:195;;;;:::o;13839:419::-;14005:4;14043:2;14032:9;14028:18;14020:26;;14092:9;14086:4;14082:20;14078:1;14067:9;14063:17;14056:47;14120:131;14246:4;14120:131;:::i;:::-;14112:139;;14010:248;;;:::o;14264:419::-;14430:4;14468:2;14457:9;14453:18;14445:26;;14517:9;14511:4;14507:20;14503:1;14492:9;14488:17;14481:47;14545:131;14671:4;14545:131;:::i;:::-;14537:139;;14435:248;;;:::o;14689:419::-;14855:4;14893:2;14882:9;14878:18;14870:26;;14942:9;14936:4;14932:20;14928:1;14917:9;14913:17;14906:47;14970:131;15096:4;14970:131;:::i;:::-;14962:139;;14860:248;;;:::o;15114:419::-;15280:4;15318:2;15307:9;15303:18;15295:26;;15367:9;15361:4;15357:20;15353:1;15342:9;15338:17;15331:47;15395:131;15521:4;15395:131;:::i;:::-;15387:139;;15285:248;;;:::o;15539:419::-;15705:4;15743:2;15732:9;15728:18;15720:26;;15792:9;15786:4;15782:20;15778:1;15767:9;15763:17;15756:47;15820:131;15946:4;15820:131;:::i;:::-;15812:139;;15710:248;;;:::o;15964:419::-;16130:4;16168:2;16157:9;16153:18;16145:26;;16217:9;16211:4;16207:20;16203:1;16192:9;16188:17;16181:47;16245:131;16371:4;16245:131;:::i;:::-;16237:139;;16135:248;;;:::o;16389:419::-;16555:4;16593:2;16582:9;16578:18;16570:26;;16642:9;16636:4;16632:20;16628:1;16617:9;16613:17;16606:47;16670:131;16796:4;16670:131;:::i;:::-;16662:139;;16560:248;;;:::o;16814:419::-;16980:4;17018:2;17007:9;17003:18;16995:26;;17067:9;17061:4;17057:20;17053:1;17042:9;17038:17;17031:47;17095:131;17221:4;17095:131;:::i;:::-;17087:139;;16985:248;;;:::o;17239:419::-;17405:4;17443:2;17432:9;17428:18;17420:26;;17492:9;17486:4;17482:20;17478:1;17467:9;17463:17;17456:47;17520:131;17646:4;17520:131;:::i;:::-;17512:139;;17410:248;;;:::o;17664:419::-;17830:4;17868:2;17857:9;17853:18;17845:26;;17917:9;17911:4;17907:20;17903:1;17892:9;17888:17;17881:47;17945:131;18071:4;17945:131;:::i;:::-;17937:139;;17835:248;;;:::o;18089:419::-;18255:4;18293:2;18282:9;18278:18;18270:26;;18342:9;18336:4;18332:20;18328:1;18317:9;18313:17;18306:47;18370:131;18496:4;18370:131;:::i;:::-;18362:139;;18260:248;;;:::o;18514:419::-;18680:4;18718:2;18707:9;18703:18;18695:26;;18767:9;18761:4;18757:20;18753:1;18742:9;18738:17;18731:47;18795:131;18921:4;18795:131;:::i;:::-;18787:139;;18685:248;;;:::o;18939:419::-;19105:4;19143:2;19132:9;19128:18;19120:26;;19192:9;19186:4;19182:20;19178:1;19167:9;19163:17;19156:47;19220:131;19346:4;19220:131;:::i;:::-;19212:139;;19110:248;;;:::o;19364:222::-;19457:4;19495:2;19484:9;19480:18;19472:26;;19508:71;19576:1;19565:9;19561:17;19552:6;19508:71;:::i;:::-;19462:124;;;;:::o;19592:831::-;19855:4;19893:3;19882:9;19878:19;19870:27;;19907:71;19975:1;19964:9;19960:17;19951:6;19907:71;:::i;:::-;19988:80;20064:2;20053:9;20049:18;20040:6;19988:80;:::i;:::-;20115:9;20109:4;20105:20;20100:2;20089:9;20085:18;20078:48;20143:108;20246:4;20237:6;20143:108;:::i;:::-;20135:116;;20261:72;20329:2;20318:9;20314:18;20305:6;20261:72;:::i;:::-;20343:73;20411:3;20400:9;20396:19;20387:6;20343:73;:::i;:::-;19860:563;;;;;;;;:::o;20429:214::-;20518:4;20556:2;20545:9;20541:18;20533:26;;20569:67;20633:1;20622:9;20618:17;20609:6;20569:67;:::i;:::-;20523:120;;;;:::o;20649:132::-;20716:4;20739:3;20731:11;;20769:4;20764:3;20760:14;20752:22;;20721:60;;;:::o;20787:114::-;20854:6;20888:5;20882:12;20872:22;;20861:40;;;:::o;20907:99::-;20959:6;20993:5;20987:12;20977:22;;20966:40;;;:::o;21012:113::-;21082:4;21114;21109:3;21105:14;21097:22;;21087:38;;;:::o;21131:184::-;21230:11;21264:6;21259:3;21252:19;21304:4;21299:3;21295:14;21280:29;;21242:73;;;;:::o;21321:169::-;21405:11;21439:6;21434:3;21427:19;21479:4;21474:3;21470:14;21455:29;;21417:73;;;;:::o;21496:305::-;21536:3;21555:20;21573:1;21555:20;:::i;:::-;21550:25;;21589:20;21607:1;21589:20;:::i;:::-;21584:25;;21743:1;21675:66;21671:74;21668:1;21665:81;21662:2;;;21749:18;;:::i;:::-;21662:2;21793:1;21790;21786:9;21779:16;;21540:261;;;;:::o;21807:185::-;21847:1;21864:20;21882:1;21864:20;:::i;:::-;21859:25;;21898:20;21916:1;21898:20;:::i;:::-;21893:25;;21937:1;21927:2;;21942:18;;:::i;:::-;21927:2;21984:1;21981;21977:9;21972:14;;21849:143;;;;:::o;21998:348::-;22038:7;22061:20;22079:1;22061:20;:::i;:::-;22056:25;;22095:20;22113:1;22095:20;:::i;:::-;22090:25;;22283:1;22215:66;22211:74;22208:1;22205:81;22200:1;22193:9;22186:17;22182:105;22179:2;;;22290:18;;:::i;:::-;22179:2;22338:1;22335;22331:9;22320:20;;22046:300;;;;:::o;22352:191::-;22392:4;22412:20;22430:1;22412:20;:::i;:::-;22407:25;;22446:20;22464:1;22446:20;:::i;:::-;22441:25;;22485:1;22482;22479:8;22476:2;;;22490:18;;:::i;:::-;22476:2;22535:1;22532;22528:9;22520:17;;22397:146;;;;:::o;22549:96::-;22586:7;22615:24;22633:5;22615:24;:::i;:::-;22604:35;;22594:51;;;:::o;22651:104::-;22696:7;22725:24;22743:5;22725:24;:::i;:::-;22714:35;;22704:51;;;:::o;22761:90::-;22795:7;22838:5;22831:13;22824:21;22813:32;;22803:48;;;:::o;22857:126::-;22894:7;22934:42;22927:5;22923:54;22912:65;;22902:81;;;:::o;22989:77::-;23026:7;23055:5;23044:16;;23034:32;;;:::o;23072:86::-;23107:7;23147:4;23140:5;23136:16;23125:27;;23115:43;;;:::o;23164:121::-;23222:9;23255:24;23273:5;23255:24;:::i;:::-;23242:37;;23232:53;;;:::o;23291:307::-;23359:1;23369:113;23383:6;23380:1;23377:13;23369:113;;;23468:1;23463:3;23459:11;23453:18;23449:1;23444:3;23440:11;23433:39;23405:2;23402:1;23398:10;23393:15;;23369:113;;;23500:6;23497:1;23494:13;23491:2;;;23580:1;23571:6;23566:3;23562:16;23555:27;23491:2;23340:258;;;;:::o;23604:180::-;23652:77;23649:1;23642:88;23749:4;23746:1;23739:15;23773:4;23770:1;23763:15;23790:180;23838:77;23835:1;23828:88;23935:4;23932:1;23925:15;23959:4;23956:1;23949:15;23976:102;24017:6;24068:2;24064:7;24059:2;24052:5;24048:14;24044:28;24034:38;;24024:54;;;:::o;24084:222::-;24224:34;24220:1;24212:6;24208:14;24201:58;24293:5;24288:2;24280:6;24276:15;24269:30;24190:116;:::o;24312:229::-;24452:34;24448:1;24440:6;24436:14;24429:58;24521:12;24516:2;24508:6;24504:15;24497:37;24418:123;:::o;24547:221::-;24687:34;24683:1;24675:6;24671:14;24664:58;24756:4;24751:2;24743:6;24739:15;24732:29;24653:115;:::o;24774:177::-;24914:29;24910:1;24902:6;24898:14;24891:53;24880:71;:::o;24957:220::-;25097:34;25093:1;25085:6;25081:14;25074:58;25166:3;25161:2;25153:6;25149:15;25142:28;25063:114;:::o;25183:182::-;25323:34;25319:1;25311:6;25307:14;25300:58;25289:76;:::o;25371:228::-;25511:34;25507:1;25499:6;25495:14;25488:58;25580:11;25575:2;25567:6;25563:15;25556:36;25477:122;:::o;25605:173::-;25745:25;25741:1;25733:6;25729:14;25722:49;25711:67;:::o;25784:224::-;25924:34;25920:1;25912:6;25908:14;25901:58;25993:7;25988:2;25980:6;25976:15;25969:32;25890:118;:::o;26014:223::-;26154:34;26150:1;26142:6;26138:14;26131:58;26223:6;26218:2;26210:6;26206:15;26199:31;26120:117;:::o;26243:173::-;26383:25;26379:1;26371:6;26367:14;26360:49;26349:67;:::o;26422:178::-;26562:30;26558:1;26550:6;26546:14;26539:54;26528:72;:::o;26606:168::-;26746:20;26742:1;26734:6;26730:14;26723:44;26712:62;:::o;26780:122::-;26853:24;26871:5;26853:24;:::i;:::-;26846:5;26843:35;26833:2;;26892:1;26889;26882:12;26833:2;26823:79;:::o;26908:138::-;26989:32;27015:5;26989:32;:::i;:::-;26982:5;26979:43;26969:2;;27036:1;27033;27026:12;26969:2;26959:87;:::o;27052:116::-;27122:21;27137:5;27122:21;:::i;:::-;27115:5;27112:32;27102:2;;27158:1;27155;27148:12;27102:2;27092:76;:::o;27174:122::-;27247:24;27265:5;27247:24;:::i;:::-;27240:5;27237:35;27227:2;;27286:1;27283;27276:12;27227:2;27217:79;:::o

Swarm Source

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