ETH Price: $2,526.22 (+0.04%)

Token

Disco Inferno (INFERNO)
 

Overview

Max Total Supply

40,113,570.776012818 INFERNO

Holders

150

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,343.778692517 INFERNO

Value
$0.00
0x8e50f13f31956985781033e157db6aa2c8dfd57a
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:
discoInferno

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-04
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract discoInferno is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private _tTotal = 5 * 10**7 * 10**9;
    uint256 private tokensBurned;
    uint256 private fee1=25;
    uint256 private fee2=175;
    uint256 private burnFee=25;
    uint256 private feeMax=200;
    string private constant _name = "Disco Inferno";
    string private constant _symbol = "INFERNO";
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private maxTxAmount = _tTotal.div(100);
    uint256 private maxWalletAmount = _tTotal.div(50);


    uint8 private constant _decimals = 9;
    uint256 private constant decimalsConvert = 10 ** 9;
    address payable private _deployer;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    address payable private _feeAddrWallet4;
    address payable private _scorcher;
    address[5] influencoors1 = [
    0xB8A7A62C1162600233f1E842E7E9969A88EA2B12,
    0xd0D613F34d190488506452FDE666763959d83930,
    0xC3de8202E5B78ac60C5DFCbA34454965C823e9A2,
    0xd0D613F34d190488506452FDE666763959d83930,
    0xa73fcDc701bFFd18Bf805da79B30ED3671beaBc1];
    address[3] influencoors2 = [
    0x7c82094FD1E48c12b3679487abB1aFBBC3325170,
    0xb983A5443f3DA1110E900112033e3b9643a2C2Ce,
    0x606263810359D53E2514eb67fDb30282bBce808A];
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _feeAddrWallet2 = payable(0x69e282287e6D50E461ad8877c02094066cd441F6);
        _feeAddrWallet3 = payable(0x41D081c9DDE1352A228A6EC2AD0dA334ce94fb71);
        _feeAddrWallet4 = payable(0x688593bbbFC8b29D2f4e17031e164e6C30c1a8DA);
        _scorcher = payable(0x9590d8C06BA451bbaD0893F2eF0D2A8B5AcC67d3);
        _tOwned[address(this)] = _tTotal;
        for (uint i=0;i<5;i++) {
            _tOwned[influencoors1[i]] = _tTotal.div(200);
        }
        for (uint i=0;i<3;i++) {
            _tOwned[influencoors2[i]] = _tTotal.div(50);
        }        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[influencoors2[2]] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

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

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

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

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

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

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

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

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

    function howManyBurned() public view returns (uint256) {
        return tokensBurned;
    }

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

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

    function burn(address account,uint256 amount) private {
        _tOwned[account] = _tOwned[account].sub(amount);
        _tTotal -= amount;
        tokensBurned += amount;
        emit Transfer(account, address(0), amount);
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        maxTxAmount = _tTotal;
        maxWalletAmount = _tTotal;
    }
   
    function changeFees(uint8 _fee1,uint8 _fee2,uint8 _burny) external { 
        require(_msgSender() == _deployer);
        require(_fee1 <= feeMax && _fee2 <= feeMax && _burny <= feeMax,"Cannot set fees above maximum (10%)");
        fee1 = _fee1;
        fee2 = _fee2;
        burnFee = _burny;
    }


    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _tax = fee1.add(burnFee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                require(amount <= maxTxAmount,"negative ghost rider");
                require(_tOwned[to] <= maxWalletAmount,"not a chance bub");
                // Cooldown
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(burnFee);
        }
		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
  
    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    function sendETHToFee(uint256 amount) private {
         _deployer.transfer(amount.div(100).mul(35));
        _feeAddrWallet2.transfer(amount.div(100).mul(20));
        _feeAddrWallet3.transfer(amount.div(100).mul(20));
        _feeAddrWallet4.transfer(amount.div(100).mul(10));
        _scorcher.transfer(amount.div(100).mul(15));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

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

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(amountNoBurn);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(feeNoBurn);
        burn(sender,burnAmount);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        uint256 tBurn = tAmount.mul(burnFee).div(1000);
        uint256 tFeeNoBurn = tFee.sub(tBurn);
        uint256 tAmountNoBurn = tAmount.sub(tBurn);
        return (tTransferAmount, tBurn, tFeeNoBurn, tAmountNoBurn);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"},{"internalType":"uint8","name":"_burny","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"howManyBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"},{"stateMutability":"payable","type":"receive"}]

