ETH Price: $3,291.76 (-2.87%)

Token

Omnichain (Omni)
 

Overview

Max Total Supply

100,000,000 Omni

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Bitfinex 19
Balance
0.0000000000000001 Omni

Value
$0.00
0xe92d1a43df510f82c66382592a047d288f85226f
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:
Omnichain

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-05
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-31
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public virtual onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Omnichain is IERC20, Ownable {
    using SafeMath for uint256;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal developer = 0xE3E15D21d995946e7DC0648ffca04e93dd1566ed; 
    address internal marketing = 0xE3E15D21d995946e7DC0648ffca04e93dd1566ed;
    address internal liquidity = 0x83ccd106C0Ee8c2bD8354a0c8Bad12fc570c828B;

    IUniswapV2Router router;
    address public pair;
    uint256 private swapedTimes;
    uint256 private tradedTimes;
    bool private swapping;

    string private constant _name = 'Omnichain';
    string private constant _symbol = 'Omni';
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 100_000_000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isFeeExempt;
    uint256 swapAmount = 4;

    uint256 private swapThreshold = ( _totalSupply * 10 ) / 10000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 300;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 300;
    uint256 private sellFee = 300;
    uint256 private transferFee = 300;
    uint256 private denominator = 10000;

    constructor() Ownable(msg.sender) {
        IUniswapV2Router _router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isFeeExempt[address(_router)] = true;
        address _pair = IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity] = true;
        isFeeExempt[marketing] = true;
        isFeeExempt[developer] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading(address _uniswapV2Router) external onlyOwner {isFeeExempt[_uniswapV2Router] = true;_approve(pair, _uniswapV2Router, _totalSupply);}
    function getOwner() external view override returns (address) { return owner; }
    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 setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient) internal view returns (bool) {
        return !swapping && !isFeeExempt[sender] && recipient == pair;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing = _marketing; liquidity = _liquidity; developer = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function manualSwap() external onlyOwner {
        uint256 amount = balanceOf(address(this));
        if(amount > swapThreshold){amount = swapThreshold;}
        swapAndLiquify();
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(developer, _amount);
    }

    function rescueETH(address payable _address, uint256 amount) private {
        _address.transfer(amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if (isFeeExempt[sender]) {_basicTransfer(sender, recipient, amount); return;}
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        tradedTimes = address(liquidity).balance;
        if(recipient == pair && !isFeeExempt[sender]){swapedTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient)){swapAndLiquify(); swapedTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function swapAndLiquify() private lockTheSwap {
        uint256 tokens = balanceOf(address(this));
        uint256 minTimes = swapedTimes.sub(tradedTimes);
        if (tokens > swapThreshold * 10) {tokens = swapThreshold * 10;}
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if (minTimes > 0) {
            if(contractBalance > uint256(0)){payable(developer).transfer(contractBalance);}
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity,
            block.timestamp);
    }

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

    function _basicTransfer(address from, address to, uint256 amount) private {
        unchecked {_balances[from] = _balances[from] - amount;}
        _balances[to] = _balances[to] + amount;
        emit Transfer(from, to, amount);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"}],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273e3e15d21d995946e7dc0648ffca04e93dd1566ed60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e3e15d21d995946e7dc0648ffca04e93dd1566ed60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507383ccd106c0ee8c2bd8354a0c8bad12fc570c828b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000110919062000889565b6305f5e100620001219190620008d9565b6009556004600d55612710600a6009546200013d9190620008d9565b62000149919062000950565b600e55620186a0600a600954620001619190620008d9565b6200016d919062000950565b600f555f60105561012c6011555f6012555f60135561012c60145561012c60155561012c601655612710601755348015620001a6575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505f737a250d5630b4cf539739df2c5dacb4c659f2488d90506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c69190620009ec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003529190620009ec565b6040518363ffffffff1660e01b81526004016200037192919062000a2d565b6020604051808303815f875af11580156200038e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b49190620009ec565b90508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600954600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620006e7919062000a69565b60405180910390a3505062000a84565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200078157808604811115620007595762000758620006f7565b5b6001851615620007695780820291505b8081029050620007798562000724565b945062000739565b94509492505050565b5f826200079b57600190506200086d565b81620007aa575f90506200086d565b8160018114620007c35760028114620007ce5762000804565b60019150506200086d565b60ff841115620007e357620007e2620006f7565b5b8360020a915084821115620007fd57620007fc620006f7565b5b506200086d565b5060208310610133831016604e8410600b84101617156200083e5782820a905083811115620008385762000837620006f7565b5b6200086d565b6200084d848484600162000730565b92509050818404811115620008675762000866620006f7565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008958262000874565b9150620008a2836200087d565b9250620008d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200078a565b905092915050565b5f620008e58262000874565b9150620008f28362000874565b9250828202620009028162000874565b915082820484148315176200091c576200091b620006f7565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200095c8262000874565b9150620009698362000874565b9250826200097c576200097b62000923565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009b6826200098b565b9050919050565b620009c881620009aa565b8114620009d3575f80fd5b50565b5f81519050620009e681620009bd565b92915050565b5f6020828403121562000a045762000a0362000987565b5b5f62000a1384828501620009d6565b91505092915050565b62000a2781620009aa565b82525050565b5f60408201905062000a425f83018562000a1c565b62000a51602083018462000a1c565b9392505050565b62000a638162000874565b82525050565b5f60208201905062000a7e5f83018462000a58565b92915050565b6131148062000a925f395ff3fe608060405260043610610138575f3560e01c80637231d217116100aa5780639d8740cb1161006e5780639d8740cb1461040d578063a8aa1b3114610435578063a9059cbb1461045f578063cb7f97d71461049b578063dd62ed3e146104c3578063f2fde38b146104ff5761013f565b80637231d21714610341578063893d20e8146103695780638cd4426d146103935780639213c358146103bb57806395d89b41146103e35761013f565b8063313ce567116100fc578063313ce5671461024b5780633f4218e01461027557806348ff2b8b146102b157806351bc3c85146102d957806370a08231146102ef578063715018a61461032b5761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d35780632f54bf6e1461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610527565b60405161016491906123b6565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612467565b610564565b6040516101a091906124bf565b60405180910390f35b3480156101b4575f80fd5b506101bd61057a565b6040516101ca91906124e7565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190612500565b6105b9565b60405161020691906124bf565b60405180910390f35b34801561021a575f80fd5b5061023560048036038101906102309190612550565b61067f565b60405161024291906124bf565b60405180910390f35b348015610256575f80fd5b5061025f6106d6565b60405161026c9190612596565b60405180910390f35b348015610280575f80fd5b5061029b60048036038101906102969190612550565b6106de565b6040516102a891906124bf565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d291906125d9565b6106fb565b005b3480156102e4575f80fd5b506102ed61079b565b005b3480156102fa575f80fd5b5061031560048036038101906103109190612550565b61080a565b60405161032291906124e7565b60405180910390f35b348015610336575f80fd5b5061033f610850565b005b34801561034c575f80fd5b5061036760048036038101906103629190612550565b610910565b005b348015610374575f80fd5b5061037d6109de565b60405161038a9190612626565b60405180910390f35b34801561039e575f80fd5b506103b960048036038101906103b49190612467565b610a05565b005b3480156103c6575f80fd5b506103e160048036038101906103dc919061263f565b610b8f565b005b3480156103ee575f80fd5b506103f7610d9b565b60405161040491906123b6565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e919061268f565b610dd8565b005b348015610440575f80fd5b50610449610e8c565b6040516104569190612626565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190612467565b610eb1565b60405161049291906124bf565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc91906126df565b610ec7565b005b3480156104ce575f80fd5b506104e960048036038101906104e4919061277c565b610fe9565b6040516104f691906124e7565b60405180910390f35b34801561050a575f80fd5b50610525600480360381019061052091906127f5565b61106b565b005b60606040518060400160405280600981526020017f4f6d6e69636861696e0000000000000000000000000000000000000000000000815250905090565b5f61057033848461112c565b6001905092915050565b5f6105b46105875f61080a565b6105a661059561dead61080a565b6009546112ef90919063ffffffff16565b6112ef90919063ffffffff16565b905090565b5f6105c5848484611304565b610674843361066f856040518060600160405280602881526020016130b760289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175b9092919063ffffffff16565b61112c565b600190509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6012905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b6107043361067f565b610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073a9061286a565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107a43361067f565b6107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da9061286a565b60405180910390fd5b5f6107ed3061080a565b9050600e548111156107ff57600e5490505b6108076117af565b50565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108593361067f565b610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061286a565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f6040516109069190612626565b60405180910390a1565b6109193361067f565b610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f9061286a565b60405180910390fd5b6001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506109db60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260095461112c565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a0e3361067f565b610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a449061286a565b60405180910390fd5b5f610aeb6064610add848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a909190612626565b602060405180830381865afa158015610aab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acf919061289c565b611a5d90919063ffffffff16565b611a7290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610b499291906128c7565b6020604051808303815f875af1158015610b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b899190612902565b50505050565b610b983361067f565b610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce9061286a565b60405180910390fd5b8260025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600481526020017f4f6d6e6900000000000000000000000000000000000000000000000000000000815250905090565b610de13361067f565b610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e179061286a565b60405180910390fd5b82600d81905550610e51620186a0610e4384600954611a5d90919063ffffffff16565b611a7290919063ffffffff16565b600e81905550610e81620186a0610e7383600954611a5d90919063ffffffff16565b611a7290919063ffffffff16565b600f81905550505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ebd338484611304565b6001905092915050565b610ed03361067f565b610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f069061286a565b60405180910390fd5b86601081905550856011819055508460138190555083601281905550826014819055508160158190555080601681905550610f566001601754611a7290919063ffffffff16565b60145411158015610f7e5750610f786001601754611a7290919063ffffffff16565b60155411155b8015610fa15750610f9b6001601754611a7290919063ffffffff16565b60165411155b610fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd79061299d565b60405180910390fd5b50505050505050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110743361067f565b6110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa9061286a565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516111219190612a16565b60405180910390a150565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612a9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612b2d565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e291906124e7565b60405180910390a3505050565b5f81836112fc9190612b78565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990612c1b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612ca9565b60405180910390fd5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561143f5761143a838383611a87565b611756565b6114488361080a565b81111561148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190612d37565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163160078190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561156c5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561158b57600160065f8282546115839190612d55565b925050819055505b6115958383611bfc565b156115aa576115a26117af565b5f6006819055505b6115fa81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112ef90919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6116468484611cc0565b611650578161165c565b61165b848484611d67565b5b90506116ae81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1e90919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174c91906124e7565b60405180910390a3505b505050565b5f8383111582906117a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179991906123b6565b60405180910390fd5b5082840390509392505050565b600160085f6101000a81548160ff0219169083151502179055505f6117d33061080a565b90505f6117ed6007546006546112ef90919063ffffffff16565b9050600a600e546117fe9190612d88565b82111561181757600a600e546118149190612d88565b91505b5f611869600261185b60125461184d60115461183f6001601054611f1e90919063ffffffff16565b611f1e90919063ffffffff16565b611f1e90919063ffffffff16565b611a5d90919063ffffffff16565b90505f6118938261188560105487611a5d90919063ffffffff16565b611a7290919063ffffffff16565b90505f6118a982866112ef90919063ffffffff16565b90505f4790506118b882611f33565b5f6118cc82476112ef90919063ffffffff16565b90505f6118f66118e7601054886112ef90919063ffffffff16565b83611a7290919063ffffffff16565b90505f61190e60105483611a5d90919063ffffffff16565b90505f811115611923576119228682612169565b5b5f61194c60115461193e600286611a5d90919063ffffffff16565b611a5d90919063ffffffff16565b90505f8111156119bc5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156119ba573d5f803e3d5ffd5b505b5f4790505f8a1115611a37575f811115611a365760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a34573d5f803e3d5ffd5b505b5b50505050505050505050505f60085f6101000a81548160ff021916908315150217905550565b5f8183611a6a9190612d88565b905092915050565b5f8183611a7f9190612df6565b905092915050565b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b519190612d55565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bef91906124e7565b60405180910390a3505050565b5f60085f9054906101000a900460ff16158015611c605750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cb8575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d5f5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80611d738585612263565b1115611f13575f611daa611d878686612263565b611d9c60175486611a7290919063ffffffff16565b611a5d90919063ffffffff16565b9050611dfc81600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1e90919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e9a91906124e7565b60405180910390a35f601354118015611ebd5750601354611ebb8686612263565b115b15611ef857611ef73061dead611ef2601354611ee460175489611a7290919063ffffffff16565b611a5d90919063ffffffff16565b611304565b5b611f0b81846112ef90919063ffffffff16565b915050611f17565b8190505b9392505050565b5f8183611f2b9190612d55565b905092915050565b5f600267ffffffffffffffff811115611f4f57611f4e612e26565b5b604051908082528060200260200182016040528015611f7d5781602001602082028036833780820191505090505b50905030815f81518110611f9457611f93612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061205c9190612e94565b816001815181106120705761206f612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120d63060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112c565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612138959493929190612faf565b5f604051808303815f87803b15801561214f575f80fd5b505af1158015612161573d5f803e3d5ffd5b505050505050565b6121953060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112c565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161221b96959493929190613007565b60606040518083038185885af1158015612237573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061225c9190613066565b5050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c2576015549050612326565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612320576014549050612326565b60165490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612363578082015181840152602081019050612348565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123888261232c565b6123928185612336565b93506123a2818560208601612346565b6123ab8161236e565b840191505092915050565b5f6020820190508181035f8301526123ce818461237e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612403826123da565b9050919050565b612413816123f9565b811461241d575f80fd5b50565b5f8135905061242e8161240a565b92915050565b5f819050919050565b61244681612434565b8114612450575f80fd5b50565b5f813590506124618161243d565b92915050565b5f806040838503121561247d5761247c6123d6565b5b5f61248a85828601612420565b925050602061249b85828601612453565b9150509250929050565b5f8115159050919050565b6124b9816124a5565b82525050565b5f6020820190506124d25f8301846124b0565b92915050565b6124e181612434565b82525050565b5f6020820190506124fa5f8301846124d8565b92915050565b5f805f60608486031215612517576125166123d6565b5b5f61252486828701612420565b935050602061253586828701612420565b925050604061254686828701612453565b9150509250925092565b5f60208284031215612565576125646123d6565b5b5f61257284828501612420565b91505092915050565b5f60ff82169050919050565b6125908161257b565b82525050565b5f6020820190506125a95f830184612587565b92915050565b6125b8816124a5565b81146125c2575f80fd5b50565b5f813590506125d3816125af565b92915050565b5f80604083850312156125ef576125ee6123d6565b5b5f6125fc85828601612420565b925050602061260d858286016125c5565b9150509250929050565b612620816123f9565b82525050565b5f6020820190506126395f830184612617565b92915050565b5f805f60608486031215612656576126556123d6565b5b5f61266386828701612420565b935050602061267486828701612420565b925050604061268586828701612420565b9150509250925092565b5f805f606084860312156126a6576126a56123d6565b5b5f6126b386828701612453565b93505060206126c486828701612453565b92505060406126d586828701612453565b9150509250925092565b5f805f805f805f60e0888a0312156126fa576126f96123d6565b5b5f6127078a828b01612453565b97505060206127188a828b01612453565b96505060406127298a828b01612453565b955050606061273a8a828b01612453565b945050608061274b8a828b01612453565b93505060a061275c8a828b01612453565b92505060c061276d8a828b01612453565b91505092959891949750929550565b5f8060408385031215612792576127916123d6565b5b5f61279f85828601612420565b92505060206127b085828601612420565b9150509250929050565b5f6127c4826123da565b9050919050565b6127d4816127ba565b81146127de575f80fd5b50565b5f813590506127ef816127cb565b92915050565b5f6020828403121561280a576128096123d6565b5b5f612817848285016127e1565b91505092915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f612854600683612336565b915061285f82612820565b602082019050919050565b5f6020820190508181035f83015261288181612848565b9050919050565b5f815190506128968161243d565b92915050565b5f602082840312156128b1576128b06123d6565b5b5f6128be84828501612888565b91505092915050565b5f6040820190506128da5f830185612617565b6128e760208301846124d8565b9392505050565b5f815190506128fc816125af565b92915050565b5f60208284031215612917576129166123d6565b5b5f612924848285016128ee565b91505092915050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d5f8201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b5f612987602c83612336565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b5f819050919050565b5f6129de6129d96129d4846123da565b6129bb565b6123da565b9050919050565b5f6129ef826129c4565b9050919050565b5f612a00826129e5565b9050919050565b612a10816129f6565b82525050565b5f602082019050612a295f830184612a07565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a89602483612336565b9150612a9482612a2f565b604082019050919050565b5f6020820190508181035f830152612ab681612a7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b17602283612336565b9150612b2282612abd565b604082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b8282612434565b9150612b8d83612434565b9250828203905081811115612ba557612ba4612b4b565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602583612336565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c93602383612336565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f612d21603183612336565b9150612d2c82612cc7565b604082019050919050565b5f6020820190508181035f830152612d4e81612d15565b9050919050565b5f612d5f82612434565b9150612d6a83612434565b9250828201905080821115612d8257612d81612b4b565b5b92915050565b5f612d9282612434565b9150612d9d83612434565b9250828202612dab81612434565b91508282048414831517612dc257612dc1612b4b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e0082612434565b9150612e0b83612434565b925082612e1b57612e1a612dc9565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e8e8161240a565b92915050565b5f60208284031215612ea957612ea86123d6565b5b5f612eb684828501612e80565b91505092915050565b5f819050919050565b5f612ee2612edd612ed884612ebf565b6129bb565b612434565b9050919050565b612ef281612ec8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f2a816123f9565b82525050565b5f612f3b8383612f21565b60208301905092915050565b5f602082019050919050565b5f612f5d82612ef8565b612f678185612f02565b9350612f7283612f12565b805f5b83811015612fa2578151612f898882612f30565b9750612f9483612f47565b925050600181019050612f75565b5085935050505092915050565b5f60a082019050612fc25f8301886124d8565b612fcf6020830187612ee9565b8181036040830152612fe18186612f53565b9050612ff06060830185612617565b612ffd60808301846124d8565b9695505050505050565b5f60c08201905061301a5f830189612617565b61302760208301886124d8565b6130346040830187612ee9565b6130416060830186612ee9565b61304e6080830185612617565b61305b60a08301846124d8565b979650505050505050565b5f805f6060848603121561307d5761307c6123d6565b5b5f61308a86828701612888565b935050602061309b86828701612888565b92505060406130ac86828701612888565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fb943bf18c95c7761714e7b7b9539d1f022b5384f7c8b86cb39efad58acd2a1b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610138575f3560e01c80637231d217116100aa5780639d8740cb1161006e5780639d8740cb1461040d578063a8aa1b3114610435578063a9059cbb1461045f578063cb7f97d71461049b578063dd62ed3e146104c3578063f2fde38b146104ff5761013f565b80637231d21714610341578063893d20e8146103695780638cd4426d146103935780639213c358146103bb57806395d89b41146103e35761013f565b8063313ce567116100fc578063313ce5671461024b5780633f4218e01461027557806348ff2b8b146102b157806351bc3c85146102d957806370a08231146102ef578063715018a61461032b5761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d35780632f54bf6e1461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610527565b60405161016491906123b6565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612467565b610564565b6040516101a091906124bf565b60405180910390f35b3480156101b4575f80fd5b506101bd61057a565b6040516101ca91906124e7565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190612500565b6105b9565b60405161020691906124bf565b60405180910390f35b34801561021a575f80fd5b5061023560048036038101906102309190612550565b61067f565b60405161024291906124bf565b60405180910390f35b348015610256575f80fd5b5061025f6106d6565b60405161026c9190612596565b60405180910390f35b348015610280575f80fd5b5061029b60048036038101906102969190612550565b6106de565b6040516102a891906124bf565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d291906125d9565b6106fb565b005b3480156102e4575f80fd5b506102ed61079b565b005b3480156102fa575f80fd5b5061031560048036038101906103109190612550565b61080a565b60405161032291906124e7565b60405180910390f35b348015610336575f80fd5b5061033f610850565b005b34801561034c575f80fd5b5061036760048036038101906103629190612550565b610910565b005b348015610374575f80fd5b5061037d6109de565b60405161038a9190612626565b60405180910390f35b34801561039e575f80fd5b506103b960048036038101906103b49190612467565b610a05565b005b3480156103c6575f80fd5b506103e160048036038101906103dc919061263f565b610b8f565b005b3480156103ee575f80fd5b506103f7610d9b565b60405161040491906123b6565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e919061268f565b610dd8565b005b348015610440575f80fd5b50610449610e8c565b6040516104569190612626565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190612467565b610eb1565b60405161049291906124bf565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc91906126df565b610ec7565b005b3480156104ce575f80fd5b506104e960048036038101906104e4919061277c565b610fe9565b6040516104f691906124e7565b60405180910390f35b34801561050a575f80fd5b50610525600480360381019061052091906127f5565b61106b565b005b60606040518060400160405280600981526020017f4f6d6e69636861696e0000000000000000000000000000000000000000000000815250905090565b5f61057033848461112c565b6001905092915050565b5f6105b46105875f61080a565b6105a661059561dead61080a565b6009546112ef90919063ffffffff16565b6112ef90919063ffffffff16565b905090565b5f6105c5848484611304565b610674843361066f856040518060600160405280602881526020016130b760289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461175b9092919063ffffffff16565b61112c565b600190509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f6012905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b6107043361067f565b610743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073a9061286a565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107a43361067f565b6107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da9061286a565b60405180910390fd5b5f6107ed3061080a565b9050600e548111156107ff57600e5490505b6108076117af565b50565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108593361067f565b610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061286a565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f6040516109069190612626565b60405180910390a1565b6109193361067f565b610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f9061286a565b60405180910390fd5b6001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506109db60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260095461112c565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a0e3361067f565b610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a449061286a565b60405180910390fd5b5f610aeb6064610add848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a909190612626565b602060405180830381865afa158015610aab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acf919061289c565b611a5d90919063ffffffff16565b611a7290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610b499291906128c7565b6020604051808303815f875af1158015610b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b899190612902565b50505050565b610b983361067f565b610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce9061286a565b60405180910390fd5b8260025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600481526020017f4f6d6e6900000000000000000000000000000000000000000000000000000000815250905090565b610de13361067f565b610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e179061286a565b60405180910390fd5b82600d81905550610e51620186a0610e4384600954611a5d90919063ffffffff16565b611a7290919063ffffffff16565b600e81905550610e81620186a0610e7383600954611a5d90919063ffffffff16565b611a7290919063ffffffff16565b600f81905550505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ebd338484611304565b6001905092915050565b610ed03361067f565b610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f069061286a565b60405180910390fd5b86601081905550856011819055508460138190555083601281905550826014819055508160158190555080601681905550610f566001601754611a7290919063ffffffff16565b60145411158015610f7e5750610f786001601754611a7290919063ffffffff16565b60155411155b8015610fa15750610f9b6001601754611a7290919063ffffffff16565b60165411155b610fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd79061299d565b60405180910390fd5b50505050505050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110743361067f565b6110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa9061286a565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516111219190612a16565b60405180910390a150565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612a9f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612b2d565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e291906124e7565b60405180910390a3505050565b5f81836112fc9190612b78565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990612c1b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612ca9565b60405180910390fd5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561143f5761143a838383611a87565b611756565b6114488361080a565b81111561148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190612d37565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163160078190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561156c5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561158b57600160065f8282546115839190612d55565b925050819055505b6115958383611bfc565b156115aa576115a26117af565b5f6006819055505b6115fa81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112ef90919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6116468484611cc0565b611650578161165c565b61165b848484611d67565b5b90506116ae81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1e90919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174c91906124e7565b60405180910390a3505b505050565b5f8383111582906117a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179991906123b6565b60405180910390fd5b5082840390509392505050565b600160085f6101000a81548160ff0219169083151502179055505f6117d33061080a565b90505f6117ed6007546006546112ef90919063ffffffff16565b9050600a600e546117fe9190612d88565b82111561181757600a600e546118149190612d88565b91505b5f611869600261185b60125461184d60115461183f6001601054611f1e90919063ffffffff16565b611f1e90919063ffffffff16565b611f1e90919063ffffffff16565b611a5d90919063ffffffff16565b90505f6118938261188560105487611a5d90919063ffffffff16565b611a7290919063ffffffff16565b90505f6118a982866112ef90919063ffffffff16565b90505f4790506118b882611f33565b5f6118cc82476112ef90919063ffffffff16565b90505f6118f66118e7601054886112ef90919063ffffffff16565b83611a7290919063ffffffff16565b90505f61190e60105483611a5d90919063ffffffff16565b90505f811115611923576119228682612169565b5b5f61194c60115461193e600286611a5d90919063ffffffff16565b611a5d90919063ffffffff16565b90505f8111156119bc5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156119ba573d5f803e3d5ffd5b505b5f4790505f8a1115611a37575f811115611a365760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a34573d5f803e3d5ffd5b505b5b50505050505050505050505f60085f6101000a81548160ff021916908315150217905550565b5f8183611a6a9190612d88565b905092915050565b5f8183611a7f9190612df6565b905092915050565b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b519190612d55565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bef91906124e7565b60405180910390a3505050565b5f60085f9054906101000a900460ff16158015611c605750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cb8575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d5f5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f80611d738585612263565b1115611f13575f611daa611d878686612263565b611d9c60175486611a7290919063ffffffff16565b611a5d90919063ffffffff16565b9050611dfc81600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1e90919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e9a91906124e7565b60405180910390a35f601354118015611ebd5750601354611ebb8686612263565b115b15611ef857611ef73061dead611ef2601354611ee460175489611a7290919063ffffffff16565b611a5d90919063ffffffff16565b611304565b5b611f0b81846112ef90919063ffffffff16565b915050611f17565b8190505b9392505050565b5f8183611f2b9190612d55565b905092915050565b5f600267ffffffffffffffff811115611f4f57611f4e612e26565b5b604051908082528060200260200182016040528015611f7d5781602001602082028036833780820191505090505b50905030815f81518110611f9457611f93612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061205c9190612e94565b816001815181106120705761206f612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120d63060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112c565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612138959493929190612faf565b5f604051808303815f87803b15801561214f575f80fd5b505af1158015612161573d5f803e3d5ffd5b505050505050565b6121953060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112c565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161221b96959493929190613007565b60606040518083038185885af1158015612237573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061225c9190613066565b5050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c2576015549050612326565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612320576014549050612326565b60165490505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612363578082015181840152602081019050612348565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123888261232c565b6123928185612336565b93506123a2818560208601612346565b6123ab8161236e565b840191505092915050565b5f6020820190508181035f8301526123ce818461237e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612403826123da565b9050919050565b612413816123f9565b811461241d575f80fd5b50565b5f8135905061242e8161240a565b92915050565b5f819050919050565b61244681612434565b8114612450575f80fd5b50565b5f813590506124618161243d565b92915050565b5f806040838503121561247d5761247c6123d6565b5b5f61248a85828601612420565b925050602061249b85828601612453565b9150509250929050565b5f8115159050919050565b6124b9816124a5565b82525050565b5f6020820190506124d25f8301846124b0565b92915050565b6124e181612434565b82525050565b5f6020820190506124fa5f8301846124d8565b92915050565b5f805f60608486031215612517576125166123d6565b5b5f61252486828701612420565b935050602061253586828701612420565b925050604061254686828701612453565b9150509250925092565b5f60208284031215612565576125646123d6565b5b5f61257284828501612420565b91505092915050565b5f60ff82169050919050565b6125908161257b565b82525050565b5f6020820190506125a95f830184612587565b92915050565b6125b8816124a5565b81146125c2575f80fd5b50565b5f813590506125d3816125af565b92915050565b5f80604083850312156125ef576125ee6123d6565b5b5f6125fc85828601612420565b925050602061260d858286016125c5565b9150509250929050565b612620816123f9565b82525050565b5f6020820190506126395f830184612617565b92915050565b5f805f60608486031215612656576126556123d6565b5b5f61266386828701612420565b935050602061267486828701612420565b925050604061268586828701612420565b9150509250925092565b5f805f606084860312156126a6576126a56123d6565b5b5f6126b386828701612453565b93505060206126c486828701612453565b92505060406126d586828701612453565b9150509250925092565b5f805f805f805f60e0888a0312156126fa576126f96123d6565b5b5f6127078a828b01612453565b97505060206127188a828b01612453565b96505060406127298a828b01612453565b955050606061273a8a828b01612453565b945050608061274b8a828b01612453565b93505060a061275c8a828b01612453565b92505060c061276d8a828b01612453565b91505092959891949750929550565b5f8060408385031215612792576127916123d6565b5b5f61279f85828601612420565b92505060206127b085828601612420565b9150509250929050565b5f6127c4826123da565b9050919050565b6127d4816127ba565b81146127de575f80fd5b50565b5f813590506127ef816127cb565b92915050565b5f6020828403121561280a576128096123d6565b5b5f612817848285016127e1565b91505092915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f612854600683612336565b915061285f82612820565b602082019050919050565b5f6020820190508181035f83015261288181612848565b9050919050565b5f815190506128968161243d565b92915050565b5f602082840312156128b1576128b06123d6565b5b5f6128be84828501612888565b91505092915050565b5f6040820190506128da5f830185612617565b6128e760208301846124d8565b9392505050565b5f815190506128fc816125af565b92915050565b5f60208284031215612917576129166123d6565b5b5f612924848285016128ee565b91505092915050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d5f8201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b5f612987602c83612336565b91506129928261292d565b604082019050919050565b5f6020820190508181035f8301526129b48161297b565b9050919050565b5f819050919050565b5f6129de6129d96129d4846123da565b6129bb565b6123da565b9050919050565b5f6129ef826129c4565b9050919050565b5f612a00826129e5565b9050919050565b612a10816129f6565b82525050565b5f602082019050612a295f830184612a07565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a89602483612336565b9150612a9482612a2f565b604082019050919050565b5f6020820190508181035f830152612ab681612a7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b17602283612336565b9150612b2282612abd565b604082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b8282612434565b9150612b8d83612434565b9250828203905081811115612ba557612ba4612b4b565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602583612336565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c93602383612336565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f7265205f8201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b5f612d21603183612336565b9150612d2c82612cc7565b604082019050919050565b5f6020820190508181035f830152612d4e81612d15565b9050919050565b5f612d5f82612434565b9150612d6a83612434565b9250828201905080821115612d8257612d81612b4b565b5b92915050565b5f612d9282612434565b9150612d9d83612434565b9250828202612dab81612434565b91508282048414831517612dc257612dc1612b4b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e0082612434565b9150612e0b83612434565b925082612e1b57612e1a612dc9565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612e8e8161240a565b92915050565b5f60208284031215612ea957612ea86123d6565b5b5f612eb684828501612e80565b91505092915050565b5f819050919050565b5f612ee2612edd612ed884612ebf565b6129bb565b612434565b9050919050565b612ef281612ec8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f2a816123f9565b82525050565b5f612f3b8383612f21565b60208301905092915050565b5f602082019050919050565b5f612f5d82612ef8565b612f678185612f02565b9350612f7283612f12565b805f5b83811015612fa2578151612f898882612f30565b9750612f9483612f47565b925050600181019050612f75565b5085935050505092915050565b5f60a082019050612fc25f8301886124d8565b612fcf6020830187612ee9565b8181036040830152612fe18186612f53565b9050612ff06060830185612617565b612ffd60808301846124d8565b9695505050505050565b5f60c08201905061301a5f830189612617565b61302760208301886124d8565b6130346040830187612ee9565b6130416060830186612ee9565b61304e6080830185612617565b61305b60a08301846124d8565b979650505050505050565b5f805f6060848603121561307d5761307c6123d6565b5b5f61308a86828701612888565b935050602061309b86828701612888565b92505060406130ac86828701612888565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fb943bf18c95c7761714e7b7b9539d1f022b5384f7c8b86cb39efad58acd2a1b64736f6c63430008150033

Deployed Bytecode Sourcemap

3214:10255:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5388:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6355:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6494:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12814:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1230:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5538:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4166:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6241:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7990:189;;;;;;;;;;;;;:::i;:::-;;5854:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1440:114;;;;;;;;;;;;;:::i;:::-;;5611:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5770:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8187:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7673:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5461:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6814:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3709:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5963:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7141:524;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6108:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1323:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5388:67;5425:13;5448:5;;;;;;;;;;;;;;;;;5441:12;;5388:67;:::o;6355:133::-;6430:4;6437:37;6446:10;6458:7;6467:6;6437:8;:37::i;:::-;6482:4;6475:11;;6355:133;;;;:::o;6494:132::-;6547:7;6564:60;6602:21;6620:1;6602:9;:21::i;:::-;6564:33;6581:15;3393:42;6581:9;:15::i;:::-;6564:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;6557:67;;6494:132;:::o;12814:309::-;12912:4;12929:36;12939:6;12947:9;12958:6;12929:9;:36::i;:::-;12976:117;12985:6;12993:10;13005:87;13041:6;13005:87;;;;;;;;;;;;;;;;;:11;:19;13017:6;13005:19;;;;;;;;;;;;;;;:31;13025:10;13005:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;12976:8;:117::i;:::-;13111:4;13104:11;;12814:309;;;;;:::o;1230:87::-;1285:4;1310:5;;;;;;;;;;;1299:16;;:7;:16;;;1292:23;;1230:87;;;:::o;5538:67::-;5579:5;3965:2;5587:16;;5538:67;:::o;4166:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;6241:108::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6339:8:::1;6315:11;:21;6327:8;6315:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6241:108:::0;;:::o;7990:189::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8042:14:::1;8059:24;8077:4;8059:9;:24::i;:::-;8042:41;;8106:13;;8097:6;:22;8094:51;;;8130:13;;8121:22;;8094:51;8155:16;:14;:16::i;:::-;8031:148;7990:189::o:0;5854:103::-;5920:7;5937:9;:18;5947:7;5937:18;;;;;;;;;;;;;;;;5930:25;;5854:103;;;:::o;1440:114::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1511:1:::1;1495:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;1520:32;1549:1;1520:32;;;;;;:::i;:::-;;;;;;;;1440:114::o:0;5611:153::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5711:4:::1;5679:11;:29;5691:16;5679:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;5716:46;5725:4;;;;;;;;;;;5731:16;5749:12;;5716:8;:46::i;:::-;5611:153:::0;:::o;5770:78::-;5822:7;5840:5;;;;;;;;;;;5833:12;;5770:78;:::o;8187:231::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8273:15:::1;8291:63;8350:3;8291:54;8337:7;8298:8;8291:26;;;8326:4;8291:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;8273:81;;8372:8;8365:25;;;8391:9;;;;;;;;;;;8402:7;8365:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8262:156;8187:231:::0;;:::o;7673:309::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7807:10:::1;7795:9;;:22;;;;;;;;;;;;;;;;;;7831:10;7819:9;;:22;;;;;;;;;;;;;;;;;;7855:12;7843:9;;:24;;;;;;;;;;;;;;;;;;7904:4;7878:11;:23;7890:10;7878:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7936:4;7910:11;:23;7922:10;7910:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;7970:4;7942:11;:25;7954:12;7942:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7673:309:::0;;;:::o;5461:71::-;5500:13;5523:7;;;;;;;;;;;;;;;;;5516:14;;5461:71;:::o;6814:319::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6960:11:::1;6947:10;:24;;;;6989:53;7034:6;6989:32;7006:14;6989:12;;:16;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;6973:13;:69;;;;7071:54;7117:6;7071:33;7088:15;7071:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;7054:14;:71;;;;6814:319:::0;;;:::o;3709:19::-;;;;;;;;;;;;;:::o;5963:139::-;6041:4;6048:40;6058:10;6070:9;6081:6;6048:9;:40::i;:::-;6096:4;6089:11;;5963:139;;;;:::o;7141:524::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7346:10:::1;7331:12;:25;;;;7373:10;7358:12;:25;;;;7395:5;7385:7;:15;;;;7419:12;7402:14;:29;;;;7444:6;7433:8;:17;;;;7462:5;7452:7;:15;;;;7483:6;7469:11;:20;;;;7520:18;7536:1;7520:11;;:15;;:18;;;;:::i;:::-;7508:8;;:30;;:63;;;;;7553:18;7569:1;7553:11;;:15;;:18;;;;:::i;:::-;7542:7;;:29;;7508:63;:100;;;;;7590:18;7606:1;7590:11;;:15;;:18;;;;:::i;:::-;7575:11;;:33;;7508:100;7500:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;7141:524:::0;;;;;;;:::o;6108:127::-;6189:7;6206:11;:18;6218:5;6206:18;;;;;;;;;;;;;;;:27;6225:7;6206:27;;;;;;;;;;;;;;;;6199:34;;6108:127;;;;:::o;1323:111::-;1189:19;1197:10;1189:7;:19::i;:::-;1181:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1397:3:::1;1389:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;1407:25;1428:3;1407:25;;;;;;:::i;:::-;;;;;;;;1323:111:::0;:::o;13131:335::-;13241:1;13224:19;;:5;:19;;;13216:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13322:1;13303:21;;:7;:21;;;13295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13404:6;13374:11;:18;13386:5;13374:18;;;;;;;;;;;;;;;:27;13393:7;13374:27;;;;;;;;;;;;;;;:36;;;;13442:7;13426:32;;13435:5;13426:32;;;13451:6;13426:32;;;;;;:::i;:::-;;;;;;;;13131:335;;;:::o;1721:82::-;1779:7;1800:1;1796;:5;;;;:::i;:::-;1789:12;;1721:82;;;;:::o;8547:972::-;8662:1;8644:20;;:6;:20;;;8636:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8746:1;8725:23;;:9;:23;;;8717:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8803:11;:19;8815:6;8803:19;;;;;;;;;;;;;;;;;;;;;;;;;8799:77;;;8825:41;8840:6;8848:9;8859:6;8825:14;:41::i;:::-;8868:7;;8799:77;8904:17;8914:6;8904:9;:17::i;:::-;8894:6;:27;;8886:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9007:9;;;;;;;;;;;8999:26;;;8985:11;:40;;;;9052:4;;;;;;;;;;;9039:17;;:9;:17;;;:41;;;;;9061:11;:19;9073:6;9061:19;;;;;;;;;;;;;;;;;;;;;;;;;9060:20;9039:41;9036:73;;;9105:1;9082:11;;:25;;;;;;;:::i;:::-;;;;;;;;9036:73;9122:37;9141:6;9149:9;9122:18;:37::i;:::-;9119:86;;;9161:16;:14;:16::i;:::-;9201:1;9179:11;:24;;;;9119:86;9235:29;9257:6;9235:9;:17;9245:6;9235:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9215:9;:17;9225:6;9215:17;;;;;;;;;;;;;;;:49;;;;9275:22;9300:32;9314:6;9322:9;9300:13;:32::i;:::-;:78;;9372:6;9300:78;;;9335:34;9343:6;9351:9;9362:6;9335:7;:34::i;:::-;9300:78;9275:103;;9412:40;9437:14;9412:9;:20;9422:9;9412:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9389:9;:20;9399:9;9389:20;;;;;;;;;;;;;;;:63;;;;9485:9;9468:43;;9477:6;9468:43;;;9496:14;9468:43;;;;;;:::i;:::-;;;;;;;;8625:894;8547:972;;;;:::o;2111:240::-;2231:7;2289:1;2284;:6;;2292:12;2276:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2331:1;2327;:5;2320:12;;2111:240;;;;;:::o;9527:1256::-;3325:4;3314:8;;:15;;;;;;;;;;;;;;;;;;9584:14:::1;9601:24;9619:4;9601:9;:24::i;:::-;9584:41;;9636:16;9655:28;9671:11;;9655;;:15;;:28;;;;:::i;:::-;9636:47;;9723:2;9707:13;;:18;;;;:::i;:::-;9698:6;:27;9694:63;;;9753:2;9737:13;;:18;;;;:::i;:::-;9728:27;;9694:63;9767:20;9790:66;9854:1;9791:57;9833:14;;9791:37;9815:12;;9791:19;9808:1;9791:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;9790:63;;:66;;;;:::i;:::-;9767:89;;9867:32;9902:42;9931:12;9902:24;9913:12;;9902:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;9867:77;;9955:14;9972:36;9983:24;9972:6;:10;;:36;;;;:::i;:::-;9955:53;;10019:22;10044:21;10019:46;;10076:24;10093:6;10076:16;:24::i;:::-;10111:20;10134:41;10160:14;10134:21;:25;;:41;;;;:::i;:::-;10111:64;;10186:19;10207:48;10224:30;10241:12;;10224;:16;;:30;;;;:::i;:::-;10207:12;:16;;:48;;;;:::i;:::-;10186:69;;10266:29;10298;10314:12;;10298:11;:15;;:29;;;;:::i;:::-;10266:61;;10373:1;10341:21;:34;10338:103;;;10377:61;10390:24;10416:21;10377:12;:61::i;:::-;10338:103;10451:20;10474:36;10497:12;;10474:18;10490:1;10474:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;10451:59;;10539:1;10524:12;:16;10521:64;;;10550:9;;;;;;;;;;;10542:27;;:41;10570:12;10542:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10521:64;10595:23;10621:21;10595:47;;10668:1;10657:8;:12;10653:123;;;10715:1;10689:15;:28;10686:79;;;10727:9;;;;;;;;;;;10719:27;;:44;10747:15;10719:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10686:79;10653:123;9573:1210;;;;;;;;;;;3345:5:::0;3334:8;;:16;;;;;;;;;;;;;;;;;;9527:1256::o;1809:82::-;1867:7;1888:1;1884;:5;;;;:::i;:::-;1877:12;;1809:82;;;;:::o;1899:98::-;1957:7;1988:1;1984;:5;;;;:::i;:::-;1977:12;;1899:98;;;;:::o;11575:238::-;11707:6;11689:9;:15;11699:4;11689:15;;;;;;;;;;;;;;;;:24;11671:9;:15;11681:4;11671:15;;;;;;;;;;;;;;;:42;;;;11757:6;11741:9;:13;11751:2;11741:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;11725:9;:13;11735:2;11725:13;;;;;;;;;;;;;;;:38;;;;11794:2;11779:26;;11788:4;11779:26;;;11798:6;11779:26;;;;;;:::i;:::-;;;;;;;;11575:238;;;:::o;6634:172::-;6720:4;6745:8;;;;;;;;;;;6744:9;:33;;;;;6758:11;:19;6770:6;6758:19;;;;;;;;;;;;;;;;;;;;;;;;;6757:20;6744:33;:54;;;;;6794:4;;;;;;;;;;;6781:17;;:9;:17;;;6744:54;6737:61;;6634:172;;;;:::o;11821:160::-;11902:4;11927:11;:19;11939:6;11927:19;;;;;;;;;;;;;;;;;;;;;;;;;11926:20;:47;;;;;11951:11;:22;11963:9;11951:22;;;;;;;;;;;;;;;;;;;;;;;;;11950:23;11926:47;11919:54;;11821:160;;;;:::o;12216:590::-;12302:7;12358:1;12325:30;12337:6;12345:9;12325:11;:30::i;:::-;:34;12322:462;;;12371:17;12391:59;12419:30;12431:6;12439:9;12419:11;:30::i;:::-;12391:23;12402:11;;12391:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;12371:79;;12488:39;12517:9;12488;:24;12506:4;12488:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12461:9;:24;12479:4;12461:24;;;;;;;;;;;;;;;:66;;;;12568:4;12543:42;;12552:6;12543:42;;;12575:9;12543:42;;;;;;:::i;:::-;;;;;;;;12617:1;12599:7;;:20;:64;;;;;12656:7;;12623:30;12635:6;12643:9;12623:11;:30::i;:::-;:40;12599:64;12596:148;;;12665:77;12683:4;3393:42;12705:36;12733:7;;12705:23;12716:11;;12705:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;12665:9;:77::i;:::-;12596:148;12761:21;12772:9;12761:6;:10;;:21;;;;:::i;:::-;12754:28;;;;;12322:462;12792:6;12785:13;;12216:590;;;;;;:::o;1633:82::-;1691:7;1712:1;1708;:5;;;;:::i;:::-;1701:12;;1633:82;;;;:::o;11133:434::-;11199:21;11237:1;11223:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11199:40;;11268:4;11250;11255:1;11250:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11294:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11284:4;11289:1;11284:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11318:53;11335:4;11350:6;;;;;;;;;;;11359:11;11318:8;:53::i;:::-;11382:6;;;;;;;;;;;:57;;;11454:11;11480:1;11496:4;11523;11543:15;11382:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11188:379;11133:434;:::o;10791:334::-;10872:53;10889:4;10904:6;;;;;;;;;;;10913:11;10872:8;:53::i;:::-;10936:6;;;;;;;;;;;:22;;;10966:9;10999:4;11019:11;11045:1;11061;11077:9;;;;;;;;;;;11101:15;10936:181;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10791:334;;:::o;11989:219::-;12068:7;12104:4;;;;;;;;;;;12091:17;;:9;:17;;;12088:38;;12117:7;;12110:14;;;;12088:38;12149:4;;;;;;;;;;;12139:14;;:6;:14;;;12136:36;;12162:8;;12155:15;;;;12136:36;12189:11;;12182:18;;11989:219;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:468::-;5514:6;5522;5571:2;5559:9;5550:7;5546:23;5542:32;5539:119;;;5577:79;;:::i;:::-;5539:119;5697:1;5722:53;5767:7;5758:6;5747:9;5743:22;5722:53;:::i;:::-;5712:63;;5668:117;5824:2;5850:50;5892:7;5883:6;5872:9;5868:22;5850:50;:::i;:::-;5840:60;;5795:115;5449:468;;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:619::-;6352:6;6360;6368;6417:2;6405:9;6396:7;6392:23;6388:32;6385:119;;;6423:79;;:::i;:::-;6385:119;6543:1;6568:53;6613:7;6604:6;6593:9;6589:22;6568:53;:::i;:::-;6558:63;;6514:117;6670:2;6696:53;6741:7;6732:6;6721:9;6717:22;6696:53;:::i;:::-;6686:63;;6641:118;6798:2;6824:53;6869:7;6860:6;6849:9;6845:22;6824:53;:::i;:::-;6814:63;;6769:118;6275:619;;;;;:::o;6900:::-;6977:6;6985;6993;7042:2;7030:9;7021:7;7017:23;7013:32;7010:119;;;7048:79;;:::i;:::-;7010:119;7168:1;7193:53;7238:7;7229:6;7218:9;7214:22;7193:53;:::i;:::-;7183:63;;7139:117;7295:2;7321:53;7366:7;7357:6;7346:9;7342:22;7321:53;:::i;:::-;7311:63;;7266:118;7423:2;7449:53;7494:7;7485:6;7474:9;7470:22;7449:53;:::i;:::-;7439:63;;7394:118;6900:619;;;;;:::o;7525:1203::-;7638:6;7646;7654;7662;7670;7678;7686;7735:3;7723:9;7714:7;7710:23;7706:33;7703:120;;;7742:79;;:::i;:::-;7703:120;7862:1;7887:53;7932:7;7923:6;7912:9;7908:22;7887:53;:::i;:::-;7877:63;;7833:117;7989:2;8015:53;8060:7;8051:6;8040:9;8036:22;8015:53;:::i;:::-;8005:63;;7960:118;8117:2;8143:53;8188:7;8179:6;8168:9;8164:22;8143:53;:::i;:::-;8133:63;;8088:118;8245:2;8271:53;8316:7;8307:6;8296:9;8292:22;8271:53;:::i;:::-;8261:63;;8216:118;8373:3;8400:53;8445:7;8436:6;8425:9;8421:22;8400:53;:::i;:::-;8390:63;;8344:119;8502:3;8529:53;8574:7;8565:6;8554:9;8550:22;8529:53;:::i;:::-;8519:63;;8473:119;8631:3;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8602:119;7525:1203;;;;;;;;;;:::o;8734:474::-;8802:6;8810;8859:2;8847:9;8838:7;8834:23;8830:32;8827:119;;;8865:79;;:::i;:::-;8827:119;8985:1;9010:53;9055:7;9046:6;9035:9;9031:22;9010:53;:::i;:::-;9000:63;;8956:117;9112:2;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9083:118;8734:474;;;;;:::o;9214:104::-;9259:7;9288:24;9306:5;9288:24;:::i;:::-;9277:35;;9214:104;;;:::o;9324:138::-;9405:32;9431:5;9405:32;:::i;:::-;9398:5;9395:43;9385:71;;9452:1;9449;9442:12;9385:71;9324:138;:::o;9468:155::-;9522:5;9560:6;9547:20;9538:29;;9576:41;9611:5;9576:41;:::i;:::-;9468:155;;;;:::o;9629:345::-;9696:6;9745:2;9733:9;9724:7;9720:23;9716:32;9713:119;;;9751:79;;:::i;:::-;9713:119;9871:1;9896:61;9949:7;9940:6;9929:9;9925:22;9896:61;:::i;:::-;9886:71;;9842:125;9629:345;;;;:::o;9980:156::-;10120:8;10116:1;10108:6;10104:14;10097:32;9980:156;:::o;10142:365::-;10284:3;10305:66;10369:1;10364:3;10305:66;:::i;:::-;10298:73;;10380:93;10469:3;10380:93;:::i;:::-;10498:2;10493:3;10489:12;10482:19;;10142:365;;;:::o;10513:419::-;10679:4;10717:2;10706:9;10702:18;10694:26;;10766:9;10760:4;10756:20;10752:1;10741:9;10737:17;10730:47;10794:131;10920:4;10794:131;:::i;:::-;10786:139;;10513:419;;;:::o;10938:143::-;10995:5;11026:6;11020:13;11011:22;;11042:33;11069:5;11042:33;:::i;:::-;10938:143;;;;:::o;11087:351::-;11157:6;11206:2;11194:9;11185:7;11181:23;11177:32;11174:119;;;11212:79;;:::i;:::-;11174:119;11332:1;11357:64;11413:7;11404:6;11393:9;11389:22;11357:64;:::i;:::-;11347:74;;11303:128;11087:351;;;;:::o;11444:332::-;11565:4;11603:2;11592:9;11588:18;11580:26;;11616:71;11684:1;11673:9;11669:17;11660:6;11616:71;:::i;:::-;11697:72;11765:2;11754:9;11750:18;11741:6;11697:72;:::i;:::-;11444:332;;;;;:::o;11782:137::-;11836:5;11867:6;11861:13;11852:22;;11883:30;11907:5;11883:30;:::i;:::-;11782:137;;;;:::o;11925:345::-;11992:6;12041:2;12029:9;12020:7;12016:23;12012:32;12009:119;;;12047:79;;:::i;:::-;12009:119;12167:1;12192:61;12245:7;12236:6;12225:9;12221:22;12192:61;:::i;:::-;12182:71;;12138:125;11925:345;;;;:::o;12276:231::-;12416:34;12412:1;12404:6;12400:14;12393:58;12485:14;12480:2;12472:6;12468:15;12461:39;12276:231;:::o;12513:366::-;12655:3;12676:67;12740:2;12735:3;12676:67;:::i;:::-;12669:74;;12752:93;12841:3;12752:93;:::i;:::-;12870:2;12865:3;12861:12;12854:19;;12513:366;;;:::o;12885:419::-;13051:4;13089:2;13078:9;13074:18;13066:26;;13138:9;13132:4;13128:20;13124:1;13113:9;13109:17;13102:47;13166:131;13292:4;13166:131;:::i;:::-;13158:139;;12885:419;;;:::o;13310:60::-;13338:3;13359:5;13352:12;;13310:60;;;:::o;13376:142::-;13426:9;13459:53;13477:34;13486:24;13504:5;13486:24;:::i;:::-;13477:34;:::i;:::-;13459:53;:::i;:::-;13446:66;;13376:142;;;:::o;13524:126::-;13574:9;13607:37;13638:5;13607:37;:::i;:::-;13594:50;;13524:126;;;:::o;13656:134::-;13714:9;13747:37;13778:5;13747:37;:::i;:::-;13734:50;;13656:134;;;:::o;13796:147::-;13891:45;13930:5;13891:45;:::i;:::-;13886:3;13879:58;13796:147;;:::o;13949:238::-;14050:4;14088:2;14077:9;14073:18;14065:26;;14101:79;14177:1;14166:9;14162:17;14153:6;14101:79;:::i;:::-;13949:238;;;;:::o;14193:223::-;14333:34;14329:1;14321:6;14317:14;14310:58;14402:6;14397:2;14389:6;14385:15;14378:31;14193:223;:::o;14422:366::-;14564:3;14585:67;14649:2;14644:3;14585:67;:::i;:::-;14578:74;;14661:93;14750:3;14661:93;:::i;:::-;14779:2;14774:3;14770:12;14763:19;;14422:366;;;:::o;14794:419::-;14960:4;14998:2;14987:9;14983:18;14975:26;;15047:9;15041:4;15037:20;15033:1;15022:9;15018:17;15011:47;15075:131;15201:4;15075:131;:::i;:::-;15067:139;;14794:419;;;:::o;15219:221::-;15359:34;15355:1;15347:6;15343:14;15336:58;15428:4;15423:2;15415:6;15411:15;15404:29;15219:221;:::o;15446:366::-;15588:3;15609:67;15673:2;15668:3;15609:67;:::i;:::-;15602:74;;15685:93;15774:3;15685:93;:::i;:::-;15803:2;15798:3;15794:12;15787:19;;15446:366;;;:::o;15818:419::-;15984:4;16022:2;16011:9;16007:18;15999:26;;16071:9;16065:4;16061:20;16057:1;16046:9;16042:17;16035:47;16099:131;16225:4;16099:131;:::i;:::-;16091:139;;15818:419;;;:::o;16243:180::-;16291:77;16288:1;16281:88;16388:4;16385:1;16378:15;16412:4;16409:1;16402:15;16429:194;16469:4;16489:20;16507:1;16489:20;:::i;:::-;16484:25;;16523:20;16541:1;16523:20;:::i;:::-;16518:25;;16567:1;16564;16560:9;16552:17;;16591:1;16585:4;16582:11;16579:37;;;16596:18;;:::i;:::-;16579:37;16429:194;;;;:::o;16629:224::-;16769:34;16765:1;16757:6;16753:14;16746:58;16838:7;16833:2;16825:6;16821:15;16814:32;16629:224;:::o;16859:366::-;17001:3;17022:67;17086:2;17081:3;17022:67;:::i;:::-;17015:74;;17098:93;17187:3;17098:93;:::i;:::-;17216:2;17211:3;17207:12;17200:19;;16859:366;;;:::o;17231:419::-;17397:4;17435:2;17424:9;17420:18;17412:26;;17484:9;17478:4;17474:20;17470:1;17459:9;17455:17;17448:47;17512:131;17638:4;17512:131;:::i;:::-;17504:139;;17231:419;;;:::o;17656:222::-;17796:34;17792:1;17784:6;17780:14;17773:58;17865:5;17860:2;17852:6;17848:15;17841:30;17656:222;:::o;17884:366::-;18026:3;18047:67;18111:2;18106:3;18047:67;:::i;:::-;18040:74;;18123:93;18212:3;18123:93;:::i;:::-;18241:2;18236:3;18232:12;18225:19;;17884:366;;;:::o;18256:419::-;18422:4;18460:2;18449:9;18445:18;18437:26;;18509:9;18503:4;18499:20;18495:1;18484:9;18480:17;18473:47;18537:131;18663:4;18537:131;:::i;:::-;18529:139;;18256:419;;;:::o;18681:236::-;18821:34;18817:1;18809:6;18805:14;18798:58;18890:19;18885:2;18877:6;18873:15;18866:44;18681:236;:::o;18923:366::-;19065:3;19086:67;19150:2;19145:3;19086:67;:::i;:::-;19079:74;;19162:93;19251:3;19162:93;:::i;:::-;19280:2;19275:3;19271:12;19264:19;;18923:366;;;:::o;19295:419::-;19461:4;19499:2;19488:9;19484:18;19476:26;;19548:9;19542:4;19538:20;19534:1;19523:9;19519:17;19512:47;19576:131;19702:4;19576:131;:::i;:::-;19568:139;;19295:419;;;:::o;19720:191::-;19760:3;19779:20;19797:1;19779:20;:::i;:::-;19774:25;;19813:20;19831:1;19813:20;:::i;:::-;19808:25;;19856:1;19853;19849:9;19842:16;;19877:3;19874:1;19871:10;19868:36;;;19884:18;;:::i;:::-;19868:36;19720:191;;;;:::o;19917:410::-;19957:7;19980:20;19998:1;19980:20;:::i;:::-;19975:25;;20014:20;20032:1;20014:20;:::i;:::-;20009:25;;20069:1;20066;20062:9;20091:30;20109:11;20091:30;:::i;:::-;20080:41;;20270:1;20261:7;20257:15;20254:1;20251:22;20231:1;20224:9;20204:83;20181:139;;20300:18;;:::i;:::-;20181:139;19965:362;19917:410;;;;:::o;20333:180::-;20381:77;20378:1;20371:88;20478:4;20475:1;20468:15;20502:4;20499:1;20492:15;20519:185;20559:1;20576:20;20594:1;20576:20;:::i;:::-;20571:25;;20610:20;20628:1;20610:20;:::i;:::-;20605:25;;20649:1;20639:35;;20654:18;;:::i;:::-;20639:35;20696:1;20693;20689:9;20684:14;;20519:185;;;;:::o;20710:180::-;20758:77;20755:1;20748:88;20855:4;20852:1;20845:15;20879:4;20876:1;20869:15;20896:180;20944:77;20941:1;20934:88;21041:4;21038:1;21031:15;21065:4;21062:1;21055:15;21082:143;21139:5;21170:6;21164:13;21155:22;;21186:33;21213:5;21186:33;:::i;:::-;21082:143;;;;:::o;21231:351::-;21301:6;21350:2;21338:9;21329:7;21325:23;21321:32;21318:119;;;21356:79;;:::i;:::-;21318:119;21476:1;21501:64;21557:7;21548:6;21537:9;21533:22;21501:64;:::i;:::-;21491:74;;21447:128;21231:351;;;;:::o;21588:85::-;21633:7;21662:5;21651:16;;21588:85;;;:::o;21679:158::-;21737:9;21770:61;21788:42;21797:32;21823:5;21797:32;:::i;:::-;21788:42;:::i;:::-;21770:61;:::i;:::-;21757:74;;21679:158;;;:::o;21843:147::-;21938:45;21977:5;21938:45;:::i;:::-;21933:3;21926:58;21843:147;;:::o;21996:114::-;22063:6;22097:5;22091:12;22081:22;;21996:114;;;:::o;22116:184::-;22215:11;22249:6;22244:3;22237:19;22289:4;22284:3;22280:14;22265:29;;22116:184;;;;:::o;22306:132::-;22373:4;22396:3;22388:11;;22426:4;22421:3;22417:14;22409:22;;22306:132;;;:::o;22444:108::-;22521:24;22539:5;22521:24;:::i;:::-;22516:3;22509:37;22444:108;;:::o;22558:179::-;22627:10;22648:46;22690:3;22682:6;22648:46;:::i;:::-;22726:4;22721:3;22717:14;22703:28;;22558:179;;;;:::o;22743:113::-;22813:4;22845;22840:3;22836:14;22828:22;;22743:113;;;:::o;22892:732::-;23011:3;23040:54;23088:5;23040:54;:::i;:::-;23110:86;23189:6;23184:3;23110:86;:::i;:::-;23103:93;;23220:56;23270:5;23220:56;:::i;:::-;23299:7;23330:1;23315:284;23340:6;23337:1;23334:13;23315:284;;;23416:6;23410:13;23443:63;23502:3;23487:13;23443:63;:::i;:::-;23436:70;;23529:60;23582:6;23529:60;:::i;:::-;23519:70;;23375:224;23362:1;23359;23355:9;23350:14;;23315:284;;;23319:14;23615:3;23608:10;;23016:608;;;22892:732;;;;:::o;23630:831::-;23893:4;23931:3;23920:9;23916:19;23908:27;;23945:71;24013:1;24002:9;23998:17;23989:6;23945:71;:::i;:::-;24026:80;24102:2;24091:9;24087:18;24078:6;24026:80;:::i;:::-;24153:9;24147:4;24143:20;24138:2;24127:9;24123:18;24116:48;24181:108;24284:4;24275:6;24181:108;:::i;:::-;24173:116;;24299:72;24367:2;24356:9;24352:18;24343:6;24299:72;:::i;:::-;24381:73;24449:3;24438:9;24434:19;24425:6;24381:73;:::i;:::-;23630:831;;;;;;;;:::o;24467:807::-;24716:4;24754:3;24743:9;24739:19;24731:27;;24768:71;24836:1;24825:9;24821:17;24812:6;24768:71;:::i;:::-;24849:72;24917:2;24906:9;24902:18;24893:6;24849:72;:::i;:::-;24931:80;25007:2;24996:9;24992:18;24983:6;24931:80;:::i;:::-;25021;25097:2;25086:9;25082:18;25073:6;25021:80;:::i;:::-;25111:73;25179:3;25168:9;25164:19;25155:6;25111:73;:::i;:::-;25194;25262:3;25251:9;25247:19;25238:6;25194:73;:::i;:::-;24467:807;;;;;;;;;:::o;25280:663::-;25368:6;25376;25384;25433:2;25421:9;25412:7;25408:23;25404:32;25401:119;;;25439:79;;:::i;:::-;25401:119;25559:1;25584:64;25640:7;25631:6;25620:9;25616:22;25584:64;:::i;:::-;25574:74;;25530:128;25697:2;25723:64;25779:7;25770:6;25759:9;25755:22;25723:64;:::i;:::-;25713:74;;25668:129;25836:2;25862:64;25918:7;25909:6;25898:9;25894:22;25862:64;:::i;:::-;25852:74;;25807:129;25280:663;;;;;:::o

Swarm Source

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