ETH Price: $2,389.54 (-0.57%)

Token

Fire Celestial (♈ ARIES)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 ♈ ARIES

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,409,558,903,654,715.019474272 ♈ ARIES

Value
$0.00
0x49ce6687f99d5f74e094a0547c8ce98292bb8395
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:
ariessmartcontract

Compiler Version
v0.8.15+commit.e14f2714

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-18
*/

// SPDX-License-Identifier: NONE

/**
Token Name: Fire Celestial
Ticker: Aries
Supply: 1,000,000,000,000,000,000 Quintillion
Max Buy at Launch: 5000000000000001

5% Tax

TG: https://t.me/AriesERC20
Twitter: https://twitter.com/ariesERC20

*/
pragma solidity ^0.8.4;

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

}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB)  external view 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 ariessmartcontract 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;

    string private constant _name = "Fire Celestial";
    string private constant _symbol = "\xE2\x99\x88 ARIES";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoBurnFee = 100;
    uint256 public buyAutoLiquidityFee = 0;
    uint256 public buyMarketingFee = 400;
    uint256 public totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;

    uint256 public sellAutoBurnFee = 100;
    uint256 public sellAutoLiquidityFee = 0;
    uint256 public sellMarketingFee = 400;
    uint256 public totalSellFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;

    uint256 public tokensForAutoBurn;
    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private constant _tTotal = 1000000000000000000 * 10**9;
    uint256 private maxWalletAmount = 5000000000000001 * 10**9;
    uint256 private maxTxAmount = 5000000000000001 * 10**9;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        require(!tradingOpen,"trading is already open");
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0x3e5Fa1981FBB8a51Bc90e328FEe8411b72c07E58); 
        _tOwned[owner()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        uint256 _buyAutoBurnFee = 100;
        uint256 _buyAutoLiquidityFee = 0;
        uint256 _buyMarketingFee = 400;
        uint256 _sellAutoBurnFee = 100;
        uint256 _sellAutoLiquidityFee = 0;
        uint256 _sellMarketingFee = 400;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;
        swapEnabled = true;
        maxTxAmount = 5000000000000001 * 10**9;
        maxWalletAmount = 5000000000000001 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public pure override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _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 approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

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

    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");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize.");
        }

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

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;        
        }
        _tOwned[DEAD] += tokensForAutoBurn;
        emit Transfer(from, DEAD, tokensForAutoBurn);
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);
        uint256 feeAmount = tokensForAutoBurn + tokensForMarketing + tokensForAutoLiquidity;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function updateBuyFees(uint256 _buyAutoBurnFee, uint256 _buyAutoLiquidityFee, uint256 _buyMarketingFee) external onlyOwner {
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;
        require(totalBuyFees <= 20, "Must keep fees at 20% or less");
    }
    
    function updateSellFees(uint256 _sellAutoBurnFee, uint256 _sellAutoLiquidityFee, uint256 _sellMarketingFee) external onlyOwner {
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        totalBuyFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;
        require(totalBuyFees <= 20, "Must keep fees at 20% or less");
    }

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

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_buyAutoLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_sellAutoLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526064600455600060055561019060065560065460055460045462000029919062000a83565b62000035919062000a83565b60075560646008556000600955610190600a55600a546009546008546200005d919062000a83565b62000069919062000a83565b600b55612710600f60006101000a81548161ffff021916908361ffff1602179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506a0422ca8b0a00a4609aca006012556a0422ca8b0a00a4609aca00601355348015620000ec57600080fd5b506200010d620001016200095560201b60201c565b6200095d60201b60201c565b601160149054906101000a900460ff161562000160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001579062000b41565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c919062000bcd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba919062000bcd565b6040518363ffffffff1660e01b8152600401620002d992919062000c10565b6020604051808303816000875af1158015620002f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031f919062000bcd565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d1919062000bcd565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f919062000bcd565b6040518363ffffffff1660e01b81526004016200047e92919062000c10565b602060405180830381865afa1580156200049c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c2919062000bcd565b600f60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733e5fa1981fbb8a51bc90e328fee8411b72c07e58601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce8000000600160006200057862000a2160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005cc62000a2160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000606490506000806101909050600060649050600080610190905085600481905550846005819055508360068190555060065460055460045462000735919062000a83565b62000741919062000a83565b600781905550826008819055508160098190555080600a81905550600a5460095460085462000771919062000a83565b6200077d919062000a83565b600b819055506001601160166101000a81548160ff0219169083151502179055506a0422ca8b0a00a4609aca006013819055506a0422ca8b0a00a4609aca006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200087e92919062000c4e565b6020604051808303816000875af11580156200089e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008c4919062000cb8565b50620008d562000a2160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce800000060405162000940919062000cea565b60405180910390a35050505050505062000d07565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a908262000a4a565b915062000a9d8362000a4a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ad55762000ad462000a54565b5b828201905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000b2960178362000ae0565b915062000b368262000af1565b602082019050919050565b6000602082019050818103600083015262000b5c8162000b1a565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b958262000b68565b9050919050565b62000ba78162000b88565b811462000bb357600080fd5b50565b60008151905062000bc78162000b9c565b92915050565b60006020828403121562000be65762000be562000b63565b5b600062000bf68482850162000bb6565b91505092915050565b62000c0a8162000b88565b82525050565b600060408201905062000c27600083018562000bff565b62000c36602083018462000bff565b9392505050565b62000c488162000a4a565b82525050565b600060408201905062000c65600083018562000bff565b62000c74602083018462000c3d565b9392505050565b60008115159050919050565b62000c928162000c7b565b811462000c9e57600080fd5b50565b60008151905062000cb28162000c87565b92915050565b60006020828403121562000cd15762000cd062000b63565b5b600062000ce18482850162000ca1565b91505092915050565b600060208201905062000d01600083018462000c3d565b92915050565b6131298062000d176000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b37146106b1578063ebece9c9146106da578063f239eab814610703578063f2fde38b1461072e576101e3565b8063c99f2fed146105f3578063cc70acee1461061e578063d0a3981414610649578063dd62ed3e14610674576101e3565b8063a8b08982116100d1578063a8b0898214610537578063a9059cbb14610562578063b9e937001461059f578063c17b5b8c146105ca576101e3565b80638da5cb5b1461048b57806392136913146104b657806395d89b41146104e15780639740a9461461050c576101e3565b8063313ce5671161017a57806370a082311161014957806370a08231146103e3578063715018a6146104205780637bce5a04146104375780638095d56414610462576101e3565b8063313ce56714610339578063437823ec1461036457806347afcbfe1461038d5780636cce46fc146103b8576101e3565b806318160ddd116101b657806318160ddd1461027b5780631d6167ac146102a65780631f3fed8f146102d157806323b872dd146102fc576101e3565b806303fd2a45146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610757565b60405161020a91906121ba565b60405180910390f35b34801561021f57600080fd5b5061022861075d565b604051610235919061226e565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906122f7565b61079a565b6040516102729190612352565b60405180910390f35b34801561028757600080fd5b506102906107b8565b60405161029d919061237c565b60405180910390f35b3480156102b257600080fd5b506102bb6107cc565b6040516102c891906123b4565b60405180910390f35b3480156102dd57600080fd5b506102e66107e0565b6040516102f3919061237c565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906123cf565b6107e6565b6040516103309190612352565b60405180910390f35b34801561034557600080fd5b5061034e6108e7565b60405161035b919061243e565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612459565b6108f0565b005b34801561039957600080fd5b506103a26109c7565b6040516103af919061237c565b60405180910390f35b3480156103c457600080fd5b506103cd6109cd565b6040516103da919061237c565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190612459565b6109d3565b604051610417919061237c565b60405180910390f35b34801561042c57600080fd5b50610435610a1c565b005b34801561044357600080fd5b5061044c610aa4565b604051610459919061237c565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612486565b610aaa565b005b34801561049757600080fd5b506104a0610ba9565b6040516104ad91906121ba565b60405180910390f35b3480156104c257600080fd5b506104cb610bd2565b6040516104d8919061237c565b60405180910390f35b3480156104ed57600080fd5b506104f6610bd8565b604051610503919061226e565b60405180910390f35b34801561051857600080fd5b50610521610c15565b60405161052e919061237c565b60405180910390f35b34801561054357600080fd5b5061054c610c1b565b60405161055991906121ba565b60405180910390f35b34801561056e57600080fd5b50610589600480360381019061058491906122f7565b610c41565b6040516105969190612352565b60405180910390f35b3480156105ab57600080fd5b506105b4610c5f565b6040516105c1919061237c565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190612486565b610c65565b005b3480156105ff57600080fd5b50610608610d64565b604051610615919061237c565b60405180910390f35b34801561062a57600080fd5b50610633610d6a565b604051610640919061237c565b60405180910390f35b34801561065557600080fd5b5061065e610d70565b60405161066b919061237c565b60405180910390f35b34801561068057600080fd5b5061069b600480360381019061069691906124d9565b610d76565b6040516106a8919061237c565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612459565b610dfd565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190612519565b610ed4565b005b34801561070f57600080fd5b50610718610f92565b604051610725919061237c565b60405180910390f35b34801561073a57600080fd5b5061075560048036038101906107509190612459565b610f98565b005b61dead81565b60606040518060400160405280600e81526020017f466972652043656c65737469616c000000000000000000000000000000000000815250905090565b60006107ae6107a761108f565b8484611097565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600f60009054906101000a900461ffff1681565b600e5481565b60006107f3848484611260565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083e61108f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b5906125cb565b60405180910390fd5b6108db856108ca61108f565b85846108d6919061261a565b611097565b60019150509392505050565b60006009905090565b6108f861108f565b73ffffffffffffffffffffffffffffffffffffffff16610916610ba9565b73ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639061269a565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2461108f565b73ffffffffffffffffffffffffffffffffffffffff16610a42610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f9061269a565b60405180910390fd5b610aa260006117de565b565b60065481565b610ab261108f565b73ffffffffffffffffffffffffffffffffffffffff16610ad0610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d9061269a565b60405180910390fd5b826004819055508160058190555080600681905550600654600554600454610b4e91906126ba565b610b5891906126ba565b60078190555060146007541115610ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9b9061275c565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600981526020017fe299882041524945530000000000000000000000000000000000000000000000815250905090565b600d5481565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c55610c4e61108f565b8484611260565b6001905092915050565b60075481565b610c6d61108f565b73ffffffffffffffffffffffffffffffffffffffff16610c8b610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd89061269a565b60405180910390fd5b826008819055508160098190555080600a81905550600a54600954600854610d0991906126ba565b610d1391906126ba565b60078190555060146007541115610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d569061275c565b60405180910390fd5b505050565b60045481565b600c5481565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e0561108f565b73ffffffffffffffffffffffffffffffffffffffff16610e23610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e709061269a565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610edc61108f565b73ffffffffffffffffffffffffffffffffffffffff16610efa610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061269a565b60405180910390fd5b6009600a610f5e91906128af565b82610f6991906128fa565b6013819055506009600a610f7d91906128af565b81610f8891906128fa565b6012819055505050565b60055481565b610fa061108f565b73ffffffffffffffffffffffffffffffffffffffff16610fbe610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b9061269a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906129c6565b60405180910390fd5b61108c816117de565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612a58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612aea565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611253919061237c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690612b7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612c0e565b60405180910390fd5b60008111611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890612ca0565b60405180910390fd5b61138a836109d3565b8111156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612d32565b60405180910390fd5b601160149054906101000a900460ff16806114305750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806114845750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612d9e565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561156e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c45750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116675760135481111561160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590612e0a565b60405180910390fd5b6012548161161b846109d3565b61162591906126ba565b1115611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90612e76565b60405180910390fd5b5b6000611672306109d3565b9050601160159054906101000a900460ff161580156116df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116f75750601160169054906101000a900460ff165b80156117035750600081115b1561172b57611711816118a2565b600047905060008111156117295761172847611b1b565b5b505b6117d8848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117d25750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b87565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118da576118d9612e96565b5b6040519080825280602002602001820160405280156119085781602001602082028036833780820191505090505b50905030816000815181106119205761191f612ec5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119eb9190612f09565b816001815181106119ff576119fe612ec5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611097565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611aca959493929190613039565b600060405180830381600087803b158015611ae457600080fd5b505af1158015611af8573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b83573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bd6919061261a565b92505081905550600081611bea5782611bf6565b611bf5858585611cba565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c4791906126ba565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cab919061237c565b60405180910390a35050505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d1b57506000600754115b15611dbe57600f60009054906101000a900461ffff1661ffff1660045483611d4391906128fa565b611d4d91906130c2565b600c81905550600f60009054906101000a900461ffff1661ffff1660055483611d7691906128fa565b611d8091906130c2565b600d81905550600f60009054906101000a900461ffff1661ffff1660065483611da991906128fa565b611db391906130c2565b600e81905550611ebd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e1d57506000600b54115b15611ebc57600f60009054906101000a900461ffff1661ffff1660085483611e4591906128fa565b611e4f91906130c2565b600c81905550600f60009054906101000a900461ffff1661ffff1660095483611e7891906128fa565b611e8291906130c2565b600d81905550600f60009054906101000a900461ffff1661ffff16600a5483611eab91906128fa565b611eb591906130c2565b600e819055505b5b600c546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f1091906126ba565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051611f78919061237c565b60405180910390a3600d5460016000600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ff391906126ba565b92505081905550600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405161207b919061237c565b60405180910390a3600e54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120d491906126ba565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161213a919061237c565b60405180910390a36000600d54600e54600c5461215791906126ba565b61216191906126ba565b9050808361216f919061261a565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121a482612179565b9050919050565b6121b481612199565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561220f5780820151818401526020810190506121f4565b8381111561221e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612240826121d5565b61224a81856121e0565b935061225a8185602086016121f1565b61226381612224565b840191505092915050565b600060208201905081810360008301526122888184612235565b905092915050565b600080fd5b61229e81612199565b81146122a957600080fd5b50565b6000813590506122bb81612295565b92915050565b6000819050919050565b6122d4816122c1565b81146122df57600080fd5b50565b6000813590506122f1816122cb565b92915050565b6000806040838503121561230e5761230d612290565b5b600061231c858286016122ac565b925050602061232d858286016122e2565b9150509250929050565b60008115159050919050565b61234c81612337565b82525050565b60006020820190506123676000830184612343565b92915050565b612376816122c1565b82525050565b6000602082019050612391600083018461236d565b92915050565b600061ffff82169050919050565b6123ae81612397565b82525050565b60006020820190506123c960008301846123a5565b92915050565b6000806000606084860312156123e8576123e7612290565b5b60006123f6868287016122ac565b9350506020612407868287016122ac565b9250506040612418868287016122e2565b9150509250925092565b600060ff82169050919050565b61243881612422565b82525050565b6000602082019050612453600083018461242f565b92915050565b60006020828403121561246f5761246e612290565b5b600061247d848285016122ac565b91505092915050565b60008060006060848603121561249f5761249e612290565b5b60006124ad868287016122e2565b93505060206124be868287016122e2565b92505060406124cf868287016122e2565b9150509250925092565b600080604083850312156124f0576124ef612290565b5b60006124fe858286016122ac565b925050602061250f858286016122ac565b9150509250929050565b600080604083850312156125305761252f612290565b5b600061253e858286016122e2565b925050602061254f858286016122e2565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006125b56028836121e0565b91506125c082612559565b604082019050919050565b600060208201905081810360008301526125e4816125a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612625826122c1565b9150612630836122c1565b925082821015612643576126426125eb565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126846020836121e0565b915061268f8261264e565b602082019050919050565b600060208201905081810360008301526126b381612677565b9050919050565b60006126c5826122c1565b91506126d0836122c1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612705576127046125eb565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000612746601d836121e0565b915061275182612710565b602082019050919050565b6000602082019050818103600083015261277581612739565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156127d3578086048111156127af576127ae6125eb565b5b60018516156127be5780820291505b80810290506127cc8561277c565b9450612793565b94509492505050565b6000826127ec57600190506128a8565b816127fa57600090506128a8565b8160018114612810576002811461281a57612849565b60019150506128a8565b60ff84111561282c5761282b6125eb565b5b8360020a915084821115612843576128426125eb565b5b506128a8565b5060208310610133831016604e8410600b841016171561287e5782820a905083811115612879576128786125eb565b5b6128a8565b61288b8484846001612789565b925090508184048111156128a2576128a16125eb565b5b81810290505b9392505050565b60006128ba826122c1565b91506128c583612422565b92506128f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127dc565b905092915050565b6000612905826122c1565b9150612910836122c1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612949576129486125eb565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129b06026836121e0565b91506129bb82612954565b604082019050919050565b600060208201905081810360008301526129df816129a3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a426024836121e0565b9150612a4d826129e6565b604082019050919050565b60006020820190508181036000830152612a7181612a35565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ad46022836121e0565b9150612adf82612a78565b604082019050919050565b60006020820190508181036000830152612b0381612ac7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b666025836121e0565b9150612b7182612b0a565b604082019050919050565b60006020820190508181036000830152612b9581612b59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bf86023836121e0565b9150612c0382612b9c565b604082019050919050565b60006020820190508181036000830152612c2781612beb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c8a6029836121e0565b9150612c9582612c2e565b604082019050919050565b60006020820190508181036000830152612cb981612c7d565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612d1c6031836121e0565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612d886017836121e0565b9150612d9382612d52565b602082019050919050565b60006020820190508181036000830152612db781612d7b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612df46019836121e0565b9150612dff82612dbe565b602082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e60601a836121e0565b9150612e6b82612e2a565b602082019050919050565b60006020820190508181036000830152612e8f81612e53565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f0381612295565b92915050565b600060208284031215612f1f57612f1e612290565b5b6000612f2d84828501612ef4565b91505092915050565b6000819050919050565b6000819050919050565b6000612f65612f60612f5b84612f36565b612f40565b6122c1565b9050919050565b612f7581612f4a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fb081612199565b82525050565b6000612fc28383612fa7565b60208301905092915050565b6000602082019050919050565b6000612fe682612f7b565b612ff08185612f86565b9350612ffb83612f97565b8060005b8381101561302c5781516130138882612fb6565b975061301e83612fce565b925050600181019050612fff565b5085935050505092915050565b600060a08201905061304e600083018861236d565b61305b6020830187612f6c565b818103604083015261306d8186612fdb565b905061307c60608301856121ab565b613089608083018461236d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130cd826122c1565b91506130d8836122c1565b9250826130e8576130e7613093565b5b82820490509291505056fea2646970667358221220b1444ec0a8d428d243ef1f9a651b17f5c4079d541ac1b3174d5e8261c5eb19a264736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b37146106b1578063ebece9c9146106da578063f239eab814610703578063f2fde38b1461072e576101e3565b8063c99f2fed146105f3578063cc70acee1461061e578063d0a3981414610649578063dd62ed3e14610674576101e3565b8063a8b08982116100d1578063a8b0898214610537578063a9059cbb14610562578063b9e937001461059f578063c17b5b8c146105ca576101e3565b80638da5cb5b1461048b57806392136913146104b657806395d89b41146104e15780639740a9461461050c576101e3565b8063313ce5671161017a57806370a082311161014957806370a08231146103e3578063715018a6146104205780637bce5a04146104375780638095d56414610462576101e3565b8063313ce56714610339578063437823ec1461036457806347afcbfe1461038d5780636cce46fc146103b8576101e3565b806318160ddd116101b657806318160ddd1461027b5780631d6167ac146102a65780631f3fed8f146102d157806323b872dd146102fc576101e3565b806303fd2a45146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610757565b60405161020a91906121ba565b60405180910390f35b34801561021f57600080fd5b5061022861075d565b604051610235919061226e565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906122f7565b61079a565b6040516102729190612352565b60405180910390f35b34801561028757600080fd5b506102906107b8565b60405161029d919061237c565b60405180910390f35b3480156102b257600080fd5b506102bb6107cc565b6040516102c891906123b4565b60405180910390f35b3480156102dd57600080fd5b506102e66107e0565b6040516102f3919061237c565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906123cf565b6107e6565b6040516103309190612352565b60405180910390f35b34801561034557600080fd5b5061034e6108e7565b60405161035b919061243e565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612459565b6108f0565b005b34801561039957600080fd5b506103a26109c7565b6040516103af919061237c565b60405180910390f35b3480156103c457600080fd5b506103cd6109cd565b6040516103da919061237c565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190612459565b6109d3565b604051610417919061237c565b60405180910390f35b34801561042c57600080fd5b50610435610a1c565b005b34801561044357600080fd5b5061044c610aa4565b604051610459919061237c565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612486565b610aaa565b005b34801561049757600080fd5b506104a0610ba9565b6040516104ad91906121ba565b60405180910390f35b3480156104c257600080fd5b506104cb610bd2565b6040516104d8919061237c565b60405180910390f35b3480156104ed57600080fd5b506104f6610bd8565b604051610503919061226e565b60405180910390f35b34801561051857600080fd5b50610521610c15565b60405161052e919061237c565b60405180910390f35b34801561054357600080fd5b5061054c610c1b565b60405161055991906121ba565b60405180910390f35b34801561056e57600080fd5b50610589600480360381019061058491906122f7565b610c41565b6040516105969190612352565b60405180910390f35b3480156105ab57600080fd5b506105b4610c5f565b6040516105c1919061237c565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190612486565b610c65565b005b3480156105ff57600080fd5b50610608610d64565b604051610615919061237c565b60405180910390f35b34801561062a57600080fd5b50610633610d6a565b604051610640919061237c565b60405180910390f35b34801561065557600080fd5b5061065e610d70565b60405161066b919061237c565b60405180910390f35b34801561068057600080fd5b5061069b600480360381019061069691906124d9565b610d76565b6040516106a8919061237c565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612459565b610dfd565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190612519565b610ed4565b005b34801561070f57600080fd5b50610718610f92565b604051610725919061237c565b60405180910390f35b34801561073a57600080fd5b5061075560048036038101906107509190612459565b610f98565b005b61dead81565b60606040518060400160405280600e81526020017f466972652043656c65737469616c000000000000000000000000000000000000815250905090565b60006107ae6107a761108f565b8484611097565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600f60009054906101000a900461ffff1681565b600e5481565b60006107f3848484611260565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083e61108f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b5906125cb565b60405180910390fd5b6108db856108ca61108f565b85846108d6919061261a565b611097565b60019150509392505050565b60006009905090565b6108f861108f565b73ffffffffffffffffffffffffffffffffffffffff16610916610ba9565b73ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639061269a565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2461108f565b73ffffffffffffffffffffffffffffffffffffffff16610a42610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f9061269a565b60405180910390fd5b610aa260006117de565b565b60065481565b610ab261108f565b73ffffffffffffffffffffffffffffffffffffffff16610ad0610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d9061269a565b60405180910390fd5b826004819055508160058190555080600681905550600654600554600454610b4e91906126ba565b610b5891906126ba565b60078190555060146007541115610ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9b9061275c565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600981526020017fe299882041524945530000000000000000000000000000000000000000000000815250905090565b600d5481565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c55610c4e61108f565b8484611260565b6001905092915050565b60075481565b610c6d61108f565b73ffffffffffffffffffffffffffffffffffffffff16610c8b610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd89061269a565b60405180910390fd5b826008819055508160098190555080600a81905550600a54600954600854610d0991906126ba565b610d1391906126ba565b60078190555060146007541115610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d569061275c565b60405180910390fd5b505050565b60045481565b600c5481565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e0561108f565b73ffffffffffffffffffffffffffffffffffffffff16610e23610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e709061269a565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610edc61108f565b73ffffffffffffffffffffffffffffffffffffffff16610efa610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061269a565b60405180910390fd5b6009600a610f5e91906128af565b82610f6991906128fa565b6013819055506009600a610f7d91906128af565b81610f8891906128fa565b6012819055505050565b60055481565b610fa061108f565b73ffffffffffffffffffffffffffffffffffffffff16610fbe610ba9565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b9061269a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906129c6565b60405180910390fd5b61108c816117de565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612a58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612aea565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611253919061237c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690612b7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612c0e565b60405180910390fd5b60008111611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890612ca0565b60405180910390fd5b61138a836109d3565b8111156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612d32565b60405180910390fd5b601160149054906101000a900460ff16806114305750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806114845750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612d9e565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561156e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c45750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116675760135481111561160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590612e0a565b60405180910390fd5b6012548161161b846109d3565b61162591906126ba565b1115611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90612e76565b60405180910390fd5b5b6000611672306109d3565b9050601160159054906101000a900460ff161580156116df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116f75750601160169054906101000a900460ff165b80156117035750600081115b1561172b57611711816118a2565b600047905060008111156117295761172847611b1b565b5b505b6117d8848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117d25750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b87565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118da576118d9612e96565b5b6040519080825280602002602001820160405280156119085781602001602082028036833780820191505090505b50905030816000815181106119205761191f612ec5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119eb9190612f09565b816001815181106119ff576119fe612ec5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611097565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611aca959493929190613039565b600060405180830381600087803b158015611ae457600080fd5b505af1158015611af8573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b83573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bd6919061261a565b92505081905550600081611bea5782611bf6565b611bf5858585611cba565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c4791906126ba565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cab919061237c565b60405180910390a35050505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d1b57506000600754115b15611dbe57600f60009054906101000a900461ffff1661ffff1660045483611d4391906128fa565b611d4d91906130c2565b600c81905550600f60009054906101000a900461ffff1661ffff1660055483611d7691906128fa565b611d8091906130c2565b600d81905550600f60009054906101000a900461ffff1661ffff1660065483611da991906128fa565b611db391906130c2565b600e81905550611ebd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e1d57506000600b54115b15611ebc57600f60009054906101000a900461ffff1661ffff1660085483611e4591906128fa565b611e4f91906130c2565b600c81905550600f60009054906101000a900461ffff1661ffff1660095483611e7891906128fa565b611e8291906130c2565b600d81905550600f60009054906101000a900461ffff1661ffff16600a5483611eab91906128fa565b611eb591906130c2565b600e819055505b5b600c546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f1091906126ba565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051611f78919061237c565b60405180910390a3600d5460016000600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ff391906126ba565b92505081905550600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405161207b919061237c565b60405180910390a3600e54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120d491906126ba565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161213a919061237c565b60405180910390a36000600d54600e54600c5461215791906126ba565b61216191906126ba565b9050808361216f919061261a565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121a482612179565b9050919050565b6121b481612199565b82525050565b60006020820190506121cf60008301846121ab565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561220f5780820151818401526020810190506121f4565b8381111561221e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612240826121d5565b61224a81856121e0565b935061225a8185602086016121f1565b61226381612224565b840191505092915050565b600060208201905081810360008301526122888184612235565b905092915050565b600080fd5b61229e81612199565b81146122a957600080fd5b50565b6000813590506122bb81612295565b92915050565b6000819050919050565b6122d4816122c1565b81146122df57600080fd5b50565b6000813590506122f1816122cb565b92915050565b6000806040838503121561230e5761230d612290565b5b600061231c858286016122ac565b925050602061232d858286016122e2565b9150509250929050565b60008115159050919050565b61234c81612337565b82525050565b60006020820190506123676000830184612343565b92915050565b612376816122c1565b82525050565b6000602082019050612391600083018461236d565b92915050565b600061ffff82169050919050565b6123ae81612397565b82525050565b60006020820190506123c960008301846123a5565b92915050565b6000806000606084860312156123e8576123e7612290565b5b60006123f6868287016122ac565b9350506020612407868287016122ac565b9250506040612418868287016122e2565b9150509250925092565b600060ff82169050919050565b61243881612422565b82525050565b6000602082019050612453600083018461242f565b92915050565b60006020828403121561246f5761246e612290565b5b600061247d848285016122ac565b91505092915050565b60008060006060848603121561249f5761249e612290565b5b60006124ad868287016122e2565b93505060206124be868287016122e2565b92505060406124cf868287016122e2565b9150509250925092565b600080604083850312156124f0576124ef612290565b5b60006124fe858286016122ac565b925050602061250f858286016122ac565b9150509250929050565b600080604083850312156125305761252f612290565b5b600061253e858286016122e2565b925050602061254f858286016122e2565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006125b56028836121e0565b91506125c082612559565b604082019050919050565b600060208201905081810360008301526125e4816125a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612625826122c1565b9150612630836122c1565b925082821015612643576126426125eb565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126846020836121e0565b915061268f8261264e565b602082019050919050565b600060208201905081810360008301526126b381612677565b9050919050565b60006126c5826122c1565b91506126d0836122c1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612705576127046125eb565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000612746601d836121e0565b915061275182612710565b602082019050919050565b6000602082019050818103600083015261277581612739565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156127d3578086048111156127af576127ae6125eb565b5b60018516156127be5780820291505b80810290506127cc8561277c565b9450612793565b94509492505050565b6000826127ec57600190506128a8565b816127fa57600090506128a8565b8160018114612810576002811461281a57612849565b60019150506128a8565b60ff84111561282c5761282b6125eb565b5b8360020a915084821115612843576128426125eb565b5b506128a8565b5060208310610133831016604e8410600b841016171561287e5782820a905083811115612879576128786125eb565b5b6128a8565b61288b8484846001612789565b925090508184048111156128a2576128a16125eb565b5b81810290505b9392505050565b60006128ba826122c1565b91506128c583612422565b92506128f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127dc565b905092915050565b6000612905826122c1565b9150612910836122c1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612949576129486125eb565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006129b06026836121e0565b91506129bb82612954565b604082019050919050565b600060208201905081810360008301526129df816129a3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a426024836121e0565b9150612a4d826129e6565b604082019050919050565b60006020820190508181036000830152612a7181612a35565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ad46022836121e0565b9150612adf82612a78565b604082019050919050565b60006020820190508181036000830152612b0381612ac7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b666025836121e0565b9150612b7182612b0a565b604082019050919050565b60006020820190508181036000830152612b9581612b59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bf86023836121e0565b9150612c0382612b9c565b604082019050919050565b60006020820190508181036000830152612c2781612beb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c8a6029836121e0565b9150612c9582612c2e565b604082019050919050565b60006020820190508181036000830152612cb981612c7d565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612d1c6031836121e0565b9150612d2782612cc0565b604082019050919050565b60006020820190508181036000830152612d4b81612d0f565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612d886017836121e0565b9150612d9382612d52565b602082019050919050565b60006020820190508181036000830152612db781612d7b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612df46019836121e0565b9150612dff82612dbe565b602082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e60601a836121e0565b9150612e6b82612e2a565b602082019050919050565b60006020820190508181036000830152612e8f81612e53565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f0381612295565b92915050565b600060208284031215612f1f57612f1e612290565b5b6000612f2d84828501612ef4565b91505092915050565b6000819050919050565b6000819050919050565b6000612f65612f60612f5b84612f36565b612f40565b6122c1565b9050919050565b612f7581612f4a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fb081612199565b82525050565b6000612fc28383612fa7565b60208301905092915050565b6000602082019050919050565b6000612fe682612f7b565b612ff08185612f86565b9350612ffb83612f97565b8060005b8381101561302c5781516130138882612fb6565b975061301e83612fce565b925050600181019050612fff565b5085935050505092915050565b600060a08201905061304e600083018861236d565b61305b6020830187612f6c565b818103604083015261306d8186612fdb565b905061307c60608301856121ab565b613089608083018461236d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130cd826122c1565b91506130d8836122c1565b9250826130e8576130e7613093565b5b82820490509291505056fea2646970667358221220b1444ec0a8d428d243ef1f9a651b17f5c4079d541ac1b3174d5e8261c5eb19a264736f6c634300080f0033

