ETH Price: $2,608.09 (+0.33%)
Gas: 1 Gwei

Token

PEPEGA (PEPEGA)
 

Overview

Max Total Supply

10,000,000,000 PEPEGA

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: PEPEGA 12
Balance
0.000003126 PEPEGA

Value
$0.00
0x0ba138fdb6a3894ca19597c0984a9cedd55d82ee
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:
Pepega

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-27
*/

/**
 *Submitted for verification at Etherscan.io on 2023-04-26
*/

// 
// Telegram: https://t.me/PEPEGALOVERS


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Pepega is Context, IERC20, Ownable {

    using SafeMath for uint256;

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


    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;
    uint256 private feeLimit = 100;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _developmentAddress = payable (0xB02D34246BDe91DFA9Ea04782DB6154B40d38d39);
    address payable private _marketingAddress = payable(0xB02D34246BDe91DFA9Ea04782DB6154B40d38d39);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal*2/100;
    uint256 public _maxWalletSize = _tTotal*2/100;
    uint256 public _swapTokensAtAmount = _tTotal*1/100;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                if(to != uniswapV2Pair) {
                    require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                }
              }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

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

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

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

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function manualSwap(uint256 percent) external {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapamount = contractTokenBalance*percent/100;
        swapTokensForEth(swapamount);
    }

    function toggleSwap (bool _swapEnabled) external {
        swapEnabled = _swapEnabled;
    }

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

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

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

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

    receive() external payable {}

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

    function removeMaxTxnAndWalletSizeLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        feeLimit = 105;
    }

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

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

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

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

    function setTradingToOpen() public onlyOwner {
        require(!tradingOpen, "Trading already active");
        tradingOpen = true;
    }

    function setFeeBuy(uint256 taxFeeOnBuy) public onlyOwner {
        _taxFeeOnBuy = taxFeeOnBuy;
        require (_taxFeeOnBuy <= feeLimit);
    }

    function setFeeSell(uint256 taxFeeOnSell) public onlyOwner {
        _taxFeeOnSell = taxFeeOnSell;
        require (_taxFeeOnSell <= feeLimit);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxTxnAndWalletSizeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"}],"name":"setFeeBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFeeSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTradingToOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052678ac7230489e800006000196200001c9190620007f0565b6000196200002b919062000857565b600655600060085560006009556000600a556005600b556064600c55600a54600d55600b54600e55600d54600f55600e5460105573b02d34246bde91dfa9ea04782db6154b40d38d39601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b02d34246bde91dfa9ea04782db6154b40d38d39601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555060646002678ac7230489e80000620001ac919062000892565b620001b89190620008f3565b60165560646002678ac7230489e80000620001d4919062000892565b620001e09190620008f3565b60175560646001678ac7230489e80000620001fc919062000892565b620002089190620008f3565b6018553480156200021857600080fd5b5060006200022b6200078660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002e06200078660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003bf57600080fd5b505afa158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000995565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045d57600080fd5b505afa15801562000472573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000498919062000995565b6040518363ffffffff1660e01b8152600401620004b7929190620009d8565b602060405180830381600087803b158015620004d257600080fd5b505af1158015620004e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050d919062000995565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005636200078e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007106200078660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e8000060405162000777919062000a16565b60405180910390a35062000a33565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007fd82620007b7565b91506200080a83620007b7565b9250826200081d576200081c620007c1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200086482620007b7565b91506200087183620007b7565b92508282101562000887576200088662000828565b5b828203905092915050565b60006200089f82620007b7565b9150620008ac83620007b7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008e857620008e762000828565b5b828202905092915050565b60006200090082620007b7565b91506200090d83620007b7565b92508262000920576200091f620007c1565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200095d8262000930565b9050919050565b6200096f8162000950565b81146200097b57600080fd5b50565b6000815190506200098f8162000964565b92915050565b600060208284031215620009ae57620009ad6200092b565b5b6000620009be848285016200097e565b91505092915050565b620009d28162000950565b82525050565b6000604082019050620009ef6000830185620009c7565b620009fe6020830184620009c7565b9392505050565b62000a1081620007b7565b82525050565b600060208201905062000a2d600083018462000a05565b92915050565b6133df8062000a436000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b657806396e074fc1161006f57806396e074fc14610457578063a9059cbb14610480578063ad7c68b2146104bd578063b70143c9146104d4578063dd62ed3e146104fd578063f2fde38b1461053a57610156565b8063715018a61461036b5780637cec1c82146103825780637d1db4a5146103ab5780638da5cb5b146103d65780638f9a55c01461040157806395d89b411461042c57610156565b80632fd689e3116101085780632fd689e31461026d578063313ce5671461029857806349bd5a5e146102c35780636d8aa8f8146102ee5780636fc3eaec1461031757806370a082311461032e57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632895c4ac1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d919061253b565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906125f6565b6105a0565b6040516101ba9190612651565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e591906126cb565b60405180910390f35b3480156101fa57600080fd5b506102036105e4565b60405161021091906126f5565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612710565b6105f4565b60405161024d9190612651565b60405180910390f35b34801561026257600080fd5b5061026b6106cd565b005b34801561027957600080fd5b5061028261078a565b60405161028f91906126f5565b60405180910390f35b3480156102a457600080fd5b506102ad610790565b6040516102ba919061277f565b60405180910390f35b3480156102cf57600080fd5b506102d8610799565b6040516102e591906127a9565b60405180910390f35b3480156102fa57600080fd5b50610315600480360381019061031091906127f0565b6107bf565b005b34801561032357600080fd5b5061032c6107dc565b005b34801561033a57600080fd5b506103556004803603810190610350919061281d565b6107e7565b60405161036291906126f5565b60405180910390f35b34801561037757600080fd5b50610380610838565b005b34801561038e57600080fd5b506103a960048036038101906103a4919061284a565b61098b565b005b3480156103b757600080fd5b506103c0610a3b565b6040516103cd91906126f5565b60405180910390f35b3480156103e257600080fd5b506103eb610a41565b6040516103f891906127a9565b60405180910390f35b34801561040d57600080fd5b50610416610a6a565b60405161042391906126f5565b60405180910390f35b34801561043857600080fd5b50610441610a70565b60405161044e919061253b565b60405180910390f35b34801561046357600080fd5b5061047e6004803603810190610479919061284a565b610aad565b005b34801561048c57600080fd5b506104a760048036038101906104a291906125f6565b610b5d565b6040516104b49190612651565b60405180910390f35b3480156104c957600080fd5b506104d2610b7b565b005b3480156104e057600080fd5b506104fb60048036038101906104f6919061284a565b610c7d565b005b34801561050957600080fd5b50610524600480360381019061051f9190612877565b610cb4565b60405161053191906126f5565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c919061281d565b610d3b565b005b60606040518060400160405280600681526020017f5045504547410000000000000000000000000000000000000000000000000000815250905090565b60006105b46105ad610efd565b8484610f05565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b60006106018484846110d0565b6106c28461060d610efd565b6106bd8560405180606001604052806028815260200161338260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610673610efd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119b79092919063ffffffff16565b610f05565b600190509392505050565b6106d5610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075990612903565b60405180910390fd5b678ac7230489e80000601681905550678ac7230489e800006017819055506069600c81905550565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80601560166101000a81548160ff02191690831515021790555050565b6107e547611a1b565b565b6000610831600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a87565b9050919050565b610840610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490612903565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610993610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1790612903565b60405180910390fd5b80600b81905550600c54600b541115610a3857600080fd5b50565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600681526020017f5045504547410000000000000000000000000000000000000000000000000000815250905090565b610ab5610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612903565b60405180910390fd5b80600981905550600c546009541115610b5a57600080fd5b50565b6000610b71610b6a610efd565b84846110d0565b6001905092915050565b610b83610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612903565b60405180910390fd5b601560149054906101000a900460ff1615610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c579061296f565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b6000610c88306107e7565b9050600060648383610c9a91906129be565b610ca49190612a47565b9050610caf81611af5565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d43610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612903565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3790612aea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612b7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612c0e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110c391906126f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790612d32565b60405180910390fd5b600081116111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea90612dc4565b60405180910390fd5b6111fb610a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112695750611239610a41565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116b657601560149054906101000a900460ff166112f85761128a610a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90612e56565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156113a45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113fe5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561143657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561152e57601654811115611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612ec2565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461152d57601754816114e2846107e7565b6114ec9190612ee2565b1061152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612faa565b60405180910390fd5b5b5b6000611539306107e7565b905060006018548210159050600260185461155491906129be565b5080801561156d575060158054906101000a900460ff16155b80156115c75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156115df5750601560169054906101000a900460ff165b80156116355750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561168b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116b35761169982611af5565b600047905060008111156116b1576116b081611a1b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061175d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118105750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561181e57600090506119a5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118c95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118e157600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119a457600a54600d81905550600b54600e819055505b5b6119b184848484611d7b565b50505050565b60008383111582906119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f6919061253b565b60405180910390fd5b5060008385611a0e9190612fca565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a83573d6000803e3d6000fd5b5050565b6000600654821115611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613070565b60405180910390fd5b6000611ad8611da8565b9050611aed8184611dd390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b2c57611b2b613090565b5b604051908082528060200260200182016040528015611b5a5781602001602082028036833780820191505090505b5090503081600081518110611b7257611b716130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c1457600080fd5b505afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c9190613103565b81600181518110611c6057611c5f6130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cc730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f05565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d2b959493929190613229565b600060405180830381600087803b158015611d4557600080fd5b505af1158015611d59573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80611d8957611d88611e1d565b5b611d94848484611e60565b80611da257611da161202b565b5b50505050565b6000806000611db561203f565b91509150611dcc8183611dd390919063ffffffff16565b9250505090565b6000611e1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061209e565b905092915050565b6000600d54148015611e3157506000600e54145b15611e3b57611e5e565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080611e7287612101565b955095509550955095509550611ed086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb181612211565b611fbb84836122ce565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161201891906126f5565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060065490506000678ac7230489e800009050612073678ac7230489e80000600654611dd390919063ffffffff16565b82101561209157600654678ac7230489e8000093509350505061209a565b81819350935050505b9091565b600080831182906120e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dc919061253b565b60405180910390fd5b50600083856120f49190612a47565b9050809150509392505050565b600080600080600080600080600061211e8a600d54600e54612308565b925092509250600061212e611da8565b905060008060006121418e87878761239e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006121ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119b7565b905092915050565b60008082846121c29190612ee2565b905083811015612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906132cf565b60405180910390fd5b8091505092915050565b600061221b611da8565b90506000612232828461242790919063ffffffff16565b905061228681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6122e38260065461216990919063ffffffff16565b6006819055506122fe816007546121b390919063ffffffff16565b6007819055505050565b6000806000806123346064612326888a61242790919063ffffffff16565b611dd390919063ffffffff16565b9050600061235e6064612350888b61242790919063ffffffff16565b611dd390919063ffffffff16565b9050600061238782612379858c61216990919063ffffffff16565b61216990919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123b7858961242790919063ffffffff16565b905060006123ce868961242790919063ffffffff16565b905060006123e5878961242790919063ffffffff16565b9050600061240e82612400858761216990919063ffffffff16565b61216990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561243a576000905061249c565b6000828461244891906129be565b90508284826124579190612a47565b14612497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248e90613361565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124dc5780820151818401526020810190506124c1565b838111156124eb576000848401525b50505050565b6000601f19601f8301169050919050565b600061250d826124a2565b61251781856124ad565b93506125278185602086016124be565b612530816124f1565b840191505092915050565b600060208201905081810360008301526125558184612502565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061258d82612562565b9050919050565b61259d81612582565b81146125a857600080fd5b50565b6000813590506125ba81612594565b92915050565b6000819050919050565b6125d3816125c0565b81146125de57600080fd5b50565b6000813590506125f0816125ca565b92915050565b6000806040838503121561260d5761260c61255d565b5b600061261b858286016125ab565b925050602061262c858286016125e1565b9150509250929050565b60008115159050919050565b61264b81612636565b82525050565b60006020820190506126666000830184612642565b92915050565b6000819050919050565b600061269161268c61268784612562565b61266c565b612562565b9050919050565b60006126a382612676565b9050919050565b60006126b582612698565b9050919050565b6126c5816126aa565b82525050565b60006020820190506126e060008301846126bc565b92915050565b6126ef816125c0565b82525050565b600060208201905061270a60008301846126e6565b92915050565b6000806000606084860312156127295761272861255d565b5b6000612737868287016125ab565b9350506020612748868287016125ab565b9250506040612759868287016125e1565b9150509250925092565b600060ff82169050919050565b61277981612763565b82525050565b60006020820190506127946000830184612770565b92915050565b6127a381612582565b82525050565b60006020820190506127be600083018461279a565b92915050565b6127cd81612636565b81146127d857600080fd5b50565b6000813590506127ea816127c4565b92915050565b6000602082840312156128065761280561255d565b5b6000612814848285016127db565b91505092915050565b6000602082840312156128335761283261255d565b5b6000612841848285016125ab565b91505092915050565b6000602082840312156128605761285f61255d565b5b600061286e848285016125e1565b91505092915050565b6000806040838503121561288e5761288d61255d565b5b600061289c858286016125ab565b92505060206128ad858286016125ab565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ed6020836124ad565b91506128f8826128b7565b602082019050919050565b6000602082019050818103600083015261291c816128e0565b9050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b60006129596016836124ad565b915061296482612923565b602082019050919050565b600060208201905081810360008301526129888161294c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129c9826125c0565b91506129d4836125c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a0d57612a0c61298f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a52826125c0565b9150612a5d836125c0565b925082612a6d57612a6c612a18565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ad46026836124ad565b9150612adf82612a78565b604082019050919050565b60006020820190508181036000830152612b0381612ac7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b666024836124ad565b9150612b7182612b0a565b604082019050919050565b60006020820190508181036000830152612b9581612b59565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bf86022836124ad565b9150612c0382612b9c565b604082019050919050565b60006020820190508181036000830152612c2781612beb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c8a6025836124ad565b9150612c9582612c2e565b604082019050919050565b60006020820190508181036000830152612cb981612c7d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1c6023836124ad565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dae6029836124ad565b9150612db982612d52565b604082019050919050565b60006020820190508181036000830152612ddd81612da1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612e40603f836124ad565b9150612e4b82612de4565b604082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612eac601c836124ad565b9150612eb782612e76565b602082019050919050565b60006020820190508181036000830152612edb81612e9f565b9050919050565b6000612eed826125c0565b9150612ef8836125c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f2d57612f2c61298f565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612f946023836124ad565b9150612f9f82612f38565b604082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b6000612fd5826125c0565b9150612fe0836125c0565b925082821015612ff357612ff261298f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061305a602a836124ad565b915061306582612ffe565b604082019050919050565b600060208201905081810360008301526130898161304d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130fd81612594565b92915050565b6000602082840312156131195761311861255d565b5b6000613127848285016130ee565b91505092915050565b6000819050919050565b600061315561315061314b84613130565b61266c565b6125c0565b9050919050565b6131658161313a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131a081612582565b82525050565b60006131b28383613197565b60208301905092915050565b6000602082019050919050565b60006131d68261316b565b6131e08185613176565b93506131eb83613187565b8060005b8381101561321c57815161320388826131a6565b975061320e836131be565b9250506001810190506131ef565b5085935050505092915050565b600060a08201905061323e60008301886126e6565b61324b602083018761315c565b818103604083015261325d81866131cb565b905061326c606083018561279a565b61327960808301846126e6565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132b9601b836124ad565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061334b6021836124ad565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122019444dbd8904d2c0f4587f6e34ed5182ec227382914ce537890c2b7e09c5306c64736f6c63430008090033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b657806396e074fc1161006f57806396e074fc14610457578063a9059cbb14610480578063ad7c68b2146104bd578063b70143c9146104d4578063dd62ed3e146104fd578063f2fde38b1461053a57610156565b8063715018a61461036b5780637cec1c82146103825780637d1db4a5146103ab5780638da5cb5b146103d65780638f9a55c01461040157806395d89b411461042c57610156565b80632fd689e3116101085780632fd689e31461026d578063313ce5671461029857806349bd5a5e146102c35780636d8aa8f8146102ee5780636fc3eaec1461031757806370a082311461032e57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632895c4ac1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d919061253b565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906125f6565b6105a0565b6040516101ba9190612651565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e591906126cb565b60405180910390f35b3480156101fa57600080fd5b506102036105e4565b60405161021091906126f5565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612710565b6105f4565b60405161024d9190612651565b60405180910390f35b34801561026257600080fd5b5061026b6106cd565b005b34801561027957600080fd5b5061028261078a565b60405161028f91906126f5565b60405180910390f35b3480156102a457600080fd5b506102ad610790565b6040516102ba919061277f565b60405180910390f35b3480156102cf57600080fd5b506102d8610799565b6040516102e591906127a9565b60405180910390f35b3480156102fa57600080fd5b50610315600480360381019061031091906127f0565b6107bf565b005b34801561032357600080fd5b5061032c6107dc565b005b34801561033a57600080fd5b506103556004803603810190610350919061281d565b6107e7565b60405161036291906126f5565b60405180910390f35b34801561037757600080fd5b50610380610838565b005b34801561038e57600080fd5b506103a960048036038101906103a4919061284a565b61098b565b005b3480156103b757600080fd5b506103c0610a3b565b6040516103cd91906126f5565b60405180910390f35b3480156103e257600080fd5b506103eb610a41565b6040516103f891906127a9565b60405180910390f35b34801561040d57600080fd5b50610416610a6a565b60405161042391906126f5565b60405180910390f35b34801561043857600080fd5b50610441610a70565b60405161044e919061253b565b60405180910390f35b34801561046357600080fd5b5061047e6004803603810190610479919061284a565b610aad565b005b34801561048c57600080fd5b506104a760048036038101906104a291906125f6565b610b5d565b6040516104b49190612651565b60405180910390f35b3480156104c957600080fd5b506104d2610b7b565b005b3480156104e057600080fd5b506104fb60048036038101906104f6919061284a565b610c7d565b005b34801561050957600080fd5b50610524600480360381019061051f9190612877565b610cb4565b60405161053191906126f5565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c919061281d565b610d3b565b005b60606040518060400160405280600681526020017f5045504547410000000000000000000000000000000000000000000000000000815250905090565b60006105b46105ad610efd565b8484610f05565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b60006106018484846110d0565b6106c28461060d610efd565b6106bd8560405180606001604052806028815260200161338260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610673610efd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119b79092919063ffffffff16565b610f05565b600190509392505050565b6106d5610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075990612903565b60405180910390fd5b678ac7230489e80000601681905550678ac7230489e800006017819055506069600c81905550565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80601560166101000a81548160ff02191690831515021790555050565b6107e547611a1b565b565b6000610831600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a87565b9050919050565b610840610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490612903565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610993610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1790612903565b60405180910390fd5b80600b81905550600c54600b541115610a3857600080fd5b50565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600681526020017f5045504547410000000000000000000000000000000000000000000000000000815250905090565b610ab5610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612903565b60405180910390fd5b80600981905550600c546009541115610b5a57600080fd5b50565b6000610b71610b6a610efd565b84846110d0565b6001905092915050565b610b83610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612903565b60405180910390fd5b601560149054906101000a900460ff1615610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c579061296f565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b6000610c88306107e7565b9050600060648383610c9a91906129be565b610ca49190612a47565b9050610caf81611af5565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d43610efd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612903565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3790612aea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612b7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612c0e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110c391906126f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113790612ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790612d32565b60405180910390fd5b600081116111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea90612dc4565b60405180910390fd5b6111fb610a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112695750611239610a41565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116b657601560149054906101000a900460ff166112f85761128a610a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90612e56565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156113a45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156113fe5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561143657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561152e57601654811115611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612ec2565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461152d57601754816114e2846107e7565b6114ec9190612ee2565b1061152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612faa565b60405180910390fd5b5b5b6000611539306107e7565b905060006018548210159050600260185461155491906129be565b5080801561156d575060158054906101000a900460ff16155b80156115c75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156115df5750601560169054906101000a900460ff165b80156116355750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561168b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116b35761169982611af5565b600047905060008111156116b1576116b081611a1b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061175d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118105750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561181e57600090506119a5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118c95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118e157600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119a457600a54600d81905550600b54600e819055505b5b6119b184848484611d7b565b50505050565b60008383111582906119ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f6919061253b565b60405180910390fd5b5060008385611a0e9190612fca565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a83573d6000803e3d6000fd5b5050565b6000600654821115611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613070565b60405180910390fd5b6000611ad8611da8565b9050611aed8184611dd390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b2c57611b2b613090565b5b604051908082528060200260200182016040528015611b5a5781602001602082028036833780820191505090505b5090503081600081518110611b7257611b716130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c1457600080fd5b505afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c9190613103565b81600181518110611c6057611c5f6130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cc730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f05565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d2b959493929190613229565b600060405180830381600087803b158015611d4557600080fd5b505af1158015611d59573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80611d8957611d88611e1d565b5b611d94848484611e60565b80611da257611da161202b565b5b50505050565b6000806000611db561203f565b91509150611dcc8183611dd390919063ffffffff16565b9250505090565b6000611e1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061209e565b905092915050565b6000600d54148015611e3157506000600e54145b15611e3b57611e5e565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080611e7287612101565b955095509550955095509550611ed086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb181612211565b611fbb84836122ce565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161201891906126f5565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060065490506000678ac7230489e800009050612073678ac7230489e80000600654611dd390919063ffffffff16565b82101561209157600654678ac7230489e8000093509350505061209a565b81819350935050505b9091565b600080831182906120e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120dc919061253b565b60405180910390fd5b50600083856120f49190612a47565b9050809150509392505050565b600080600080600080600080600061211e8a600d54600e54612308565b925092509250600061212e611da8565b905060008060006121418e87878761239e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006121ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119b7565b905092915050565b60008082846121c29190612ee2565b905083811015612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906132cf565b60405180910390fd5b8091505092915050565b600061221b611da8565b90506000612232828461242790919063ffffffff16565b905061228681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6122e38260065461216990919063ffffffff16565b6006819055506122fe816007546121b390919063ffffffff16565b6007819055505050565b6000806000806123346064612326888a61242790919063ffffffff16565b611dd390919063ffffffff16565b9050600061235e6064612350888b61242790919063ffffffff16565b611dd390919063ffffffff16565b9050600061238782612379858c61216990919063ffffffff16565b61216990919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123b7858961242790919063ffffffff16565b905060006123ce868961242790919063ffffffff16565b905060006123e5878961242790919063ffffffff16565b9050600061240e82612400858761216990919063ffffffff16565b61216990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561243a576000905061249c565b6000828461244891906129be565b90508284826124579190612a47565b14612497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248e90613361565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124dc5780820151818401526020810190506124c1565b838111156124eb576000848401525b50505050565b6000601f19601f8301169050919050565b600061250d826124a2565b61251781856124ad565b93506125278185602086016124be565b612530816124f1565b840191505092915050565b600060208201905081810360008301526125558184612502565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061258d82612562565b9050919050565b61259d81612582565b81146125a857600080fd5b50565b6000813590506125ba81612594565b92915050565b6000819050919050565b6125d3816125c0565b81146125de57600080fd5b50565b6000813590506125f0816125ca565b92915050565b6000806040838503121561260d5761260c61255d565b5b600061261b858286016125ab565b925050602061262c858286016125e1565b9150509250929050565b60008115159050919050565b61264b81612636565b82525050565b60006020820190506126666000830184612642565b92915050565b6000819050919050565b600061269161268c61268784612562565b61266c565b612562565b9050919050565b60006126a382612676565b9050919050565b60006126b582612698565b9050919050565b6126c5816126aa565b82525050565b60006020820190506126e060008301846126bc565b92915050565b6126ef816125c0565b82525050565b600060208201905061270a60008301846126e6565b92915050565b6000806000606084860312156127295761272861255d565b5b6000612737868287016125ab565b9350506020612748868287016125ab565b9250506040612759868287016125e1565b9150509250925092565b600060ff82169050919050565b61277981612763565b82525050565b60006020820190506127946000830184612770565b92915050565b6127a381612582565b82525050565b60006020820190506127be600083018461279a565b92915050565b6127cd81612636565b81146127d857600080fd5b50565b6000813590506127ea816127c4565b92915050565b6000602082840312156128065761280561255d565b5b6000612814848285016127db565b91505092915050565b6000602082840312156128335761283261255d565b5b6000612841848285016125ab565b91505092915050565b6000602082840312156128605761285f61255d565b5b600061286e848285016125e1565b91505092915050565b6000806040838503121561288e5761288d61255d565b5b600061289c858286016125ab565b92505060206128ad858286016125ab565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ed6020836124ad565b91506128f8826128b7565b602082019050919050565b6000602082019050818103600083015261291c816128e0565b9050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b60006129596016836124ad565b915061296482612923565b602082019050919050565b600060208201905081810360008301526129888161294c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129c9826125c0565b91506129d4836125c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a0d57612a0c61298f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a52826125c0565b9150612a5d836125c0565b925082612a6d57612a6c612a18565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ad46026836124ad565b9150612adf82612a78565b604082019050919050565b60006020820190508181036000830152612b0381612ac7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b666024836124ad565b9150612b7182612b0a565b604082019050919050565b60006020820190508181036000830152612b9581612b59565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bf86022836124ad565b9150612c0382612b9c565b604082019050919050565b60006020820190508181036000830152612c2781612beb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c8a6025836124ad565b9150612c9582612c2e565b604082019050919050565b60006020820190508181036000830152612cb981612c7d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1c6023836124ad565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dae6029836124ad565b9150612db982612d52565b604082019050919050565b60006020820190508181036000830152612ddd81612da1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612e40603f836124ad565b9150612e4b82612de4565b604082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612eac601c836124ad565b9150612eb782612e76565b602082019050919050565b60006020820190508181036000830152612edb81612e9f565b9050919050565b6000612eed826125c0565b9150612ef8836125c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f2d57612f2c61298f565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612f946023836124ad565b9150612f9f82612f38565b604082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b6000612fd5826125c0565b9150612fe0836125c0565b925082821015612ff357612ff261298f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061305a602a836124ad565b915061306582612ffe565b604082019050919050565b600060208201905081810360008301526130898161304d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130fd81612594565b92915050565b6000602082840312156131195761311861255d565b5b6000613127848285016130ee565b91505092915050565b6000819050919050565b600061315561315061314b84613130565b61266c565b6125c0565b9050919050565b6131658161313a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131a081612582565b82525050565b60006131b28383613197565b60208301905092915050565b6000602082019050919050565b60006131d68261316b565b6131e08185613176565b93506131eb83613187565b8060005b8381101561321c57815161320388826131a6565b975061320e836131be565b9250506001810190506131ef565b5085935050505092915050565b600060a08201905061323e60008301886126e6565b61324b602083018761315c565b818103604083015261325d81866131cb565b905061326c606083018561279a565b61327960808301846126e6565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132b9601b836124ad565b91506132c482613283565b602082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061334b6021836124ad565b9150613356826132ef565b604082019050919050565b6000602082019050818103600083015261337a8161333e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122019444dbd8904d2c0f4587f6e34ed5182ec227382914ce537890c2b7e09c5306c64736f6c63430008090033

Deployed Bytecode Sourcemap

4190:12614:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6705:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7630:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5563:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6982:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7831:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14721:161;;;;;;;;;;;;;:::i;:::-;;5855:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6891:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5611:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12677:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12353:85;;;;;;;;;;;;;:::i;:::-;;7085:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1677:148;;;;;;;;;;;;;:::i;:::-;;16649:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5753:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1463:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6796:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16494:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7231:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16346:140;;;;;;;;;;;;;:::i;:::-;;12446:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7438:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6705:83;6742:13;6775:5;;;;;;;;;;;;;;;;;6768:12;;6705:83;:::o;7630:193::-;7732:4;7754:39;7763:12;:10;:12::i;:::-;7777:7;7786:6;7754:8;:39::i;:::-;7811:4;7804:11;;7630:193;;;;:::o;5563:41::-;;;;;;;;;;;;;:::o;6982:95::-;7035:7;4737:19;7055:14;;6982:95;:::o;7831:446::-;7963:4;7980:36;7990:6;7998:9;8009:6;7980:9;:36::i;:::-;8027:220;8050:6;8071:12;:10;:12::i;:::-;8098:138;8154:6;8098:138;;;;;;;;;;;;;;;;;:11;:19;8110:6;8098:19;;;;;;;;;;;;;;;:33;8118:12;:10;:12::i;:::-;8098:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8027:8;:220::i;:::-;8265:4;8258:11;;7831:446;;;;;:::o;14721:161::-;1600:12;:10;:12::i;:::-;1590:22;;:6;;;;;;;;;;:22;;;1582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4737:19:::1;14792:12;:22;;;;4737:19;14825:14;:24;;;;14871:3;14860:8;:14;;;;14721:161::o:0;5855:50::-;;;;:::o;6891:83::-;6932:5;4409:1;6950:16;;6891:83;:::o;5611:28::-;;;;;;;;;;;;;:::o;12677:94::-;12751:12;12737:11;;:26;;;;;;;;;;;;;;;;;;12677:94;:::o;12353:85::-;12395:35;12408:21;12395:12;:35::i;:::-;12353:85::o;7085:138::-;7151:7;7178:37;7198:7;:16;7206:7;7198:16;;;;;;;;;;;;;;;;7178:19;:37::i;:::-;7171:44;;7085:138;;;:::o;1677:148::-;1600:12;:10;:12::i;:::-;1590:22;;:6;;;;;;;;;;:22;;;1582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1784:1:::1;1747:40;;1768:6;::::0;::::1;;;;;;;;1747:40;;;;;;;;;;;;1815:1;1798:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1677:148::o:0;16649:152::-;1600:12;:10;:12::i;:::-;1590:22;;:6;;;;;;;;;;:22;;;1582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16735:12:::1;16719:13;:28;;;;16784:8;;16767:13;;:25;;16758:35;;;::::0;::::1;;16649:152:::0;:::o;5753:43::-;;;;:::o;1463:79::-;1501:7;1528:6;;;;;;;;;;;1521:13;;1463:79;:::o;5803:45::-;;;;:::o;6796:87::-;6835:13;6868:7;;;;;;;;;;;;;;;;;6861:14;;6796:87;:::o;16494:147::-;1600:12;:10;:12::i;:::-;1590:22;;:6;;;;;;;;;;:22;;;1582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16577:11:::1;16562:12;:26;;;;16624:8;;16608:12;;:24;;16599:34;;;::::0;::::1;;16494:147:::0;:::o;7231:199::-;7336:4;7358:42;7368:12;:10;:12::i;:::-;7382:9;7393:6;7358:9;:42::i;:::-;7418:4;7411:11;;7231:199;;;;:::o;16346:140::-;1600:12;:10;:12::i;:::-;1590:22;;:6;;;;;;;;;;:22;;;1582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16411:11:::1;;;;;;;;;;;16410:12;16402:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16474:4;16460:11;;:18;;;;;;;;;;;;;;;;;;16346:140::o:0;12446:223::-;12503:28;12534:24;12552:4;12534:9;:24::i;:::-;12503:55;;12569:18;12619:3;12611:7;12590:20;:28;;;;:::i;:::-;:32;;;;:::i;:::-;12569:53;;12633:28;12650:10;12633:16;:28::i;:::-;12492:177;;12446:223;:::o;7438:184::-;7555:7;7587:11;:18;7599:5;7587:18;;;;;;;;;;;;;;;:27;7606:7;7587:27;;;;;;;;;;;;;;;;7580:34;;7438:184;;;;:::o;1833:244::-;1600:12;:10;:12::i;:::-;1590:22;;:6;;;;;;;;;;:22;;;1582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:1:::1;1922:22;;:8;:22;;;;1914:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2032:8;2003:38;;2024:6;::::0;::::1;;;;;;;;2003:38;;;;;;;;;;;;2061:8;2052:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1833:244:::0;:::o;222:98::-;275:7;302:10;295:17;;222:98;:::o;8968:369::-;9112:1;9095:19;;:5;:19;;;;9087:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9193:1;9174:21;;:7;:21;;;;9166:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9275:6;9245:11;:18;9257:5;9245:18;;;;;;;;;;;;;;;:27;9264:7;9245:27;;;;;;;;;;;;;;;:36;;;;9313:7;9297:32;;9306:5;9297:32;;;9322:6;9297:32;;;;;;:::i;:::-;;;;;;;;8968:369;;;:::o;9345:2402::-;9483:1;9467:18;;:4;:18;;;;9459:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9560:1;9546:16;;:2;:16;;;;9538:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9630:1;9621:6;:10;9613:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9702:7;:5;:7::i;:::-;9694:15;;:4;:15;;;;:32;;;;;9719:7;:5;:7::i;:::-;9713:13;;:2;:13;;;;9694:32;9690:1331;;;9783:11;;;;;;;;;;;9778:144;;9831:7;:5;:7::i;:::-;9823:15;;:4;:15;;;9815:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9778:144;9947:13;;;;;;;;;;;9941:19;;:2;:19;;;;:42;;;;;9970:13;;;;;;;;;;;9964:19;;:2;:19;;;;9941:42;:71;;;;;9993:19;;;;;;;;;;;9987:25;;:2;:25;;;;9941:71;:94;;;;;10030:4;10016:19;;:2;:19;;;;9941:94;9938:371;;;10074:12;;10064:6;:22;;10056:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10147:13;;;;;;;;;;;10141:19;;:2;:19;;;10138:154;;10218:14;;10209:6;10193:13;10203:2;10193:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10185:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10138:154;9938:371;10325:28;10356:24;10374:4;10356:9;:24::i;:::-;10325:55;;10395:12;10434:19;;10410:20;:43;;10395:58;;10517:1;10497:19;;:21;;;;:::i;:::-;10473:45;10631:7;:18;;;;;10643:6;;;;;;;;;;10642:7;10631:18;:43;;;;;10661:13;;;;;;;;;;;10653:21;;:4;:21;;;;10631:43;:58;;;;;10678:11;;;;;;;;;;;10631:58;:87;;;;;10694:18;:24;10713:4;10694:24;;;;;;;;;;;;;;;;;;;;;;;;;10693:25;10631:87;:114;;;;;10723:18;:22;10742:2;10723:22;;;;;;;;;;;;;;;;;;;;;;;;;10722:23;10631:114;10627:383;;;10766:38;10783:20;10766:16;:38::i;:::-;10823:26;10852:21;10823:50;;10917:1;10896:18;:22;10892:103;;;10943:32;10956:18;10943:12;:32::i;:::-;10892:103;10747:263;10627:383;9728:1293;;9690:1331;11033:12;11048:4;11033:19;;11097:18;:24;11116:4;11097:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11125:18;:22;11144:2;11125:22;;;;;;;;;;;;;;;;;;;;;;;;;11097:50;11096:102;;;;11161:13;;;;;;;;;;;11153:21;;:4;:21;;;;:44;;;;;11184:13;;;;;;;;;;;11178:19;;:2;:19;;;;11153:44;11096:102;11092:594;;;11225:5;11215:15;;11092:594;;;11308:13;;;;;;;;;;;11300:21;;:4;:21;;;:55;;;;;11339:15;;;;;;;;;;;11325:30;;:2;:30;;;;11300:55;11297:162;;;11388:14;;11376:9;:26;;;;11431:12;;11421:7;:22;;;;11297:162;11518:13;;;;;;;;;;;11512:19;;:2;:19;;;:55;;;;;11551:15;;;;;;;;;;;11535:32;;:4;:32;;;;11512:55;11508:165;;;11600:15;;11588:9;:27;;;;11644:13;;11634:7;:23;;;;11508:165;11092:594;11698:41;11713:4;11719:2;11723:6;11731:7;11698:14;:41::i;:::-;9448:2299;9345:2402;;;:::o;2441:224::-;2561:7;2594:1;2589;:6;;2597:12;2581:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2621:9;2637:1;2633;:5;;;;:::i;:::-;2621:17;;2656:1;2649:8;;;2441:224;;;;;:::o;12246:99::-;12303:17;;;;;;;;;;;:26;;:34;12330:6;12303:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12246:99;:::o;8285:323::-;8380:7;8438;;8427;:18;;8405:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8526:19;8548:10;:8;:10::i;:::-;8526:32;;8576:24;8588:11;8576:7;:11;;:24;;;;:::i;:::-;8569:31;;;8285:323;;;:::o;11755:483::-;6008:4;5999:6;;:13;;;;;;;;;;;;;;;;;;11833:21:::1;11871:1;11857:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11833:40;;11902:4;11884;11889:1;11884:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11928:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11918:4;11923:1;11918:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11961:62;11978:4;11993:15;;;;;;;;;;;12011:11;11961:8;:62::i;:::-;12034:15;;;;;;;;;;;:66;;;12115:11;12141:1;12157:4;12184;12204:15;12034:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11822:416;6044:5:::0;6035:6;;:14;;;;;;;;;;;;;;;;;;11755:483;:::o;12779:282::-;12935:7;12930:28;;12944:14;:12;:14::i;:::-;12930:28;12969:44;12987:6;12995:9;13006:6;12969:17;:44::i;:::-;13029:7;13024:29;;13038:15;:13;:15::i;:::-;13024:29;12779:282;;;;:::o;15909:164::-;15951:7;15972:15;15989;16008:19;:17;:19::i;:::-;15971:56;;;;16045:20;16057:7;16045;:11;;:20;;;;:::i;:::-;16038:27;;;;15909:164;:::o;2927:132::-;2985:7;3012:39;3016:1;3019;3012:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3005:46;;2927:132;;;;:::o;8616:219::-;8676:1;8663:9;;:14;:30;;;;;8692:1;8681:7;;:12;8663:30;8659:43;;;8695:7;;8659:43;8734:9;;8714:17;:29;;;;8772:7;;8754:15;:25;;;;8804:1;8792:9;:13;;;;8826:1;8816:7;:11;;;;8616:219;:::o;13069:610::-;13216:15;13246:23;13284:12;13311:23;13349:12;13376:13;13403:19;13414:7;13403:10;:19::i;:::-;13201:221;;;;;;;;;;;;13451:28;13471:7;13451;:15;13459:6;13451:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13433:7;:15;13441:6;13433:15;;;;;;;;;;;;;;;:46;;;;13511:39;13534:15;13511:7;:18;13519:9;13511:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13490:7;:18;13498:9;13490:18;;;;;;;;;;;;;;;:60;;;;13561:16;13571:5;13561:9;:16::i;:::-;13588:23;13600:4;13606;13588:11;:23::i;:::-;13644:9;13627:44;;13636:6;13627:44;;;13655:15;13627:44;;;;;;:::i;:::-;;;;;;;;13190:489;;;;;;13069:610;;;:::o;8843:117::-;8899:17;;8887:9;:29;;;;8937:15;;8927:7;:25;;;;8843:117::o;16081:257::-;16132:7;16141;16161:15;16179:7;;16161:25;;16197:15;4737:19;16197:25;;16247:20;4737:19;16247:7;;:11;;:20;;;;:::i;:::-;16237:7;:30;16233:61;;;16277:7;;4737:19;16269:25;;;;;;;;16233:61;16313:7;16322;16305:25;;;;;;16081:257;;;:::o;3067:223::-;3187:7;3219:1;3215;:5;3222:12;3207:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3246:9;3262:1;3258;:5;;;;:::i;:::-;3246:17;;3281:1;3274:8;;;3067:223;;;;;:::o;14098:615::-;14198:7;14220;14242;14264;14286;14308;14344:23;14369:12;14383:13;14413:40;14425:7;14434:9;;14445:7;;14413:11;:40::i;:::-;14343:110;;;;;;14464:19;14486:10;:8;:10::i;:::-;14464:32;;14508:15;14525:23;14550:12;14579:46;14591:7;14600:4;14606:5;14613:11;14579;:46::i;:::-;14507:118;;;;;;14644:7;14653:15;14670:4;14676:15;14693:4;14699:5;14636:69;;;;;;;;;;;;;;;;;;;14098:615;;;;;;;:::o;2297:136::-;2355:7;2382:43;2386:1;2389;2382:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2375:50;;2297:136;;;;:::o;2110:179::-;2168:7;2188:9;2204:1;2200;:5;;;;:::i;:::-;2188:17;;2229:1;2224;:6;;2216:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2280:1;2273:8;;;2110:179;;;;:::o;13687:211::-;13740:19;13762:10;:8;:10::i;:::-;13740:32;;13783:13;13799:22;13809:11;13799:5;:9;;:22;;;;:::i;:::-;13783:38;;13857:33;13884:5;13857:7;:22;13873:4;13857:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13832:7;:22;13848:4;13832:22;;;;;;;;;;;;;;;:58;;;;13729:169;;13687:211;:::o;13906:147::-;13984:17;13996:4;13984:7;;:11;;:17;;;;:::i;:::-;13974:7;:27;;;;14025:20;14040:4;14025:10;;:14;;:20;;;;:::i;:::-;14012:10;:33;;;;13906:147;;:::o;14890:469::-;15059:7;15081;15103;15138:12;15153:30;15179:3;15153:21;15165:8;15153:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15138:45;;15194:13;15210:28;15234:3;15210:19;15222:6;15210:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15194:44;;15249:23;15275:28;15297:5;15275:17;15287:4;15275:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15249:54;;15322:15;15339:4;15345:5;15314:37;;;;;;;;;14890:469;;;;;;;:::o;15367:534::-;15561:7;15583;15605;15640:15;15658:24;15670:11;15658:7;:11;;:24;;;;:::i;:::-;15640:42;;15693:12;15708:21;15717:11;15708:4;:8;;:21;;;;:::i;:::-;15693:36;;15740:13;15756:22;15766:11;15756:5;:9;;:22;;;;:::i;:::-;15740:38;;15789:23;15815:28;15837:5;15815:17;15827:4;15815:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15789:54;;15862:7;15871:15;15888:4;15854:39;;;;;;;;;;15367:534;;;;;;;;:::o;2673:246::-;2731:7;2760:1;2755;:6;2751:47;;;2785:1;2778:8;;;;2751:47;2808:9;2824:1;2820;:5;;;;:::i;:::-;2808:17;;2853:1;2848;2844;:5;;;;:::i;:::-;:10;2836:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:1;2903:8;;;2673:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:474::-;7554:6;7562;7611:2;7599:9;7590:7;7586:23;7582:32;7579:119;;;7617:79;;:::i;:::-;7579:119;7737:1;7762:53;7807:7;7798:6;7787:9;7783:22;7762:53;:::i;:::-;7752:63;;7708:117;7864:2;7890:53;7935:7;7926:6;7915:9;7911:22;7890:53;:::i;:::-;7880:63;;7835:118;7486:474;;;;;:::o;7966:182::-;8106:34;8102:1;8094:6;8090:14;8083:58;7966:182;:::o;8154:366::-;8296:3;8317:67;8381:2;8376:3;8317:67;:::i;:::-;8310:74;;8393:93;8482:3;8393:93;:::i;:::-;8511:2;8506:3;8502:12;8495:19;;8154:366;;;:::o;8526:419::-;8692:4;8730:2;8719:9;8715:18;8707:26;;8779:9;8773:4;8769:20;8765:1;8754:9;8750:17;8743:47;8807:131;8933:4;8807:131;:::i;:::-;8799:139;;8526:419;;;:::o;8951:172::-;9091:24;9087:1;9079:6;9075:14;9068:48;8951:172;:::o;9129:366::-;9271:3;9292:67;9356:2;9351:3;9292:67;:::i;:::-;9285:74;;9368:93;9457:3;9368:93;:::i;:::-;9486:2;9481:3;9477:12;9470:19;;9129:366;;;:::o;9501:419::-;9667:4;9705:2;9694:9;9690:18;9682:26;;9754:9;9748:4;9744:20;9740:1;9729:9;9725:17;9718:47;9782:131;9908:4;9782:131;:::i;:::-;9774:139;;9501:419;;;:::o;9926:180::-;9974:77;9971:1;9964:88;10071:4;10068:1;10061:15;10095:4;10092:1;10085:15;10112:348;10152:7;10175:20;10193:1;10175:20;:::i;:::-;10170:25;;10209:20;10227:1;10209:20;:::i;:::-;10204:25;;10397:1;10329:66;10325:74;10322:1;10319:81;10314:1;10307:9;10300:17;10296:105;10293:131;;;10404:18;;:::i;:::-;10293:131;10452:1;10449;10445:9;10434:20;;10112:348;;;;:::o;10466:180::-;10514:77;10511:1;10504:88;10611:4;10608:1;10601:15;10635:4;10632:1;10625:15;10652:185;10692:1;10709:20;10727:1;10709:20;:::i;:::-;10704:25;;10743:20;10761:1;10743:20;:::i;:::-;10738:25;;10782:1;10772:35;;10787:18;;:::i;:::-;10772:35;10829:1;10826;10822:9;10817:14;;10652:185;;;;:::o;10843:225::-;10983:34;10979:1;10971:6;10967:14;10960:58;11052:8;11047:2;11039:6;11035:15;11028:33;10843:225;:::o;11074:366::-;11216:3;11237:67;11301:2;11296:3;11237:67;:::i;:::-;11230:74;;11313:93;11402:3;11313:93;:::i;:::-;11431:2;11426:3;11422:12;11415:19;;11074:366;;;:::o;11446:419::-;11612:4;11650:2;11639:9;11635:18;11627:26;;11699:9;11693:4;11689:20;11685:1;11674:9;11670:17;11663:47;11727:131;11853:4;11727:131;:::i;:::-;11719:139;;11446:419;;;:::o;11871:223::-;12011:34;12007:1;11999:6;11995:14;11988:58;12080:6;12075:2;12067:6;12063:15;12056:31;11871:223;:::o;12100:366::-;12242:3;12263:67;12327:2;12322:3;12263:67;:::i;:::-;12256:74;;12339:93;12428:3;12339:93;:::i;:::-;12457:2;12452:3;12448:12;12441:19;;12100:366;;;:::o;12472:419::-;12638:4;12676:2;12665:9;12661:18;12653:26;;12725:9;12719:4;12715:20;12711:1;12700:9;12696:17;12689:47;12753:131;12879:4;12753:131;:::i;:::-;12745:139;;12472:419;;;:::o;12897:221::-;13037:34;13033:1;13025:6;13021:14;13014:58;13106:4;13101:2;13093:6;13089:15;13082:29;12897:221;:::o;13124:366::-;13266:3;13287:67;13351:2;13346:3;13287:67;:::i;:::-;13280:74;;13363:93;13452:3;13363:93;:::i;:::-;13481:2;13476:3;13472:12;13465:19;;13124:366;;;:::o;13496:419::-;13662:4;13700:2;13689:9;13685:18;13677:26;;13749:9;13743:4;13739:20;13735:1;13724:9;13720:17;13713:47;13777:131;13903:4;13777:131;:::i;:::-;13769:139;;13496:419;;;:::o;13921:224::-;14061:34;14057:1;14049:6;14045:14;14038:58;14130:7;14125:2;14117:6;14113:15;14106:32;13921:224;:::o;14151:366::-;14293:3;14314:67;14378:2;14373:3;14314:67;:::i;:::-;14307:74;;14390:93;14479:3;14390:93;:::i;:::-;14508:2;14503:3;14499:12;14492:19;;14151:366;;;:::o;14523:419::-;14689:4;14727:2;14716:9;14712:18;14704:26;;14776:9;14770:4;14766:20;14762:1;14751:9;14747:17;14740:47;14804:131;14930:4;14804:131;:::i;:::-;14796:139;;14523:419;;;:::o;14948:222::-;15088:34;15084:1;15076:6;15072:14;15065:58;15157:5;15152:2;15144:6;15140:15;15133:30;14948:222;:::o;15176:366::-;15318:3;15339:67;15403:2;15398:3;15339:67;:::i;:::-;15332:74;;15415:93;15504:3;15415:93;:::i;:::-;15533:2;15528:3;15524:12;15517:19;;15176:366;;;:::o;15548:419::-;15714:4;15752:2;15741:9;15737:18;15729:26;;15801:9;15795:4;15791:20;15787:1;15776:9;15772:17;15765:47;15829:131;15955:4;15829:131;:::i;:::-;15821:139;;15548:419;;;:::o;15973:228::-;16113:34;16109:1;16101:6;16097:14;16090:58;16182:11;16177:2;16169:6;16165:15;16158:36;15973:228;:::o;16207:366::-;16349:3;16370:67;16434:2;16429:3;16370:67;:::i;:::-;16363:74;;16446:93;16535:3;16446:93;:::i;:::-;16564:2;16559:3;16555:12;16548:19;;16207:366;;;:::o;16579:419::-;16745:4;16783:2;16772:9;16768:18;16760:26;;16832:9;16826:4;16822:20;16818:1;16807:9;16803:17;16796:47;16860:131;16986:4;16860:131;:::i;:::-;16852:139;;16579:419;;;:::o;17004:250::-;17144:34;17140:1;17132:6;17128:14;17121:58;17213:33;17208:2;17200:6;17196:15;17189:58;17004:250;:::o;17260:366::-;17402:3;17423:67;17487:2;17482:3;17423:67;:::i;:::-;17416:74;;17499:93;17588:3;17499:93;:::i;:::-;17617:2;17612:3;17608:12;17601:19;;17260:366;;;:::o;17632:419::-;17798:4;17836:2;17825:9;17821:18;17813:26;;17885:9;17879:4;17875:20;17871:1;17860:9;17856:17;17849:47;17913:131;18039:4;17913:131;:::i;:::-;17905:139;;17632:419;;;:::o;18057:178::-;18197:30;18193:1;18185:6;18181:14;18174:54;18057:178;:::o;18241:366::-;18383:3;18404:67;18468:2;18463:3;18404:67;:::i;:::-;18397:74;;18480:93;18569:3;18480:93;:::i;:::-;18598:2;18593:3;18589:12;18582:19;;18241:366;;;:::o;18613:419::-;18779:4;18817:2;18806:9;18802:18;18794:26;;18866:9;18860:4;18856:20;18852:1;18841:9;18837:17;18830:47;18894:131;19020:4;18894:131;:::i;:::-;18886:139;;18613:419;;;:::o;19038:305::-;19078:3;19097:20;19115:1;19097:20;:::i;:::-;19092:25;;19131:20;19149:1;19131:20;:::i;:::-;19126:25;;19285:1;19217:66;19213:74;19210:1;19207:81;19204:107;;;19291:18;;:::i;:::-;19204:107;19335:1;19332;19328:9;19321:16;;19038:305;;;;:::o;19349:222::-;19489:34;19485:1;19477:6;19473:14;19466:58;19558:5;19553:2;19545:6;19541:15;19534:30;19349:222;:::o;19577:366::-;19719:3;19740:67;19804:2;19799:3;19740:67;:::i;:::-;19733:74;;19816:93;19905:3;19816:93;:::i;:::-;19934:2;19929:3;19925:12;19918:19;;19577:366;;;:::o;19949:419::-;20115:4;20153:2;20142:9;20138:18;20130:26;;20202:9;20196:4;20192:20;20188:1;20177:9;20173:17;20166:47;20230:131;20356:4;20230:131;:::i;:::-;20222:139;;19949:419;;;:::o;20374:191::-;20414:4;20434:20;20452:1;20434:20;:::i;:::-;20429:25;;20468:20;20486:1;20468:20;:::i;:::-;20463:25;;20507:1;20504;20501:8;20498:34;;;20512:18;;:::i;:::-;20498:34;20557:1;20554;20550:9;20542:17;;20374:191;;;;:::o;20571:229::-;20711:34;20707:1;20699:6;20695:14;20688:58;20780:12;20775:2;20767:6;20763:15;20756:37;20571:229;:::o;20806:366::-;20948:3;20969:67;21033:2;21028:3;20969:67;:::i;:::-;20962:74;;21045:93;21134:3;21045:93;:::i;:::-;21163:2;21158:3;21154:12;21147:19;;20806:366;;;:::o;21178:419::-;21344:4;21382:2;21371:9;21367:18;21359:26;;21431:9;21425:4;21421:20;21417:1;21406:9;21402:17;21395:47;21459:131;21585:4;21459:131;:::i;:::-;21451:139;;21178:419;;;:::o;21603:180::-;21651:77;21648:1;21641:88;21748:4;21745:1;21738:15;21772:4;21769:1;21762:15;21789:180;21837:77;21834:1;21827:88;21934:4;21931:1;21924:15;21958:4;21955:1;21948:15;21975:143;22032:5;22063:6;22057:13;22048:22;;22079:33;22106:5;22079:33;:::i;:::-;21975:143;;;;:::o;22124:351::-;22194:6;22243:2;22231:9;22222:7;22218:23;22214:32;22211:119;;;22249:79;;:::i;:::-;22211:119;22369:1;22394:64;22450:7;22441:6;22430:9;22426:22;22394:64;:::i;:::-;22384:74;;22340:128;22124:351;;;;:::o;22481:85::-;22526:7;22555:5;22544:16;;22481:85;;;:::o;22572:158::-;22630:9;22663:61;22681:42;22690:32;22716:5;22690:32;:::i;:::-;22681:42;:::i;:::-;22663:61;:::i;:::-;22650:74;;22572:158;;;:::o;22736:147::-;22831:45;22870:5;22831:45;:::i;:::-;22826:3;22819:58;22736:147;;:::o;22889:114::-;22956:6;22990:5;22984:12;22974:22;;22889:114;;;:::o;23009:184::-;23108:11;23142:6;23137:3;23130:19;23182:4;23177:3;23173:14;23158:29;;23009:184;;;;:::o;23199:132::-;23266:4;23289:3;23281:11;;23319:4;23314:3;23310:14;23302:22;;23199:132;;;:::o;23337:108::-;23414:24;23432:5;23414:24;:::i;:::-;23409:3;23402:37;23337:108;;:::o;23451:179::-;23520:10;23541:46;23583:3;23575:6;23541:46;:::i;:::-;23619:4;23614:3;23610:14;23596:28;;23451:179;;;;:::o;23636:113::-;23706:4;23738;23733:3;23729:14;23721:22;;23636:113;;;:::o;23785:732::-;23904:3;23933:54;23981:5;23933:54;:::i;:::-;24003:86;24082:6;24077:3;24003:86;:::i;:::-;23996:93;;24113:56;24163:5;24113:56;:::i;:::-;24192:7;24223:1;24208:284;24233:6;24230:1;24227:13;24208:284;;;24309:6;24303:13;24336:63;24395:3;24380:13;24336:63;:::i;:::-;24329:70;;24422:60;24475:6;24422:60;:::i;:::-;24412:70;;24268:224;24255:1;24252;24248:9;24243:14;;24208:284;;;24212:14;24508:3;24501:10;;23909:608;;;23785:732;;;;:::o;24523:831::-;24786:4;24824:3;24813:9;24809:19;24801:27;;24838:71;24906:1;24895:9;24891:17;24882:6;24838:71;:::i;:::-;24919:80;24995:2;24984:9;24980:18;24971:6;24919:80;:::i;:::-;25046:9;25040:4;25036:20;25031:2;25020:9;25016:18;25009:48;25074:108;25177:4;25168:6;25074:108;:::i;:::-;25066:116;;25192:72;25260:2;25249:9;25245:18;25236:6;25192:72;:::i;:::-;25274:73;25342:3;25331:9;25327:19;25318:6;25274:73;:::i;:::-;24523:831;;;;;;;;:::o;25360:177::-;25500:29;25496:1;25488:6;25484:14;25477:53;25360:177;:::o;25543:366::-;25685:3;25706:67;25770:2;25765:3;25706:67;:::i;:::-;25699:74;;25782:93;25871:3;25782:93;:::i;:::-;25900:2;25895:3;25891:12;25884:19;;25543:366;;;:::o;25915:419::-;26081:4;26119:2;26108:9;26104:18;26096:26;;26168:9;26162:4;26158:20;26154:1;26143:9;26139:17;26132:47;26196:131;26322:4;26196:131;:::i;:::-;26188:139;;25915:419;;;:::o;26340:220::-;26480:34;26476:1;26468:6;26464:14;26457:58;26549:3;26544:2;26536:6;26532:15;26525:28;26340:220;:::o;26566:366::-;26708:3;26729:67;26793:2;26788:3;26729:67;:::i;:::-;26722:74;;26805:93;26894:3;26805:93;:::i;:::-;26923:2;26918:3;26914:12;26907:19;;26566:366;;;:::o;26938:419::-;27104:4;27142:2;27131:9;27127:18;27119:26;;27191:9;27185:4;27181:20;27177:1;27166:9;27162:17;27155:47;27219:131;27345:4;27219:131;:::i;:::-;27211:139;;26938:419;;;:::o

Swarm Source

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