608060405266b1a2bc2ec500006009556019600b5560af600c556019600d5560c8600e55620000416103e860095462000bcd60201b620011561790919060201c565b600f5562000061606460095462000bcd60201b620011561790919060201c565b60105562000081603260095462000bcd60201b620011561790919060201c565b6011556040518060a0016040528073b8a7a62c1162600233f1e842e7e9969a88ea2b1273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d0d613f34d190488506452fde666763959d8393073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c3de8202e5b78ac60c5dfcba34454965c823e9a273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d0d613f34d190488506452fde666763959d8393073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a73fcdc701bffd18bf805da79b30ed3671beabc173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506017906005620001fd92919062000cb8565b506040518060600160405280737c82094fd1e48c12b3679487abb1afbbc332517073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b983a5443f3da1110e900112033e3b9643a2c2ce73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173606263810359d53e2514eb67fdb30282bbce808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250601c906003620002eb92919062000d3a565b506000602060156101000a81548160ff0219169083151502179055506000602060166101000a81548160ff02191690831515021790555060006200033462000c1f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507369e282287e6d50e461ad8877c02094066cd441f6601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507341d081c9dde1352a228a6ec2ad0da334ce94fb71601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073688593bbbfc8b29d2f4e17031e164e6c30c1a8da601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739590d8c06ba451bbad0893f2ef0d2a8b5acc67d3601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b60058110156200066857620005d760c860095462000bcd60201b620011561790919060201c565b6002600060178460058110620005f257620005f162001069565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806200065f9062000fbd565b915050620005b0565b5060005b6003811015620007245762000693603260095462000bcd60201b620011561790919060201c565b60026000601c8460038110620006ae57620006ad62001069565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806200071b9062000fbd565b9150506200066c565b506001600460006200073b62000c2760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601c6002600381106200087c576200087b62001069565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620009ad57600080fd5b505afa158015620009c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009e8919062000df2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000a6d57600080fd5b505afa15801562000a82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aa8919062000df2565b6040518363ffffffff1660e01b815260040162000ac792919062000e87565b602060405180830381600087803b15801562000ae257600080fd5b505af115801562000af7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b1d919062000df2565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000bbf919062000ed8565b60405180910390a3620010c8565b600062000c1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c5060201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000c9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c91919062000eb4565b60405180910390fd5b506000838562000cab919062000f11565b9050809150509392505050565b826005810192821562000d27579160200282015b8281111562000d265782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000ccc565b5b50905062000d36919062000dbc565b5090565b826003810192821562000da9579160200282015b8281111562000da85782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000d4e565b5b50905062000db8919062000dbc565b5090565b5b8082111562000dd757600081600090555060010162000dbd565b5090565b60008151905062000dec81620010ae565b92915050565b60006020828403121562000e0b5762000e0a62001098565b5b600062000e1b8482850162000ddb565b91505092915050565b62000e2f8162000f49565b82525050565b600062000e428262000ef5565b62000e4e818562000f00565b935062000e6081856020860162000f87565b62000e6b816200109d565b840191505092915050565b62000e818162000f7d565b82525050565b600060408201905062000e9e600083018562000e24565b62000ead602083018462000e24565b9392505050565b6000602082019050818103600083015262000ed0818462000e35565b905092915050565b600060208201905062000eef600083018462000e76565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000f1e8262000f7d565b915062000f2b8362000f7d565b92508262000f3e5762000f3d6200103a565b5b828204905092915050565b600062000f568262000f5d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000fa757808201518184015260208101905062000f8a565b8381111562000fb7576000848401525b50505050565b600062000fca8262000f7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620010005762000fff6200100b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b620010b98162000f49565b8114620010c557600080fd5b50565b61384580620010d86000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f805f536146104b657610140565b8063751039fc146103265780637e37e9bb1461033d5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e1565b6040516101679190612e7d565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061294b565b61051e565b6040516101a49190612e62565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061285e565b61053c565b005b3480156101e257600080fd5b506101eb6106de565b6040516101f8919061301f565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906128f8565b6106e8565b6040516102359190612e62565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061285e565b6107c1565b005b34801561027357600080fd5b5061027c6108b1565b6040516102899190613094565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612a01565b6108ba565b005b3480156102c757600080fd5b506102d0610925565b005b3480156102de57600080fd5b506102f960048036038101906102f4919061285e565b610997565b604051610306919061301f565b60405180910390f35b34801561031b57600080fd5b506103246109e0565b005b34801561033257600080fd5b5061033b610b33565b005b34801561034957600080fd5b50610364600480360381019061035f9190612aae565b610ba8565b005b34801561037257600080fd5b5061037b610c96565b6040516103889190612dbd565b60405180910390f35b34801561039d57600080fd5b506103a6610cbf565b6040516103b39190612e7d565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061294b565b610cfc565b6040516103f09190612e62565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b919061298b565b610d1a565b005b34801561042e57600080fd5b50610437610e44565b005b34801561044557600080fd5b5061044e610ebe565b005b34801561045c57600080fd5b50610477600480360381019061047291906128b8565b611009565b604051610484919061301f565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061285e565b611090565b005b3480156104c257600080fd5b506104cb61114c565b6040516104d8919061301f565b60405180910390f35b60606040518060400160405280600d81526020017f446973636f20496e6665726e6f00000000000000000000000000000000000000815250905090565b600061053261052b6111a0565b84846111a8565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057d6111a0565b73ffffffffffffffffffffffffffffffffffffffff161461059d57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161061a9190612dbd565b60206040518083038186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a9190612a2e565b6040518363ffffffff1660e01b8152600401610687929190612dd8565b602060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d991906129d4565b505050565b6000600954905090565b60006106f5848484611373565b6107b6846107016111a0565b6107b1856040518060600160405280602881526020016137e860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107676111a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa29092919063ffffffff16565b6111a8565b600190509392505050565b6107c96111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90612f3f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb6111a0565b73ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b80600f8190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109666111a0565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b600047905061099481611b06565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e86111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612f3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b746111a0565b73ffffffffffffffffffffffffffffffffffffffff1614610b9457600080fd5b600954601081905550600954601181905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96111a0565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600e548360ff1611158015610c235750600e548260ff1611155b8015610c345750600e548160ff1611155b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612fff565b60405180910390fd5b8260ff16600b819055508160ff16600c819055508060ff16600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f494e4645524e4f00000000000000000000000000000000000000000000000000815250905090565b6000610d10610d096111a0565b8484611373565b6001905092915050565b610d226111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612f3f565b60405180910390fd5b60005b8151811015610e4057600160056000848481518110610dd457610dd3613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e389061336b565b915050610db2565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e856111a0565b73ffffffffffffffffffffffffffffffffffffffff1614610ea557600080fd5b6000610eb030610997565b9050610ebb81611dd4565b50565b610ec66111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90612f3f565b60405180910390fd5b602060149054906101000a900460ff1615610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90612fdf565b60405180910390fd5b610fbd610faf30610997565b47610fb8610c96565b61205c565b6001602060166101000a81548160ff0219169083151502179055506001602060146101000a81548160ff02191690831515021790555061012c426110019190613155565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d16111a0565b73ffffffffffffffffffffffffffffffffffffffff16146110f157600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600061119883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612180565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90612fbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90612edf565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611366919061301f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90612e9f565b60405180910390fd5b60008111611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d90612f5f565b60405180910390fd5b6114ad600d54600b546121e390919063ffffffff16565b6008819055506114bb610c96565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561152957506114f9610c96565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196e57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115d25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115db57600080fd5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116865750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116dc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116e9575060075442105b1561185357601054811115611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a90612f7f565b60405180910390fd5b601154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90612ebf565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061180257600080fd5b601e4261180f9190613155565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b602060159054906101000a900460ff161580156118be5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d65750602060169054906101000a900460ff165b801561192c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196d57600061193c30610997565b9050600f5481111561196b5761195181611dd4565b600047905060008111156119695761196847611b06565b5b505b505b5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a195750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a6f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a9257611a8b600d54600c546121e390919063ffffffff16565b6008819055505b611a9d838383612241565b505050565b6000838311158290611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae19190612e7d565b60405180910390fd5b5060008385611af99190613236565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b696023611b5b60648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b94573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611bf86014611bea60648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c23573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c876014611c7960648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cb2573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d16600a611d0860648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d41573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611da5600f611d9760648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dd0573d6000803e3d6000fd5b5050565b6001602060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e0c57611e0b613441565b5b604051908082528060200260200182016040528015611e3a5781602001602082028036833780820191505090505b5090503081600081518110611e5257611e51613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef457600080fd5b505afa158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2c919061288b565b81600181518110611f4057611f3f613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa730601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a8565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161200b95949392919061303a565b600060405180830381600087803b15801561202557600080fd5b505af1158015612039573d6000803e3d6000fd5b50505050506000602060156101000a81548160ff02191690831515021790555050565b6001602060156101000a81548160ff0219169083151502179055506120a430601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111a8565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161210b96959493929190612e01565b6060604051808303818588803b15801561212457600080fd5b505af1158015612138573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061215d9190612a5b565b5050506000602060156101000a81548160ff021916908315150217905550505050565b600080831182906121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be9190612e7d565b60405180910390fd5b50600083856121d691906131ab565b9050809150509392505050565b60008082846121f29190613155565b905083811015612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e90612eff565b60405180910390fd5b8091505092915050565b6000806000806122508561250a565b93509350935093506122aa81600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233f84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e390919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123d482600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124218784612611565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161247e919061301f565b60405180910390a350505050505050565b6000808314156124a25760009050612504565b600082846124b091906131dc565b90508284826124bf91906131ab565b146124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690612f1f565b60405180910390fd5b809150505b92915050565b600080600080600061253b6103e861252d6008548961248f90919063ffffffff16565b61115690919063ffffffff16565b9050600061255282886125c790919063ffffffff16565b9050600061257f6103e8612571600d548b61248f90919063ffffffff16565b61115690919063ffffffff16565b9050600061259682856125c790919063ffffffff16565b905060006125ad838b6125c790919063ffffffff16565b905083838383985098509850985050505050509193509193565b600061260983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aa2565b905092915050565b61266381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008282546126b89190613236565b9250508190555080600a60008282546126d19190613155565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612736919061301f565b60405180910390a35050565b6000612755612750846130d4565b6130af565b9050808382526020820190508285602086028201111561277857612777613475565b5b60005b858110156127a8578161278e88826127b2565b84526020840193506020830192505060018101905061277b565b5050509392505050565b6000813590506127c18161378b565b92915050565b6000815190506127d68161378b565b92915050565b600082601f8301126127f1576127f0613470565b5b8135612801848260208601612742565b91505092915050565b600081519050612819816137a2565b92915050565b60008135905061282e816137b9565b92915050565b600081519050612843816137b9565b92915050565b600081359050612858816137d0565b92915050565b6000602082840312156128745761287361347f565b5b6000612882848285016127b2565b91505092915050565b6000602082840312156128a1576128a061347f565b5b60006128af848285016127c7565b91505092915050565b600080604083850312156128cf576128ce61347f565b5b60006128dd858286016127b2565b92505060206128ee858286016127b2565b9150509250929050565b6000806000606084860312156129115761291061347f565b5b600061291f868287016127b2565b9350506020612930868287016127b2565b92505060406129418682870161281f565b9150509250925092565b600080604083850312156129625761296161347f565b5b6000612970858286016127b2565b92505060206129818582860161281f565b9150509250929050565b6000602082840312156129a1576129a061347f565b5b600082013567ffffffffffffffff8111156129bf576129be61347a565b5b6129cb848285016127dc565b91505092915050565b6000602082840312156129ea576129e961347f565b5b60006129f88482850161280a565b91505092915050565b600060208284031215612a1757612a1661347f565b5b6000612a258482850161281f565b91505092915050565b600060208284031215612a4457612a4361347f565b5b6000612a5284828501612834565b91505092915050565b600080600060608486031215612a7457612a7361347f565b5b6000612a8286828701612834565b9350506020612a9386828701612834565b9250506040612aa486828701612834565b9150509250925092565b600080600060608486031215612ac757612ac661347f565b5b6000612ad586828701612849565b9350506020612ae686828701612849565b9250506040612af786828701612849565b9150509250925092565b6000612b0d8383612b28565b60208301905092915050565b612b22816132bf565b82525050565b612b318161326a565b82525050565b612b408161326a565b82525050565b6000612b5182613110565b612b5b8185613133565b9350612b6683613100565b8060005b83811015612b97578151612b7e8882612b01565b9750612b8983613126565b925050600181019050612b6a565b5085935050505092915050565b612bad8161327c565b82525050565b612bbc816132d1565b82525050565b6000612bcd8261311b565b612bd78185613144565b9350612be7818560208601613307565b612bf081613484565b840191505092915050565b6000612c08602383613144565b9150612c1382613495565b604082019050919050565b6000612c2b601083613144565b9150612c36826134e4565b602082019050919050565b6000612c4e602283613144565b9150612c598261350d565b604082019050919050565b6000612c71601b83613144565b9150612c7c8261355c565b602082019050919050565b6000612c94602183613144565b9150612c9f82613585565b604082019050919050565b6000612cb7602083613144565b9150612cc2826135d4565b602082019050919050565b6000612cda602983613144565b9150612ce5826135fd565b604082019050919050565b6000612cfd601483613144565b9150612d088261364c565b602082019050919050565b6000612d20602583613144565b9150612d2b82613675565b604082019050919050565b6000612d43602483613144565b9150612d4e826136c4565b604082019050919050565b6000612d66601783613144565b9150612d7182613713565b602082019050919050565b6000612d89602383613144565b9150612d948261373c565b604082019050919050565b612da8816132a8565b82525050565b612db7816132b2565b82525050565b6000602082019050612dd26000830184612b37565b92915050565b6000604082019050612ded6000830185612b19565b612dfa6020830184612d9f565b9392505050565b600060c082019050612e166000830189612b37565b612e236020830188612d9f565b612e306040830187612bb3565b612e3d6060830186612bb3565b612e4a6080830185612b37565b612e5760a0830184612d9f565b979650505050505050565b6000602082019050612e776000830184612ba4565b92915050565b60006020820190508181036000830152612e978184612bc2565b905092915050565b60006020820190508181036000830152612eb881612bfb565b9050919050565b60006020820190508181036000830152612ed881612c1e565b9050919050565b60006020820190508181036000830152612ef881612c41565b9050919050565b60006020820190508181036000830152612f1881612c64565b9050919050565b60006020820190508181036000830152612f3881612c87565b9050919050565b60006020820190508181036000830152612f5881612caa565b9050919050565b60006020820190508181036000830152612f7881612ccd565b9050919050565b60006020820190508181036000830152612f9881612cf0565b9050919050565b60006020820190508181036000830152612fb881612d13565b9050919050565b60006020820190508181036000830152612fd881612d36565b9050919050565b60006020820190508181036000830152612ff881612d59565b9050919050565b6000602082019050818103600083015261301881612d7c565b9050919050565b60006020820190506130346000830184612d9f565b92915050565b600060a08201905061304f6000830188612d9f565b61305c6020830187612bb3565b818103604083015261306e8186612b46565b905061307d6060830185612b37565b61308a6080830184612d9f565b9695505050505050565b60006020820190506130a96000830184612dae565b92915050565b60006130b96130ca565b90506130c5828261333a565b919050565b6000604051905090565b600067ffffffffffffffff8211156130ef576130ee613441565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613160826132a8565b915061316b836132a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131a05761319f6133b4565b5b828201905092915050565b60006131b6826132a8565b91506131c1836132a8565b9250826131d1576131d06133e3565b5b828204905092915050565b60006131e7826132a8565b91506131f2836132a8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561322b5761322a6133b4565b5b828202905092915050565b6000613241826132a8565b915061324c836132a8565b92508282101561325f5761325e6133b4565b5b828203905092915050565b600061327582613288565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132ca826132e3565b9050919050565b60006132dc826132a8565b9050919050565b60006132ee826132f5565b9050919050565b600061330082613288565b9050919050565b60005b8381101561332557808201518184015260208101905061330a565b83811115613334576000848401525b50505050565b61334382613484565b810181811067ffffffffffffffff8211171561336257613361613441565b5b80604052505050565b6000613376826132a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156133a9576133a86133b4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3025290000000000000000000000000000000000000000000000000000000000602082015250565b6137948161326a565b811461379f57600080fd5b50565b6137ab8161327c565b81146137b657600080fd5b50565b6137c2816132a8565b81146137cd57600080fd5b50565b6137d9816132b2565b81146137e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201660a4964bd76a5798496f62bd543451b9207bb6cf85e2bc0c4a929da313f63364736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f805f536146104b657610140565b8063751039fc146103265780637e37e9bb1461033d5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e1565b6040516101679190612e7d565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061294b565b61051e565b6040516101a49190612e62565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061285e565b61053c565b005b3480156101e257600080fd5b506101eb6106de565b6040516101f8919061301f565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906128f8565b6106e8565b6040516102359190612e62565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061285e565b6107c1565b005b34801561027357600080fd5b5061027c6108b1565b6040516102899190613094565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612a01565b6108ba565b005b3480156102c757600080fd5b506102d0610925565b005b3480156102de57600080fd5b506102f960048036038101906102f4919061285e565b610997565b604051610306919061301f565b60405180910390f35b34801561031b57600080fd5b506103246109e0565b005b34801561033257600080fd5b5061033b610b33565b005b34801561034957600080fd5b50610364600480360381019061035f9190612aae565b610ba8565b005b34801561037257600080fd5b5061037b610c96565b6040516103889190612dbd565b60405180910390f35b34801561039d57600080fd5b506103a6610cbf565b6040516103b39190612e7d565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061294b565b610cfc565b6040516103f09190612e62565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b919061298b565b610d1a565b005b34801561042e57600080fd5b50610437610e44565b005b34801561044557600080fd5b5061044e610ebe565b005b34801561045c57600080fd5b50610477600480360381019061047291906128b8565b611009565b604051610484919061301f565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061285e565b611090565b005b3480156104c257600080fd5b506104cb61114c565b6040516104d8919061301f565b60405180910390f35b60606040518060400160405280600d81526020017f446973636f20496e6665726e6f00000000000000000000000000000000000000815250905090565b600061053261052b6111a0565b84846111a8565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057d6111a0565b73ffffffffffffffffffffffffffffffffffffffff161461059d57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161061a9190612dbd565b60206040518083038186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a9190612a2e565b6040518363ffffffff1660e01b8152600401610687929190612dd8565b602060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d991906129d4565b505050565b6000600954905090565b60006106f5848484611373565b6107b6846107016111a0565b6107b1856040518060600160405280602881526020016137e860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107676111a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa29092919063ffffffff16565b6111a8565b600190509392505050565b6107c96111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90612f3f565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb6111a0565b73ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b80600f8190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109666111a0565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b600047905061099481611b06565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e86111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612f3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b746111a0565b73ffffffffffffffffffffffffffffffffffffffff1614610b9457600080fd5b600954601081905550600954601181905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96111a0565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600e548360ff1611158015610c235750600e548260ff1611155b8015610c345750600e548160ff1611155b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612fff565b60405180910390fd5b8260ff16600b819055508160ff16600c819055508060ff16600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f494e4645524e4f00000000000000000000000000000000000000000000000000815250905090565b6000610d10610d096111a0565b8484611373565b6001905092915050565b610d226111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612f3f565b60405180910390fd5b60005b8151811015610e4057600160056000848481518110610dd457610dd3613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e389061336b565b915050610db2565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e856111a0565b73ffffffffffffffffffffffffffffffffffffffff1614610ea557600080fd5b6000610eb030610997565b9050610ebb81611dd4565b50565b610ec66111a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90612f3f565b60405180910390fd5b602060149054906101000a900460ff1615610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90612fdf565b60405180910390fd5b610fbd610faf30610997565b47610fb8610c96565b61205c565b6001602060166101000a81548160ff0219169083151502179055506001602060146101000a81548160ff02191690831515021790555061012c426110019190613155565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d16111a0565b73ffffffffffffffffffffffffffffffffffffffff16146110f157600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600061119883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612180565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90612fbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90612edf565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611366919061301f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90612e9f565b60405180910390fd5b60008111611496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148d90612f5f565b60405180910390fd5b6114ad600d54600b546121e390919063ffffffff16565b6008819055506114bb610c96565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561152957506114f9610c96565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561196e57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115d25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115db57600080fd5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116865750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116dc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116e9575060075442105b1561185357601054811115611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a90612f7f565b60405180910390fd5b601154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90612ebf565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061180257600080fd5b601e4261180f9190613155565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b602060159054906101000a900460ff161580156118be5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118d65750602060169054906101000a900460ff165b801561192c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196d57600061193c30610997565b9050600f5481111561196b5761195181611dd4565b600047905060008111156119695761196847611b06565b5b505b505b5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a195750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a6f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a9257611a8b600d54600c546121e390919063ffffffff16565b6008819055505b611a9d838383612241565b505050565b6000838311158290611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae19190612e7d565b60405180910390fd5b5060008385611af99190613236565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b696023611b5b60648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b94573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611bf86014611bea60648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c23573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c876014611c7960648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cb2573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d16600a611d0860648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d41573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611da5600f611d9760648661115690919063ffffffff16565b61248f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dd0573d6000803e3d6000fd5b5050565b6001602060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e0c57611e0b613441565b5b604051908082528060200260200182016040528015611e3a5781602001602082028036833780820191505090505b5090503081600081518110611e5257611e51613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef457600080fd5b505afa158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2c919061288b565b81600181518110611f4057611f3f613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa730601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a8565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161200b95949392919061303a565b600060405180830381600087803b15801561202557600080fd5b505af1158015612039573d6000803e3d6000fd5b50505050506000602060156101000a81548160ff02191690831515021790555050565b6001602060156101000a81548160ff0219169083151502179055506120a430601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111a8565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161210b96959493929190612e01565b6060604051808303818588803b15801561212457600080fd5b505af1158015612138573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061215d9190612a5b565b5050506000602060156101000a81548160ff021916908315150217905550505050565b600080831182906121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be9190612e7d565b60405180910390fd5b50600083856121d691906131ab565b9050809150509392505050565b60008082846121f29190613155565b905083811015612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e90612eff565b60405180910390fd5b8091505092915050565b6000806000806122508561250a565b93509350935093506122aa81600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233f84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e390919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123d482600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124218784612611565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161247e919061301f565b60405180910390a350505050505050565b6000808314156124a25760009050612504565b600082846124b091906131dc565b90508284826124bf91906131ab565b146124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690612f1f565b60405180910390fd5b809150505b92915050565b600080600080600061253b6103e861252d6008548961248f90919063ffffffff16565b61115690919063ffffffff16565b9050600061255282886125c790919063ffffffff16565b9050600061257f6103e8612571600d548b61248f90919063ffffffff16565b61115690919063ffffffff16565b9050600061259682856125c790919063ffffffff16565b905060006125ad838b6125c790919063ffffffff16565b905083838383985098509850985050505050509193509193565b600061260983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aa2565b905092915050565b61266381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008282546126b89190613236565b9250508190555080600a60008282546126d19190613155565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612736919061301f565b60405180910390a35050565b6000612755612750846130d4565b6130af565b9050808382526020820190508285602086028201111561277857612777613475565b5b60005b858110156127a8578161278e88826127b2565b84526020840193506020830192505060018101905061277b565b5050509392505050565b6000813590506127c18161378b565b92915050565b6000815190506127d68161378b565b92915050565b600082601f8301126127f1576127f0613470565b5b8135612801848260208601612742565b91505092915050565b600081519050612819816137a2565b92915050565b60008135905061282e816137b9565b92915050565b600081519050612843816137b9565b92915050565b600081359050612858816137d0565b92915050565b6000602082840312156128745761287361347f565b5b6000612882848285016127b2565b91505092915050565b6000602082840312156128a1576128a061347f565b5b60006128af848285016127c7565b91505092915050565b600080604083850312156128cf576128ce61347f565b5b60006128dd858286016127b2565b92505060206128ee858286016127b2565b9150509250929050565b6000806000606084860312156129115761291061347f565b5b600061291f868287016127b2565b9350506020612930868287016127b2565b92505060406129418682870161281f565b9150509250925092565b600080604083850312156129625761296161347f565b5b6000612970858286016127b2565b92505060206129818582860161281f565b9150509250929050565b6000602082840312156129a1576129a061347f565b5b600082013567ffffffffffffffff8111156129bf576129be61347a565b5b6129cb848285016127dc565b91505092915050565b6000602082840312156129ea576129e961347f565b5b60006129f88482850161280a565b91505092915050565b600060208284031215612a1757612a1661347f565b5b6000612a258482850161281f565b91505092915050565b600060208284031215612a4457612a4361347f565b5b6000612a5284828501612834565b91505092915050565b600080600060608486031215612a7457612a7361347f565b5b6000612a8286828701612834565b9350506020612a9386828701612834565b9250506040612aa486828701612834565b9150509250925092565b600080600060608486031215612ac757612ac661347f565b5b6000612ad586828701612849565b9350506020612ae686828701612849565b9250506040612af786828701612849565b9150509250925092565b6000612b0d8383612b28565b60208301905092915050565b612b22816132bf565b82525050565b612b318161326a565b82525050565b612b408161326a565b82525050565b6000612b5182613110565b612b5b8185613133565b9350612b6683613100565b8060005b83811015612b97578151612b7e8882612b01565b9750612b8983613126565b925050600181019050612b6a565b5085935050505092915050565b612bad8161327c565b82525050565b612bbc816132d1565b82525050565b6000612bcd8261311b565b612bd78185613144565b9350612be7818560208601613307565b612bf081613484565b840191505092915050565b6000612c08602383613144565b9150612c1382613495565b604082019050919050565b6000612c2b601083613144565b9150612c36826134e4565b602082019050919050565b6000612c4e602283613144565b9150612c598261350d565b604082019050919050565b6000612c71601b83613144565b9150612c7c8261355c565b602082019050919050565b6000612c94602183613144565b9150612c9f82613585565b604082019050919050565b6000612cb7602083613144565b9150612cc2826135d4565b602082019050919050565b6000612cda602983613144565b9150612ce5826135fd565b604082019050919050565b6000612cfd601483613144565b9150612d088261364c565b602082019050919050565b6000612d20602583613144565b9150612d2b82613675565b604082019050919050565b6000612d43602483613144565b9150612d4e826136c4565b604082019050919050565b6000612d66601783613144565b9150612d7182613713565b602082019050919050565b6000612d89602383613144565b9150612d948261373c565b604082019050919050565b612da8816132a8565b82525050565b612db7816132b2565b82525050565b6000602082019050612dd26000830184612b37565b92915050565b6000604082019050612ded6000830185612b19565b612dfa6020830184612d9f565b9392505050565b600060c082019050612e166000830189612b37565b612e236020830188612d9f565b612e306040830187612bb3565b612e3d6060830186612bb3565b612e4a6080830185612b37565b612e5760a0830184612d9f565b979650505050505050565b6000602082019050612e776000830184612ba4565b92915050565b60006020820190508181036000830152612e978184612bc2565b905092915050565b60006020820190508181036000830152612eb881612bfb565b9050919050565b60006020820190508181036000830152612ed881612c1e565b9050919050565b60006020820190508181036000830152612ef881612c41565b9050919050565b60006020820190508181036000830152612f1881612c64565b9050919050565b60006020820190508181036000830152612f3881612c87565b9050919050565b60006020820190508181036000830152612f5881612caa565b9050919050565b60006020820190508181036000830152612f7881612ccd565b9050919050565b60006020820190508181036000830152612f9881612cf0565b9050919050565b60006020820190508181036000830152612fb881612d13565b9050919050565b60006020820190508181036000830152612fd881612d36565b9050919050565b60006020820190508181036000830152612ff881612d59565b9050919050565b6000602082019050818103600083015261301881612d7c565b9050919050565b60006020820190506130346000830184612d9f565b92915050565b600060a08201905061304f6000830188612d9f565b61305c6020830187612bb3565b818103604083015261306e8186612b46565b905061307d6060830185612b37565b61308a6080830184612d9f565b9695505050505050565b60006020820190506130a96000830184612dae565b92915050565b60006130b96130ca565b90506130c5828261333a565b919050565b6000604051905090565b600067ffffffffffffffff8211156130ef576130ee613441565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613160826132a8565b915061316b836132a8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131a05761319f6133b4565b5b828201905092915050565b60006131b6826132a8565b91506131c1836132a8565b9250826131d1576131d06133e3565b5b828204905092915050565b60006131e7826132a8565b91506131f2836132a8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561322b5761322a6133b4565b5b828202905092915050565b6000613241826132a8565b915061324c836132a8565b92508282101561325f5761325e6133b4565b5b828203905092915050565b600061327582613288565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132ca826132e3565b9050919050565b60006132dc826132a8565b9050919050565b60006132ee826132f5565b9050919050565b600061330082613288565b9050919050565b60005b8381101561332557808201518184015260208101905061330a565b83811115613334576000848401525b50505050565b61334382613484565b810181811067ffffffffffffffff8211171561336257613361613441565b5b80604052505050565b6000613376826132a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156133a9576133a86133b4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3025290000000000000000000000000000000000000000000000000000000000602082015250565b6137948161326a565b811461379f57600080fd5b50565b6137ab8161327c565b81146137b657600080fd5b50565b6137c2816132a8565b81146137cd57600080fd5b50565b6137d9816132b2565b81146137e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201660a4964bd76a5798496f62bd543451b9207bb6cf85e2bc0c4a929da313f63364736f6c63430008070033

