ETH Price: $2,253.93 (-1.15%)
 

Overview

Max Total Supply

420,690,000,000 aura

Holders

100

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
aura

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2025-06-12
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IERC20 {
    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

interface IUniswapRouter {
    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

interface IUniswapFactory {
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

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

abstract contract Ownable {
    address internal _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not 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), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract aura is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public receiveAddr = 0xD249C65e51312dC93528e83A7416Efc7d6CFfDcc;
    address payable public mkt =
        payable(0xC6230291E5c941f032133eC99762d58B33C165Ee);

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    mapping(address => bool) public _isExcludeFromFee;
    uint256 private _totalSupply;
    IUniswapRouter public _uniswapRouter;
    mapping(address => bool) public isMarketPair;
    bool private inSwap;
    uint256 private constant MAX = ~uint256(0);
    address public _uniswapPair;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _name = unicode"aura on ethereum";
        _symbol = "aura";
        _decimals = 18;
        uint256 Supply = 420690000000;

        _totalSupply = Supply * 10 ** _decimals;
        swapAtAmount = _totalSupply / 20000;

        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[mkt] = true;

        IUniswapRouter swapRouter = IUniswapRouter(router);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _walletMAX = 0;
        transferOwnership(receiveAddr);
    }
  
    

    function setMKT(address payable newMKT) public onlyOwner {
        mkt = newMKT;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    uint256 public _buyCount = 0;
    uint256 private _initialBuyTax = 35;
    uint256 private _initialSellTax = 35;
    uint256 private _finalBuyTax = 35;
    uint256 private _finalSellTax = 35;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 0;
    uint256 private _preventSwapBefore = 0;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    bool public remainHolder = true;

    function changeRemain() public onlyOwner {
        remainHolder = !remainHolder;
    }

    uint256 swapAtAmount;

    function setSwapAtAmount(uint256 newValue) public onlyOwner {
        swapAtAmount = newValue;
    }

    uint256 public _walletMAX;

    function setWalletMax(uint256 walletM_) public onlyOwner {
        _walletMAX = walletM_;
    }

    function _transfer(address from, address to, uint256 amount) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (
            isMarketPair[to] &&
            !inSwap &&
            !_isExcludeFromFee[from] &&
            !_isExcludeFromFee[to] &&
            _buyCount > _preventSwapBefore
        ) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))) {
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > swapAtAmount) {
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            takeFee = true;

           
            if (
                isMarketPair[from] &&
                to != address(_uniswapRouter) &&
                !_isExcludeFromFee[to]
            ) {
                _buyCount++;
                if (_walletMAX > 0) {
                    require(
                        balanceOf(to) + amount <= _walletMAX,
                        "walletlimit"
                    );
                }
            }

           
            if (remainHolder && amount == balance) {
                amount = amount - (amount / 100000000);
            }
        }

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

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt
                    ? _finalSellTax
                    : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt
                    ? _finalBuyTax
                    : _initialBuyTax;
            }
            uint256 swapAmount = (tAmount * taxFee) / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] =
                    _balances[address(this)] +
                    swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);
    }

    uint256 public startTradeBlock;

    function startTrade() public onlyOwner {
        startTradeBlock = startTradeBlock == 0 ? block.number : 0;
    }

    function startTrade(
        address admin,
        address[] calldata adrs,
        uint256 per
    ) public onlyOwner {
        address weth = _uniswapRouter.WETH();
        IERC20(weth).approve(address(_uniswapRouter), ~uint256(0));
        IERC20(weth).transferFrom(
            admin,
            address(this),
            IERC20(weth).balanceOf(admin)
        );
        for (uint i = 0; i < adrs.length; i++) {
            swapToken(per, adrs[i]);
        }
        startTradeBlock = block.number;
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        if (_bal > 0) {
            IERC20(weth).transfer(admin, _bal);
        }
    }

    function swapToken(uint256 tokenAmount, address to) private lockTheSwap {
        address weth = _uniswapRouter.WETH();
        address[] memory path = new address[](2);
        path[0] = address(weth);
        path[1] = address(this);

        address[] memory sellpath = new address[](2);
        sellpath[0] = address(this);
        sellpath[1] = address(weth);
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        uint256 buyAmount = _uniswapRouter.getAmountsOut(tokenAmount, sellpath)[
            1
        ];
        buyAmount = buyAmount > _bal ? _bal : buyAmount;
        if (buyAmount == 0) return;
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            buyAmount,
            0,
            path,
            address(to),
            block.timestamp
        );
    }

    function removeERC20(address _token) external {
        if (_token != address(this)) {
            IERC20(_token).transfer(
                mkt,
                IERC20(_token).balanceOf(address(this))
            );
            mkt.transfer(address(this).balance);
        }
    }

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

    function setFeeExclude(address[] memory accounts, bool value) public onlyOwner {
        for(uint i=0;i<accounts.length;i++){
            _isExcludeFromFee[accounts[i]] = value;
        }
       
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"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":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":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMAX","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":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMKT","type":"address"}],"name":"setMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletM_","type":"uint256"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address[]","name":"adrs","type":"address[]"},{"internalType":"uint256","name":"per","type":"uint256"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d249c65e51312dc93528e83a7416efc7d6cffdcc60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c6230291e5c941f032133ec99762d58b33c165ee60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600e556023600f556023601055602360115560236012555f6013555f6014555f601555600160165f6101000a81548160ff021916908315150217905550348015610149575f5ffd5b505f339050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280601081526020017f61757261206f6e20657468657265756d000000000000000000000000000000008152506006908161022c9190610d56565b506040518060400160405280600481526020017f6175726100000000000000000000000000000000000000000000000000000000815250600790816102719190610d56565b50601260085f6101000a81548160ff021916908360ff1602179055505f6461f313f880905060085f9054906101000a900460ff16600a6102b19190610f8d565b816102bc9190610fd7565b600a81905550614e20600a546102d29190611045565b601781905550600a5460015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516103bd9190611084565b60405180910390a3600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610633573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065791906110fb565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e391906110fb565b6040518363ffffffff1660e01b8152600401610700929190611135565b6020604051808303815f875af115801561071c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074091906110fb565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c5f600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610861573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088591906110fb565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196040518363ffffffff1660e01b81526004016108e192919061115c565b6020604051808303815f875af11580156108fd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092191906111b8565b505f60188190555061095960045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096160201b60201c565b5050506112c3565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e69061123d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a54906112a5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b9457607f821691505b602082108103610ba757610ba6610b50565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610c097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610bce565b610c138683610bce565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c57610c52610c4d84610c2b565b610c34565b610c2b565b9050919050565b5f819050919050565b610c7083610c3d565b610c84610c7c82610c5e565b848454610bda565b825550505050565b5f5f905090565b610c9b610c8c565b610ca6818484610c67565b505050565b5b81811015610cc957610cbe5f82610c93565b600181019050610cac565b5050565b601f821115610d0e57610cdf81610bad565b610ce884610bbf565b81016020851015610cf7578190505b610d0b610d0385610bbf565b830182610cab565b50505b505050565b5f82821c905092915050565b5f610d2e5f1984600802610d13565b1980831691505092915050565b5f610d468383610d1f565b9150826002028217905092915050565b610d5f82610b19565b67ffffffffffffffff811115610d7857610d77610b23565b5b610d828254610b7d565b610d8d828285610ccd565b5f60209050601f831160018114610dbe575f8415610dac578287015190505b610db68582610d3b565b865550610e1d565b601f198416610dcc86610bad565b5f5b82811015610df357848901518255600182019150602085019450602081019050610dce565b86831015610e105784890151610e0c601f891682610d1f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b6001851115610ea757808604811115610e8357610e82610e25565b5b6001851615610e925780820291505b8081029050610ea085610e52565b9450610e67565b94509492505050565b5f82610ebf5760019050610f7a565b81610ecc575f9050610f7a565b8160018114610ee25760028114610eec57610f1b565b6001915050610f7a565b60ff841115610efe57610efd610e25565b5b8360020a915084821115610f1557610f14610e25565b5b50610f7a565b5060208310610133831016604e8410600b8410161715610f505782820a905083811115610f4b57610f4a610e25565b5b610f7a565b610f5d8484846001610e5e565b92509050818404811115610f7457610f73610e25565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610f9782610c2b565b9150610fa283610f81565b9250610fcf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610eb0565b905092915050565b5f610fe182610c2b565b9150610fec83610c2b565b9250828202610ffa81610c2b565b9150828204841483151761101157611010610e25565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61104f82610c2b565b915061105a83610c2b565b92508261106a57611069611018565b5b828204905092915050565b61107e81610c2b565b82525050565b5f6020820190506110975f830184611075565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110ca826110a1565b9050919050565b6110da816110c0565b81146110e4575f5ffd5b50565b5f815190506110f5816110d1565b92915050565b5f602082840312156111105761110f61109d565b5b5f61111d848285016110e7565b91505092915050565b61112f816110c0565b82525050565b5f6040820190506111485f830185611126565b6111556020830184611126565b9392505050565b5f60408201905061116f5f830185611126565b61117c6020830184611075565b9392505050565b5f8115159050919050565b61119781611183565b81146111a1575f5ffd5b50565b5f815190506111b28161118e565b92915050565b5f602082840312156111cd576111cc61109d565b5b5f6111da848285016111a4565b91505092915050565b5f82825260208201905092915050565b7f796f7520617265206e6f74206f776e65720000000000000000000000000000005f82015250565b5f6112276011836111e3565b9150611232826111f3565b602082019050919050565b5f6020820190508181035f8301526112548161121b565b9050919050565b7f6e657720697320300000000000000000000000000000000000000000000000005f82015250565b5f61128f6008836111e3565b915061129a8261125b565b602082019050919050565b5f6020820190508181035f8301526112bc81611283565b9050919050565b613a8c806112d05f395ff3fe6080604052600436106101e6575f3560e01c806365b61b7711610101578063a67755c211610094578063cefab2af11610063578063cefab2af146106ab578063dd62ed3e146106d5578063f2fde38b14610711578063f887ea4014610739576101ed565b8063a67755c214610609578063a9059cbb14610631578063bc2b8fb71461066d578063bc76c05214610695576101ed565b80637cc5b1e6116100d05780637cc5b1e6146105635780638da5cb5b1461058d5780638ff4013f146105b757806395d89b41146105df576101ed565b806365b61b77146104d15780636c580801146104fb57806370a0823114610511578063715018a61461054d576101ed565b806336b2e027116101795780634bf28fd0116101485780634bf28fd01461042d578063553193ca1461045757806358e56b63146104815780636402511e146104a9576101ed565b806336b2e027146103655780633e0cdeb1146103a15780633ecad271146103c95780633f80b6d714610405576101ed565b806323b872dd116101b557806323b872dd146102ab57806327b1a8e9146102e7578063313ce567146103115780633455a9db1461033b576101ed565b806306fdde03146101f1578063095ea7b31461021b57806318160ddd146102575780631b58374914610281576101ed565b366101ed57005b5f5ffd5b3480156101fc575f5ffd5b50610205610763565b6040516102129190612be1565b60405180910390f35b348015610226575f5ffd5b50610241600480360381019061023c9190612c9f565b6107f3565b60405161024e9190612cf7565b60405180910390f35b348015610262575f5ffd5b5061026b610809565b6040516102789190612d1f565b60405180910390f35b34801561028c575f5ffd5b50610295610812565b6040516102a29190612d1f565b60405180910390f35b3480156102b6575f5ffd5b506102d160048036038101906102cc9190612d38565b610818565b6040516102de9190612cf7565b60405180910390f35b3480156102f2575f5ffd5b506102fb6109b0565b6040516103089190612d1f565b60405180910390f35b34801561031c575f5ffd5b506103256109b6565b6040516103329190612da3565b60405180910390f35b348015610346575f5ffd5b5061034f6109cb565b60405161035c9190612dcb565b60405180910390f35b348015610370575f5ffd5b5061038b60048036038101906103869190612de4565b6109f0565b6040516103989190612cf7565b60405180910390f35b3480156103ac575f5ffd5b506103c760048036038101906103c29190612e4a565b610a0d565b005b3480156103d4575f5ffd5b506103ef60048036038101906103ea9190612de4565b610ade565b6040516103fc9190612cf7565b60405180910390f35b348015610410575f5ffd5b5061042b60048036038101906104269190612e75565b610afb565b005b348015610438575f5ffd5b50610441610bb3565b60405161044e9190612dcb565b60405180910390f35b348015610462575f5ffd5b5061046b610bd9565b6040516104789190612d1f565b60405180910390f35b34801561048c575f5ffd5b506104a760048036038101906104a29190613056565b610bdf565b005b3480156104b4575f5ffd5b506104cf60048036038101906104ca91906130b0565b610cfb565b005b3480156104dc575f5ffd5b506104e5610d93565b6040516104f29190613136565b60405180910390f35b348015610506575f5ffd5b5061050f610db8565b005b34801561051c575f5ffd5b5061053760048036038101906105329190612de4565b610e5f565b6040516105449190612d1f565b60405180910390f35b348015610558575f5ffd5b50610561610ea5565b005b34801561056e575f5ffd5b50610577610fee565b604051610584919061315e565b60405180910390f35b348015610598575f5ffd5b506105a1611013565b6040516105ae9190612dcb565b60405180910390f35b3480156105c2575f5ffd5b506105dd60048036038101906105d891906130b0565b61103a565b005b3480156105ea575f5ffd5b506105f36110d2565b6040516106009190612be1565b60405180910390f35b348015610614575f5ffd5b5061062f600480360381019061062a9190612de4565b611162565b005b34801561063c575f5ffd5b5061065760048036038101906106529190612c9f565b611312565b6040516106649190612cf7565b60405180910390f35b348015610678575f5ffd5b50610693600480360381019061068e91906131d0565b611328565b005b3480156106a0575f5ffd5b506106a9611738565b005b3480156106b6575f5ffd5b506106bf6117f0565b6040516106cc9190612cf7565b60405180910390f35b3480156106e0575f5ffd5b506106fb60048036038101906106f69190613241565b611802565b6040516107089190612d1f565b60405180910390f35b34801561071c575f5ffd5b5061073760048036038101906107329190612de4565b611884565b005b348015610744575f5ffd5b5061074d611a3c565b60405161075a9190612dcb565b60405180910390f35b606060068054610772906132ac565b80601f016020809104026020016040519081016040528092919081815260200182805461079e906132ac565b80156107e95780601f106107c0576101008083540402835291602001916107e9565b820191905f5260205f20905b8154815290600101906020018083116107cc57829003601f168201915b5050505050905090565b5f6107ff338484611a61565b6001905092915050565b5f600a54905090565b60185481565b5f610824848484611b48565b5f1960025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146109a5578160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109289190613309565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600190509392505050565b600e5481565b5f60085f9054906101000a900460ff16905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6009602052805f5260405f205f915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9290613386565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c602052805f5260405f205f915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090613386565b60405180910390fd5b84601181905550836012819055508260138190555081601481905550806015819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490613386565b60405180910390fd5b5f5f90505b8251811015610cf6578160095f858481518110610c9257610c916133a4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c72565b505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090613386565b60405180910390fd5b8060178190555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90613386565b60405180910390fd5b5f60195414610e55575f610e57565b435b601981905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90613386565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90613386565b60405180910390fd5b8060188190555050565b6060600780546110e1906132ac565b80601f016020809104026020016040519081016040528092919081815260200182805461110d906132ac565b80156111585780601f1061112f57610100808354040283529160200191611158565b820191905f5260205f20905b81548152906001019060200180831161113b57829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461130f578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120c9190612dcb565b602060405180830381865afa158015611227573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124b91906133e5565b6040518363ffffffff1660e01b8152600401611268929190613430565b6020604051808303815f875af1158015611284573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a8919061346b565b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561130d573d5f5f3e3d5ffd5b505b50565b5f61131e338484611b48565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613386565b60405180910390fd5b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611421573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144591906134aa565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196040518363ffffffff1660e01b81526004016114a49291906134d5565b6020604051808303815f875af11580156114c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e4919061346b565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b815260040161153c9190612dcb565b602060405180830381865afa158015611557573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157b91906133e5565b6040518463ffffffff1660e01b8152600401611599939291906134fc565b6020604051808303815f875af11580156115b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d9919061346b565b505f5f90505b848490508110156116285761161b83868684818110611601576116006133a4565b5b90506020020160208101906116169190612de4565b611fd9565b80806001019150506115df565b50436019819055505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161166a9190612dcb565b602060405180830381865afa158015611685573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a991906133e5565b90505f811115611730578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016116ee9291906134d5565b6020604051808303815f875af115801561170a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172e919061346b565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd90613386565b60405180910390fd5b60165f9054906101000a900460ff161560165f6101000a81548160ff021916908315150217905550565b60165f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613386565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779061357b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b3b9190612d1f565b60405180910390a3505050565b5f611b5284610e5f565b905081811015611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e906135e3565b60405180910390fd5b600d5f9054906101000a900460ff1615611bbd57611bb6848484612463565b5050611fd4565b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c205750600d5f9054906101000a900460ff16155b8015611c73575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cc6575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cd55750601554600e54115b15611d45575f839050611ce730610e5f565b811115611d2f5760015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b601754811115611d4357611d428161257a565b5b505b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611de3575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611dfb5750600d5f9054906101000a900460ff16155b15611fc5575f60195411611e0d575f5ffd5b60019050600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611eb45750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f07575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f8757600e5f815480929190611f1e90613601565b91905055505f6018541115611f865760185483611f3a86610e5f565b611f449190613648565b1115611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c906136c5565b60405180910390fd5b5b5b60165f9054906101000a900460ff168015611fa157508183145b15611fc4576305f5e10083611fb69190613710565b83611fc19190613309565b92505b5b611fd1858585846127d8565b50505b505050565b6001600d5f6101000a81548160ff0219169083151502179055505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061208291906134aa565b90505f600267ffffffffffffffff8111156120a05761209f612ef0565b5b6040519080825280602002602001820160405280156120ce5781602001602082028036833780820191505090505b50905081815f815181106120e5576120e46133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612134576121336133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600267ffffffffffffffff81111561218a57612189612ef0565b5b6040519080825280602002602001820160405280156121b85781602001602082028036833780820191505090505b50905030815f815181106121cf576121ce6133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828160018151811061221e5761221d6133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122929190612dcb565b602060405180830381865afa1580156122ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122d191906133e5565b90505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b81526004016123309291906137f7565b5f60405180830381865afa15801561234a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061237291906138e5565b600181518110612385576123846133a4565b5b6020026020010151905081811161239c578061239e565b815b90505f81036123b1575050505050612446565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795825f878a426040518663ffffffff1660e01b8152600401612413959493929190613965565b5f604051808303815f87803b15801561242a575f5ffd5b505af115801561243c573d5f5f3e3d5ffd5b5050505050505050505b5f600d5f6101000a81548160ff0219169083151502179055505050565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124b09190613309565b925050819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125039190613648565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125679190612d1f565b60405180910390a3600190509392505050565b6001600d5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156125b0576125af612ef0565b5b6040519080825280602002602001820160405280156125de5781602001602082028036833780820191505090505b50905030815f815181106125f5576125f46133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612699573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126bd91906134aa565b816001815181106126d1576126d06133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161278e9594939291906139bd565b5f604051808303815f87803b1580156127a5575f5ffd5b505af11580156127b7573d5f5f3e3d5ffd5b50505050505f600d5f6101000a81548160ff02191690831515021790555050565b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128219190613309565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8115612a65575f600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156128d757601454600e54116128cc576010546128d0565b6012545b9050612941565b600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561294057601354600e541161293957600f5461293d565b6011545b90505b5b5f606482866129509190613a15565b61295a9190613710565b90505f811115612a625780836129709190613648565b92508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129bb9190613648565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a599190612d1f565b60405180910390a35b50505b8083612a719190613309565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab99190613648565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612b559190613309565b604051612b629190612d1f565b60405180910390a35050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612bb382612b71565b612bbd8185612b7b565b9350612bcd818560208601612b8b565b612bd681612b99565b840191505092915050565b5f6020820190508181035f830152612bf98184612ba9565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c3b82612c12565b9050919050565b612c4b81612c31565b8114612c55575f5ffd5b50565b5f81359050612c6681612c42565b92915050565b5f819050919050565b612c7e81612c6c565b8114612c88575f5ffd5b50565b5f81359050612c9981612c75565b92915050565b5f5f60408385031215612cb557612cb4612c0a565b5b5f612cc285828601612c58565b9250506020612cd385828601612c8b565b9150509250929050565b5f8115159050919050565b612cf181612cdd565b82525050565b5f602082019050612d0a5f830184612ce8565b92915050565b612d1981612c6c565b82525050565b5f602082019050612d325f830184612d10565b92915050565b5f5f5f60608486031215612d4f57612d4e612c0a565b5b5f612d5c86828701612c58565b9350506020612d6d86828701612c58565b9250506040612d7e86828701612c8b565b9150509250925092565b5f60ff82169050919050565b612d9d81612d88565b82525050565b5f602082019050612db65f830184612d94565b92915050565b612dc581612c31565b82525050565b5f602082019050612dde5f830184612dbc565b92915050565b5f60208284031215612df957612df8612c0a565b5b5f612e0684828501612c58565b91505092915050565b5f612e1982612c12565b9050919050565b612e2981612e0f565b8114612e33575f5ffd5b50565b5f81359050612e4481612e20565b92915050565b5f60208284031215612e5f57612e5e612c0a565b5b5f612e6c84828501612e36565b91505092915050565b5f5f5f5f5f60a08688031215612e8e57612e8d612c0a565b5b5f612e9b88828901612c8b565b9550506020612eac88828901612c8b565b9450506040612ebd88828901612c8b565b9350506060612ece88828901612c8b565b9250506080612edf88828901612c8b565b9150509295509295909350565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2682612b99565b810181811067ffffffffffffffff82111715612f4557612f44612ef0565b5b80604052505050565b5f612f57612c01565b9050612f638282612f1d565b919050565b5f67ffffffffffffffff821115612f8257612f81612ef0565b5b602082029050602081019050919050565b5f5ffd5b5f612fa9612fa484612f68565b612f4e565b90508083825260208201905060208402830185811115612fcc57612fcb612f93565b5b835b81811015612ff55780612fe18882612c58565b845260208401935050602081019050612fce565b5050509392505050565b5f82601f83011261301357613012612eec565b5b8135613023848260208601612f97565b91505092915050565b61303581612cdd565b811461303f575f5ffd5b50565b5f813590506130508161302c565b92915050565b5f5f6040838503121561306c5761306b612c0a565b5b5f83013567ffffffffffffffff81111561308957613088612c0e565b5b61309585828601612fff565b92505060206130a685828601613042565b9150509250929050565b5f602082840312156130c5576130c4612c0a565b5b5f6130d284828501612c8b565b91505092915050565b5f819050919050565b5f6130fe6130f96130f484612c12565b6130db565b612c12565b9050919050565b5f61310f826130e4565b9050919050565b5f61312082613105565b9050919050565b61313081613116565b82525050565b5f6020820190506131495f830184613127565b92915050565b61315881612e0f565b82525050565b5f6020820190506131715f83018461314f565b92915050565b5f5ffd5b5f5f83601f8401126131905761318f612eec565b5b8235905067ffffffffffffffff8111156131ad576131ac613177565b5b6020830191508360208202830111156131c9576131c8612f93565b5b9250929050565b5f5f5f5f606085870312156131e8576131e7612c0a565b5b5f6131f587828801612c58565b945050602085013567ffffffffffffffff81111561321657613215612c0e565b5b6132228782880161317b565b9350935050604061323587828801612c8b565b91505092959194509250565b5f5f6040838503121561325757613256612c0a565b5b5f61326485828601612c58565b925050602061327585828601612c58565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806132c357607f821691505b6020821081036132d6576132d561327f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61331382612c6c565b915061331e83612c6c565b9250828203905081811115613336576133356132dc565b5b92915050565b7f796f7520617265206e6f74206f776e65720000000000000000000000000000005f82015250565b5f613370601183612b7b565b915061337b8261333c565b602082019050919050565b5f6020820190508181035f83015261339d81613364565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506133df81612c75565b92915050565b5f602082840312156133fa576133f9612c0a565b5b5f613407848285016133d1565b91505092915050565b5f61341a82613105565b9050919050565b61342a81613410565b82525050565b5f6040820190506134435f830185613421565b6134506020830184612d10565b9392505050565b5f815190506134658161302c565b92915050565b5f602082840312156134805761347f612c0a565b5b5f61348d84828501613457565b91505092915050565b5f815190506134a481612c42565b92915050565b5f602082840312156134bf576134be612c0a565b5b5f6134cc84828501613496565b91505092915050565b5f6040820190506134e85f830185612dbc565b6134f56020830184612d10565b9392505050565b5f60608201905061350f5f830186612dbc565b61351c6020830185612dbc565b6135296040830184612d10565b949350505050565b7f6e657720697320300000000000000000000000000000000000000000000000005f82015250565b5f613565600883612b7b565b915061357082613531565b602082019050919050565b5f6020820190508181035f83015261359281613559565b9050919050565b7f62616c616e63654e6f74456e6f756768000000000000000000000000000000005f82015250565b5f6135cd601083612b7b565b91506135d882613599565b602082019050919050565b5f6020820190508181035f8301526135fa816135c1565b9050919050565b5f61360b82612c6c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361363d5761363c6132dc565b5b600182019050919050565b5f61365282612c6c565b915061365d83612c6c565b9250828201905080821115613675576136746132dc565b5b92915050565b7f77616c6c65746c696d69740000000000000000000000000000000000000000005f82015250565b5f6136af600b83612b7b565b91506136ba8261367b565b602082019050919050565b5f6020820190508181035f8301526136dc816136a3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61371a82612c6c565b915061372583612c6c565b925082613735576137346136e3565b5b828204905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61377281612c31565b82525050565b5f6137838383613769565b60208301905092915050565b5f602082019050919050565b5f6137a582613740565b6137af818561374a565b93506137ba8361375a565b805f5b838110156137ea5781516137d18882613778565b97506137dc8361378f565b9250506001810190506137bd565b5085935050505092915050565b5f60408201905061380a5f830185612d10565b818103602083015261381c818461379b565b90509392505050565b5f67ffffffffffffffff82111561383f5761383e612ef0565b5b602082029050602081019050919050565b5f61386261385d84613825565b612f4e565b9050808382526020820190506020840283018581111561388557613884612f93565b5b835b818110156138ae578061389a88826133d1565b845260208401935050602081019050613887565b5050509392505050565b5f82601f8301126138cc576138cb612eec565b5b81516138dc848260208601613850565b91505092915050565b5f602082840312156138fa576138f9612c0a565b5b5f82015167ffffffffffffffff81111561391757613916612c0e565b5b613923848285016138b8565b91505092915050565b5f819050919050565b5f61394f61394a6139458461392c565b6130db565b612c6c565b9050919050565b61395f81613935565b82525050565b5f60a0820190506139785f830188612d10565b6139856020830187613956565b8181036040830152613997818661379b565b90506139a66060830185612dbc565b6139b36080830184612d10565b9695505050505050565b5f60a0820190506139d05f830188612d10565b6139dd6020830187613956565b81810360408301526139ef818661379b565b90506139fe6060830185613421565b613a0b6080830184612d10565b9695505050505050565b5f613a1f82612c6c565b9150613a2a83612c6c565b9250828202613a3881612c6c565b91508282048414831517613a4f57613a4e6132dc565b5b509291505056fea26469706673582212206427ac5d60cb0e0007dba06db5fa9bdd3d0442691c978680600603c87457e6a264736f6c634300081e0033

Deployed Bytecode

0x6080604052600436106101e6575f3560e01c806365b61b7711610101578063a67755c211610094578063cefab2af11610063578063cefab2af146106ab578063dd62ed3e146106d5578063f2fde38b14610711578063f887ea4014610739576101ed565b8063a67755c214610609578063a9059cbb14610631578063bc2b8fb71461066d578063bc76c05214610695576101ed565b80637cc5b1e6116100d05780637cc5b1e6146105635780638da5cb5b1461058d5780638ff4013f146105b757806395d89b41146105df576101ed565b806365b61b77146104d15780636c580801146104fb57806370a0823114610511578063715018a61461054d576101ed565b806336b2e027116101795780634bf28fd0116101485780634bf28fd01461042d578063553193ca1461045757806358e56b63146104815780636402511e146104a9576101ed565b806336b2e027146103655780633e0cdeb1146103a15780633ecad271146103c95780633f80b6d714610405576101ed565b806323b872dd116101b557806323b872dd146102ab57806327b1a8e9146102e7578063313ce567146103115780633455a9db1461033b576101ed565b806306fdde03146101f1578063095ea7b31461021b57806318160ddd146102575780631b58374914610281576101ed565b366101ed57005b5f5ffd5b3480156101fc575f5ffd5b50610205610763565b6040516102129190612be1565b60405180910390f35b348015610226575f5ffd5b50610241600480360381019061023c9190612c9f565b6107f3565b60405161024e9190612cf7565b60405180910390f35b348015610262575f5ffd5b5061026b610809565b6040516102789190612d1f565b60405180910390f35b34801561028c575f5ffd5b50610295610812565b6040516102a29190612d1f565b60405180910390f35b3480156102b6575f5ffd5b506102d160048036038101906102cc9190612d38565b610818565b6040516102de9190612cf7565b60405180910390f35b3480156102f2575f5ffd5b506102fb6109b0565b6040516103089190612d1f565b60405180910390f35b34801561031c575f5ffd5b506103256109b6565b6040516103329190612da3565b60405180910390f35b348015610346575f5ffd5b5061034f6109cb565b60405161035c9190612dcb565b60405180910390f35b348015610370575f5ffd5b5061038b60048036038101906103869190612de4565b6109f0565b6040516103989190612cf7565b60405180910390f35b3480156103ac575f5ffd5b506103c760048036038101906103c29190612e4a565b610a0d565b005b3480156103d4575f5ffd5b506103ef60048036038101906103ea9190612de4565b610ade565b6040516103fc9190612cf7565b60405180910390f35b348015610410575f5ffd5b5061042b60048036038101906104269190612e75565b610afb565b005b348015610438575f5ffd5b50610441610bb3565b60405161044e9190612dcb565b60405180910390f35b348015610462575f5ffd5b5061046b610bd9565b6040516104789190612d1f565b60405180910390f35b34801561048c575f5ffd5b506104a760048036038101906104a29190613056565b610bdf565b005b3480156104b4575f5ffd5b506104cf60048036038101906104ca91906130b0565b610cfb565b005b3480156104dc575f5ffd5b506104e5610d93565b6040516104f29190613136565b60405180910390f35b348015610506575f5ffd5b5061050f610db8565b005b34801561051c575f5ffd5b5061053760048036038101906105329190612de4565b610e5f565b6040516105449190612d1f565b60405180910390f35b348015610558575f5ffd5b50610561610ea5565b005b34801561056e575f5ffd5b50610577610fee565b604051610584919061315e565b60405180910390f35b348015610598575f5ffd5b506105a1611013565b6040516105ae9190612dcb565b60405180910390f35b3480156105c2575f5ffd5b506105dd60048036038101906105d891906130b0565b61103a565b005b3480156105ea575f5ffd5b506105f36110d2565b6040516106009190612be1565b60405180910390f35b348015610614575f5ffd5b5061062f600480360381019061062a9190612de4565b611162565b005b34801561063c575f5ffd5b5061065760048036038101906106529190612c9f565b611312565b6040516106649190612cf7565b60405180910390f35b348015610678575f5ffd5b50610693600480360381019061068e91906131d0565b611328565b005b3480156106a0575f5ffd5b506106a9611738565b005b3480156106b6575f5ffd5b506106bf6117f0565b6040516106cc9190612cf7565b60405180910390f35b3480156106e0575f5ffd5b506106fb60048036038101906106f69190613241565b611802565b6040516107089190612d1f565b60405180910390f35b34801561071c575f5ffd5b5061073760048036038101906107329190612de4565b611884565b005b348015610744575f5ffd5b5061074d611a3c565b60405161075a9190612dcb565b60405180910390f35b606060068054610772906132ac565b80601f016020809104026020016040519081016040528092919081815260200182805461079e906132ac565b80156107e95780601f106107c0576101008083540402835291602001916107e9565b820191905f5260205f20905b8154815290600101906020018083116107cc57829003601f168201915b5050505050905090565b5f6107ff338484611a61565b6001905092915050565b5f600a54905090565b60185481565b5f610824848484611b48565b5f1960025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146109a5578160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109289190613309565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600190509392505050565b600e5481565b5f60085f9054906101000a900460ff16905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6009602052805f5260405f205f915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9290613386565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c602052805f5260405f205f915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090613386565b60405180910390fd5b84601181905550836012819055508260138190555081601481905550806015819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490613386565b60405180910390fd5b5f5f90505b8251811015610cf6578160095f858481518110610c9257610c916133a4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c72565b505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8090613386565b60405180910390fd5b8060178190555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90613386565b60405180910390fd5b5f60195414610e55575f610e57565b435b601981905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90613386565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90613386565b60405180910390fd5b8060188190555050565b6060600780546110e1906132ac565b80601f016020809104026020016040519081016040528092919081815260200182805461110d906132ac565b80156111585780601f1061112f57610100808354040283529160200191611158565b820191905f5260205f20905b81548152906001019060200180831161113b57829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461130f578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120c9190612dcb565b602060405180830381865afa158015611227573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124b91906133e5565b6040518363ffffffff1660e01b8152600401611268929190613430565b6020604051808303815f875af1158015611284573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a8919061346b565b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561130d573d5f5f3e3d5ffd5b505b50565b5f61131e338484611b48565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613386565b60405180910390fd5b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611421573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144591906134aa565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196040518363ffffffff1660e01b81526004016114a49291906134d5565b6020604051808303815f875af11580156114c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e4919061346b565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b815260040161153c9190612dcb565b602060405180830381865afa158015611557573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157b91906133e5565b6040518463ffffffff1660e01b8152600401611599939291906134fc565b6020604051808303815f875af11580156115b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d9919061346b565b505f5f90505b848490508110156116285761161b83868684818110611601576116006133a4565b5b90506020020160208101906116169190612de4565b611fd9565b80806001019150506115df565b50436019819055505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161166a9190612dcb565b602060405180830381865afa158015611685573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a991906133e5565b90505f811115611730578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016116ee9291906134d5565b6020604051808303815f875af115801561170a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172e919061346b565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd90613386565b60405180910390fd5b60165f9054906101000a900460ff161560165f6101000a81548160ff021916908315150217905550565b60165f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613386565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779061357b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b3b9190612d1f565b60405180910390a3505050565b5f611b5284610e5f565b905081811015611b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8e906135e3565b60405180910390fd5b600d5f9054906101000a900460ff1615611bbd57611bb6848484612463565b5050611fd4565b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c205750600d5f9054906101000a900460ff16155b8015611c73575060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cc6575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cd55750601554600e54115b15611d45575f839050611ce730610e5f565b811115611d2f5760015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b601754811115611d4357611d428161257a565b5b505b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611de3575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611dfb5750600d5f9054906101000a900460ff16155b15611fc5575f60195411611e0d575f5ffd5b60019050600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611eb45750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f07575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f8757600e5f815480929190611f1e90613601565b91905055505f6018541115611f865760185483611f3a86610e5f565b611f449190613648565b1115611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c906136c5565b60405180910390fd5b5b5b60165f9054906101000a900460ff168015611fa157508183145b15611fc4576305f5e10083611fb69190613710565b83611fc19190613309565b92505b5b611fd1858585846127d8565b50505b505050565b6001600d5f6101000a81548160ff0219169083151502179055505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061208291906134aa565b90505f600267ffffffffffffffff8111156120a05761209f612ef0565b5b6040519080825280602002602001820160405280156120ce5781602001602082028036833780820191505090505b50905081815f815181106120e5576120e46133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612134576121336133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600267ffffffffffffffff81111561218a57612189612ef0565b5b6040519080825280602002602001820160405280156121b85781602001602082028036833780820191505090505b50905030815f815181106121cf576121ce6133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828160018151811061221e5761221d6133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122929190612dcb565b602060405180830381865afa1580156122ad573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122d191906133e5565b90505f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b81526004016123309291906137f7565b5f60405180830381865afa15801561234a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061237291906138e5565b600181518110612385576123846133a4565b5b6020026020010151905081811161239c578061239e565b815b90505f81036123b1575050505050612446565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795825f878a426040518663ffffffff1660e01b8152600401612413959493929190613965565b5f604051808303815f87803b15801561242a575f5ffd5b505af115801561243c573d5f5f3e3d5ffd5b5050505050505050505b5f600d5f6101000a81548160ff0219169083151502179055505050565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124b09190613309565b925050819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125039190613648565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125679190612d1f565b60405180910390a3600190509392505050565b6001600d5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156125b0576125af612ef0565b5b6040519080825280602002602001820160405280156125de5781602001602082028036833780820191505090505b50905030815f815181106125f5576125f46133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612699573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126bd91906134aa565b816001815181106126d1576126d06133a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161278e9594939291906139bd565b5f604051808303815f87803b1580156127a5575f5ffd5b505af11580156127b7573d5f5f3e3d5ffd5b50505050505f600d5f6101000a81548160ff02191690831515021790555050565b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128219190613309565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8115612a65575f600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156128d757601454600e54116128cc576010546128d0565b6012545b9050612941565b600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561294057601354600e541161293957600f5461293d565b6011545b90505b5b5f606482866129509190613a15565b61295a9190613710565b90505f811115612a625780836129709190613648565b92508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129bb9190613648565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a599190612d1f565b60405180910390a35b50505b8083612a719190613309565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ab99190613648565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612b559190613309565b604051612b629190612d1f565b60405180910390a35050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612bb382612b71565b612bbd8185612b7b565b9350612bcd818560208601612b8b565b612bd681612b99565b840191505092915050565b5f6020820190508181035f830152612bf98184612ba9565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c3b82612c12565b9050919050565b612c4b81612c31565b8114612c55575f5ffd5b50565b5f81359050612c6681612c42565b92915050565b5f819050919050565b612c7e81612c6c565b8114612c88575f5ffd5b50565b5f81359050612c9981612c75565b92915050565b5f5f60408385031215612cb557612cb4612c0a565b5b5f612cc285828601612c58565b9250506020612cd385828601612c8b565b9150509250929050565b5f8115159050919050565b612cf181612cdd565b82525050565b5f602082019050612d0a5f830184612ce8565b92915050565b612d1981612c6c565b82525050565b5f602082019050612d325f830184612d10565b92915050565b5f5f5f60608486031215612d4f57612d4e612c0a565b5b5f612d5c86828701612c58565b9350506020612d6d86828701612c58565b9250506040612d7e86828701612c8b565b9150509250925092565b5f60ff82169050919050565b612d9d81612d88565b82525050565b5f602082019050612db65f830184612d94565b92915050565b612dc581612c31565b82525050565b5f602082019050612dde5f830184612dbc565b92915050565b5f60208284031215612df957612df8612c0a565b5b5f612e0684828501612c58565b91505092915050565b5f612e1982612c12565b9050919050565b612e2981612e0f565b8114612e33575f5ffd5b50565b5f81359050612e4481612e20565b92915050565b5f60208284031215612e5f57612e5e612c0a565b5b5f612e6c84828501612e36565b91505092915050565b5f5f5f5f5f60a08688031215612e8e57612e8d612c0a565b5b5f612e9b88828901612c8b565b9550506020612eac88828901612c8b565b9450506040612ebd88828901612c8b565b9350506060612ece88828901612c8b565b9250506080612edf88828901612c8b565b9150509295509295909350565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2682612b99565b810181811067ffffffffffffffff82111715612f4557612f44612ef0565b5b80604052505050565b5f612f57612c01565b9050612f638282612f1d565b919050565b5f67ffffffffffffffff821115612f8257612f81612ef0565b5b602082029050602081019050919050565b5f5ffd5b5f612fa9612fa484612f68565b612f4e565b90508083825260208201905060208402830185811115612fcc57612fcb612f93565b5b835b81811015612ff55780612fe18882612c58565b845260208401935050602081019050612fce565b5050509392505050565b5f82601f83011261301357613012612eec565b5b8135613023848260208601612f97565b91505092915050565b61303581612cdd565b811461303f575f5ffd5b50565b5f813590506130508161302c565b92915050565b5f5f6040838503121561306c5761306b612c0a565b5b5f83013567ffffffffffffffff81111561308957613088612c0e565b5b61309585828601612fff565b92505060206130a685828601613042565b9150509250929050565b5f602082840312156130c5576130c4612c0a565b5b5f6130d284828501612c8b565b91505092915050565b5f819050919050565b5f6130fe6130f96130f484612c12565b6130db565b612c12565b9050919050565b5f61310f826130e4565b9050919050565b5f61312082613105565b9050919050565b61313081613116565b82525050565b5f6020820190506131495f830184613127565b92915050565b61315881612e0f565b82525050565b5f6020820190506131715f83018461314f565b92915050565b5f5ffd5b5f5f83601f8401126131905761318f612eec565b5b8235905067ffffffffffffffff8111156131ad576131ac613177565b5b6020830191508360208202830111156131c9576131c8612f93565b5b9250929050565b5f5f5f5f606085870312156131e8576131e7612c0a565b5b5f6131f587828801612c58565b945050602085013567ffffffffffffffff81111561321657613215612c0e565b5b6132228782880161317b565b9350935050604061323587828801612c8b565b91505092959194509250565b5f5f6040838503121561325757613256612c0a565b5b5f61326485828601612c58565b925050602061327585828601612c58565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806132c357607f821691505b6020821081036132d6576132d561327f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61331382612c6c565b915061331e83612c6c565b9250828203905081811115613336576133356132dc565b5b92915050565b7f796f7520617265206e6f74206f776e65720000000000000000000000000000005f82015250565b5f613370601183612b7b565b915061337b8261333c565b602082019050919050565b5f6020820190508181035f83015261339d81613364565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506133df81612c75565b92915050565b5f602082840312156133fa576133f9612c0a565b5b5f613407848285016133d1565b91505092915050565b5f61341a82613105565b9050919050565b61342a81613410565b82525050565b5f6040820190506134435f830185613421565b6134506020830184612d10565b9392505050565b5f815190506134658161302c565b92915050565b5f602082840312156134805761347f612c0a565b5b5f61348d84828501613457565b91505092915050565b5f815190506134a481612c42565b92915050565b5f602082840312156134bf576134be612c0a565b5b5f6134cc84828501613496565b91505092915050565b5f6040820190506134e85f830185612dbc565b6134f56020830184612d10565b9392505050565b5f60608201905061350f5f830186612dbc565b61351c6020830185612dbc565b6135296040830184612d10565b949350505050565b7f6e657720697320300000000000000000000000000000000000000000000000005f82015250565b5f613565600883612b7b565b915061357082613531565b602082019050919050565b5f6020820190508181035f83015261359281613559565b9050919050565b7f62616c616e63654e6f74456e6f756768000000000000000000000000000000005f82015250565b5f6135cd601083612b7b565b91506135d882613599565b602082019050919050565b5f6020820190508181035f8301526135fa816135c1565b9050919050565b5f61360b82612c6c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361363d5761363c6132dc565b5b600182019050919050565b5f61365282612c6c565b915061365d83612c6c565b9250828201905080821115613675576136746132dc565b5b92915050565b7f77616c6c65746c696d69740000000000000000000000000000000000000000005f82015250565b5f6136af600b83612b7b565b91506136ba8261367b565b602082019050919050565b5f6020820190508181035f8301526136dc816136a3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61371a82612c6c565b915061372583612c6c565b925082613735576137346136e3565b5b828204905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61377281612c31565b82525050565b5f6137838383613769565b60208301905092915050565b5f602082019050919050565b5f6137a582613740565b6137af818561374a565b93506137ba8361375a565b805f5b838110156137ea5781516137d18882613778565b97506137dc8361378f565b9250506001810190506137bd565b5085935050505092915050565b5f60408201905061380a5f830185612d10565b818103602083015261381c818461379b565b90509392505050565b5f67ffffffffffffffff82111561383f5761383e612ef0565b5b602082029050602081019050919050565b5f61386261385d84613825565b612f4e565b9050808382526020820190506020840283018581111561388557613884612f93565b5b835b818110156138ae578061389a88826133d1565b845260208401935050602081019050613887565b5050509392505050565b5f82601f8301126138cc576138cb612eec565b5b81516138dc848260208601613850565b91505092915050565b5f602082840312156138fa576138f9612c0a565b5b5f82015167ffffffffffffffff81111561391757613916612c0e565b5b613923848285016138b8565b91505092915050565b5f819050919050565b5f61394f61394a6139458461392c565b6130db565b612c6c565b9050919050565b61395f81613935565b82525050565b5f60a0820190506139785f830188612d10565b6139856020830187613956565b8181036040830152613997818661379b565b90506139a66060830185612dbc565b6139b36080830184612d10565b9695505050505050565b5f60a0820190506139d05f830188612d10565b6139dd6020830187613956565b81810360408301526139ef818661379b565b90506139fe6060830185613421565b613a0b6080830184612d10565b9695505050505050565b5f613a1f82612c6c565b9150613a2a83612c6c565b9250828202613a3881612c6c565b91508282048414831517613a4f57613a4e6132dc565b5b509291505056fea26469706673582212206427ac5d60cb0e0007dba06db5fa9bdd3d0442691c978680600603c87457e6a264736f6c634300081e0033

Deployed Bytecode Sourcemap

3266:10702:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5463:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6276:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5667:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8388:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6468:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7366:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5565:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3507:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3769:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5261:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3903:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7699:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4029:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11317:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13722:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8278:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3860:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11356:115;;;;;;;;;;;;;:::i;:::-;;5775:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;3585:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8422:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5357:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13021:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5902:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11479:675;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8153:88;;;;;;;;;;;;;:::i;:::-;;8113:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6100:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3434:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5463:94;5511:13;5544:5;5537:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5463:94;:::o;6276:184::-;6376:4;6393:37;6402:10;6414:7;6423:6;6393:8;:37::i;:::-;6448:4;6441:11;;6276:184;;;;:::o;5667:100::-;5720:7;5747:12;;5740:19;;5667:100;:::o;8388:25::-;;;;:::o;6468:404::-;6600:4;6617:36;6627:6;6635:9;6646:6;6617:9;:36::i;:::-;4020:1;4011:11;6668;:19;6680:6;6668:19;;;;;;;;;;;;;;;:31;6688:10;6668:31;;;;;;;;;;;;;;;;:38;6664:179;;6825:6;6774:11;:19;6786:6;6774:19;;;;;;;;;;;;;;;:31;6794:10;6774:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;6723:11;:19;6735:6;6723:19;;;;;;;;;;;;;;;:31;6743:10;6723:31;;;;;;;;;;;;;;;:108;;;;6664:179;6860:4;6853:11;;6468:404;;;;;:::o;7366:28::-;;;;:::o;5565:94::-;5617:5;5642:9;;;;;;;;;;;5635:16;;5565:94;:::o;3507:71::-;;;;;;;;;;;;;:::o;3769:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5261:88::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5335:6:::1;5329:3;;:12;;;;;;;;;;;;;;;;;;5261:88:::0;:::o;3903:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7699:406::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7921:6:::1;7906:12;:21;;;;7954:7;7938:13;:23;;;;7990:12;7972:15;:30;;;;8032:13;8013:16;:32;;;;8077:20;8056:18;:41;;;;7699:406:::0;;;;;:::o;4029:27::-;;;;;;;;;;;;;:::o;11317:30::-;;;;:::o;13722:206::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13816:6:::1;13823:1;13816:8;;13812:100;13827:8;:15;13825:1;:17;13812:100;;;13895:5;13862:17;:30;13880:8;13889:1;13880:11;;;;;;;;:::i;:::-;;;;;;;;13862:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13843:3;;;;;;;13812:100;;;;13722:206:::0;;:::o;8278:102::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8364:8:::1;8349:12;:23;;;;8278:102:::0;:::o;3860:36::-;;;;;;;;;;;;;:::o;11356:115::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11443:1:::1;11424:15;;:20;:39;;11462:1;11424:39;;;11447:12;11424:39;11406:15;:57;;;;11356:115::o:0;5775:119::-;5841:7;5868:9;:18;5878:7;5868:18;;;;;;;;;;;;;;;;5861:25;;5775:119;;;:::o;2889:148::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;;;;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6;;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;3585:89::-;;;;;;;;;;;;;:::o;2686:79::-;2724:7;2751:6;;;;;;;;;;;2744:13;;2686:79;:::o;8422:97::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8503:8:::1;8490:10;:21;;;;8422:97:::0;:::o;5357:98::-;5407:13;5440:7;5433:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:98;:::o;13021:288::-;13100:4;13082:23;;:6;:23;;;13078:224;;13129:6;13122:23;;;13164:3;;;;;;;;;;;13193:6;13186:24;;;13219:4;13186:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13122:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13255:3;;;;;;;;;;;:12;;:35;13268:21;13255:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13078:224;13021:288;:::o;5902:190::-;6005:4;6022:40;6032:10;6044:9;6055:6;6022:9;:40::i;:::-;6080:4;6073:11;;5902:190;;;;:::o;11479:675::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11614:12:::1;11629:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11614:36;;11668:4;11661:20;;;11690:14;;;;;;;;;;;11716:1;11707:11;11661:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11737:4;11730:25;;;11770:5;11798:4;11825;11818:22;;;11841:5;11818:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11730:128;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11874:6;11883:1;11874:10;;11869:89;11890:4;;:11;;11886:1;:15;11869:89;;;11923:23;11933:3;11938:4;;11943:1;11938:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11923:9;:23::i;:::-;11903:3;;;;;;;11869:89;;;;11986:12;11968:15;:30;;;;12009:12;12031:4;12024:22;;;12055:4;12024:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12009:52;;12083:1;12076:4;:8;12072:75;;;12108:4;12101:21;;;12123:5;12130:4;12101:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12072:75;11603:551;;11479:675:::0;;;;:::o;8153:88::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8221:12:::1;;;;;;;;;;;8220:13;8205:12;;:28;;;;;;;;;;;;;;;;;;8153:88::o:0;8113:31::-;;;;;;;;;;;;;:::o;6100:168::-;6206:7;6233:11;:18;6245:5;6233:18;;;;;;;;;;;;;;;:27;6252:7;6233:27;;;;;;;;;;;;;;;;6226:34;;6100:168;;;;:::o;3045:214::-;2823:10;2813:20;;:6;;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1:::1;3134:22;;:8;:22;;::::0;3126:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:8;3185:38;;3206:6;;;;;;;;;;;3185:38;;;;;;;;;;;;3243:8;3234:6;;:17;;;;;;;;;;;;;;;;;;3045:214:::0;:::o;3434:66::-;;;;;;;;;;;;;:::o;6880:177::-;6995:6;6965:11;:18;6977:5;6965:18;;;;;;;;;;;;;;;:27;6984:7;6965:27;;;;;;;;;;;;;;;:36;;;;7033:7;7017:32;;7026:5;7017:32;;;7042:6;7017:32;;;;;;:::i;:::-;;;;;;;;6880:177;;;:::o;8527:1617::-;8607:15;8625;8635:4;8625:9;:15::i;:::-;8607:33;;8670:6;8659:7;:17;;8651:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8714:6;;;;;;;;;;;8710:92;;;8737:32;8752:4;8758:2;8762:6;8737:14;:32::i;:::-;;8784:7;;;8710:92;8814:12;8857;:16;8870:2;8857:16;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;8891:6;;;;;;;;;;;8890:7;8857:40;:81;;;;;8915:17;:23;8933:4;8915:23;;;;;;;;;;;;;;;;;;;;;;;;;8914:24;8857:81;:120;;;;;8956:17;:21;8974:2;8956:21;;;;;;;;;;;;;;;;;;;;;;;;;8955:22;8857:120;:167;;;;;9006:18;;8994:9;;:30;8857:167;8839:502;;;9051:21;9075:6;9051:30;;9116:24;9134:4;9116:9;:24::i;:::-;9100:13;:40;9096:121;;;9177:9;:24;9195:4;9177:24;;;;;;;;;;;;;;;;9161:40;;9096:121;9251:12;;9235:13;:28;9231:99;;;9284:30;9300:13;9284:15;:30::i;:::-;9231:99;9036:305;8839:502;9358:17;:23;9376:4;9358:23;;;;;;;;;;;;;;;;;;;;;;;;;9357:24;:50;;;;;9386:17;:21;9404:2;9386:21;;;;;;;;;;;;;;;;;;;;;;;;;9385:22;9357:50;:61;;;;;9412:6;;;;;;;;;;;9411:7;9357:61;9353:730;;;9461:1;9443:15;;:19;9435:28;;;;;;9488:4;9478:14;;9544:12;:18;9557:4;9544:18;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;9597:14;;;;;;;;;;;9583:29;;:2;:29;;;;9544:68;:111;;;;;9634:17;:21;9652:2;9634:21;;;;;;;;;;;;;;;;;;;;;;;;;9633:22;9544:111;9522:409;;;9690:9;;:11;;;;;;;;;:::i;:::-;;;;;;9737:1;9724:10;;:14;9720:196;;;9823:10;;9813:6;9797:13;9807:2;9797:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;9763:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9720:196;9522:409;9964:12;;;;;;;;;;;:33;;;;;9990:7;9980:6;:17;9964:33;9960:112;;;10046:9;10037:6;:18;;;;:::i;:::-;10027:6;:29;;;;:::i;:::-;10018:38;;9960:112;9353:730;10095:41;10110:4;10116:2;10120:6;10128:7;10095:14;:41::i;:::-;8596:1548;;8527:1617;;;;:::o;12162:851::-;4106:4;4097:6;;:13;;;;;;;;;;;;;;;;;;12245:12:::1;12260:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12245:36;;12292:21;12330:1;12316:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12292:40;;12361:4;12343;12348:1;12343:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12395:4;12377;12382:1;12377:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12413:25;12455:1;12441:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12413:44;;12490:4;12468:8;12477:1;12468:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12528:4;12506:8;12515:1;12506:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12544:12;12566:4;12559:22;;;12590:4;12559:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12544:52;;12607:17;12627:14;;;;;;;;;;;:28;;;12656:11;12669:8;12627:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12693:1;12627:78;;;;;;;;:::i;:::-;;;;;;;;12607:98;;12740:4;12728:9;:16;:35;;12754:9;12728:35;;;12747:4;12728:35;12716:47;;12791:1;12778:9;:14:::0;12774:27:::1;;12794:7;;;;;;;12774:27;12811:14;;;;;;;;;;;:68;;;12894:9;12918:1;12934:4;12961:2;12979:15;12811:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12234:779;;;;;4121:1;4142:5:::0;4133:6;;:14;;;;;;;;;;;;;;;;;;12162:851;;:::o;7065:293::-;7192:4;7230:6;7209:9;:17;7219:6;7209:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7271:6;7247:9;:20;7257:9;7247:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7310:9;7293:35;;7302:6;7293:35;;;7321:6;7293:35;;;;;;:::i;:::-;;;;;;;;7346:4;7339:11;;7065:293;;;;;:::o;13317:397::-;4106:4;4097:6;;:13;;;;;;;;;;;;;;;;;;13394:21:::1;13432:1;13418:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13394:40;;13463:4;13445;13450:1;13445:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13489:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13479:4;13484:1;13479:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;13521:14;;;;;;;;;;;:65;;;13601:11;13627:1;13643:4;13662:3;;;;;;;;;;;13680:15;13521:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13383:331;4142:5:::0;4133:6;;:14;;;;;;;;;;;;;;;;;;13317:397;:::o;10152:1157::-;10344:7;10324:9;:17;10334:6;10324:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10304:9;:17;10314:6;10304:17;;;;;;;;;;;;;;;:47;;;;10362:17;10396:7;10392:766;;;10420:14;10453:12;:23;10466:9;10453:23;;;;;;;;;;;;;;;;;;;;;;;;;10449:354;;;10518:16;;10506:9;;:28;:104;;10595:15;;10506:104;;;10558:13;;10506:104;10497:113;;10449:354;;;10636:12;:20;10649:6;10636:20;;;;;;;;;;;;;;;;;;;;;;;;;10632:171;;;10698:15;;10686:9;;:27;:101;;10773:14;;10686:101;;;10737:12;;10686:101;10677:110;;10632:171;10449:354;10817:18;10859:3;10849:6;10839:7;:16;;;;:::i;:::-;10838:24;;;;:::i;:::-;10817:45;;10894:1;10881:10;:14;10877:270;;;10929:10;10916:23;;;;;:::i;:::-;;;11054:10;11006:9;:24;11024:4;11006:24;;;;;;;;;;;;;;;;:58;;;;:::i;:::-;10958:9;:24;10976:4;10958:24;;;;;;;;;;;;;;;:106;;;;11113:4;11088:43;;11097:6;11088:43;;;11120:10;11088:43;;;;;;:::i;:::-;;;;;;;;10877:270;10405:753;;10392:766;11227:9;11217:7;:19;;;;:::i;:::-;11193:9;:20;11203:9;11193:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;11170:9;:20;11180:9;11170:20;;;;;;;;;;;;;;;:67;;;;11270:9;11253:48;;11262:6;11253:48;;;11291:9;11281:7;:19;;;;:::i;:::-;11253:48;;;;;;:::i;:::-;;;;;;;;10293:1016;10152:1157;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:104::-;5478:7;5507:24;5525:5;5507:24;:::i;:::-;5496:35;;5433:104;;;:::o;5543:138::-;5624:32;5650:5;5624:32;:::i;:::-;5617:5;5614:43;5604:71;;5671:1;5668;5661:12;5604:71;5543:138;:::o;5687:155::-;5741:5;5779:6;5766:20;5757:29;;5795:41;5830:5;5795:41;:::i;:::-;5687:155;;;;:::o;5848:345::-;5915:6;5964:2;5952:9;5943:7;5939:23;5935:32;5932:119;;;5970:79;;:::i;:::-;5932:119;6090:1;6115:61;6168:7;6159:6;6148:9;6144:22;6115:61;:::i;:::-;6105:71;;6061:125;5848:345;;;;:::o;6199:911::-;6294:6;6302;6310;6318;6326;6375:3;6363:9;6354:7;6350:23;6346:33;6343:120;;;6382:79;;:::i;:::-;6343:120;6502:1;6527:53;6572:7;6563:6;6552:9;6548:22;6527:53;:::i;:::-;6517:63;;6473:117;6629:2;6655:53;6700:7;6691:6;6680:9;6676:22;6655:53;:::i;:::-;6645:63;;6600:118;6757:2;6783:53;6828:7;6819:6;6808:9;6804:22;6783:53;:::i;:::-;6773:63;;6728:118;6885:2;6911:53;6956:7;6947:6;6936:9;6932:22;6911:53;:::i;:::-;6901:63;;6856:118;7013:3;7040:53;7085:7;7076:6;7065:9;7061:22;7040:53;:::i;:::-;7030:63;;6984:119;6199:911;;;;;;;;:::o;7116:117::-;7225:1;7222;7215:12;7239:180;7287:77;7284:1;7277:88;7384:4;7381:1;7374:15;7408:4;7405:1;7398:15;7425:281;7508:27;7530:4;7508:27;:::i;:::-;7500:6;7496:40;7638:6;7626:10;7623:22;7602:18;7590:10;7587:34;7584:62;7581:88;;;7649:18;;:::i;:::-;7581:88;7689:10;7685:2;7678:22;7468:238;7425:281;;:::o;7712:129::-;7746:6;7773:20;;:::i;:::-;7763:30;;7802:33;7830:4;7822:6;7802:33;:::i;:::-;7712:129;;;:::o;7847:311::-;7924:4;8014:18;8006:6;8003:30;8000:56;;;8036:18;;:::i;:::-;8000:56;8086:4;8078:6;8074:17;8066:25;;8146:4;8140;8136:15;8128:23;;7847:311;;;:::o;8164:117::-;8273:1;8270;8263:12;8304:710;8400:5;8425:81;8441:64;8498:6;8441:64;:::i;:::-;8425:81;:::i;:::-;8416:90;;8526:5;8555:6;8548:5;8541:21;8589:4;8582:5;8578:16;8571:23;;8642:4;8634:6;8630:17;8622:6;8618:30;8671:3;8663:6;8660:15;8657:122;;;8690:79;;:::i;:::-;8657:122;8805:6;8788:220;8822:6;8817:3;8814:15;8788:220;;;8897:3;8926:37;8959:3;8947:10;8926:37;:::i;:::-;8921:3;8914:50;8993:4;8988:3;8984:14;8977:21;;8864:144;8848:4;8843:3;8839:14;8832:21;;8788:220;;;8792:21;8406:608;;8304:710;;;;;:::o;9037:370::-;9108:5;9157:3;9150:4;9142:6;9138:17;9134:27;9124:122;;9165:79;;:::i;:::-;9124:122;9282:6;9269:20;9307:94;9397:3;9389:6;9382:4;9374:6;9370:17;9307:94;:::i;:::-;9298:103;;9114:293;9037:370;;;;:::o;9413:116::-;9483:21;9498:5;9483:21;:::i;:::-;9476:5;9473:32;9463:60;;9519:1;9516;9509:12;9463:60;9413:116;:::o;9535:133::-;9578:5;9616:6;9603:20;9594:29;;9632:30;9656:5;9632:30;:::i;:::-;9535:133;;;;:::o;9674:678::-;9764:6;9772;9821:2;9809:9;9800:7;9796:23;9792:32;9789:119;;;9827:79;;:::i;:::-;9789:119;9975:1;9964:9;9960:17;9947:31;10005:18;9997:6;9994:30;9991:117;;;10027:79;;:::i;:::-;9991:117;10132:78;10202:7;10193:6;10182:9;10178:22;10132:78;:::i;:::-;10122:88;;9918:302;10259:2;10285:50;10327:7;10318:6;10307:9;10303:22;10285:50;:::i;:::-;10275:60;;10230:115;9674:678;;;;;:::o;10358:329::-;10417:6;10466:2;10454:9;10445:7;10441:23;10437:32;10434:119;;;10472:79;;:::i;:::-;10434:119;10592:1;10617:53;10662:7;10653:6;10642:9;10638:22;10617:53;:::i;:::-;10607:63;;10563:117;10358:329;;;;:::o;10693:60::-;10721:3;10742:5;10735:12;;10693:60;;;:::o;10759:142::-;10809:9;10842:53;10860:34;10869:24;10887:5;10869:24;:::i;:::-;10860:34;:::i;:::-;10842:53;:::i;:::-;10829:66;;10759:142;;;:::o;10907:126::-;10957:9;10990:37;11021:5;10990:37;:::i;:::-;10977:50;;10907:126;;;:::o;11039:148::-;11111:9;11144:37;11175:5;11144:37;:::i;:::-;11131:50;;11039:148;;;:::o;11193:175::-;11302:59;11355:5;11302:59;:::i;:::-;11297:3;11290:72;11193:175;;:::o;11374:266::-;11489:4;11527:2;11516:9;11512:18;11504:26;;11540:93;11630:1;11619:9;11615:17;11606:6;11540:93;:::i;:::-;11374:266;;;;:::o;11646:142::-;11749:32;11775:5;11749:32;:::i;:::-;11744:3;11737:45;11646:142;;:::o;11794:254::-;11903:4;11941:2;11930:9;11926:18;11918:26;;11954:87;12038:1;12027:9;12023:17;12014:6;11954:87;:::i;:::-;11794:254;;;;:::o;12054:117::-;12163:1;12160;12153:12;12194:568;12267:8;12277:6;12327:3;12320:4;12312:6;12308:17;12304:27;12294:122;;12335:79;;:::i;:::-;12294:122;12448:6;12435:20;12425:30;;12478:18;12470:6;12467:30;12464:117;;;12500:79;;:::i;:::-;12464:117;12614:4;12606:6;12602:17;12590:29;;12668:3;12660:4;12652:6;12648:17;12638:8;12634:32;12631:41;12628:128;;;12675:79;;:::i;:::-;12628:128;12194:568;;;;;:::o;12768:849::-;12872:6;12880;12888;12896;12945:2;12933:9;12924:7;12920:23;12916:32;12913:119;;;12951:79;;:::i;:::-;12913:119;13071:1;13096:53;13141:7;13132:6;13121:9;13117:22;13096:53;:::i;:::-;13086:63;;13042:117;13226:2;13215:9;13211:18;13198:32;13257:18;13249:6;13246:30;13243:117;;;13279:79;;:::i;:::-;13243:117;13392:80;13464:7;13455:6;13444:9;13440:22;13392:80;:::i;:::-;13374:98;;;;13169:313;13521:2;13547:53;13592:7;13583:6;13572:9;13568:22;13547:53;:::i;:::-;13537:63;;13492:118;12768:849;;;;;;;:::o;13623:474::-;13691:6;13699;13748:2;13736:9;13727:7;13723:23;13719:32;13716:119;;;13754:79;;:::i;:::-;13716:119;13874:1;13899:53;13944:7;13935:6;13924:9;13920:22;13899:53;:::i;:::-;13889:63;;13845:117;14001:2;14027:53;14072:7;14063:6;14052:9;14048:22;14027:53;:::i;:::-;14017:63;;13972:118;13623:474;;;;;:::o;14103:180::-;14151:77;14148:1;14141:88;14248:4;14245:1;14238:15;14272:4;14269:1;14262:15;14289:320;14333:6;14370:1;14364:4;14360:12;14350:22;;14417:1;14411:4;14407:12;14438:18;14428:81;;14494:4;14486:6;14482:17;14472:27;;14428:81;14556:2;14548:6;14545:14;14525:18;14522:38;14519:84;;14575:18;;:::i;:::-;14519:84;14340:269;14289:320;;;:::o;14615:180::-;14663:77;14660:1;14653:88;14760:4;14757:1;14750:15;14784:4;14781:1;14774:15;14801:194;14841:4;14861:20;14879:1;14861:20;:::i;:::-;14856:25;;14895:20;14913:1;14895:20;:::i;:::-;14890:25;;14939:1;14936;14932:9;14924:17;;14963:1;14957:4;14954:11;14951:37;;;14968:18;;:::i;:::-;14951:37;14801:194;;;;:::o;15001:167::-;15141:19;15137:1;15129:6;15125:14;15118:43;15001:167;:::o;15174:366::-;15316:3;15337:67;15401:2;15396:3;15337:67;:::i;:::-;15330:74;;15413:93;15502:3;15413:93;:::i;:::-;15531:2;15526:3;15522:12;15515:19;;15174:366;;;:::o;15546:419::-;15712:4;15750:2;15739:9;15735:18;15727:26;;15799:9;15793:4;15789:20;15785:1;15774:9;15770:17;15763:47;15827:131;15953:4;15827:131;:::i;:::-;15819:139;;15546:419;;;:::o;15971:180::-;16019:77;16016:1;16009:88;16116:4;16113:1;16106:15;16140:4;16137:1;16130:15;16157:143;16214:5;16245:6;16239:13;16230:22;;16261:33;16288:5;16261:33;:::i;:::-;16157:143;;;;:::o;16306:351::-;16376:6;16425:2;16413:9;16404:7;16400:23;16396:32;16393:119;;;16431:79;;:::i;:::-;16393:119;16551:1;16576:64;16632:7;16623:6;16612:9;16608:22;16576:64;:::i;:::-;16566:74;;16522:128;16306:351;;;;:::o;16663:134::-;16721:9;16754:37;16785:5;16754:37;:::i;:::-;16741:50;;16663:134;;;:::o;16803:147::-;16898:45;16937:5;16898:45;:::i;:::-;16893:3;16886:58;16803:147;;:::o;16956:348::-;17085:4;17123:2;17112:9;17108:18;17100:26;;17136:79;17212:1;17201:9;17197:17;17188:6;17136:79;:::i;:::-;17225:72;17293:2;17282:9;17278:18;17269:6;17225:72;:::i;:::-;16956:348;;;;;:::o;17310:137::-;17364:5;17395:6;17389:13;17380:22;;17411:30;17435:5;17411:30;:::i;:::-;17310:137;;;;:::o;17453:345::-;17520:6;17569:2;17557:9;17548:7;17544:23;17540:32;17537:119;;;17575:79;;:::i;:::-;17537:119;17695:1;17720:61;17773:7;17764:6;17753:9;17749:22;17720:61;:::i;:::-;17710:71;;17666:125;17453:345;;;;:::o;17804:143::-;17861:5;17892:6;17886:13;17877:22;;17908:33;17935:5;17908:33;:::i;:::-;17804:143;;;;:::o;17953:351::-;18023:6;18072:2;18060:9;18051:7;18047:23;18043:32;18040:119;;;18078:79;;:::i;:::-;18040:119;18198:1;18223:64;18279:7;18270:6;18259:9;18255:22;18223:64;:::i;:::-;18213:74;;18169:128;17953:351;;;;:::o;18310:332::-;18431:4;18469:2;18458:9;18454:18;18446:26;;18482:71;18550:1;18539:9;18535:17;18526:6;18482:71;:::i;:::-;18563:72;18631:2;18620:9;18616:18;18607:6;18563:72;:::i;:::-;18310:332;;;;;:::o;18648:442::-;18797:4;18835:2;18824:9;18820:18;18812:26;;18848:71;18916:1;18905:9;18901:17;18892:6;18848:71;:::i;:::-;18929:72;18997:2;18986:9;18982:18;18973:6;18929:72;:::i;:::-;19011;19079:2;19068:9;19064:18;19055:6;19011:72;:::i;:::-;18648:442;;;;;;:::o;19096:158::-;19236:10;19232:1;19224:6;19220:14;19213:34;19096:158;:::o;19260:365::-;19402:3;19423:66;19487:1;19482:3;19423:66;:::i;:::-;19416:73;;19498:93;19587:3;19498:93;:::i;:::-;19616:2;19611:3;19607:12;19600:19;;19260:365;;;:::o;19631:419::-;19797:4;19835:2;19824:9;19820:18;19812:26;;19884:9;19878:4;19874:20;19870:1;19859:9;19855:17;19848:47;19912:131;20038:4;19912:131;:::i;:::-;19904:139;;19631:419;;;:::o;20056:166::-;20196:18;20192:1;20184:6;20180:14;20173:42;20056:166;:::o;20228:366::-;20370:3;20391:67;20455:2;20450:3;20391:67;:::i;:::-;20384:74;;20467:93;20556:3;20467:93;:::i;:::-;20585:2;20580:3;20576:12;20569:19;;20228:366;;;:::o;20600:419::-;20766:4;20804:2;20793:9;20789:18;20781:26;;20853:9;20847:4;20843:20;20839:1;20828:9;20824:17;20817:47;20881:131;21007:4;20881:131;:::i;:::-;20873:139;;20600:419;;;:::o;21025:233::-;21064:3;21087:24;21105:5;21087:24;:::i;:::-;21078:33;;21133:66;21126:5;21123:77;21120:103;;21203:18;;:::i;:::-;21120:103;21250:1;21243:5;21239:13;21232:20;;21025:233;;;:::o;21264:191::-;21304:3;21323:20;21341:1;21323:20;:::i;:::-;21318:25;;21357:20;21375:1;21357:20;:::i;:::-;21352:25;;21400:1;21397;21393:9;21386:16;;21421:3;21418:1;21415:10;21412:36;;;21428:18;;:::i;:::-;21412:36;21264:191;;;;:::o;21461:161::-;21601:13;21597:1;21589:6;21585:14;21578:37;21461:161;:::o;21628:366::-;21770:3;21791:67;21855:2;21850:3;21791:67;:::i;:::-;21784:74;;21867:93;21956:3;21867:93;:::i;:::-;21985:2;21980:3;21976:12;21969:19;;21628:366;;;:::o;22000:419::-;22166:4;22204:2;22193:9;22189:18;22181:26;;22253:9;22247:4;22243:20;22239:1;22228:9;22224:17;22217:47;22281:131;22407:4;22281:131;:::i;:::-;22273:139;;22000:419;;;:::o;22425:180::-;22473:77;22470:1;22463:88;22570:4;22567:1;22560:15;22594:4;22591:1;22584:15;22611:185;22651:1;22668:20;22686:1;22668:20;:::i;:::-;22663:25;;22702:20;22720:1;22702:20;:::i;:::-;22697:25;;22741:1;22731:35;;22746:18;;:::i;:::-;22731:35;22788:1;22785;22781:9;22776:14;;22611:185;;;;:::o;22802:114::-;22869:6;22903:5;22897:12;22887:22;;22802:114;;;:::o;22922:184::-;23021:11;23055:6;23050:3;23043:19;23095:4;23090:3;23086:14;23071:29;;22922:184;;;;:::o;23112:132::-;23179:4;23202:3;23194:11;;23232:4;23227:3;23223:14;23215:22;;23112:132;;;:::o;23250:108::-;23327:24;23345:5;23327:24;:::i;:::-;23322:3;23315:37;23250:108;;:::o;23364:179::-;23433:10;23454:46;23496:3;23488:6;23454:46;:::i;:::-;23532:4;23527:3;23523:14;23509:28;;23364:179;;;;:::o;23549:113::-;23619:4;23651;23646:3;23642:14;23634:22;;23549:113;;;:::o;23698:732::-;23817:3;23846:54;23894:5;23846:54;:::i;:::-;23916:86;23995:6;23990:3;23916:86;:::i;:::-;23909:93;;24026:56;24076:5;24026:56;:::i;:::-;24105:7;24136:1;24121:284;24146:6;24143:1;24140:13;24121:284;;;24222:6;24216:13;24249:63;24308:3;24293:13;24249:63;:::i;:::-;24242:70;;24335:60;24388:6;24335:60;:::i;:::-;24325:70;;24181:224;24168:1;24165;24161:9;24156:14;;24121:284;;;24125:14;24421:3;24414:10;;23822:608;;;23698:732;;;;:::o;24436:483::-;24607:4;24645:2;24634:9;24630:18;24622:26;;24658:71;24726:1;24715:9;24711:17;24702:6;24658:71;:::i;:::-;24776:9;24770:4;24766:20;24761:2;24750:9;24746:18;24739:48;24804:108;24907:4;24898:6;24804:108;:::i;:::-;24796:116;;24436:483;;;;;:::o;24925:311::-;25002:4;25092:18;25084:6;25081:30;25078:56;;;25114:18;;:::i;:::-;25078:56;25164:4;25156:6;25152:17;25144:25;;25224:4;25218;25214:15;25206:23;;24925:311;;;:::o;25259:732::-;25366:5;25391:81;25407:64;25464:6;25407:64;:::i;:::-;25391:81;:::i;:::-;25382:90;;25492:5;25521:6;25514:5;25507:21;25555:4;25548:5;25544:16;25537:23;;25608:4;25600:6;25596:17;25588:6;25584:30;25637:3;25629:6;25626:15;25623:122;;;25656:79;;:::i;:::-;25623:122;25771:6;25754:231;25788:6;25783:3;25780:15;25754:231;;;25863:3;25892:48;25936:3;25924:10;25892:48;:::i;:::-;25887:3;25880:61;25970:4;25965:3;25961:14;25954:21;;25830:155;25814:4;25809:3;25805:14;25798:21;;25754:231;;;25758:21;25372:619;;25259:732;;;;;:::o;26014:385::-;26096:5;26145:3;26138:4;26130:6;26126:17;26122:27;26112:122;;26153:79;;:::i;:::-;26112:122;26263:6;26257:13;26288:105;26389:3;26381:6;26374:4;26366:6;26362:17;26288:105;:::i;:::-;26279:114;;26102:297;26014:385;;;;:::o;26405:554::-;26500:6;26549:2;26537:9;26528:7;26524:23;26520:32;26517:119;;;26555:79;;:::i;:::-;26517:119;26696:1;26685:9;26681:17;26675:24;26726:18;26718:6;26715:30;26712:117;;;26748:79;;:::i;:::-;26712:117;26853:89;26934:7;26925:6;26914:9;26910:22;26853:89;:::i;:::-;26843:99;;26646:306;26405:554;;;;:::o;26965:85::-;27010:7;27039:5;27028:16;;26965:85;;;:::o;27056:158::-;27114:9;27147:61;27165:42;27174:32;27200:5;27174:32;:::i;:::-;27165:42;:::i;:::-;27147:61;:::i;:::-;27134:74;;27056:158;;;:::o;27220:147::-;27315:45;27354:5;27315:45;:::i;:::-;27310:3;27303:58;27220:147;;:::o;27373:831::-;27636:4;27674:3;27663:9;27659:19;27651:27;;27688:71;27756:1;27745:9;27741:17;27732:6;27688:71;:::i;:::-;27769:80;27845:2;27834:9;27830:18;27821:6;27769:80;:::i;:::-;27896:9;27890:4;27886:20;27881:2;27870:9;27866:18;27859:48;27924:108;28027:4;28018:6;27924:108;:::i;:::-;27916:116;;28042:72;28110:2;28099:9;28095:18;28086:6;28042:72;:::i;:::-;28124:73;28192:3;28181:9;28177:19;28168:6;28124:73;:::i;:::-;27373:831;;;;;;;;:::o;28210:847::-;28481:4;28519:3;28508:9;28504:19;28496:27;;28533:71;28601:1;28590:9;28586:17;28577:6;28533:71;:::i;:::-;28614:80;28690:2;28679:9;28675:18;28666:6;28614:80;:::i;:::-;28741:9;28735:4;28731:20;28726:2;28715:9;28711:18;28704:48;28769:108;28872:4;28863:6;28769:108;:::i;:::-;28761:116;;28887:80;28963:2;28952:9;28948:18;28939:6;28887:80;:::i;:::-;28977:73;29045:3;29034:9;29030:19;29021:6;28977:73;:::i;:::-;28210:847;;;;;;;;:::o;29063:410::-;29103:7;29126:20;29144:1;29126:20;:::i;:::-;29121:25;;29160:20;29178:1;29160:20;:::i;:::-;29155:25;;29215:1;29212;29208:9;29237:30;29255:11;29237:30;:::i;:::-;29226:41;;29416:1;29407:7;29403:15;29400:1;29397:22;29377:1;29370:9;29350:83;29327:139;;29446:18;;:::i;:::-;29327:139;29111:362;29063:410;;;;:::o

Swarm Source

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