Deployed Bytecode Sourcemap

4277:10043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5347:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8523:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8042:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5300:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5260:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8669:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7967:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12838:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4947:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4990:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8129:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2940:94;;;;;;;;;;;;;:::i;:::-;;4811:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13300:423;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2717:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5036:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7888:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5216:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5427:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8238:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4854:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13735:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4724:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5177:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5080:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8388:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12957:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13075:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4766:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3042:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5347:73;5378:42;5347:73;:::o;7813:69::-;7850:13;7874:5;;;;;;;;;;;;;;;;;7867:12;;7813:69;:::o;8523:138::-;8598:4;8606:39;8615:12;:10;:12::i;:::-;8629:7;8638:6;8606:8;:39::i;:::-;8654:4;8647:11;;8523:138;;;;:::o;8042:81::-;8095:7;5690:27;8106:14;;8042:81;:::o;5300:38::-;;;;;;;;;;;;;:::o;5260:33::-;;;;:::o;8669:420::-;8775:4;8792:36;8802:6;8810:9;8821:6;8792:9;:36::i;:::-;8841:24;8868:11;:19;8880:6;8868:19;;;;;;;;;;;;;;;:33;8888:12;:10;:12::i;:::-;8868:33;;;;;;;;;;;;;;;;8841:60;;8940:6;8920:16;:26;;8912:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9002:57;9011:6;9019:12;:10;:12::i;:::-;9052:6;9033:16;:25;;;;:::i;:::-;9002:8;:57::i;:::-;9077:4;9070:11;;;8669:420;;;;;:::o;7967:69::-;8008:5;4714:1;8017:16;;7967:69;:::o;12838:111::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12937:4:::1;12907:18;:27;12926:7;12907:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12838:111:::0;:::o;4947:36::-;;;;:::o;4990:39::-;;;;:::o;8129:103::-;8195:7;8213;:16;8221:7;8213:16;;;;;;;;;;;;;;;;8206:23;;8129:103;;;:::o;2940:94::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3005:21:::1;3023:1;3005:9;:21::i;:::-;2940:94::o:0;4811:36::-;;;;:::o;13300:423::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13451:15:::1;13434:14;:32;;;;13499:20;13477:19;:42;;;;13548:16;13530:15;:34;;;;13629:15;;13607:19;;13590:14;;:36;;;;:::i;:::-;:54;;;;:::i;:::-;13575:12;:69;;;;13679:2;13663:12;;:18;;13655:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13300:423:::0;;;:::o;2717:87::-;2763:7;2790:6;;;;;;;;;;;2783:13;;2717:87;:::o;5036:37::-;;;;:::o;7888:73::-;7927:13;7951:7;;;;;;;;;;;;;;;;;7944:14;;7888:73;:::o;5216:37::-;;;;:::o;5427:26::-;;;;;;;;;;;;;:::o;8238:144::-;8316:4;8324:42;8334:12;:10;:12::i;:::-;8348:9;8359:6;8324:9;:42::i;:::-;8375:4;8368:11;;8238:144;;;;:::o;4854:84::-;;;;:::o;13735:436::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13891:16:::1;13873:15;:34;;;;13941:21;13918:20;:44;;;;13992:17;13973:16;:36;;;;14076:16;;14053:20;;14035:15;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;14020:12;:72;;;;14127:2;14111:12;;:18;;14103:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13735:436:::0;;;:::o;4724:35::-;;;;:::o;5177:32::-;;;;:::o;5080:88::-;;;;:::o;8388:129::-;8469:7;8487:11;:18;8499:5;8487:18;;;;;;;;;;;;;;;:27;8506:7;8487:27;;;;;;;;;;;;;;;;8480:34;;8388:129;;;;:::o;12957:110::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13054:5:::1;13024:18;:27;13043:7;13024:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12957:110:::0;:::o;13075:217::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4714:1:::1;13210:2;:14;;;;:::i;:::-;13195:12;:29;;;;:::i;:::-;13181:11;:43;;;;4714:1;13270:2;:14;;;;:::i;:::-;13253;:31;;;;:::i;:::-;13235:15;:49;;;;13075:217:::0;;:::o;4766:38::-;;;;:::o;3042:192::-;2863:12;:10;:12::i;:::-;2852:23;;:7;:5;:7::i;:::-;:23;;;2844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3131:22;;:8;:22;;::::0;3123:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3207:19;3217:8;3207:9;:19::i;:::-;3042:192:::0;:::o;2138:98::-;2191:7;2218:10;2211:17;;2138:98;:::o;9097:335::-;9207:1;9190:19;;:5;:19;;;9182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9288:1;9269:21;;:7;:21;;;9261:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9370:6;9340:11;:18;9352:5;9340:18;;;;;;;;;;;;;;;:27;9359:7;9340:27;;;;;;;;;;;;;;;:36;;;;9408:7;9392:32;;9401:5;9392:32;;;9417:6;9392:32;;;;;;:::i;:::-;;;;;;;;9097:335;;;:::o;9440:1335::-;9544:1;9528:18;;:4;:18;;;9520:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9621:1;9607:16;;:2;:16;;;9599:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9691:1;9682:6;:10;9674:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9767:15;9777:4;9767:9;:15::i;:::-;9757:6;:25;;9749:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9858:11;;;;;;;;;;;:39;;;;9873:18;:24;9892:4;9873:24;;;;;;;;;;;;;;;;;;;;;;;;;9858:39;:65;;;;9901:18;:22;9920:2;9901:22;;;;;;;;;;;;;;;;;;;;;;;;;9858:65;9850:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;9976:13;;;;;;;;;;;9968:21;;:4;:21;;;:55;;;;;10007:15;;;;;;;;;;;9993:30;;:2;:30;;;;9968:55;:83;;;;;10029:18;:22;10048:2;10029:22;;;;;;;;;;;;;;;;;;;;;;;;;10027:24;9968:83;9964:278;;;10090:11;;10080:6;:21;;10072:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10184:15;;10174:6;10158:13;10168:2;10158:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10150:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;9964:278;10254:28;10285:24;10303:4;10285:9;:24::i;:::-;10254:55;;10329:6;;;;;;;;;;;10328:7;:32;;;;;10347:13;;;;;;;;;;;10339:21;;:4;:21;;;;10328:32;:47;;;;;10364:11;;;;;;;;;;;10328:47;:73;;;;;10400:1;10379:20;:22;10328:73;10324:344;;;10422:38;10439:20;10422:16;:38::i;:::-;10479:26;10508:21;10479:50;;10572:1;10551:18;:22;10548:105;;;10598:35;10611:21;10598:12;:35::i;:::-;10548:105;10403:265;10324:344;10680:87;10695:4;10701:2;10705:6;10715:18;:24;10734:4;10715:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10743:18;:22;10762:2;10743:22;;;;;;;;;;;;;;;;;;;;;;;;;10715:50;10713:53;10680:14;:87::i;:::-;9509:1266;9440:1335;;;:::o;3242:173::-;3298:16;3317:6;;;;;;;;;;;3298:25;;3343:8;3334:6;;:17;;;;;;;;;;;;;;;;;;3398:8;3367:40;;3388:8;3367:40;;;;;;;;;;;;3287:128;3242:173;:::o;10783:483::-;5996:4;5987:6;;:13;;;;;;;;;;;;;;;;;;10861:21:::1;10899:1;10885:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10861:40;;10930:4;10912;10917:1;10912:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10956:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10946:4;10951:1;10946:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10989:62;11006:4;11021:15;;;;;;;;;;;11039:11;10989:8;:62::i;:::-;11062:15;;;;;;;;;;;:66;;;11143:11;11169:1;11185:4;11212;11232:15;11062:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10850:416;6032:5:::0;6023:6;;:14;;;;;;;;;;;;;;;;;;10783:483;:::o;14179:95::-;14236:13;;;;;;;;;;;:22;;:30;14259:6;14236:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14179:95;:::o;11274:340::-;11401:6;11382:7;:15;11390:6;11382:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;11418:22;11444:7;11443:57;;11494:6;11443:57;;;11455:36;11465:6;11473:9;11484:6;11455:9;:36::i;:::-;11443:57;11418:82;;11533:14;11511:7;:18;11519:9;11511:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11580:9;11563:43;;11572:6;11563:43;;;11591:14;11563:43;;;;;;:::i;:::-;;;;;;;;11371:243;11274:340;;;;:::o;11622:1208::-;11701:7;11732:13;;;;;;;;;;;11724:21;;:4;:21;;;:41;;;;;11764:1;11749:12;;:16;11724:41;11721:628;;;11830:16;;;;;;;;;;;11804:42;;11813:14;;11804:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;11784:17;:62;;;;11917:16;;;;;;;;;;;11886:47;;11895:19;;11886:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;11861:22;:72;;;;11996:16;;;;;;;;;;;11969:43;;11978:15;;11969:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;11948:18;:64;;;;11721:628;;;12044:13;;;;;;;;;;;12038:19;;:2;:19;;;:41;;;;;12078:1;12062:13;;:17;12038:41;12034:315;;;12145:16;;;;;;;;;;;12118:43;;12127:15;;12118:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12098:17;:63;;;;12233:16;;;;;;;;;;;12201:48;;12210:20;;12201:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;12176:22;:73;;;;12313:16;;;;;;;;;;;12285:44;;12294:16;;12285:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12264:18;:65;;;;12034:315;11721:628;12376:17;;12359:7;:13;5378:42;12359:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;5378:42;12409:39;;12418:4;12409:39;;;12430:17;;12409:39;;;;;;:::i;:::-;;;;;;;;12483:22;;12459:7;:20;12467:11;;;;;;;;;;;12459:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12536:11;;;;;;;;;;;12521:51;;12530:4;12521:51;;;12549:22;;12521:51;;;;;;:::i;:::-;;;;;;;;12609:18;;12583:7;:22;12599:4;12583:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;12666:4;12643:49;;12652:4;12643:49;;;12673:18;;12643:49;;;;;;:::i;:::-;;;;;;;;12703:17;12764:22;;12743:18;;12723:17;;:38;;;;:::i;:::-;:63;;;;:::i;:::-;12703:83;;12813:9;12804:6;:18;;;;:::i;:::-;12797:25;;;11622:1208;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;2064:117::-;2173:1;2170;2163:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:619::-;6105:6;6113;6121;6170:2;6158:9;6149:7;6145:23;6141:32;6138:119;;;6176:79;;:::i;:::-;6138:119;6296:1;6321:53;6366:7;6357:6;6346:9;6342:22;6321:53;:::i;:::-;6311:63;;6267:117;6423:2;6449:53;6494:7;6485:6;6474:9;6470:22;6449:53;:::i;:::-;6439:63;;6394:118;6551:2;6577:53;6622:7;6613:6;6602:9;6598:22;6577:53;:::i;:::-;6567:63;;6522:118;6028:619;;;;;:::o;6653:474::-;6721:6;6729;6778:2;6766:9;6757:7;6753:23;6749:32;6746:119;;;6784:79;;:::i;:::-;6746:119;6904:1;6929:53;6974:7;6965:6;6954:9;6950:22;6929:53;:::i;:::-;6919:63;;6875:117;7031:2;7057:53;7102:7;7093:6;7082:9;7078:22;7057:53;:::i;:::-;7047:63;;7002:118;6653:474;;;;;:::o;7133:::-;7201:6;7209;7258:2;7246:9;7237:7;7233:23;7229:32;7226:119;;;7264:79;;:::i;:::-;7226:119;7384:1;7409:53;7454:7;7445:6;7434:9;7430:22;7409:53;:::i;:::-;7399:63;;7355:117;7511:2;7537:53;7582:7;7573:6;7562:9;7558:22;7537:53;:::i;:::-;7527:63;;7482:118;7133:474;;;;;:::o;7613:227::-;7753:34;7749:1;7741:6;7737:14;7730:58;7822:10;7817:2;7809:6;7805:15;7798:35;7613:227;:::o;7846:366::-;7988:3;8009:67;8073:2;8068:3;8009:67;:::i;:::-;8002:74;;8085:93;8174:3;8085:93;:::i;:::-;8203:2;8198:3;8194:12;8187:19;;7846:366;;;:::o;8218:419::-;8384:4;8422:2;8411:9;8407:18;8399:26;;8471:9;8465:4;8461:20;8457:1;8446:9;8442:17;8435:47;8499:131;8625:4;8499:131;:::i;:::-;8491:139;;8218:419;;;:::o;8643:180::-;8691:77;8688:1;8681:88;8788:4;8785:1;8778:15;8812:4;8809:1;8802:15;8829:191;8869:4;8889:20;8907:1;8889:20;:::i;:::-;8884:25;;8923:20;8941:1;8923:20;:::i;:::-;8918:25;;8962:1;8959;8956:8;8953:34;;;8967:18;;:::i;:::-;8953:34;9012:1;9009;9005:9;8997:17;;8829:191;;;;:::o;9026:182::-;9166:34;9162:1;9154:6;9150:14;9143:58;9026:182;:::o;9214:366::-;9356:3;9377:67;9441:2;9436:3;9377:67;:::i;:::-;9370:74;;9453:93;9542:3;9453:93;:::i;:::-;9571:2;9566:3;9562:12;9555:19;;9214:366;;;:::o;9586:419::-;9752:4;9790:2;9779:9;9775:18;9767:26;;9839:9;9833:4;9829:20;9825:1;9814:9;9810:17;9803:47;9867:131;9993:4;9867:131;:::i;:::-;9859:139;;9586:419;;;:::o;10011:305::-;10051:3;10070:20;10088:1;10070:20;:::i;:::-;10065:25;;10104:20;10122:1;10104:20;:::i;:::-;10099:25;;10258:1;10190:66;10186:74;10183:1;10180:81;10177:107;;;10264:18;;:::i;:::-;10177:107;10308:1;10305;10301:9;10294:16;;10011:305;;;;:::o;10322:179::-;10462:31;10458:1;10450:6;10446:14;10439:55;10322:179;:::o;10507:366::-;10649:3;10670:67;10734:2;10729:3;10670:67;:::i;:::-;10663:74;;10746:93;10835:3;10746:93;:::i;:::-;10864:2;10859:3;10855:12;10848:19;;10507:366;;;:::o;10879:419::-;11045:4;11083:2;11072:9;11068:18;11060:26;;11132:9;11126:4;11122:20;11118:1;11107:9;11103:17;11096:47;11160:131;11286:4;11160:131;:::i;:::-;11152:139;;10879:419;;;:::o;11304:102::-;11346:8;11393:5;11390:1;11386:13;11365:34;;11304:102;;;:::o;11412:848::-;11473:5;11480:4;11504:6;11495:15;;11528:5;11519:14;;11542:712;11563:1;11553:8;11550:15;11542:712;;;11658:4;11653:3;11649:14;11643:4;11640:24;11637:50;;;11667:18;;:::i;:::-;11637:50;11717:1;11707:8;11703:16;11700:451;;;12132:4;12125:5;12121:16;12112:25;;11700:451;12182:4;12176;12172:15;12164:23;;12212:32;12235:8;12212:32;:::i;:::-;12200:44;;11542:712;;;11412:848;;;;;;;:::o;12266:1073::-;12320:5;12511:8;12501:40;;12532:1;12523:10;;12534:5;;12501:40;12560:4;12550:36;;12577:1;12568:10;;12579:5;;12550:36;12646:4;12694:1;12689:27;;;;12730:1;12725:191;;;;12639:277;;12689:27;12707:1;12698:10;;12709:5;;;12725:191;12770:3;12760:8;12757:17;12754:43;;;12777:18;;:::i;:::-;12754:43;12826:8;12823:1;12819:16;12810:25;;12861:3;12854:5;12851:14;12848:40;;;12868:18;;:::i;:::-;12848:40;12901:5;;;12639:277;;13025:2;13015:8;13012:16;13006:3;13000:4;12997:13;12993:36;12975:2;12965:8;12962:16;12957:2;12951:4;12948:12;12944:35;12928:111;12925:246;;;13081:8;13075:4;13071:19;13062:28;;13116:3;13109:5;13106:14;13103:40;;;13123:18;;:::i;:::-;13103:40;13156:5;;12925:246;13196:42;13234:3;13224:8;13218:4;13215:1;13196:42;:::i;:::-;13181:57;;;;13270:4;13265:3;13261:14;13254:5;13251:25;13248:51;;;13279:18;;:::i;:::-;13248:51;13328:4;13321:5;13317:16;13308:25;;12266:1073;;;;;;:::o;13345:281::-;13403:5;13427:23;13445:4;13427:23;:::i;:::-;13419:31;;13471:25;13487:8;13471:25;:::i;:::-;13459:37;;13515:104;13552:66;13542:8;13536:4;13515:104;:::i;:::-;13506:113;;13345:281;;;;:::o;13632:348::-;13672:7;13695:20;13713:1;13695:20;:::i;:::-;13690:25;;13729:20;13747:1;13729:20;:::i;:::-;13724:25;;13917:1;13849:66;13845:74;13842:1;13839:81;13834:1;13827:9;13820:17;13816:105;13813:131;;;13924:18;;:::i;:::-;13813:131;13972:1;13969;13965:9;13954:20;;13632:348;;;;:::o;13986:225::-;14126:34;14122:1;14114:6;14110:14;14103:58;14195:8;14190:2;14182:6;14178:15;14171:33;13986:225;:::o;14217:366::-;14359:3;14380:67;14444:2;14439:3;14380:67;:::i;:::-;14373:74;;14456:93;14545:3;14456:93;:::i;:::-;14574:2;14569:3;14565:12;14558:19;;14217:366;;;:::o;14589:419::-;14755:4;14793:2;14782:9;14778:18;14770:26;;14842:9;14836:4;14832:20;14828:1;14817:9;14813:17;14806:47;14870:131;14996:4;14870:131;:::i;:::-;14862:139;;14589:419;;;:::o;15014:223::-;15154:34;15150:1;15142:6;15138:14;15131:58;15223:6;15218:2;15210:6;15206:15;15199:31;15014:223;:::o;15243:366::-;15385:3;15406:67;15470:2;15465:3;15406:67;:::i;:::-;15399:74;;15482:93;15571:3;15482:93;:::i;:::-;15600:2;15595:3;15591:12;15584:19;;15243:366;;;:::o;15615:419::-;15781:4;15819:2;15808:9;15804:18;15796:26;;15868:9;15862:4;15858:20;15854:1;15843:9;15839:17;15832:47;15896:131;16022:4;15896:131;:::i;:::-;15888:139;;15615:419;;;:::o;16040:221::-;16180:34;16176:1;16168:6;16164:14;16157:58;16249:4;16244:2;16236:6;16232:15;16225:29;16040:221;:::o;16267:366::-;16409:3;16430:67;16494:2;16489:3;16430:67;:::i;:::-;16423:74;;16506:93;16595:3;16506:93;:::i;:::-;16624:2;16619:3;16615:12;16608:19;;16267:366;;;:::o;16639:419::-;16805:4;16843:2;16832:9;16828:18;16820:26;;16892:9;16886:4;16882:20;16878:1;16867:9;16863:17;16856:47;16920:131;17046:4;16920:131;:::i;:::-;16912:139;;16639:419;;;:::o;17064:224::-;17204:34;17200:1;17192:6;17188:14;17181:58;17273:7;17268:2;17260:6;17256:15;17249:32;17064:224;:::o;17294:366::-;17436:3;17457:67;17521:2;17516:3;17457:67;:::i;:::-;17450:74;;17533:93;17622:3;17533:93;:::i;:::-;17651:2;17646:3;17642:12;17635:19;;17294:366;;;:::o;17666:419::-;17832:4;17870:2;17859:9;17855:18;17847:26;;17919:9;17913:4;17909:20;17905:1;17894:9;17890:17;17883:47;17947:131;18073:4;17947:131;:::i;:::-;17939:139;;17666:419;;;:::o;18091:222::-;18231:34;18227:1;18219:6;18215:14;18208:58;18300:5;18295:2;18287:6;18283:15;18276:30;18091:222;:::o;18319:366::-;18461:3;18482:67;18546:2;18541:3;18482:67;:::i;:::-;18475:74;;18558:93;18647:3;18558:93;:::i;:::-;18676:2;18671:3;18667:12;18660:19;;18319:366;;;:::o;18691:419::-;18857:4;18895:2;18884:9;18880:18;18872:26;;18944:9;18938:4;18934:20;18930:1;18919:9;18915:17;18908:47;18972:131;19098:4;18972:131;:::i;:::-;18964:139;;18691:419;;;:::o;19116:228::-;19256:34;19252:1;19244:6;19240:14;19233:58;19325:11;19320:2;19312:6;19308:15;19301:36;19116:228;:::o;19350:366::-;19492:3;19513:67;19577:2;19572:3;19513:67;:::i;:::-;19506:74;;19589:93;19678:3;19589:93;:::i;:::-;19707:2;19702:3;19698:12;19691:19;;19350:366;;;:::o;19722:419::-;19888:4;19926:2;19915:9;19911:18;19903:26;;19975:9;19969:4;19965:20;19961:1;19950:9;19946:17;19939:47;20003:131;20129:4;20003:131;:::i;:::-;19995:139;;19722:419;;;:::o;20147:236::-;20287:34;20283:1;20275:6;20271:14;20264:58;20356:19;20351:2;20343:6;20339:15;20332:44;20147:236;:::o;20389:366::-;20531:3;20552:67;20616:2;20611:3;20552:67;:::i;:::-;20545:74;;20628:93;20717:3;20628:93;:::i;:::-;20746:2;20741:3;20737:12;20730:19;;20389:366;;;:::o;20761:419::-;20927:4;20965:2;20954:9;20950:18;20942:26;;21014:9;21008:4;21004:20;21000:1;20989:9;20985:17;20978:47;21042:131;21168:4;21042:131;:::i;:::-;21034:139;;20761:419;;;:::o;21186:173::-;21326:25;21322:1;21314:6;21310:14;21303:49;21186:173;:::o;21365:366::-;21507:3;21528:67;21592:2;21587:3;21528:67;:::i;:::-;21521:74;;21604:93;21693:3;21604:93;:::i;:::-;21722:2;21717:3;21713:12;21706:19;;21365:366;;;:::o;21737:419::-;21903:4;21941:2;21930:9;21926:18;21918:26;;21990:9;21984:4;21980:20;21976:1;21965:9;21961:17;21954:47;22018:131;22144:4;22018:131;:::i;:::-;22010:139;;21737:419;;;:::o;22162:175::-;22302:27;22298:1;22290:6;22286:14;22279:51;22162:175;:::o;22343:366::-;22485:3;22506:67;22570:2;22565:3;22506:67;:::i;:::-;22499:74;;22582:93;22671:3;22582:93;:::i;:::-;22700:2;22695:3;22691:12;22684:19;;22343:366;;;:::o;22715:419::-;22881:4;22919:2;22908:9;22904:18;22896:26;;22968:9;22962:4;22958:20;22954:1;22943:9;22939:17;22932:47;22996:131;23122:4;22996:131;:::i;:::-;22988:139;;22715:419;;;:::o;23140:176::-;23280:28;23276:1;23268:6;23264:14;23257:52;23140:176;:::o;23322:366::-;23464:3;23485:67;23549:2;23544:3;23485:67;:::i;:::-;23478:74;;23561:93;23650:3;23561:93;:::i;:::-;23679:2;23674:3;23670:12;23663:19;;23322:366;;;:::o;23694:419::-;23860:4;23898:2;23887:9;23883:18;23875:26;;23947:9;23941:4;23937:20;23933:1;23922:9;23918:17;23911:47;23975:131;24101:4;23975:131;:::i;:::-;23967:139;;23694:419;;;:::o;24119:180::-;24167:77;24164:1;24157:88;24264:4;24261:1;24254:15;24288:4;24285:1;24278:15;24305:180;24353:77;24350:1;24343:88;24450:4;24447:1;24440:15;24474:4;24471:1;24464:15;24491:143;24548:5;24579:6;24573:13;24564:22;;24595:33;24622:5;24595:33;:::i;:::-;24491:143;;;;:::o;24640:351::-;24710:6;24759:2;24747:9;24738:7;24734:23;24730:32;24727:119;;;24765:79;;:::i;:::-;24727:119;24885:1;24910:64;24966:7;24957:6;24946:9;24942:22;24910:64;:::i;:::-;24900:74;;24856:128;24640:351;;;;:::o;24997:85::-;25042:7;25071:5;25060:16;;24997:85;;;:::o;25088:60::-;25116:3;25137:5;25130:12;;25088:60;;;:::o;25154:158::-;25212:9;25245:61;25263:42;25272:32;25298:5;25272:32;:::i;:::-;25263:42;:::i;:::-;25245:61;:::i;:::-;25232:74;;25154:158;;;:::o;25318:147::-;25413:45;25452:5;25413:45;:::i;:::-;25408:3;25401:58;25318:147;;:::o;25471:114::-;25538:6;25572:5;25566:12;25556:22;;25471:114;;;:::o;25591:184::-;25690:11;25724:6;25719:3;25712:19;25764:4;25759:3;25755:14;25740:29;;25591:184;;;;:::o;25781:132::-;25848:4;25871:3;25863:11;;25901:4;25896:3;25892:14;25884:22;;25781:132;;;:::o;25919:108::-;25996:24;26014:5;25996:24;:::i;:::-;25991:3;25984:37;25919:108;;:::o;26033:179::-;26102:10;26123:46;26165:3;26157:6;26123:46;:::i;:::-;26201:4;26196:3;26192:14;26178:28;;26033:179;;;;:::o;26218:113::-;26288:4;26320;26315:3;26311:14;26303:22;;26218:113;;;:::o;26367:732::-;26486:3;26515:54;26563:5;26515:54;:::i;:::-;26585:86;26664:6;26659:3;26585:86;:::i;:::-;26578:93;;26695:56;26745:5;26695:56;:::i;:::-;26774:7;26805:1;26790:284;26815:6;26812:1;26809:13;26790:284;;;26891:6;26885:13;26918:63;26977:3;26962:13;26918:63;:::i;:::-;26911:70;;27004:60;27057:6;27004:60;:::i;:::-;26994:70;;26850:224;26837:1;26834;26830:9;26825:14;;26790:284;;;26794:14;27090:3;27083:10;;26491:608;;;26367:732;;;;:::o;27105:831::-;27368:4;27406:3;27395:9;27391:19;27383:27;;27420:71;27488:1;27477:9;27473:17;27464:6;27420:71;:::i;:::-;27501:80;27577:2;27566:9;27562:18;27553:6;27501:80;:::i;:::-;27628:9;27622:4;27618:20;27613:2;27602:9;27598:18;27591:48;27656:108;27759:4;27750:6;27656:108;:::i;:::-;27648:116;;27774:72;27842:2;27831:9;27827:18;27818:6;27774:72;:::i;:::-;27856:73;27924:3;27913:9;27909:19;27900:6;27856:73;:::i;:::-;27105:831;;;;;;;;:::o;27942:180::-;27990:77;27987:1;27980:88;28087:4;28084:1;28077:15;28111:4;28108:1;28101:15;28128:185;28168:1;28185:20;28203:1;28185:20;:::i;:::-;28180:25;;28219:20;28237:1;28219:20;:::i;:::-;28214:25;;28258:1;28248:35;;28263:18;;:::i;:::-;28248:35;28305:1;28302;28298:9;28293:14;;28128:185;;;;:::o

Swarm Source

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