Deployed Bytecode Sourcemap

3519:10915:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6616:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7703:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14187:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6893:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7872:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12687:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6802:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8916:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13543:188;;;;;;;;;;;;;:::i;:::-;;6996:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:148;;;;;;;;;;;;;:::i;:::-;;8435:154;;;;;;;;;;;;;:::i;:::-;;8600:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6707:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7121:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12515:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13342:189;;;;;;;;;;;;;:::i;:::-;;12209:294;;;;;;;;;;;;;:::i;:::-;;7296:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7447:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7602:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6616:83;6653:13;6686:5;;;;;;;;;;;;;;;;;6679:12;;6616:83;:::o;7703:161::-;7778:4;7795:39;7804:12;:10;:12::i;:::-;7818:7;7827:6;7795:8;:39::i;:::-;7852:4;7845:11;;7703:161;;;;:::o;14187:244::-;14276:9;;;;;;;;;;;14260:25;;:12;:10;:12::i;:::-;:25;;;14252:34;;;;;;14297:20;14327:12;14297:43;;14351:13;:22;;;14374:9;;;;;;;;;;;14384:13;:23;;;14416:4;14384:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14351:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14241:190;14187:244;:::o;6893:95::-;6946:7;6973;;6966:14;;6893:95;:::o;7872:313::-;7970:4;7987:36;7997:6;8005:9;8016:6;7987:9;:36::i;:::-;8034:121;8043:6;8051:12;:10;:12::i;:::-;8065:89;8103:6;8065:89;;;;;;;;;;;;;;;;;:11;:19;8077:6;8065:19;;;;;;;;;;;;;;;:33;8085:12;:10;:12::i;:::-;8065:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8034:8;:121::i;:::-;8173:4;8166:11;;7872:313;;;;;:::o;12687:88::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12762:5:::1;12747:4;:12;12752:6;12747:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12687:88:::0;:::o;6802:83::-;6843:5;4462:1;6861:16;;6802:83;:::o;8916:136::-;9002:9;;;;;;;;;;;8986:25;;:12;:10;:12::i;:::-;:25;;;8978:34;;;;;;9036:6;9023:10;:19;;;;8916:136;:::o;13543:188::-;13609:9;;;;;;;;;;;13593:25;;:12;:10;:12::i;:::-;:25;;;13585:34;;;;;;13630:26;13659:21;13630:50;;13691:32;13704:18;13691:12;:32::i;:::-;13574:157;13543:188::o;6996:117::-;7062:7;7089;:16;7097:7;7089:16;;;;;;;;;;;;;;;;7082:23;;6996:117;;;:::o;2598:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2705:1:::1;2668:40;;2689:6;::::0;::::1;;;;;;;;2668:40;;;;;;;;;;;;2736:1;2719:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2598:148::o:0;8435:154::-;8503:9;;;;;;;;;;;8487:25;;:12;:10;:12::i;:::-;:25;;;8479:34;;;;;;8538:7;;8524:11;:21;;;;8574:7;;8556:15;:25;;;;8435:154::o;8600:306::-;8703:9;;;;;;;;;;;8687:25;;:12;:10;:12::i;:::-;:25;;;8679:34;;;;;;8741:6;;8732:5;:15;;;;:34;;;;;8760:6;;8751:5;:15;;;;8732:34;:54;;;;;8780:6;;8770;:16;;;;8732:54;8724:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;8843:5;8836:12;;:4;:12;;;;8866:5;8859:12;;:4;:12;;;;8892:6;8882:16;;:7;:16;;;;8600:306;;;:::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;6707:87::-;6746:13;6779:7;;;;;;;;;;;;;;;;;6772:14;;6707:87;:::o;7121:167::-;7199:4;7216:42;7226:12;:10;:12::i;:::-;7240:9;7251:6;7216:9;:42::i;:::-;7276:4;7269:11;;7121:167;;;;:::o;12515:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12589:6:::1;12584:88;12605:5;:12;12601:1;:16;12584:88;;;12656:4;12639;:14;12644:5;12650:1;12644:8;;;;;;;;:::i;:::-;;;;;;;;12639:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12619:3;;;;;:::i;:::-;;;;12584:88;;;;12515:164:::0;:::o;13342:189::-;13408:9;;;;;;;;;;;13392:25;;:12;:10;:12::i;:::-;:25;;;13384:34;;;;;;13429:23;13455:24;13473:4;13455:9;:24::i;:::-;13429:50;;13490:33;13507:15;13490:16;:33::i;:::-;13373:158;13342:189::o;12209:294::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12273:11:::1;;;;;;;;;;;12272:12;12264:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12322:68;12335:24;12353:4;12335:9;:24::i;:::-;12360:21;12382:7;:5;:7::i;:::-;12322:12;:68::i;:::-;12415:4;12401:11;;:18;;;;;;;;;;;;;;;;;;12444:4;12430:11;;:18;;;;;;;;;;;;;;;;;;12485:9;12466:15;:29;;;;:::i;:::-;12459:4;:36;;;;12209:294::o:0;7296:143::-;7377:7;7404:11;:18;7416:5;7404:18;;;;;;;;;;;;;;;:27;7423:7;7404:27;;;;;;;;;;;;;;;;7397:34;;7296:143;;;;:::o;7447:147::-;7532:9;;;;;;;;;;;7516:25;;:12;:10;:12::i;:::-;:25;;;7508:34;;;;;;7582:4;7553:18;:26;7572:6;7553:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7447:147;:::o;7602:93::-;7648:7;7675:12;;7668:19;;7602:93;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;9063:335::-;9173:1;9156:19;;:5;:19;;;;9148:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9254:1;9235:21;;:7;:21;;;;9227:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9336:6;9306:11;:18;9318:5;9306:18;;;;;;;;;;;;;;;:27;9325:7;9306:27;;;;;;;;;;;;;;;:36;;;;9374:7;9358:32;;9367:5;9358:32;;;9383:6;9358:32;;;;;;:::i;:::-;;;;;;;;9063:335;;;:::o;9406:1653::-;9510:1;9494:18;;:4;:18;;;;9486:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9587:1;9573:16;;:2;:16;;;;9565:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9657:1;9648:6;:10;9640:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9722:17;9731:7;;9722:4;;:8;;:17;;;;:::i;:::-;9715:4;:24;;;;9762:7;:5;:7::i;:::-;9754:15;;:4;:15;;;;:32;;;;;9779:7;:5;:7::i;:::-;9773:13;;:2;:13;;;;9754:32;9750:1102;;;9812:4;:10;9817:4;9812:10;;;;;;;;;;;;;;;;;;;;;;;;;9811:11;:24;;;;;9827:4;:8;9832:2;9827:8;;;;;;;;;;;;;;;;;;;;;;;;;9826:9;9811:24;9803:33;;;;;;9863:13;;;;;;;;;;;9855:21;;:4;:21;;;:55;;;;;9894:15;;;;;;;;;;;9880:30;;:2;:30;;;;9855:55;:83;;;;;9916:18;:22;9935:2;9916:22;;;;;;;;;;;;;;;;;;;;;;;;;9914:24;9855:83;:111;;;;;9961:4;;9943:15;:22;9855:111;9851:432;;;10004:11;;9994:6;:21;;9986:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;10081:15;;10066:7;:11;10074:2;10066:11;;;;;;;;;;;;;;;;:30;;10058:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10187:15;10172:8;:12;10181:2;10172:12;;;;;;;;;;;;;;;;:30;10164:39;;;;;;10256:10;10237:15;:30;;;;:::i;:::-;10222:8;:12;10231:2;10222:12;;;;;;;;;;;;;;;:45;;;;9851:432;10330:6;;;;;;;;;;;10329:7;:32;;;;;10348:13;;;;;;;;;;;10340:21;;:4;:21;;;;10329:32;:47;;;;;10365:11;;;;;;;;;;;10329:47;:76;;;;;10381:18;:24;10400:4;10381:24;;;;;;;;;;;;;;;;;;;;;;;;;10380:25;10329:76;10325:516;;;10426:28;10457:24;10475:4;10457:9;:24::i;:::-;10426:55;;10526:10;;10503:20;:33;10500:326;;;10560:38;10577:20;10560:16;:38::i;:::-;10621:26;10650:21;10621:50;;10718:1;10697:18;:22;10694:113;;;10748:35;10761:21;10748:12;:35::i;:::-;10694:113;10537:289;10500:326;10407:434;10325:516;9750:1102;10872:13;;;;;;;;;;;10866:19;;:2;:19;;;:55;;;;;10905:15;;;;;;;;;;;10889:32;;:4;:32;;;;10866:55;:85;;;;;10927:18;:24;10946:4;10927:24;;;;;;;;;;;;;;;;;;;;;;;;;10925:26;10866:85;10862:142;;;10975:17;10984:7;;10975:4;;:8;;:17;;;;:::i;:::-;10968:4;:24;;;;10862:142;11018:33;11036:4;11041:2;11044:6;11018:17;:33::i;:::-;9406:1653;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;11854:343::-;11912:9;;;;;;;;;;;:18;;:43;11931:23;11951:2;11931:15;11942:3;11931:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11912:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11966:15;;;;;;;;;;;:24;;:49;11991:23;12011:2;11991:15;12002:3;11991:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11966:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12026:15;;;;;;;;;;;:24;;:49;12051:23;12071:2;12051:15;12062:3;12051:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;12026:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12086:15;;;;;;;;;;;:24;;:49;12111:23;12131:2;12111:15;12122:3;12111:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;12086:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12146:9;;;;;;;;;;;:18;;:43;12165:23;12185:2;12165:15;12176:3;12165:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;12146:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11854:343;:::o;11067:483::-;5437:4;5428:6;;:13;;;;;;;;;;;;;;;;;;11145:21:::1;11183:1;11169:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11145:40;;11214:4;11196;11201:1;11196:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11240:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11230:4;11235:1;11230:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11273:62;11290:4;11305:15;;;;;;;;;;;11323:11;11273:8;:62::i;:::-;11346:15;;;;;;;;;;;:66;;;11427:11;11453:1;11469:4;11496;11516:15;11346:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11134:416;5473:5:::0;5464:6;;:14;;;;;;;;;;;;;;;;;;11067:483;:::o;11560:288::-;5437:4;5428:6;;:13;;;;;;;;;;;;;;;;;;11666:60:::1;11683:4;11697:15;;;;;;;;;;;11714:11;11666:8;:60::i;:::-;11737:15;;;;;;;;;;;:31;;;11776:9;11795:4;11801:11;11813:1;11815::::0;11817:6:::1;11824:15;11737:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5473:5:::0;5464:6;;:14;;;;;;;;;;;;;;;;;;11560:288;;;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;908:179::-;966:7;986:9;1002:1;998;:5;;;;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1;1071:8;;;908:179;;;;:::o;12783:510::-;12882:22;12905:18;12924:17;12942:20;12966;12978:7;12966:11;:20::i;:::-;12881:105;;;;;;;;13015:33;13035:12;13015:7;:15;13023:6;13015:15;;;;;;;;;;;;;;;;:19;;:33;;;;:::i;:::-;12997:7;:15;13005:6;12997:15;;;;;;;;;;;;;;;:51;;;;13080:38;13103:14;13080:7;:18;13088:9;13080:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;13059:7;:18;13067:9;13059:18;;;;;;;;;;;;;;;:59;;;;13155:37;13182:9;13155:7;:22;13171:4;13155:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;13130:7;:22;13146:4;13130:22;;;;;;;;;;;;;;;:62;;;;13203:23;13208:6;13215:10;13203:4;:23::i;:::-;13259:9;13242:43;;13251:6;13242:43;;;13270:14;13242:43;;;;;;:::i;:::-;;;;;;;;12870:423;;;;12783:510;;;:::o;1437:246::-;1495:7;1524:1;1519;:6;1515:47;;;1549:1;1542:8;;;;1515:47;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1437:246;;;;;:::o;13742:437::-;13802:7;13811;13820;13829;13849:12;13864:27;13886:4;13864:17;13876:4;;13864:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13849:42;;13902:23;13928:17;13940:4;13928:7;:11;;:17;;;;:::i;:::-;13902:43;;13956:13;13972:30;13997:4;13972:20;13984:7;;13972;:11;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;13956:46;;14013:18;14034:15;14043:5;14034:4;:8;;:15;;;;:::i;:::-;14013:36;;14060:21;14084:18;14096:5;14084:7;:11;;:18;;;;:::i;:::-;14060:42;;14121:15;14138:5;14145:10;14157:13;14113:58;;;;;;;;;;;;;13742:437;;;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1173:50;;1095:136;;;;:::o;8193:234::-;8277:28;8298:6;8277:7;:16;8285:7;8277:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;8258:7;:16;8266:7;8258:16;;;;;;;;;;;;;;;:47;;;;8327:6;8316:7;;:17;;;;;;;:::i;:::-;;;;;;;;8360:6;8344:12;;:22;;;;;;;:::i;:::-;;;;;;;;8408:1;8382:37;;8391:7;8382:37;;;8412:6;8382:37;;;;;;:::i;:::-;;;;;;;;8193:234;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:135::-;1920:5;1958:6;1945:20;1936:29;;1974:31;1999:5;1974:31;:::i;:::-;1876:135;;;;:::o;2017:329::-;2076:6;2125:2;2113:9;2104:7;2100:23;2096:32;2093:119;;;2131:79;;:::i;:::-;2093:119;2251:1;2276:53;2321:7;2312:6;2301:9;2297:22;2276:53;:::i;:::-;2266:63;;2222:117;2017:329;;;;:::o;2352:351::-;2422:6;2471:2;2459:9;2450:7;2446:23;2442:32;2439:119;;;2477:79;;:::i;:::-;2439:119;2597:1;2622:64;2678:7;2669:6;2658:9;2654:22;2622:64;:::i;:::-;2612:74;;2568:128;2352:351;;;;:::o;2709:474::-;2777:6;2785;2834:2;2822:9;2813:7;2809:23;2805:32;2802:119;;;2840:79;;:::i;:::-;2802:119;2960:1;2985:53;3030:7;3021:6;3010:9;3006:22;2985:53;:::i;:::-;2975:63;;2931:117;3087:2;3113:53;3158:7;3149:6;3138:9;3134:22;3113:53;:::i;:::-;3103:63;;3058:118;2709:474;;;;;:::o;3189:619::-;3266:6;3274;3282;3331:2;3319:9;3310:7;3306:23;3302:32;3299:119;;;3337:79;;:::i;:::-;3299:119;3457:1;3482:53;3527:7;3518:6;3507:9;3503:22;3482:53;:::i;:::-;3472:63;;3428:117;3584:2;3610:53;3655:7;3646:6;3635:9;3631:22;3610:53;:::i;:::-;3600:63;;3555:118;3712:2;3738:53;3783:7;3774:6;3763:9;3759:22;3738:53;:::i;:::-;3728:63;;3683:118;3189:619;;;;;:::o;3814:474::-;3882:6;3890;3939:2;3927:9;3918:7;3914:23;3910:32;3907:119;;;3945:79;;:::i;:::-;3907:119;4065:1;4090:53;4135:7;4126:6;4115:9;4111:22;4090:53;:::i;:::-;4080:63;;4036:117;4192:2;4218:53;4263:7;4254:6;4243:9;4239:22;4218:53;:::i;:::-;4208:63;;4163:118;3814:474;;;;;:::o;4294:539::-;4378:6;4427:2;4415:9;4406:7;4402:23;4398:32;4395:119;;;4433:79;;:::i;:::-;4395:119;4581:1;4570:9;4566:17;4553:31;4611:18;4603:6;4600:30;4597:117;;;4633:79;;:::i;:::-;4597:117;4738:78;4808:7;4799:6;4788:9;4784:22;4738:78;:::i;:::-;4728:88;;4524:302;4294:539;;;;:::o;4839:345::-;4906:6;4955:2;4943:9;4934:7;4930:23;4926:32;4923:119;;;4961:79;;:::i;:::-;4923:119;5081:1;5106:61;5159:7;5150:6;5139:9;5135:22;5106:61;:::i;:::-;5096:71;;5052:125;4839:345;;;;:::o;5190:329::-;5249:6;5298:2;5286:9;5277:7;5273:23;5269:32;5266:119;;;5304:79;;:::i;:::-;5266:119;5424:1;5449:53;5494:7;5485:6;5474:9;5470:22;5449:53;:::i;:::-;5439:63;;5395:117;5190:329;;;;:::o;5525:351::-;5595:6;5644:2;5632:9;5623:7;5619:23;5615:32;5612:119;;;5650:79;;:::i;:::-;5612:119;5770:1;5795:64;5851:7;5842:6;5831:9;5827:22;5795:64;:::i;:::-;5785:74;;5741:128;5525:351;;;;:::o;5882:663::-;5970:6;5978;5986;6035:2;6023:9;6014:7;6010:23;6006:32;6003:119;;;6041:79;;:::i;:::-;6003:119;6161:1;6186:64;6242:7;6233:6;6222:9;6218:22;6186:64;:::i;:::-;6176:74;;6132:128;6299:2;6325:64;6381:7;6372:6;6361:9;6357:22;6325:64;:::i;:::-;6315:74;;6270:129;6438:2;6464:64;6520:7;6511:6;6500:9;6496:22;6464:64;:::i;:::-;6454:74;;6409:129;5882:663;;;;;:::o;6551:607::-;6622:6;6630;6638;6687:2;6675:9;6666:7;6662:23;6658:32;6655:119;;;6693:79;;:::i;:::-;6655:119;6813:1;6838:51;6881:7;6872:6;6861:9;6857:22;6838:51;:::i;:::-;6828:61;;6784:115;6938:2;6964:51;7007:7;6998:6;6987:9;6983:22;6964:51;:::i;:::-;6954:61;;6909:116;7064:2;7090:51;7133:7;7124:6;7113:9;7109:22;7090:51;:::i;:::-;7080:61;;7035:116;6551:607;;;;;:::o;7164:179::-;7233:10;7254:46;7296:3;7288:6;7254:46;:::i;:::-;7332:4;7327:3;7323:14;7309:28;;7164:179;;;;:::o;7349:147::-;7444:45;7483:5;7444:45;:::i;:::-;7439:3;7432:58;7349:147;;:::o;7502:108::-;7579:24;7597:5;7579:24;:::i;:::-;7574:3;7567:37;7502:108;;:::o;7616:118::-;7703:24;7721:5;7703:24;:::i;:::-;7698:3;7691:37;7616:118;;:::o;7770:732::-;7889:3;7918:54;7966:5;7918:54;:::i;:::-;7988:86;8067:6;8062:3;7988:86;:::i;:::-;7981:93;;8098:56;8148:5;8098:56;:::i;:::-;8177:7;8208:1;8193:284;8218:6;8215:1;8212:13;8193:284;;;8294:6;8288:13;8321:63;8380:3;8365:13;8321:63;:::i;:::-;8314:70;;8407:60;8460:6;8407:60;:::i;:::-;8397:70;;8253:224;8240:1;8237;8233:9;8228:14;;8193:284;;;8197:14;8493:3;8486:10;;7894:608;;;7770:732;;;;:::o;8508:109::-;8589:21;8604:5;8589:21;:::i;:::-;8584:3;8577:34;8508:109;;:::o;8623:147::-;8718:45;8757:5;8718:45;:::i;:::-;8713:3;8706:58;8623:147;;:::o;8776:364::-;8864:3;8892:39;8925:5;8892:39;:::i;:::-;8947:71;9011:6;9006:3;8947:71;:::i;:::-;8940:78;;9027:52;9072:6;9067:3;9060:4;9053:5;9049:16;9027:52;:::i;:::-;9104:29;9126:6;9104:29;:::i;:::-;9099:3;9095:39;9088:46;;8868:272;8776:364;;;;:::o;9146:366::-;9288:3;9309:67;9373:2;9368:3;9309:67;:::i;:::-;9302:74;;9385:93;9474:3;9385:93;:::i;:::-;9503:2;9498:3;9494:12;9487:19;;9146:366;;;:::o;9518:::-;9660:3;9681:67;9745:2;9740:3;9681:67;:::i;:::-;9674:74;;9757:93;9846:3;9757:93;:::i;:::-;9875:2;9870:3;9866:12;9859:19;;9518:366;;;:::o;9890:::-;10032:3;10053:67;10117:2;10112:3;10053:67;:::i;:::-;10046:74;;10129:93;10218:3;10129:93;:::i;:::-;10247:2;10242:3;10238:12;10231:19;;9890:366;;;:::o;10262:::-;10404:3;10425:67;10489:2;10484:3;10425:67;:::i;:::-;10418:74;;10501:93;10590:3;10501:93;:::i;:::-;10619:2;10614:3;10610:12;10603:19;;10262:366;;;:::o;10634:::-;10776:3;10797:67;10861:2;10856:3;10797:67;:::i;:::-;10790:74;;10873:93;10962:3;10873:93;:::i;:::-;10991:2;10986:3;10982:12;10975:19;;10634:366;;;:::o;11006:::-;11148:3;11169:67;11233:2;11228:3;11169:67;:::i;:::-;11162:74;;11245:93;11334:3;11245:93;:::i;:::-;11363:2;11358:3;11354:12;11347:19;;11006:366;;;:::o;11378:::-;11520:3;11541:67;11605:2;11600:3;11541:67;:::i;:::-;11534:74;;11617:93;11706:3;11617:93;:::i;:::-;11735:2;11730:3;11726:12;11719:19;;11378:366;;;:::o;11750:::-;11892:3;11913:67;11977:2;11972:3;11913:67;:::i;:::-;11906:74;;11989:93;12078:3;11989:93;:::i;:::-;12107:2;12102:3;12098:12;12091:19;;11750:366;;;:::o;12122:::-;12264:3;12285:67;12349:2;12344:3;12285:67;:::i;:::-;12278:74;;12361:93;12450:3;12361:93;:::i;:::-;12479:2;12474:3;12470:12;12463:19;;12122:366;;;:::o;12494:::-;12636:3;12657:67;12721:2;12716:3;12657:67;:::i;:::-;12650:74;;12733:93;12822:3;12733:93;:::i;:::-;12851:2;12846:3;12842:12;12835:19;;12494:366;;;:::o;12866:::-;13008:3;13029:67;13093:2;13088:3;13029:67;:::i;:::-;13022:74;;13105:93;13194:3;13105:93;:::i;:::-;13223:2;13218:3;13214:12;13207:19;;12866:366;;;:::o;13238:::-;13380:3;13401:67;13465:2;13460:3;13401:67;:::i;:::-;13394:74;;13477:93;13566:3;13477:93;:::i;:::-;13595:2;13590:3;13586:12;13579:19;;13238:366;;;:::o;13610:118::-;13697:24;13715:5;13697:24;:::i;:::-;13692:3;13685:37;13610:118;;:::o;13734:112::-;13817:22;13833:5;13817:22;:::i;:::-;13812:3;13805:35;13734:112;;:::o;13852:222::-;13945:4;13983:2;13972:9;13968:18;13960:26;;13996:71;14064:1;14053:9;14049:17;14040:6;13996:71;:::i;:::-;13852:222;;;;:::o;14080:348::-;14209:4;14247:2;14236:9;14232:18;14224:26;;14260:79;14336:1;14325:9;14321:17;14312:6;14260:79;:::i;:::-;14349:72;14417:2;14406:9;14402:18;14393:6;14349:72;:::i;:::-;14080:348;;;;;:::o;14434:807::-;14683:4;14721:3;14710:9;14706:19;14698:27;;14735:71;14803:1;14792:9;14788:17;14779:6;14735:71;:::i;:::-;14816:72;14884:2;14873:9;14869:18;14860:6;14816:72;:::i;:::-;14898:80;14974:2;14963:9;14959:18;14950:6;14898:80;:::i;:::-;14988;15064:2;15053:9;15049:18;15040:6;14988:80;:::i;:::-;15078:73;15146:3;15135:9;15131:19;15122:6;15078:73;:::i;:::-;15161;15229:3;15218:9;15214:19;15205:6;15161:73;:::i;:::-;14434:807;;;;;;;;;:::o;15247:210::-;15334:4;15372:2;15361:9;15357:18;15349:26;;15385:65;15447:1;15436:9;15432:17;15423:6;15385:65;:::i;:::-;15247:210;;;;:::o;15463:313::-;15576:4;15614:2;15603:9;15599:18;15591:26;;15663:9;15657:4;15653:20;15649:1;15638:9;15634:17;15627:47;15691:78;15764:4;15755:6;15691:78;:::i;:::-;15683:86;;15463:313;;;;:::o;15782:419::-;15948:4;15986:2;15975:9;15971:18;15963:26;;16035:9;16029:4;16025:20;16021:1;16010:9;16006:17;15999:47;16063:131;16189:4;16063:131;:::i;:::-;16055:139;;15782:419;;;:::o;16207:::-;16373:4;16411:2;16400:9;16396:18;16388:26;;16460:9;16454:4;16450:20;16446:1;16435:9;16431:17;16424:47;16488:131;16614:4;16488:131;:::i;:::-;16480:139;;16207:419;;;:::o;16632:::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:::-;17223:4;17261:2;17250:9;17246:18;17238:26;;17310:9;17304:4;17300:20;17296:1;17285:9;17281:17;17274:47;17338:131;17464:4;17338:131;:::i;:::-;17330:139;;17057:419;;;:::o;17482:::-;17648:4;17686:2;17675:9;17671:18;17663:26;;17735:9;17729:4;17725:20;17721:1;17710:9;17706:17;17699:47;17763:131;17889:4;17763:131;:::i;:::-;17755:139;;17482:419;;;:::o;17907:::-;18073:4;18111:2;18100:9;18096:18;18088:26;;18160:9;18154:4;18150:20;18146:1;18135:9;18131:17;18124:47;18188:131;18314:4;18188:131;:::i;:::-;18180:139;;17907:419;;;:::o;18332:::-;18498:4;18536:2;18525:9;18521:18;18513:26;;18585:9;18579:4;18575:20;18571:1;18560:9;18556:17;18549:47;18613:131;18739:4;18613:131;:::i;:::-;18605:139;;18332:419;;;:::o;18757:::-;18923:4;18961:2;18950:9;18946:18;18938:26;;19010:9;19004:4;19000:20;18996:1;18985:9;18981:17;18974:47;19038:131;19164:4;19038:131;:::i;:::-;19030:139;;18757:419;;;:::o;19182:::-;19348:4;19386:2;19375:9;19371:18;19363:26;;19435:9;19429:4;19425:20;19421:1;19410:9;19406:17;19399:47;19463:131;19589:4;19463:131;:::i;:::-;19455:139;;19182:419;;;:::o;19607:::-;19773:4;19811:2;19800:9;19796:18;19788:26;;19860:9;19854:4;19850:20;19846:1;19835:9;19831:17;19824:47;19888:131;20014:4;19888:131;:::i;:::-;19880:139;;19607:419;;;:::o;20032:::-;20198:4;20236:2;20225:9;20221:18;20213:26;;20285:9;20279:4;20275:20;20271:1;20260:9;20256:17;20249:47;20313:131;20439:4;20313:131;:::i;:::-;20305:139;;20032:419;;;:::o;20457:::-;20623:4;20661:2;20650:9;20646:18;20638:26;;20710:9;20704:4;20700:20;20696:1;20685:9;20681:17;20674:47;20738:131;20864:4;20738:131;:::i;:::-;20730:139;;20457:419;;;:::o;20882:222::-;20975:4;21013:2;21002:9;20998:18;20990:26;;21026:71;21094:1;21083:9;21079:17;21070:6;21026:71;:::i;:::-;20882:222;;;;:::o;21110:831::-;21373:4;21411:3;21400:9;21396:19;21388:27;;21425:71;21493:1;21482:9;21478:17;21469:6;21425:71;:::i;:::-;21506:80;21582:2;21571:9;21567:18;21558:6;21506:80;:::i;:::-;21633:9;21627:4;21623:20;21618:2;21607:9;21603:18;21596:48;21661:108;21764:4;21755:6;21661:108;:::i;:::-;21653:116;;21779:72;21847:2;21836:9;21832:18;21823:6;21779:72;:::i;:::-;21861:73;21929:3;21918:9;21914:19;21905:6;21861:73;:::i;:::-;21110:831;;;;;;;;:::o;21947:214::-;22036:4;22074:2;22063:9;22059:18;22051:26;;22087:67;22151:1;22140:9;22136:17;22127:6;22087:67;:::i;:::-;21947:214;;;;:::o;22167:129::-;22201:6;22228:20;;:::i;:::-;22218:30;;22257:33;22285:4;22277:6;22257:33;:::i;:::-;22167:129;;;:::o;22302:75::-;22335:6;22368:2;22362:9;22352:19;;22302:75;:::o;22383:311::-;22460:4;22550:18;22542:6;22539:30;22536:56;;;22572:18;;:::i;:::-;22536:56;22622:4;22614:6;22610:17;22602:25;;22682:4;22676;22672:15;22664:23;;22383:311;;;:::o;22700:132::-;22767:4;22790:3;22782:11;;22820:4;22815:3;22811:14;22803:22;;22700:132;;;:::o;22838:114::-;22905:6;22939:5;22933:12;22923:22;;22838:114;;;:::o;22958:99::-;23010:6;23044:5;23038:12;23028:22;;22958:99;;;:::o;23063:113::-;23133:4;23165;23160:3;23156:14;23148:22;;23063:113;;;:::o;23182:184::-;23281:11;23315:6;23310:3;23303:19;23355:4;23350:3;23346:14;23331:29;;23182:184;;;;:::o;23372:169::-;23456:11;23490:6;23485:3;23478:19;23530:4;23525:3;23521:14;23506:29;;23372:169;;;;:::o;23547:305::-;23587:3;23606:20;23624:1;23606:20;:::i;:::-;23601:25;;23640:20;23658:1;23640:20;:::i;:::-;23635:25;;23794:1;23726:66;23722:74;23719:1;23716:81;23713:107;;;23800:18;;:::i;:::-;23713:107;23844:1;23841;23837:9;23830:16;;23547:305;;;;:::o;23858:185::-;23898:1;23915:20;23933:1;23915:20;:::i;:::-;23910:25;;23949:20;23967:1;23949:20;:::i;:::-;23944:25;;23988:1;23978:35;;23993:18;;:::i;:::-;23978:35;24035:1;24032;24028:9;24023:14;;23858:185;;;;:::o;24049:348::-;24089:7;24112:20;24130:1;24112:20;:::i;:::-;24107:25;;24146:20;24164:1;24146:20;:::i;:::-;24141:25;;24334:1;24266:66;24262:74;24259:1;24256:81;24251:1;24244:9;24237:17;24233:105;24230:131;;;24341:18;;:::i;:::-;24230:131;24389:1;24386;24382:9;24371:20;;24049:348;;;;:::o;24403:191::-;24443:4;24463:20;24481:1;24463:20;:::i;:::-;24458:25;;24497:20;24515:1;24497:20;:::i;:::-;24492:25;;24536:1;24533;24530:8;24527:34;;;24541:18;;:::i;:::-;24527:34;24586:1;24583;24579:9;24571:17;;24403:191;;;;:::o;24600:96::-;24637:7;24666:24;24684:5;24666:24;:::i;:::-;24655:35;;24600:96;;;:::o;24702:90::-;24736:7;24779:5;24772:13;24765:21;24754:32;;24702:90;;;:::o;24798:126::-;24835:7;24875:42;24868:5;24864:54;24853:65;;24798:126;;;:::o;24930:77::-;24967:7;24996:5;24985:16;;24930:77;;;:::o;25013:86::-;25048:7;25088:4;25081:5;25077:16;25066:27;;25013:86;;;:::o;25105:134::-;25163:9;25196:37;25227:5;25196:37;:::i;:::-;25183:50;;25105:134;;;:::o;25245:121::-;25303:9;25336:24;25354:5;25336:24;:::i;:::-;25323:37;;25245:121;;;:::o;25372:126::-;25422:9;25455:37;25486:5;25455:37;:::i;:::-;25442:50;;25372:126;;;:::o;25504:113::-;25554:9;25587:24;25605:5;25587:24;:::i;:::-;25574:37;;25504:113;;;:::o;25623:307::-;25691:1;25701:113;25715:6;25712:1;25709:13;25701:113;;;25800:1;25795:3;25791:11;25785:18;25781:1;25776:3;25772:11;25765:39;25737:2;25734:1;25730:10;25725:15;;25701:113;;;25832:6;25829:1;25826:13;25823:101;;;25912:1;25903:6;25898:3;25894:16;25887:27;25823:101;25672:258;25623:307;;;:::o;25936:281::-;26019:27;26041:4;26019:27;:::i;:::-;26011:6;26007:40;26149:6;26137:10;26134:22;26113:18;26101:10;26098:34;26095:62;26092:88;;;26160:18;;:::i;:::-;26092:88;26200:10;26196:2;26189:22;25979:238;25936:281;;:::o;26223:233::-;26262:3;26285:24;26303:5;26285:24;:::i;:::-;26276:33;;26331:66;26324:5;26321:77;26318:103;;;26401:18;;:::i;:::-;26318:103;26448:1;26441:5;26437:13;26430:20;;26223:233;;;:::o;26462:180::-;26510:77;26507:1;26500:88;26607:4;26604:1;26597:15;26631:4;26628:1;26621:15;26648:180;26696:77;26693:1;26686:88;26793:4;26790:1;26783:15;26817:4;26814:1;26807:15;26834:180;26882:77;26879:1;26872:88;26979:4;26976:1;26969:15;27003:4;27000:1;26993:15;27020:180;27068:77;27065:1;27058:88;27165:4;27162:1;27155:15;27189:4;27186:1;27179:15;27206:117;27315:1;27312;27305:12;27329:117;27438:1;27435;27428:12;27452:117;27561:1;27558;27551:12;27575:117;27684:1;27681;27674:12;27698:102;27739:6;27790:2;27786:7;27781:2;27774:5;27770:14;27766:28;27756:38;;27698:102;;;:::o;27806:222::-;27946:34;27942:1;27934:6;27930:14;27923:58;28015:5;28010:2;28002:6;27998:15;27991:30;27806:222;:::o;28034:166::-;28174:18;28170:1;28162:6;28158:14;28151:42;28034:166;:::o;28206:221::-;28346:34;28342:1;28334:6;28330:14;28323:58;28415:4;28410:2;28402:6;28398:15;28391:29;28206:221;:::o;28433:177::-;28573:29;28569:1;28561:6;28557:14;28550:53;28433:177;:::o;28616:220::-;28756:34;28752:1;28744:6;28740:14;28733:58;28825:3;28820:2;28812:6;28808:15;28801:28;28616:220;:::o;28842:182::-;28982:34;28978:1;28970:6;28966:14;28959:58;28842:182;:::o;29030:228::-;29170:34;29166:1;29158:6;29154:14;29147:58;29239:11;29234:2;29226:6;29222:15;29215:36;29030:228;:::o;29264:170::-;29404:22;29400:1;29392:6;29388:14;29381:46;29264:170;:::o;29440:224::-;29580:34;29576:1;29568:6;29564:14;29557:58;29649:7;29644:2;29636:6;29632:15;29625:32;29440:224;:::o;29670:223::-;29810:34;29806:1;29798:6;29794:14;29787:58;29879:6;29874:2;29866:6;29862:15;29855:31;29670:223;:::o;29899:173::-;30039:25;30035:1;30027:6;30023:14;30016:49;29899:173;:::o;30078:222::-;30218:34;30214:1;30206:6;30202:14;30195:58;30287:5;30282:2;30274:6;30270:15;30263:30;30078:222;:::o;30306:122::-;30379:24;30397:5;30379:24;:::i;:::-;30372:5;30369:35;30359:63;;30418:1;30415;30408:12;30359:63;30306:122;:::o;30434:116::-;30504:21;30519:5;30504:21;:::i;:::-;30497:5;30494:32;30484:60;;30540:1;30537;30530:12;30484:60;30434:116;:::o;30556:122::-;30629:24;30647:5;30629:24;:::i;:::-;30622:5;30619:35;30609:63;;30668:1;30665;30658:12;30609:63;30556:122;:::o;30684:118::-;30755:22;30771:5;30755:22;:::i;:::-;30748:5;30745:33;30735:61;;30792:1;30789;30782:12;30735:61;30684:118;:::o

Swarm Source

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