ETH Price: $3,606.75 (+8.55%)

Token

OnlyMemes (OM)
 

Overview

Max Total Supply

1,000,000,000 OM

Holders

310

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.850578890424932155 OM

Value
$0.00
0x1d95a0b56e5bed6be9dbb8ed771b669d166fad75
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:
OM

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-23
*/

// SPDX-License-Identifier: UNLICENSED
// ALL RIGHTS RESERVED

pragma solidity =0.8.17;

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

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

interface IDexRouter {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    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);

}

interface IDexPair {
    event Sync(uint112 reserve0, uint112 reserve1);
    function sync() external;
}

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() external onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

pragma solidity =0.8.17;
contract OM is IERC20, Ownable  
{
    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping(address => bool) private excludedFromLimits;
    mapping(address => bool) public excludedFromFees;
    mapping(address=>bool) public isAMM;
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    
    string private constant _name = 'OnlyMemes';// 
    string private constant _symbol = 'OM';// 

    uint8 private constant _decimals=18;

    uint private constant InitialSupply=10**9 * 10**_decimals;
    uint public buyTax = 50; //10=1%  
    uint public sellTax = 250;
    uint public transferTax = 0;
    uint public liquidityTax= 0;
    uint public Tax= 1000; // lp+tax must equal 1000 // 1000=100%
    uint public swapTreshold=10; //Dynamic Swap Threshold based on price impact. 1=0.1% max 10
    uint public overLiquifyTreshold=100;
    uint public LaunchTimestamp;
    uint private devFee=100; //devfee+marketingfee must = 100 
    uint private marketingFee= 0;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=10;

    uint256 public maxWalletBalance;
    uint256 public maxTransactionAmount;
    uint256 public percentForLPBurn = 25; // 25 = .25%
    uint256 public lpBurnFrequency = 3600 seconds;
    uint256 public lastLpBurnTime;
    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;

    bool private _isSwappingContractModifier;
    bool public manualSwap;
    bool public lpBurnEnabled = true;

    IDexRouter private  _DexRouter;

    address private _PairAddress; 
    address public marketingWallet;
    address public devWallet; 
    address public constant burnWallet=address(0xdead);
    address private constant DexRouter= 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; 
    
    event ManualNukeLP();
    event AutoNukeLP();
    event MaxWalletBalanceUpdated(uint256 percent);
    event OnSetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity);
    event ExcludeAccount(address account, bool exclude);
    event OnEnableTrading();
    event OnReleaseLP();
    event ExcludeFromLimits(address account, bool exclude);
    event MarketingWalletChange(address newWallet);
    event DevWalletChange(address newWallet);
    event SharesUpdated(uint _devShare, uint _marketingShare);
    event AMMadded(address AMM);
    event ManualSwapOn(bool manual);
    event ManualSwapPerformed();
    event MaxTransactionAmountUpdated(uint256 percent);
    event SwapThresholdChange(uint newSwapTresholdPermille);
    event OverLiquifiedThresholdChange(uint newOverLiquifyTresholdPermille);
    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    constructor () {
        uint ownerBalance=InitialSupply;
        _balances[msg.sender] = ownerBalance;
        emit Transfer(address(0), msg.sender, ownerBalance);

        _DexRouter = IDexRouter(DexRouter);
        _PairAddress = IDexFactory(_DexRouter.factory()).createPair(address(this), _DexRouter.WETH());
        isAMM[_PairAddress]=true;
        
        marketingWallet= msg.sender; // address(0xdead)
        devWallet= msg.sender; // msg.sendger

        excludedFromFees[msg.sender]=true;
        excludedFromFees[DexRouter]=true;
        excludedFromFees[address(this)]=true;
        excludedFromLimits[burnWallet] = true;
        excludedFromLimits[address(this)] = true;
    }
    function ChangeMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet=newWallet;
        emit MarketingWalletChange(newWallet);
    }
    function ChangeDevWallet(address newWallet) external onlyOwner{
        devWallet=newWallet;
        emit DevWalletChange(newWallet);
    }
    function SetFeeShares(uint _devFee, uint _marketingFee) external onlyOwner{
        require(_devFee+_marketingFee<=100);
        devFee=_devFee;
        marketingFee=_marketingFee;
        emit SharesUpdated(_devFee, _marketingFee);
    }
    function setRestrictionPercents(uint256 WALpercent, uint256 TXNpercent) external onlyOwner {
        require(WALpercent >= 10, "min 1%"); // 10=1%
        require(WALpercent <= 1000, "max 100%");
        maxWalletBalance = InitialSupply * WALpercent / 1000;
        require(TXNpercent >= 25, "min 0.25%");
        require(TXNpercent <= 10000, "max 100%"); // 100=1%
        maxTransactionAmount = InitialSupply * TXNpercent / 10000;
        emit MaxWalletBalanceUpdated(WALpercent);
        emit MaxTransactionAmountUpdated(TXNpercent);
    }

    function removeAllRestrictions() external onlyOwner {
        maxWalletBalance = InitialSupply;
        maxTransactionAmount = InitialSupply;
        transferDelayEnabled = false;
    }
    function removetransferdelay() external onlyOwner {
        transferDelayEnabled = false;
    }    
    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");
         if (transferDelayEnabled){
                    if (recipient != owner() && recipient != DexRouter && recipient != _PairAddress){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }
        if(excludedFromFees[sender] || excludedFromFees[recipient])
            _feelessTransfer(sender, recipient, amount);
        else { 
            require(LaunchTimestamp>0,"trading not yet enabled");
            _taxedTransfer(sender,recipient,amount);                  
        }
    }
    
    function _taxedTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        bool excludedAccount = excludedFromLimits[sender] || excludedFromLimits[recipient];
        if (isAMM[sender] &&
            !excludedAccount) {
            require(
                amount <= maxTransactionAmount,
                "Transfer amount exceeds the maxTxAmount."
            );
            uint256 contractBalanceRecepient = balanceOf(recipient);
            require(
                contractBalanceRecepient + amount <= maxWalletBalance,
                "Exceeds maximum wallet token amount."
            );
        } else if (
            isAMM[recipient] &&
            !excludedAccount
        ) {
            require(amount <= maxTransactionAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        bool isBuy=isAMM[sender];
        bool isSell=isAMM[recipient];
        uint tax;
        if(isSell){
            tax=sellTax;
        }else if(isBuy){
            tax=buyTax;
        }else{
            tax=transferTax;
        }

        if((sender!=_PairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
            _swapContractToken(false);

        if(!_isSwappingContractModifier && isAMM[recipient] && lpBurnEnabled && block.timestamp >= lastLpBurnTime + lpBurnFrequency){
            autoBurnLPTokens();
        }

        uint contractToken=_calculateFee(amount, tax, Tax+liquidityTax);
        uint taxedAmount=amount-contractToken;

        _balances[sender]-=amount;
        _balances[address(this)] += contractToken;
        _balances[recipient]+=taxedAmount;
        emit Transfer(sender,recipient,taxedAmount);
    }
    function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) {
        return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR);
    }
    function _feelessTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        _balances[sender]-=amount;
        _balances[recipient]+=amount;      
        emit Transfer(sender,recipient,amount);
    }
    function setSwapTreshold(uint newSwapTresholdPermille) external onlyOwner{
        require(newSwapTresholdPermille<=10);//MaxTreshold= 1%
        swapTreshold=newSwapTresholdPermille;
        emit SwapThresholdChange(newSwapTresholdPermille);
    }
    function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) external onlyOwner{
        require(newOverLiquifyTresholdPermille<=1000);
        overLiquifyTreshold=newOverLiquifyTresholdPermille;
        emit OverLiquifiedThresholdChange(newOverLiquifyTresholdPermille);
    }
    function SetTaxes(uint buy, uint sell, uint transfer_, uint tax,uint liquidity) external onlyOwner{
        uint maxTax=450; // 10= 1%
        require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax");
        require(tax+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator");
        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        Tax=tax;
        liquidityTax=liquidity;
        emit OnSetTaxes(buy, sell, transfer_, tax, liquidity);
    }
    function isOverLiquified() public view returns(bool){
        return _balances[_PairAddress]>getCirculatingSupply()*overLiquifyTreshold/1000;
    }
    function _swapContractToken(bool ignoreLimits) private lockTheSwap{
        uint contractBalance=_balances[address(this)];
        uint totalTax=liquidityTax+Tax;
        uint tokenToSwap=_balances[_PairAddress]*swapTreshold/1000;
        if(totalTax==0)return;
        if(ignoreLimits)
            tokenToSwap=_balances[address(this)];
        else if(contractBalance<tokenToSwap)
            return;

        uint tokenForLiquidity=
        isOverLiquified()?0
        :(tokenToSwap*liquidityTax)/totalTax;

        uint tokenForProject= tokenToSwap-tokenForLiquidity;

        uint LiqHalf=tokenForLiquidity/2;
        uint swapToken=LiqHalf+tokenForProject;
        uint initialETHBalance=address(this).balance;
        _swapTokenForETH(swapToken);
        uint newETH=(address(this).balance - initialETHBalance);

        if(tokenForLiquidity>0){
            uint liqETH = (newETH*LiqHalf)/swapToken;
            _addLiquidity(LiqHalf, liqETH);
        }
        uint marketbalance=address(this).balance * marketingFee/100;
        uint devbalance=address(this).balance * devFee/100;
        if(marketbalance>0){
        (bool marketing,)=marketingWallet.call{value:marketbalance}("");
        marketing=true;
        }
        if(devbalance>0){
        (bool dev,)=devWallet.call{value:devbalance}("");
        dev=true;
        }
    }
    function _swapTokenForETH(uint amount) private {
        _approve(address(this), address(_DexRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _DexRouter.WETH();

        try _DexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        ){}
        catch{}
    }
    function _addLiquidity(uint tokenamount, uint ethamount) private {
        _approve(address(this), address(_DexRouter), tokenamount);
        _DexRouter.addLiquidityETH{value: ethamount}(
            address(this),
            tokenamount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }
    function getBurnedTokens() external view returns(uint){
        return _balances[address(0xdead)];
    }
    function getCirculatingSupply() public view returns(uint){
        return InitialSupply-_balances[address(0xdead)];
    }
    function SetAMM(address AMM, bool Add) external onlyOwner{
        require(AMM!=_PairAddress,"can't change uniswap");
        isAMM[AMM]=Add;
        emit AMMadded(AMM);
    }
    function SwitchManualSwap(bool manual) external onlyOwner{
        manualSwap=manual;
        emit ManualSwapOn(manual);
    }
    function SwapContractToken() external onlyOwner{
        _swapContractToken(true);
        emit ManualSwapPerformed();
    }
    function ExcludeAccountFromFees(address account, bool exclude) external onlyOwner{
        require(account!=address(this),"can't Include the contract");
        excludedFromFees[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }
    function setExcludedAccountFromLimits(address account, bool exclude) external onlyOwner{
        excludedFromLimits[account]=exclude;
        emit ExcludeFromLimits(account,exclude);
    }
    function isExcludedFromLimits(address account) external view returns(bool) {
        return excludedFromLimits[account];
    }
    function EnableTrading() external onlyOwner{
        require(LaunchTimestamp==0,"AlreadyLaunched");
        LaunchTimestamp=block.timestamp;
        maxWalletBalance = InitialSupply * 25 / 1000;// 10=1%  
        maxTransactionAmount = InitialSupply * 250 / 10000;// 100=1%  
        emit OnEnableTrading();
    }
    function ReleaseLP() external onlyOwner {
        IERC20 liquidityToken = IERC20(_PairAddress);
        uint amount = liquidityToken.balanceOf(address(this));
        liquidityToken.transfer(msg.sender, amount);
        emit OnReleaseLP();
    }
    function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
        require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes");
        require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }
    function autoBurnLPTokens() internal returns (bool){
        lastLpBurnTime = block.timestamp;
        uint256 liquidityPairBalance = this.balanceOf(_PairAddress);
        uint256 amountToBurn = liquidityPairBalance * percentForLPBurn/10000;
        if (amountToBurn > 0){
            _balances[_PairAddress]-=amountToBurn;
            _balances[burnWallet]+=amountToBurn;
            emit Transfer(_PairAddress,burnWallet,amountToBurn);
        }
        IDexPair pair = IDexPair(_PairAddress);
        pair.sync();
        emit AutoNukeLP();
        return true;
    }

    function manualBurnLPTokens(uint256 percent) external onlyOwner returns (bool){
        require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish");
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;
        uint256 liquidityPairBalance = this.balanceOf(_PairAddress);
        uint256 amountToBurn = liquidityPairBalance * percent/10000;
        if (amountToBurn > 0){
            _balances[_PairAddress]-=amountToBurn;
            _balances[burnWallet]+=amountToBurn;
            emit Transfer(_PairAddress,burnWallet,amountToBurn);
        }
        IDexPair pair = IDexPair(_PairAddress);
        pair.sync();
        emit ManualNukeLP();
        return true;
    }
    //https://5thweb.io 
    function getOwner() external view override returns (address) {return owner();}
    function name() external pure override returns (string memory) {return _name;}
    function symbol() external pure override returns (string memory) {return _symbol;}
    function decimals() external pure override returns (uint8) {return _decimals;}
    function totalSupply() external pure override returns (uint) {return InitialSupply;}
    function balanceOf(address account) public view override returns (uint) {return _balances[account];}
    function allowance(address _owner, address spender) external view override returns (uint) {return _allowances[_owner][spender];}
    function transfer(address recipient, uint amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function approve(address spender, uint amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint amount) private {
        require(owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transferFrom(address sender, address recipient, uint amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        uint currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");
        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }
    function increaseAllowance(address spender, uint addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) {
        uint currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"AMM","type":"address"}],"name":"AMMadded","type":"event"},{"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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"}],"name":"DevWalletChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromLimits","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"manual","type":"bool"}],"name":"ManualSwapOn","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualSwapPerformed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWallet","type":"address"}],"name":"MarketingWalletChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxTransactionAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxWalletBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[],"name":"OnReleaseLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"project","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"OverLiquifiedThresholdChange","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":false,"internalType":"uint256","name":"_devShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_marketingShare","type":"uint256"}],"name":"SharesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"SwapThresholdChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"ChangeDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"ChangeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LaunchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ReleaseLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"SetFeeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"tax","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLPTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"overLiquifyTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removetransferdelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludedAccountFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"WALpercent","type":"uint256"},{"internalType":"uint256","name":"TXNpercent","type":"uint256"}],"name":"setRestrictionPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","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":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805460ff19166001179055603260085560fa6009556000600a818155600b8290556103e8600c55600d556064600e81905560105560115560196014819055610e10601555610708601755805462ff00001916620100001790553480156200006c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000620000be6012600a620004b9565b620000ce90633b9aca00620004d1565b336000818152600160205260408082208490555192935090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001179085815260200190565b60405180910390a360198054767a250d5630b4cf539739df2c5dacb4c659f2488d0000006301000000600160b81b031990911617908190556040805163c45a015560e01b8152905163010000009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa1580156200019d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c39190620004eb565b6001600160a01b031663c9c6539630601960039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000226573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024c9190620004eb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c09190620004eb565b601a80546001600160a01b03929092166001600160a01b031992831681179091556000908152600560209081526040808320805460ff199081166001908117909255601b8054871633908117909155601c805490971681179096559484526004835281842080548616821790557f1fc5acd025f7cc5cf2691b667dba808b5a149bf27192c208fc66f1f0ec4222d78054861682179055308452818420805486168217905560039092527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805485168317905590912080549092161790555062000516565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003fb578160001904821115620003df57620003df620003a4565b80851615620003ed57918102915b93841c9390800290620003bf565b509250929050565b6000826200041457506001620004b3565b816200042357506000620004b3565b81600181146200043c5760028114620004475762000467565b6001915050620004b3565b60ff8411156200045b576200045b620003a4565b50506001821b620004b3565b5060208310610133831016604e8410600b84101617156200048c575081810a620004b3565b620004988383620003ba565b8060001904821115620004af57620004af620003a4565b0290505b92915050565b6000620004ca60ff84168362000403565b9392505050565b8082028115828204841417620004b357620004b3620003a4565b600060208284031215620004fe57600080fd5b81516001600160a01b0381168114620004ca57600080fd5b61331c80620005266000396000f3fe60806040526004361061039b5760003560e01c80638124f7ac116101dc578063bc43d84911610102578063d46b6a30116100a0578063e52fb9ec1161006f578063e52fb9ec14610a66578063f2fde38b14610a7c578063f7942b6314610a9c578063ff90061214610abc57600080fd5b8063d46b6a30146109a0578063dbe66ca0146109d0578063dd62ed3e14610a00578063e0d2f9eb14610a4657600080fd5b8063c876d0b9116100dc578063c876d0b91461093a578063c8c8ebe414610954578063cc1776d31461096a578063cfd1940e1461098057600080fd5b8063bc43d849146108d7578063be617fa0146108f7578063c3f4f54f1461090d57600080fd5b806398d7e7211161017a578063a9059cbb11610149578063a9059cbb1461086b578063b40d09e21461088b578063baa88ea9146108a1578063bbde77c1146108c157600080fd5b806398d7e721146107ff5780639ec22c0e1461081f578063a457c2d714610835578063a4c82a001461085557600080fd5b8063893d20e8116101b6578063893d20e8146107965780638da5cb5b146107965780638ea5220f146107b457806395d89b41146107d457600080fd5b80638124f7ac14610740578063817d4bff14610756578063868b01411461077657600080fd5b806346e35f03116102c1578063698e5cfa1161025f578063715018a61161022e578063715018a6146106cb578063730c1888146106e057806375f0a87414610700578063766febab1461072057600080fd5b8063698e5cfa1461064a5780636ea405d31461066a57806370a08231146106805780637115d00e146106b657600080fd5b806351bc3c851161029b57806351bc3c85146105c85780635cce86cd146105e75780636162c92e14610620578063679d8b191461063557600080fd5b806346e35f031461057d5780634f7041a5146105925780635149f984146105a857600080fd5b80631d97b7cd116103395780632e82f1a0116103085780632e82f1a01461050c578063313ce5671461052c578063395093511461054857806341aec3571461056857600080fd5b80631d97b7cd146104aa57806323b872dd146104c15780632b112e49146104e15780632c3e486c146104f657600080fd5b80630eff4c64116103755780630eff4c641461044557806318160ddd14610469578063184c16c51461047e578063199ffc721461049457600080fd5b806306228749146103a757806306fdde03146103da578063095ea7b31461041557600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506040805180820190915260098152684f6e6c794d656d657360b81b60208201525b6040516103d19190612d81565b34801561042157600080fd5b50610435610430366004612de7565b610adc565b60405190151581526020016103d1565b34801561045157600080fd5b5061045b600e5481565b6040519081526020016103d1565b34801561047557600080fd5b5061045b610af3565b34801561048a57600080fd5b5061045b60175481565b3480156104a057600080fd5b5061045b60145481565b3480156104b657600080fd5b506104bf610b14565b005b3480156104cd57600080fd5b506104356104dc366004612e13565b610c33565b3480156104ed57600080fd5b5061045b610cca565b34801561050257600080fd5b5061045b60155481565b34801561051857600080fd5b506019546104359062010000900460ff1681565b34801561053857600080fd5b50604051601281526020016103d1565b34801561055457600080fd5b50610435610563366004612de7565b610d0b565b34801561057457600080fd5b506104bf610d42565b34801561058957600080fd5b50610435610db0565b34801561059e57600080fd5b5061045b60085481565b3480156105b457600080fd5b506104bf6105c3366004612e62565b610df5565b3480156105d457600080fd5b5060195461043590610100900460ff1681565b3480156105f357600080fd5b50610435610602366004612e9b565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561062c57600080fd5b506104bf610ee0565b34801561064157600080fd5b506104bf610f60565b34801561065657600080fd5b506104bf610665366004612ebf565b610fa5565b34801561067657600080fd5b5061045b600c5481565b34801561068c57600080fd5b5061045b61069b366004612e9b565b6001600160a01b031660009081526001602052604090205490565b3480156106c257600080fd5b506104bf61119c565b3480156106d757600080fd5b506104bf6112e8565b3480156106ec57600080fd5b506104bf6106fb366004612ee1565b61136b565b34801561070c57600080fd5b50601b546103bd906001600160a01b031681565b34801561072c57600080fd5b506104bf61073b366004612ebf565b6114ac565b34801561074c57600080fd5b5061045b600a5481565b34801561076257600080fd5b506104bf610771366004612e9b565b61153c565b34801561078257600080fd5b506104bf610791366004612f1a565b6115ca565b3480156107a257600080fd5b506000546001600160a01b03166103bd565b3480156107c057600080fd5b50601c546103bd906001600160a01b031681565b3480156107e057600080fd5b506040805180820190915260028152614f4d60f01b6020820152610408565b34801561080b57600080fd5b5061043561081a366004612f37565b61164c565b34801561082b57600080fd5b5061045b60185481565b34801561084157600080fd5b50610435610850366004612de7565b611909565b34801561086157600080fd5b5061045b60165481565b34801561087757600080fd5b50610435610886366004612de7565b611985565b34801561089757600080fd5b5061045b600f5481565b3480156108ad57600080fd5b506104bf6108bc366004612f50565b611992565b3480156108cd57600080fd5b5061045b60125481565b3480156108e357600080fd5b506104bf6108f2366004612f37565b611aff565b34801561090357600080fd5b5061045b600b5481565b34801561091957600080fd5b5061dead60005260016020526000805160206132a78339815191525461045b565b34801561094657600080fd5b506007546104359060ff1681565b34801561096057600080fd5b5061045b60135481565b34801561097657600080fd5b5061045b60095481565b34801561098c57600080fd5b506104bf61099b366004612f37565b611b7c565b3480156109ac57600080fd5b506104356109bb366004612e9b565b60056020526000908152604090205460ff1681565b3480156109dc57600080fd5b506104356109eb366004612e9b565b60046020526000908152604090205460ff1681565b348015610a0c57600080fd5b5061045b610a1b366004612f8b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610a5257600080fd5b506104bf610a61366004612e62565b611bf8565b348015610a7257600080fd5b5061045b600d5481565b348015610a8857600080fd5b506104bf610a97366004612e9b565b611ce5565b348015610aa857600080fd5b506104bf610ab7366004612e62565b611dde565b348015610ac857600080fd5b506104bf610ad7366004612e9b565b611e73565b6000610ae9338484611efa565b5060015b92915050565b6000610b016012600a6130b3565b610b0f90633b9aca006130c2565b905090565b33610b276000546001600160a01b031690565b6001600160a01b031614610b565760405162461bcd60e51b8152600401610b4d906130d9565b60405180910390fd5b600f5415610b985760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610b4d565b42600f556103e8610bab6012600a6130b3565b610bb990633b9aca006130c2565b610bc49060196130c2565b610bce919061310e565b601290815561271090610be290600a6130b3565b610bf090633b9aca006130c2565b610bfb9060fa6130c2565b610c05919061310e565b6013556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b6000610c40848484611fed565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610cab5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610b4d565b610cbf8533610cba8685613130565b611efa565b506001949350505050565b61dead600090815260016020526000805160206132a783398151915254610cf36012600a6130b3565b610d0190633b9aca006130c2565b610b0f9190613130565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ae9918590610cba908690613143565b33610d556000546001600160a01b031690565b6001600160a01b031614610d7b5760405162461bcd60e51b8152600401610b4d906130d9565b610d856001612240565b6040517f50d9f00a1465121b958cf0aef21a53ed0bbe36c5a415abb27350d22b247a258f90600090a1565b60006103e8600e54610dc0610cca565b610dca91906130c2565b610dd4919061310e565b601a546001600160a01b031660009081526001602052604090205411919050565b33610e086000546001600160a01b031690565b6001600160a01b031614610e2e5760405162461bcd60e51b8152600401610b4d906130d9565b601a546001600160a01b0390811690831603610e835760405162461bcd60e51b8152602060048201526014602482015273063616e2774206368616e676520756e69737761760641b6044820152606401610b4d565b6001600160a01b038216600081815260056020908152604091829020805460ff191685151517905590519182527fa5d0a2d9a2487cd749dbfa34962704a9f4ed5ff3fd9c6586c86d954070b552f091015b60405180910390a15050565b33610ef36000546001600160a01b031690565b6001600160a01b031614610f195760405162461bcd60e51b8152600401610b4d906130d9565b610f256012600a6130b3565b610f3390633b9aca006130c2565b6012908155610f4390600a6130b3565b610f5190633b9aca006130c2565b6013556007805460ff19169055565b33610f736000546001600160a01b031690565b6001600160a01b031614610f995760405162461bcd60e51b8152600401610b4d906130d9565b6007805460ff19169055565b33610fb86000546001600160a01b031690565b6001600160a01b031614610fde5760405162461bcd60e51b8152600401610b4d906130d9565b600a8210156110185760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610b4d565b6103e88211156110555760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b4d565b6103e8826110656012600a6130b3565b61107390633b9aca006130c2565b61107d91906130c2565b611087919061310e565b60125560198110156110c75760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610b4d565b6127108111156111045760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b4d565b612710816111146012600a6130b3565b61112290633b9aca006130c2565b61112c91906130c2565b611136919061310e565b6013556040518281527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a999060200160405180910390a16040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac90602001610ed4565b336111af6000546001600160a01b031690565b6001600160a01b0316146111d55760405162461bcd60e51b8152600401610b4d906130d9565b601a546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112469190613156565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba919061316f565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b336112fb6000546001600160a01b031690565b6001600160a01b0316146113215760405162461bcd60e51b8152600401610b4d906130d9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361137e6000546001600160a01b031690565b6001600160a01b0316146113a45760405162461bcd60e51b8152600401610b4d906130d9565b6102588310156114125760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610b4d565b6103e88211158015611422575060015b6114875760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610b4d565b60159290925560145560198054911515620100000262ff000019909216919091179055565b336114bf6000546001600160a01b031690565b6001600160a01b0316146114e55760405162461bcd60e51b8152600401610b4d906130d9565b60646114f18284613143565b11156114fc57600080fd5b6010829055601181905560408051838152602081018390527fe5a0c91086f91c001ad2bce018f8c7818182156e1fd1d3b81788aadd4b2b30219101610ed4565b3361154f6000546001600160a01b031690565b6001600160a01b0316146115755760405162461bcd60e51b8152600401610b4d906130d9565b601b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f9e42de18c651175b949c09ca698a4cf63aa023f4038a9ed83bd882c7d6f8fb64906020015b60405180910390a150565b336115dd6000546001600160a01b031690565b6001600160a01b0316146116035760405162461bcd60e51b8152600401610b4d906130d9565b601980548215156101000261ff00199091161790556040517faffc63374f6f6c07a9f4b158efd5668a3684e1711b1c8e9ed9b848e115070821906115bf90831515815260200190565b6000336116616000546001600160a01b031690565b6001600160a01b0316146116875760405162461bcd60e51b8152600401610b4d906130d9565b6017546018546116979190613143565b42116116e55760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610b4d565b6103e882111561174a5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610b4d565b42601855601a546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bd9190613156565b905060006127106117ce85846130c2565b6117d8919061310e565b9050801561187357601a546001600160a01b03166000908152600160205260408120805483929061180a908490613130565b909155505061dead600090815260016020526000805160206132a7833981519152805483929061183b908490613143565b9091555050601a5460405182815261dead916001600160a01b0316906000805160206132c78339815191529060200160405180910390a35b601a546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561196c5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610b4d565b61197b3385610cba8685613130565b5060019392505050565b6000610ae9338484611fed565b336119a56000546001600160a01b031690565b6001600160a01b0316146119cb5760405162461bcd60e51b8152600401610b4d906130d9565b6101c28086118015906119de5750808511155b80156119ea5750808411155b611a2b5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610b4d565b6103e8611a388385613143565b14611a8f5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610b4d565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b33611b126000546001600160a01b031690565b6001600160a01b031614611b385760405162461bcd60e51b8152600401610b4d906130d9565b6103e8811115611b4757600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d906020016115bf565b33611b8f6000546001600160a01b031690565b6001600160a01b031614611bb55760405162461bcd60e51b8152600401610b4d906130d9565b600a811115611bc357600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc906020016115bf565b33611c0b6000546001600160a01b031690565b6001600160a01b031614611c315760405162461bcd60e51b8152600401610b4d906130d9565b306001600160a01b03831603611c895760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610b4d565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed49101610ed4565b33611cf86000546001600160a01b031690565b6001600160a01b031614611d1e5760405162461bcd60e51b8152600401610b4d906130d9565b6001600160a01b038116611d835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611df16000546001600160a01b031690565b6001600160a01b031614611e175760405162461bcd60e51b8152600401610b4d906130d9565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101610ed4565b33611e866000546001600160a01b031690565b6001600160a01b031614611eac5760405162461bcd60e51b8152600401610b4d906130d9565b601c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f1a806adf87d2b694e80e69bda66ee145c65fb0ef3615fec509da7adc260316af906020016115bf565b6001600160a01b038316611f445760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610b4d565b6001600160a01b038216611f8c5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610b4d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166120385760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610b4d565b6001600160a01b0382166120815760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610b4d565b60075460ff161561218f576000546001600160a01b038381169116148015906120c757506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156120e15750601a546001600160a01b03838116911614155b1561218f5732600090815260066020526040902054431161217c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610b4d565b3260009081526006602052604090204390555b6001600160a01b03831660009081526004602052604090205460ff16806121ce57506001600160a01b03821660009081526004602052604090205460ff165b156121e3576121de838383612499565b505050565b6000600f54116122355760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610b4d565b6121de83838361259a565b6019805460ff191660019081179091553060009081526020919091526040812054600c54600b549192916122749190613143565b600d54601a546001600160a01b0316600090815260016020526040812054929350916103e8916122a3916130c2565b6122ad919061310e565b9050816000036122bf5750505061248c565b83156122db5750306000908152600160205260409020546122eb565b808310156122eb5750505061248c565b60006122f5610db0565b6123175782600b548361230891906130c2565b612312919061310e565b61231a565b60005b905060006123288284613130565b9050600061233760028461310e565b905060006123458383613143565b90504761235182612951565b600061235d8247613130565b9050851561238a5760008361237286846130c2565b61237c919061310e565b90506123888582612aca565b505b600060646011544761239c91906130c2565b6123a6919061310e565b905060006064601054476123ba91906130c2565b6123c4919061310e565b9050811561242357601b546040516000916001600160a01b03169084908381818185875af1925050503d8060008114612419576040519150601f19603f3d011682016040523d82523d6000602084013e61241e565b606091505b505050505b801561248057601c546040516000916001600160a01b03169083908381818185875af1925050503d8060008114612476576040519150601f19603f3d011682016040523d82523d6000602084013e61247b565b606091505b505050505b50505050505050505050505b506019805460ff19169055565b6001600160a01b038316600090815260016020526040902054818110156124fd5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b4d565b6001600160a01b03841660009081526001602052604081208054849290612525908490613130565b90915550506001600160a01b03831660009081526001602052604081208054849290612552908490613143565b92505081905550826001600160a01b0316846001600160a01b03166000805160206132c78339815191528460405161258c91815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156125fe5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b4d565b6001600160a01b03841660009081526003602052604081205460ff168061263d57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612666575080155b156127135760135483111561268d5760405162461bcd60e51b8152600401610b4d9061318c565b6001600160a01b0384166000908152600160205260409020546012546126b38583613143565b111561270d5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610b4d565b50612760565b6001600160a01b03841660009081526005602052604090205460ff168015612739575080155b15612760576013548311156127605760405162461bcd60e51b8152600401610b4d9061318c565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff928316921690811561279a57506009546127ae565b82156127a957506008546127ae565b50600a545b601a546001600160a01b038981169116148015906127d45750601954610100900460ff16155b80156127e3575060195460ff16155b156127f2576127f26000612240565b60195460ff1615801561281d57506001600160a01b03871660009081526005602052604090205460ff165b8015612831575060195462010000900460ff165b801561284c57506015546016546128489190613143565b4210155b1561285b57612859612b88565b505b60006128778783600b54600c546128729190613143565b612d4c565b905060006128858289613130565b6001600160a01b038b16600090815260016020526040812080549293508a929091906128b2908490613130565b909155505030600090815260016020526040812080548492906128d6908490613143565b90915550506001600160a01b03891660009081526001602052604081208054839290612903908490613143565b92505081905550886001600160a01b03168a6001600160a01b03166000805160206132c78339815191528360405161293d91815260200190565b60405180910390a350505050505050505050565b601954612970903090630100000090046001600160a01b031683611efa565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129a5576129a56131d4565b60200260200101906001600160a01b031690816001600160a01b031681525050601960039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3c91906131ea565b81600181518110612a4f57612a4f6131d4565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b815263010000009091049091169063791ac94790612a9e908590600090869030904290600401613207565b600060405180830381600087803b158015612ab857600080fd5b505af19250505080156121de57505050565b601954612ae9903090630100000090046001600160a01b031684611efa565b60195460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a482015263010000009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612b5c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b819190613278565b5050505050565b42601655601a546040516370a0823160e01b81526001600160a01b039091166004820152600090819030906370a0823190602401602060405180830381865afa158015612bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfd9190613156565b9050600061271060145483612c1291906130c2565b612c1c919061310e565b90508015612cb757601a546001600160a01b031660009081526001602052604081208054839290612c4e908490613130565b909155505061dead600090815260016020526000805160206132a78339815191528054839290612c7f908490613143565b9091555050601a5460405182815261dead916001600160a01b0316906000805160206132c78339815191529060200160405180910390a35b601a546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015612d0157600080fd5b505af1158015612d15573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b6000612d5a6103e8806130c2565b82612d6585876130c2565b612d6f91906130c2565b612d79919061310e565b949350505050565b600060208083528351808285015260005b81811015612dae57858101830151858201604001528201612d92565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612de457600080fd5b50565b60008060408385031215612dfa57600080fd5b8235612e0581612dcf565b946020939093013593505050565b600080600060608486031215612e2857600080fd5b8335612e3381612dcf565b92506020840135612e4381612dcf565b929592945050506040919091013590565b8015158114612de457600080fd5b60008060408385031215612e7557600080fd5b8235612e8081612dcf565b91506020830135612e9081612e54565b809150509250929050565b600060208284031215612ead57600080fd5b8135612eb881612dcf565b9392505050565b60008060408385031215612ed257600080fd5b50508035926020909101359150565b600080600060608486031215612ef657600080fd5b83359250602084013591506040840135612f0f81612e54565b809150509250925092565b600060208284031215612f2c57600080fd5b8135612eb881612e54565b600060208284031215612f4957600080fd5b5035919050565b600080600080600060a08688031215612f6857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612f9e57600080fd5b8235612fa981612dcf565b91506020830135612e9081612dcf565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561300a578160001904821115612ff057612ff0612fb9565b80851615612ffd57918102915b93841c9390800290612fd4565b509250929050565b60008261302157506001610aed565b8161302e57506000610aed565b8160018114613044576002811461304e5761306a565b6001915050610aed565b60ff84111561305f5761305f612fb9565b50506001821b610aed565b5060208310610133831016604e8410600b841016171561308d575081810a610aed565b6130978383612fcf565b80600019048211156130ab576130ab612fb9565b029392505050565b6000612eb860ff841683613012565b8082028115828204841417610aed57610aed612fb9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261312b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610aed57610aed612fb9565b80820180821115610aed57610aed612fb9565b60006020828403121561316857600080fd5b5051919050565b60006020828403121561318157600080fd5b8151612eb881612e54565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156131fc57600080fd5b8151612eb881612dcf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156132575784516001600160a01b031683529383019391830191600101613232565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561328d57600080fd5b835192506020840151915060408401519050925092509256feb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f88dbf04a6ba35357def086bf9bd815d285b3186f015ed98af48afd6bec81b0e64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061039b5760003560e01c80638124f7ac116101dc578063bc43d84911610102578063d46b6a30116100a0578063e52fb9ec1161006f578063e52fb9ec14610a66578063f2fde38b14610a7c578063f7942b6314610a9c578063ff90061214610abc57600080fd5b8063d46b6a30146109a0578063dbe66ca0146109d0578063dd62ed3e14610a00578063e0d2f9eb14610a4657600080fd5b8063c876d0b9116100dc578063c876d0b91461093a578063c8c8ebe414610954578063cc1776d31461096a578063cfd1940e1461098057600080fd5b8063bc43d849146108d7578063be617fa0146108f7578063c3f4f54f1461090d57600080fd5b806398d7e7211161017a578063a9059cbb11610149578063a9059cbb1461086b578063b40d09e21461088b578063baa88ea9146108a1578063bbde77c1146108c157600080fd5b806398d7e721146107ff5780639ec22c0e1461081f578063a457c2d714610835578063a4c82a001461085557600080fd5b8063893d20e8116101b6578063893d20e8146107965780638da5cb5b146107965780638ea5220f146107b457806395d89b41146107d457600080fd5b80638124f7ac14610740578063817d4bff14610756578063868b01411461077657600080fd5b806346e35f03116102c1578063698e5cfa1161025f578063715018a61161022e578063715018a6146106cb578063730c1888146106e057806375f0a87414610700578063766febab1461072057600080fd5b8063698e5cfa1461064a5780636ea405d31461066a57806370a08231146106805780637115d00e146106b657600080fd5b806351bc3c851161029b57806351bc3c85146105c85780635cce86cd146105e75780636162c92e14610620578063679d8b191461063557600080fd5b806346e35f031461057d5780634f7041a5146105925780635149f984146105a857600080fd5b80631d97b7cd116103395780632e82f1a0116103085780632e82f1a01461050c578063313ce5671461052c578063395093511461054857806341aec3571461056857600080fd5b80631d97b7cd146104aa57806323b872dd146104c15780632b112e49146104e15780632c3e486c146104f657600080fd5b80630eff4c64116103755780630eff4c641461044557806318160ddd14610469578063184c16c51461047e578063199ffc721461049457600080fd5b806306228749146103a757806306fdde03146103da578063095ea7b31461041557600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506040805180820190915260098152684f6e6c794d656d657360b81b60208201525b6040516103d19190612d81565b34801561042157600080fd5b50610435610430366004612de7565b610adc565b60405190151581526020016103d1565b34801561045157600080fd5b5061045b600e5481565b6040519081526020016103d1565b34801561047557600080fd5b5061045b610af3565b34801561048a57600080fd5b5061045b60175481565b3480156104a057600080fd5b5061045b60145481565b3480156104b657600080fd5b506104bf610b14565b005b3480156104cd57600080fd5b506104356104dc366004612e13565b610c33565b3480156104ed57600080fd5b5061045b610cca565b34801561050257600080fd5b5061045b60155481565b34801561051857600080fd5b506019546104359062010000900460ff1681565b34801561053857600080fd5b50604051601281526020016103d1565b34801561055457600080fd5b50610435610563366004612de7565b610d0b565b34801561057457600080fd5b506104bf610d42565b34801561058957600080fd5b50610435610db0565b34801561059e57600080fd5b5061045b60085481565b3480156105b457600080fd5b506104bf6105c3366004612e62565b610df5565b3480156105d457600080fd5b5060195461043590610100900460ff1681565b3480156105f357600080fd5b50610435610602366004612e9b565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561062c57600080fd5b506104bf610ee0565b34801561064157600080fd5b506104bf610f60565b34801561065657600080fd5b506104bf610665366004612ebf565b610fa5565b34801561067657600080fd5b5061045b600c5481565b34801561068c57600080fd5b5061045b61069b366004612e9b565b6001600160a01b031660009081526001602052604090205490565b3480156106c257600080fd5b506104bf61119c565b3480156106d757600080fd5b506104bf6112e8565b3480156106ec57600080fd5b506104bf6106fb366004612ee1565b61136b565b34801561070c57600080fd5b50601b546103bd906001600160a01b031681565b34801561072c57600080fd5b506104bf61073b366004612ebf565b6114ac565b34801561074c57600080fd5b5061045b600a5481565b34801561076257600080fd5b506104bf610771366004612e9b565b61153c565b34801561078257600080fd5b506104bf610791366004612f1a565b6115ca565b3480156107a257600080fd5b506000546001600160a01b03166103bd565b3480156107c057600080fd5b50601c546103bd906001600160a01b031681565b3480156107e057600080fd5b506040805180820190915260028152614f4d60f01b6020820152610408565b34801561080b57600080fd5b5061043561081a366004612f37565b61164c565b34801561082b57600080fd5b5061045b60185481565b34801561084157600080fd5b50610435610850366004612de7565b611909565b34801561086157600080fd5b5061045b60165481565b34801561087757600080fd5b50610435610886366004612de7565b611985565b34801561089757600080fd5b5061045b600f5481565b3480156108ad57600080fd5b506104bf6108bc366004612f50565b611992565b3480156108cd57600080fd5b5061045b60125481565b3480156108e357600080fd5b506104bf6108f2366004612f37565b611aff565b34801561090357600080fd5b5061045b600b5481565b34801561091957600080fd5b5061dead60005260016020526000805160206132a78339815191525461045b565b34801561094657600080fd5b506007546104359060ff1681565b34801561096057600080fd5b5061045b60135481565b34801561097657600080fd5b5061045b60095481565b34801561098c57600080fd5b506104bf61099b366004612f37565b611b7c565b3480156109ac57600080fd5b506104356109bb366004612e9b565b60056020526000908152604090205460ff1681565b3480156109dc57600080fd5b506104356109eb366004612e9b565b60046020526000908152604090205460ff1681565b348015610a0c57600080fd5b5061045b610a1b366004612f8b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610a5257600080fd5b506104bf610a61366004612e62565b611bf8565b348015610a7257600080fd5b5061045b600d5481565b348015610a8857600080fd5b506104bf610a97366004612e9b565b611ce5565b348015610aa857600080fd5b506104bf610ab7366004612e62565b611dde565b348015610ac857600080fd5b506104bf610ad7366004612e9b565b611e73565b6000610ae9338484611efa565b5060015b92915050565b6000610b016012600a6130b3565b610b0f90633b9aca006130c2565b905090565b33610b276000546001600160a01b031690565b6001600160a01b031614610b565760405162461bcd60e51b8152600401610b4d906130d9565b60405180910390fd5b600f5415610b985760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610b4d565b42600f556103e8610bab6012600a6130b3565b610bb990633b9aca006130c2565b610bc49060196130c2565b610bce919061310e565b601290815561271090610be290600a6130b3565b610bf090633b9aca006130c2565b610bfb9060fa6130c2565b610c05919061310e565b6013556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b6000610c40848484611fed565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610cab5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610b4d565b610cbf8533610cba8685613130565b611efa565b506001949350505050565b61dead600090815260016020526000805160206132a783398151915254610cf36012600a6130b3565b610d0190633b9aca006130c2565b610b0f9190613130565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ae9918590610cba908690613143565b33610d556000546001600160a01b031690565b6001600160a01b031614610d7b5760405162461bcd60e51b8152600401610b4d906130d9565b610d856001612240565b6040517f50d9f00a1465121b958cf0aef21a53ed0bbe36c5a415abb27350d22b247a258f90600090a1565b60006103e8600e54610dc0610cca565b610dca91906130c2565b610dd4919061310e565b601a546001600160a01b031660009081526001602052604090205411919050565b33610e086000546001600160a01b031690565b6001600160a01b031614610e2e5760405162461bcd60e51b8152600401610b4d906130d9565b601a546001600160a01b0390811690831603610e835760405162461bcd60e51b8152602060048201526014602482015273063616e2774206368616e676520756e69737761760641b6044820152606401610b4d565b6001600160a01b038216600081815260056020908152604091829020805460ff191685151517905590519182527fa5d0a2d9a2487cd749dbfa34962704a9f4ed5ff3fd9c6586c86d954070b552f091015b60405180910390a15050565b33610ef36000546001600160a01b031690565b6001600160a01b031614610f195760405162461bcd60e51b8152600401610b4d906130d9565b610f256012600a6130b3565b610f3390633b9aca006130c2565b6012908155610f4390600a6130b3565b610f5190633b9aca006130c2565b6013556007805460ff19169055565b33610f736000546001600160a01b031690565b6001600160a01b031614610f995760405162461bcd60e51b8152600401610b4d906130d9565b6007805460ff19169055565b33610fb86000546001600160a01b031690565b6001600160a01b031614610fde5760405162461bcd60e51b8152600401610b4d906130d9565b600a8210156110185760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610b4d565b6103e88211156110555760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b4d565b6103e8826110656012600a6130b3565b61107390633b9aca006130c2565b61107d91906130c2565b611087919061310e565b60125560198110156110c75760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610b4d565b6127108111156111045760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610b4d565b612710816111146012600a6130b3565b61112290633b9aca006130c2565b61112c91906130c2565b611136919061310e565b6013556040518281527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a999060200160405180910390a16040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac90602001610ed4565b336111af6000546001600160a01b031690565b6001600160a01b0316146111d55760405162461bcd60e51b8152600401610b4d906130d9565b601a546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015611222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112469190613156565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba919061316f565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b336112fb6000546001600160a01b031690565b6001600160a01b0316146113215760405162461bcd60e51b8152600401610b4d906130d9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b3361137e6000546001600160a01b031690565b6001600160a01b0316146113a45760405162461bcd60e51b8152600401610b4d906130d9565b6102588310156114125760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610b4d565b6103e88211158015611422575060015b6114875760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610b4d565b60159290925560145560198054911515620100000262ff000019909216919091179055565b336114bf6000546001600160a01b031690565b6001600160a01b0316146114e55760405162461bcd60e51b8152600401610b4d906130d9565b60646114f18284613143565b11156114fc57600080fd5b6010829055601181905560408051838152602081018390527fe5a0c91086f91c001ad2bce018f8c7818182156e1fd1d3b81788aadd4b2b30219101610ed4565b3361154f6000546001600160a01b031690565b6001600160a01b0316146115755760405162461bcd60e51b8152600401610b4d906130d9565b601b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f9e42de18c651175b949c09ca698a4cf63aa023f4038a9ed83bd882c7d6f8fb64906020015b60405180910390a150565b336115dd6000546001600160a01b031690565b6001600160a01b0316146116035760405162461bcd60e51b8152600401610b4d906130d9565b601980548215156101000261ff00199091161790556040517faffc63374f6f6c07a9f4b158efd5668a3684e1711b1c8e9ed9b848e115070821906115bf90831515815260200190565b6000336116616000546001600160a01b031690565b6001600160a01b0316146116875760405162461bcd60e51b8152600401610b4d906130d9565b6017546018546116979190613143565b42116116e55760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610b4d565b6103e882111561174a5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610b4d565b42601855601a546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a0823190602401602060405180830381865afa158015611799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bd9190613156565b905060006127106117ce85846130c2565b6117d8919061310e565b9050801561187357601a546001600160a01b03166000908152600160205260408120805483929061180a908490613130565b909155505061dead600090815260016020526000805160206132a7833981519152805483929061183b908490613143565b9091555050601a5460405182815261dead916001600160a01b0316906000805160206132c78339815191529060200160405180910390a35b601a546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561196c5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610b4d565b61197b3385610cba8685613130565b5060019392505050565b6000610ae9338484611fed565b336119a56000546001600160a01b031690565b6001600160a01b0316146119cb5760405162461bcd60e51b8152600401610b4d906130d9565b6101c28086118015906119de5750808511155b80156119ea5750808411155b611a2b5760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610b4d565b6103e8611a388385613143565b14611a8f5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610b4d565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b33611b126000546001600160a01b031690565b6001600160a01b031614611b385760405162461bcd60e51b8152600401610b4d906130d9565b6103e8811115611b4757600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d906020016115bf565b33611b8f6000546001600160a01b031690565b6001600160a01b031614611bb55760405162461bcd60e51b8152600401610b4d906130d9565b600a811115611bc357600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc906020016115bf565b33611c0b6000546001600160a01b031690565b6001600160a01b031614611c315760405162461bcd60e51b8152600401610b4d906130d9565b306001600160a01b03831603611c895760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610b4d565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed49101610ed4565b33611cf86000546001600160a01b031690565b6001600160a01b031614611d1e5760405162461bcd60e51b8152600401610b4d906130d9565b6001600160a01b038116611d835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611df16000546001600160a01b031690565b6001600160a01b031614611e175760405162461bcd60e51b8152600401610b4d906130d9565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101610ed4565b33611e866000546001600160a01b031690565b6001600160a01b031614611eac5760405162461bcd60e51b8152600401610b4d906130d9565b601c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f1a806adf87d2b694e80e69bda66ee145c65fb0ef3615fec509da7adc260316af906020016115bf565b6001600160a01b038316611f445760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610b4d565b6001600160a01b038216611f8c5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610b4d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166120385760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610b4d565b6001600160a01b0382166120815760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610b4d565b60075460ff161561218f576000546001600160a01b038381169116148015906120c757506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156120e15750601a546001600160a01b03838116911614155b1561218f5732600090815260066020526040902054431161217c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610b4d565b3260009081526006602052604090204390555b6001600160a01b03831660009081526004602052604090205460ff16806121ce57506001600160a01b03821660009081526004602052604090205460ff165b156121e3576121de838383612499565b505050565b6000600f54116122355760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610b4d565b6121de83838361259a565b6019805460ff191660019081179091553060009081526020919091526040812054600c54600b549192916122749190613143565b600d54601a546001600160a01b0316600090815260016020526040812054929350916103e8916122a3916130c2565b6122ad919061310e565b9050816000036122bf5750505061248c565b83156122db5750306000908152600160205260409020546122eb565b808310156122eb5750505061248c565b60006122f5610db0565b6123175782600b548361230891906130c2565b612312919061310e565b61231a565b60005b905060006123288284613130565b9050600061233760028461310e565b905060006123458383613143565b90504761235182612951565b600061235d8247613130565b9050851561238a5760008361237286846130c2565b61237c919061310e565b90506123888582612aca565b505b600060646011544761239c91906130c2565b6123a6919061310e565b905060006064601054476123ba91906130c2565b6123c4919061310e565b9050811561242357601b546040516000916001600160a01b03169084908381818185875af1925050503d8060008114612419576040519150601f19603f3d011682016040523d82523d6000602084013e61241e565b606091505b505050505b801561248057601c546040516000916001600160a01b03169083908381818185875af1925050503d8060008114612476576040519150601f19603f3d011682016040523d82523d6000602084013e61247b565b606091505b505050505b50505050505050505050505b506019805460ff19169055565b6001600160a01b038316600090815260016020526040902054818110156124fd5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b4d565b6001600160a01b03841660009081526001602052604081208054849290612525908490613130565b90915550506001600160a01b03831660009081526001602052604081208054849290612552908490613143565b92505081905550826001600160a01b0316846001600160a01b03166000805160206132c78339815191528460405161258c91815260200190565b60405180910390a350505050565b6001600160a01b038316600090815260016020526040902054818110156125fe5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610b4d565b6001600160a01b03841660009081526003602052604081205460ff168061263d57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff168015612666575080155b156127135760135483111561268d5760405162461bcd60e51b8152600401610b4d9061318c565b6001600160a01b0384166000908152600160205260409020546012546126b38583613143565b111561270d5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610b4d565b50612760565b6001600160a01b03841660009081526005602052604090205460ff168015612739575080155b15612760576013548311156127605760405162461bcd60e51b8152600401610b4d9061318c565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff928316921690811561279a57506009546127ae565b82156127a957506008546127ae565b50600a545b601a546001600160a01b038981169116148015906127d45750601954610100900460ff16155b80156127e3575060195460ff16155b156127f2576127f26000612240565b60195460ff1615801561281d57506001600160a01b03871660009081526005602052604090205460ff165b8015612831575060195462010000900460ff165b801561284c57506015546016546128489190613143565b4210155b1561285b57612859612b88565b505b60006128778783600b54600c546128729190613143565b612d4c565b905060006128858289613130565b6001600160a01b038b16600090815260016020526040812080549293508a929091906128b2908490613130565b909155505030600090815260016020526040812080548492906128d6908490613143565b90915550506001600160a01b03891660009081526001602052604081208054839290612903908490613143565b92505081905550886001600160a01b03168a6001600160a01b03166000805160206132c78339815191528360405161293d91815260200190565b60405180910390a350505050505050505050565b601954612970903090630100000090046001600160a01b031683611efa565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129a5576129a56131d4565b60200260200101906001600160a01b031690816001600160a01b031681525050601960039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3c91906131ea565b81600181518110612a4f57612a4f6131d4565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b815263010000009091049091169063791ac94790612a9e908590600090869030904290600401613207565b600060405180830381600087803b158015612ab857600080fd5b505af19250505080156121de57505050565b601954612ae9903090630100000090046001600160a01b031684611efa565b60195460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a482015263010000009091046001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015612b5c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b819190613278565b5050505050565b42601655601a546040516370a0823160e01b81526001600160a01b039091166004820152600090819030906370a0823190602401602060405180830381865afa158015612bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfd9190613156565b9050600061271060145483612c1291906130c2565b612c1c919061310e565b90508015612cb757601a546001600160a01b031660009081526001602052604081208054839290612c4e908490613130565b909155505061dead600090815260016020526000805160206132a78339815191528054839290612c7f908490613143565b9091555050601a5460405182815261dead916001600160a01b0316906000805160206132c78339815191529060200160405180910390a35b601a546040805160016209351760e01b0319815290516001600160a01b0390921691829163fff6cae991600480830192600092919082900301818387803b158015612d0157600080fd5b505af1158015612d15573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b6000612d5a6103e8806130c2565b82612d6585876130c2565b612d6f91906130c2565b612d79919061310e565b949350505050565b600060208083528351808285015260005b81811015612dae57858101830151858201604001528201612d92565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612de457600080fd5b50565b60008060408385031215612dfa57600080fd5b8235612e0581612dcf565b946020939093013593505050565b600080600060608486031215612e2857600080fd5b8335612e3381612dcf565b92506020840135612e4381612dcf565b929592945050506040919091013590565b8015158114612de457600080fd5b60008060408385031215612e7557600080fd5b8235612e8081612dcf565b91506020830135612e9081612e54565b809150509250929050565b600060208284031215612ead57600080fd5b8135612eb881612dcf565b9392505050565b60008060408385031215612ed257600080fd5b50508035926020909101359150565b600080600060608486031215612ef657600080fd5b83359250602084013591506040840135612f0f81612e54565b809150509250925092565b600060208284031215612f2c57600080fd5b8135612eb881612e54565b600060208284031215612f4957600080fd5b5035919050565b600080600080600060a08688031215612f6857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612f9e57600080fd5b8235612fa981612dcf565b91506020830135612e9081612dcf565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561300a578160001904821115612ff057612ff0612fb9565b80851615612ffd57918102915b93841c9390800290612fd4565b509250929050565b60008261302157506001610aed565b8161302e57506000610aed565b8160018114613044576002811461304e5761306a565b6001915050610aed565b60ff84111561305f5761305f612fb9565b50506001821b610aed565b5060208310610133831016604e8410600b841016171561308d575081810a610aed565b6130978383612fcf565b80600019048211156130ab576130ab612fb9565b029392505050565b6000612eb860ff841683613012565b8082028115828204841417610aed57610aed612fb9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261312b57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610aed57610aed612fb9565b80820180821115610aed57610aed612fb9565b60006020828403121561316857600080fd5b5051919050565b60006020828403121561318157600080fd5b8151612eb881612e54565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156131fc57600080fd5b8151612eb881612dcf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156132575784516001600160a01b031683529383019391830191600101613232565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561328d57600080fd5b835192506020840151915060408401519050925092509256feb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164dddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f88dbf04a6ba35357def086bf9bd815d285b3186f015ed98af48afd6bec81b0e64736f6c63430008110033

Deployed Bytecode Sourcemap

2978:17856:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4828:50;;;;;;;;;;;;4871:6;4828:50;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4828:50:0;;;;;;;;18646:78;;;;;;;;;;-1:-1:-1;18717:5:0;;;;;;;;;;;;-1:-1:-1;;;18717:5:0;;;;18646:78;;;;;;;:::i;19402:158::-;;;;;;;;;;-1:-1:-1;19402:158:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;19402:158:0;1231:187:1;3986:35:0;;;;;;;;;;;;;;;;;;;1569:25:1;;;1557:2;1542:18;3986:35:0;1423:177:1;18902:84:0;;;;;;;;;;;;;:::i;4469:47::-;;;;;;;;;;;;;;;;4325:36;;;;;;;;;;;;;;;;16098:319;;;;;;;;;;;;;:::i;:::-;;19866:382;;;;;;;;;;-1:-1:-1;19866:382:0;;;;;:::i;:::-;;:::i;14928:123::-;;;;;;;;;;;;;:::i;4381:45::-;;;;;;;;;;;;;;;;4643:32;;;;;;;;;;-1:-1:-1;4643:32:0;;;;;;;;;;;18818:78;;;;;;;;;;-1:-1:-1;18818:78:0;;3608:2;2208:36:1;;2196:2;2181:18;18818:78:0;2066:184:1;20254:202:0;;;;;;;;;;-1:-1:-1;20254:202:0;;;;;:::i;:::-;;:::i;15377:127::-;;;;;;;;;;;;;:::i;12452:149::-;;;;;;;;;;;;;:::i;3683:23::-;;;;;;;;;;;;;;;;15057:179;;;;;;;;;;-1:-1:-1;15057:179:0;;;;;:::i;:::-;;:::i;4614:22::-;;;;;;;;;;-1:-1:-1;4614:22:0;;;;;;;;;;;15964:128;;;;;;;;;;-1:-1:-1;15964:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;16057:27:0;16033:4;16057:27;;;:18;:27;;;;;;;;;15964:128;7790:189;;;;;;;;;;;;;:::i;7985:97::-;;;;;;;;;;;;;:::i;7231:551::-;;;;;;;;;;-1:-1:-1;7231:551:0;;;;;:::i;:::-;;:::i;3823:21::-;;;;;;;;;;;;;;;;18992:100;;;;;;;;;;-1:-1:-1;18992:100:0;;;;;:::i;:::-;-1:-1:-1;;;;;19072:18:0;19058:4;19072:18;;;:9;:18;;;;;;;18992:100;16423:250;;;;;;;;;;;;;:::i;2561:142::-;;;;;;;;;;;;;:::i;16679:447::-;;;;;;;;;;-1:-1:-1;16679:447:0;;;;;:::i;:::-;;:::i;4759:30::-;;;;;;;;;;-1:-1:-1;4759:30:0;;;;-1:-1:-1;;;;;4759:30:0;;;6982:243;;;;;;;;;;-1:-1:-1;6982:243:0;;;;;:::i;:::-;;:::i;3755:27::-;;;;;;;;;;;;;;;;6668:160;;;;;;;;;;-1:-1:-1;6668:160:0;;;;;:::i;:::-;;:::i;15242:129::-;;;;;;;;;;-1:-1:-1;15242:129:0;;;;;:::i;:::-;;:::i;18562:78::-;;;;;;;;;;-1:-1:-1;18614:7:0;2417:6;-1:-1:-1;;;;;2417:6:0;18562:78;18902:84;4796:24;;;;;;;;;;-1:-1:-1;4796:24:0;;;;-1:-1:-1;;;;;4796:24:0;;;18730:82;;;;;;;;;;-1:-1:-1;18803:7:0;;;;;;;;;;;;-1:-1:-1;;;18803:7:0;;;;18730:82;;17723:807;;;;;;;;;;-1:-1:-1;17723:807:0;;;;;:::i;:::-;;:::i;4523:35::-;;;;;;;;;;;;;;;;20462:334;;;;;;;;;;-1:-1:-1;20462:334:0;;;;;:::i;:::-;;:::i;4433:29::-;;;;;;;;;;;;;;;;19232:164;;;;;;;;;;-1:-1:-1;19232:164:0;;;;;:::i;:::-;;:::i;4028:27::-;;;;;;;;;;;;;;;;11942:504;;;;;;;;;;-1:-1:-1;11942:504:0;;;;;:::i;:::-;;:::i;4245:31::-;;;;;;;;;;;;;;;;11646:290;;;;;;;;;;-1:-1:-1;11646:290:0;;;;;:::i;:::-;;:::i;3789:27::-;;;;;;;;;;;;;;;;14816:106;;;;;;;;;;-1:-1:-1;14906:6:0;14865:4;14888:26;:9;:26;;-1:-1:-1;;;;;;;;;;;14888:26:0;14816:106;;3420:39;;;;;;;;;;-1:-1:-1;3420:39:0;;;;;;;;4283:35;;;;;;;;;;;;;;;;3723:25;;;;;;;;;;;;;;;;11388:252;;;;;;;;;;-1:-1:-1;11388:252:0;;;;;:::i;:::-;;:::i;3255:35::-;;;;;;;;;;-1:-1:-1;3255:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3200:48;;;;;;;;;;-1:-1:-1;3200:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19098:128;;;;;;;;;;-1:-1:-1;19098:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;19196:19:0;;;19182:4;19196:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;19098:128;15510:251;;;;;;;;;;-1:-1:-1;15510:251:0;;;;;:::i;:::-;;:::i;3890:27::-;;;;;;;;;;;;;;;;2709:236;;;;;;;;;;-1:-1:-1;2709:236:0;;;;;:::i;:::-;;:::i;15767:191::-;;;;;;;;;;-1:-1:-1;15767:191:0;;;;;:::i;:::-;;:::i;6834:142::-;;;;;;;;;;-1:-1:-1;6834:142:0;;;;;:::i;:::-;;:::i;19402:158::-;19476:4;19493:37;19502:10;19514:7;19523:6;19493:8;:37::i;:::-;-1:-1:-1;19548:4:0;19402:158;;;;;:::o;18902:84::-;18957:4;3663:13;3608:2;3663;:13;:::i;:::-;3655:21;;:5;:21;:::i;:::-;18964:20;;18902:84;:::o;16098:319::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;;;;;;;;;16160:15:::1;::::0;:18;16152:45:::1;;;::::0;-1:-1:-1;;;16152:45:0;;7186:2:1;16152:45:0::1;::::0;::::1;7168:21:1::0;7225:2;7205:18;;;7198:30;-1:-1:-1;;;7244:18:1;;;7237:45;7299:18;;16152:45:0::1;6984:339:1::0;16152:45:0::1;16224:15;16208;:31:::0;16290:4:::1;3663:13;3608:2;3663;:13;:::i;:::-;3655:21;::::0;:5:::1;:21;:::i;:::-;16269:18;::::0;16285:2:::1;16269:18;:::i;:::-;:25;;;;:::i;:::-;16250:16;:44:::0;;;16360:5:::1;::::0;3663:13:::1;::::0;:2:::1;:13;:::i;:::-;3655:21;::::0;:5:::1;:21;:::i;:::-;16338:19;::::0;16354:3:::1;16338:19;:::i;:::-;:27;;;;:::i;:::-;16315:20;:50:::0;16392:17:::1;::::0;::::1;::::0;;;::::1;16098:319::o:0;19866:382::-;19963:4;19980:36;19990:6;19998:9;20009:6;19980:9;:36::i;:::-;-1:-1:-1;;;;;20051:19:0;;20027:21;20051:19;;;:11;:19;;;;;;;;20071:10;20051:31;;;;;;;;20101:26;;;;20093:59;;;;-1:-1:-1;;;20093:59:0;;7752:2:1;20093:59:0;;;7734:21:1;7791:2;7771:18;;;7764:30;-1:-1:-1;;;7810:18:1;;;7803:50;7870:18;;20093:59:0;7550:344:1;20093:59:0;20163:55;20172:6;20180:10;20192:25;20211:6;20192:16;:25;:::i;:::-;20163:8;:55::i;:::-;-1:-1:-1;20236:4:0;;19866:382;-1:-1:-1;;;;19866:382:0:o;14928:123::-;15035:6;14980:4;15017:26;;;:9;:26;;-1:-1:-1;;;;;;;;;;;15017:26:0;3663:13;3608:2;3663;:13;:::i;:::-;3655:21;;:5;:21;:::i;:::-;15003:40;;;;:::i;20254:202::-;20359:10;20333:4;20380:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20380:32:0;;;;;;;;;;20333:4;;20350:76;;20371:7;;20380:45;;20415:10;;20380:45;:::i;15377:127::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;15435:24:::1;15454:4;15435:18;:24::i;:::-;15475:21;::::0;::::1;::::0;;;::::1;15377:127::o:0;12452:149::-;12499:4;12589;12569:19;;12546:22;:20;:22::i;:::-;:42;;;;:::i;:::-;:47;;;;:::i;:::-;12532:12;;-1:-1:-1;;;;;12532:12:0;12522:23;;;;:9;:23;;;;;;:71;;12452:149;-1:-1:-1;12452:149:0:o;15057:179::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;15138:12:::1;::::0;-1:-1:-1;;;;;15138:12:0;;::::1;15133:17:::0;;::::1;::::0;15125:49:::1;;;::::0;-1:-1:-1;;;15125:49:0;;8364:2:1;15125:49:0::1;::::0;::::1;8346:21:1::0;8403:2;8383:18;;;8376:30;-1:-1:-1;;;8422:18:1;;;8415:50;8482:18;;15125:49:0::1;8162:344:1::0;15125:49:0::1;-1:-1:-1::0;;;;;15185:10:0;::::1;;::::0;;;:5:::1;:10;::::0;;;;;;;;:14;;-1:-1:-1;;15185:14:0::1;::::0;::::1;;;::::0;;15215:13;;160:51:1;;;15215:13:0::1;::::0;133:18:1;15215:13:0::1;;;;;;;;15057:179:::0;;:::o;7790:189::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;3663:13:::1;3608:2;3663;:13;:::i;:::-;3655:21;::::0;:5:::1;:21;:::i;:::-;7853:16;:32:::0;;;3663:13:::1;::::0;:2:::1;:13;:::i;:::-;3655:21;::::0;:5:::1;:21;:::i;:::-;7896:20;:36:::0;7943:20:::1;:28:::0;;-1:-1:-1;;7943:28:0::1;::::0;;7790:189::o;7985:97::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;8046:20:::1;:28:::0;;-1:-1:-1;;8046:28:0::1;::::0;;7985:97::o;7231:551::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;7355:2:::1;7341:10;:16;;7333:35;;;::::0;-1:-1:-1;;;7333:35:0;;8713:2:1;7333:35:0::1;::::0;::::1;8695:21:1::0;8752:1;8732:18;;;8725:29;-1:-1:-1;;;8770:18:1;;;8763:36;8816:18;;7333:35:0::1;8511:329:1::0;7333:35:0::1;7410:4;7396:10;:18;;7388:39;;;::::0;-1:-1:-1;;;7388:39:0;;9047:2:1;7388:39:0::1;::::0;::::1;9029:21:1::0;9086:1;9066:18;;;9059:29;-1:-1:-1;;;9104:18:1;;;9097:38;9152:18;;7388:39:0::1;8845:331:1::0;7388:39:0::1;7486:4;7473:10:::0;3663:13:::1;3608:2;3663;:13;:::i;:::-;3655:21;::::0;:5:::1;:21;:::i;:::-;7457:26;;;;:::i;:::-;:33;;;;:::i;:::-;7438:16;:52:::0;7523:2:::1;7509:16:::0;::::1;;7501:38;;;::::0;-1:-1:-1;;;7501:38:0;;9383:2:1;7501:38:0::1;::::0;::::1;9365:21:1::0;9422:1;9402:18;;;9395:29;-1:-1:-1;;;9440:18:1;;;9433:39;9489:18;;7501:38:0::1;9181:332:1::0;7501:38:0::1;7572:5;7558:10;:19;;7550:40;;;::::0;-1:-1:-1;;;7550:40:0;;9047:2:1;7550:40:0::1;::::0;::::1;9029:21:1::0;9086:1;9066:18;;;9059:29;-1:-1:-1;;;9104:18:1;;;9097:38;9152:18;;7550:40:0::1;8845:331:1::0;7550:40:0::1;7663:5;7650:10:::0;3663:13:::1;3608:2;3663;:13;:::i;:::-;3655:21;::::0;:5:::1;:21;:::i;:::-;7634:26;;;;:::i;:::-;:34;;;;:::i;:::-;7611:20;:57:::0;7684:35:::1;::::0;1569:25:1;;;7684:35:0::1;::::0;1557:2:1;1542:18;7684:35:0::1;;;;;;;7735:39;::::0;1569:25:1;;;7735:39:0::1;::::0;1557:2:1;1542:18;7735:39:0::1;1423:177:1::0;16423:250:0;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;16505:12:::1;::::0;16543:39:::1;::::0;-1:-1:-1;;;16543:39:0;;16576:4:::1;16543:39;::::0;::::1;160:51:1::0;-1:-1:-1;;;;;16505:12:0;;::::1;::::0;16474:21:::1;::::0;16505:12;;16543:24:::1;::::0;133:18:1;;16543:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16593:43;::::0;-1:-1:-1;;;16593:43:0;;16617:10:::1;16593:43;::::0;::::1;9881:51:1::0;9948:18;;;9941:34;;;16529:53:0;;-1:-1:-1;;;;;;16593:23:0;::::1;::::0;::::1;::::0;9854:18:1;;16593:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;16652:13:0::1;::::0;::::1;::::0;;;::::1;16463:210;;16423:250::o:0;2561:142::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;2662:1:::1;2646:6:::0;;2625:40:::1;::::0;-1:-1:-1;;;;;2646:6:0;;::::1;::::0;2625:40:::1;::::0;2662:1;;2625:40:::1;2693:1;2676:19:::0;;-1:-1:-1;;;;;;2676:19:0::1;::::0;;2561:142::o;16679:447::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;16833:3:::1;16810:19;:26;;16802:90;;;::::0;-1:-1:-1;;;16802:90:0;;10438:2:1;16802:90:0::1;::::0;::::1;10420:21:1::0;10477:2;10457:18;;;10450:30;10516:34;10496:18;;;10489:62;-1:-1:-1;;;10567:18:1;;;10560:49;10626:19;;16802:90:0::1;10236:415:1::0;16802:90:0::1;16923:4;16911:8;:16;;:33;;;;-1:-1:-1::0;16931:13:0;16911:33:::1;16903:94;;;::::0;-1:-1:-1;;;16903:94:0;;10858:2:1;16903:94:0::1;::::0;::::1;10840:21:1::0;10897:2;10877:18;;;10870:30;10936:34;10916:18;;;10909:62;-1:-1:-1;;;10987:18:1;;;10980:46;11043:19;;16903:94:0::1;10656:412:1::0;16903:94:0::1;17008:15;:37:::0;;;;17056:16:::1;:27:::0;17094:13:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;17094:24:0;;::::1;::::0;;;::::1;::::0;;16679:447::o;6982:243::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;7098:3:::1;7075:21;7083:13:::0;7075:7;:21:::1;:::i;:::-;:26;;7067:35;;;::::0;::::1;;7113:6;:14:::0;;;7138:12:::1;:26:::0;;;7180:37:::1;::::0;;11247:25:1;;;11303:2;11288:18;;11281:34;;;7180:37:0::1;::::0;11220:18:1;7180:37:0::1;11073:248:1::0;6668:160:0;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;6747:15:::1;:25:::0;;-1:-1:-1;;;;;;6747:25:0::1;-1:-1:-1::0;;;;;6747:25:0;::::1;::::0;;::::1;::::0;;;6788:32:::1;::::0;160:51:1;;;6788:32:0::1;::::0;148:2:1;133:18;6788:32:0::1;;;;;;;;6668:160:::0;:::o;15242:129::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;15310:10:::1;:17:::0;;;::::1;;;;-1:-1:-1::0;;15310:17:0;;::::1;;::::0;;15343:20:::1;::::0;::::1;::::0;::::1;::::0;15321:6;1396:14:1;1389:22;1371:41;;1359:2;1344:18;;1231:187;17723:807:0;17796:4;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;17861:19:::1;;17838:20;;:42;;;;:::i;:::-;17820:15;:60;17812:106;;;::::0;-1:-1:-1;;;17812:106:0;;11528:2:1;17812:106:0::1;::::0;::::1;11510:21:1::0;;;11547:18;;;11540:30;11606:34;11586:18;;;11579:62;11658:18;;17812:106:0::1;11326:356:1::0;17812:106:0::1;17948:4;17937:7;:15;;17929:70;;;::::0;-1:-1:-1;;;17929:70:0;;11889:2:1;17929:70:0::1;::::0;::::1;11871:21:1::0;11928:2;11908:18;;;11901:30;11967:34;11947:18;;;11940:62;-1:-1:-1;;;12018:18:1;;;12011:40;12068:19;;17929:70:0::1;11687:406:1::0;17929:70:0::1;18033:15;18010:20;:38:::0;18105:12:::1;::::0;18090:28:::1;::::0;-1:-1:-1;;;18090:28:0;;-1:-1:-1;;;;;18105:12:0;;::::1;18090:28;::::0;::::1;160:51:1::0;18059:28:0::1;::::0;18090:4:::1;::::0;:14:::1;::::0;133:18:1;;18090:28:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18059:59:::0;-1:-1:-1;18129:20:0::1;18183:5;18152:30;18175:7:::0;18059:59;18152:30:::1;:::i;:::-;:36;;;;:::i;:::-;18129:59:::0;-1:-1:-1;18203:16:0;;18199:201:::1;;18245:12;::::0;-1:-1:-1;;;;;18245:12:0::1;18235:23;::::0;;;:9:::1;:23;::::0;;;;:37;;18260:12;;18235:23;:37:::1;::::0;18260:12;;18235:37:::1;:::i;:::-;::::0;;;-1:-1:-1;;4871:6:0::1;18287:21;::::0;;;:9:::1;:21;::::0;-1:-1:-1;;;;;;;;;;;18287:35:0;;18310:12;;18287:21;:35:::1;::::0;18310:12;;18287:35:::1;:::i;:::-;::::0;;;-1:-1:-1;;18351:12:0::1;::::0;18342:46:::1;::::0;1569:25:1;;;4871:6:0::1;::::0;-1:-1:-1;;;;;18351:12:0::1;::::0;-1:-1:-1;;;;;;;;;;;18342:46:0;1557:2:1;1542:18;18342:46:0::1;;;;;;;18199:201;18435:12;::::0;18459:11:::1;::::0;;-1:-1:-1;;;;;;18459:11:0;;;;-1:-1:-1;;;;;18435:12:0;;::::1;::::0;;;18459:9:::1;::::0;:11:::1;::::0;;::::1;::::0;18410:13:::1;::::0;18459:11;;;;;;;18410:13;18435:12;18459:11;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18486:14:0::1;::::0;::::1;::::0;-1:-1:-1;18486:14:0;;-1:-1:-1;18486:14:0::1;-1:-1:-1::0;18518:4:0::1;::::0;17723:807;-1:-1:-1;;;;17723:807:0:o;20462:334::-;20599:10;20546:4;20587:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;20587:32:0;;;;;;;;;;20638:35;;;;20630:60;;;;-1:-1:-1;;;20630:60:0;;12300:2:1;20630:60:0;;;12282:21:1;12339:2;12319:18;;;12312:30;-1:-1:-1;;;12358:18:1;;;12351:42;12410:18;;20630:60:0;12098:336:1;20630:60:0;20701:65;20710:10;20722:7;20731:34;20750:15;20731:16;:34;:::i;20701:65::-;-1:-1:-1;20784:4:0;;20462:334;-1:-1:-1;;;20462:334:0:o;19232:164::-;19309:4;19326:40;19336:10;19348:9;19359:6;19326:9;:40::i;11942:504::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;12063:3:::1;12095:11:::0;;::::1;::::0;::::1;::::0;:25:::1;;;12114:6;12108:4;:12;;12095:25;:44;;;;;12133:6;12122:9;:17;;12095:44;12087:74;;;::::0;-1:-1:-1;;;12087:74:0;;12641:2:1;12087:74:0::1;::::0;::::1;12623:21:1::0;12680:2;12660:18;;;12653:30;-1:-1:-1;;;12699:18:1;;;12692:48;12757:18;;12087:74:0::1;12439:342:1::0;12087:74:0::1;4191:4;12180:13;12184:9:::0;12180:3;:13:::1;:::i;:::-;:30;12172:75;;;::::0;-1:-1:-1;;;12172:75:0;;12988:2:1;12172:75:0::1;::::0;::::1;12970:21:1::0;13027:2;13007:18;;;13000:30;13066:34;13046:18;;;13039:62;-1:-1:-1;;;13117:18:1;;;13110:31;13158:19;;12172:75:0::1;12786:397:1::0;12172:75:0::1;12258:6;:10:::0;;;12279:7:::1;:12:::0;;;12302:11:::1;:21:::0;;;12334:3:::1;:7:::0;;;12352:12:::1;:22:::0;;;12390:48:::1;::::0;;13447:25:1;;;13503:2;13488:18;;13481:34;;;13531:18;;;13524:34;;;13589:2;13574:18;;13567:34;;;13632:3;13617:19;;13610:35;;;12390:48:0::1;::::0;13434:3:1;13419:19;12390:48:0::1;;;;;;;12040:406;11942:504:::0;;;;;:::o;11646:290::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;11786:4:::1;11754:30;:36;;11746:45;;;::::0;::::1;;11802:19;:50:::0;;;11868:60:::1;::::0;1569:25:1;;;11868:60:0::1;::::0;1557:2:1;1542:18;11868:60:0::1;1423:177:1::0;11388:252:0;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;11505:2:::1;11480:23;:27;;11472:36;;;::::0;::::1;;11536:12;:36:::0;;;11588:44:::1;::::0;1569:25:1;;;11588:44:0::1;::::0;1557:2:1;1542:18;11588:44:0::1;1423:177:1::0;15510:251:0;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;15627:4:::1;-1:-1:-1::0;;;;;15610:22:0;::::1;::::0;15602:60:::1;;;::::0;-1:-1:-1;;;15602:60:0;;13858:2:1;15602:60:0::1;::::0;::::1;13840:21:1::0;13897:2;13877:18;;;13870:30;13936:28;13916:18;;;13909:56;13982:18;;15602:60:0::1;13656:350:1::0;15602:60:0::1;-1:-1:-1::0;;;;;15673:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;15673:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15722:31;;14179:51:1;;;14246:18;;;14239:50;15722:31:0::1;::::0;14152:18:1;15722:31:0::1;14011:284:1::0;2709:236:0;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2790:22:0;::::1;2782:73;;;::::0;-1:-1:-1;;;2782:73:0;;14502:2:1;2782:73:0::1;::::0;::::1;14484:21:1::0;14541:2;14521:18;;;14514:30;14580:34;14560:18;;;14553:62;-1:-1:-1;;;14631:18:1;;;14624:36;14677:19;;2782:73:0::1;14300:402:1::0;2782:73:0::1;2892:6;::::0;;2871:38:::1;::::0;-1:-1:-1;;;;;2871:38:0;;::::1;::::0;2892:6;::::1;::::0;2871:38:::1;::::0;::::1;2920:6;:17:::0;;-1:-1:-1;;;;;;2920:17:0::1;-1:-1:-1::0;;;;;2920:17:0;;;::::1;::::0;;;::::1;::::0;;2709:236::o;15767:191::-;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15865:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;15865:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15916:34;;14179:51:1;;;14246:18;;;14239:50;15916:34:0::1;::::0;14152:18:1;15916:34:0::1;14011:284:1::0;6834:142:0;2488:10;2477:7;2390;2417:6;-1:-1:-1;;;;;2417:6:0;;2352:79;2477:7;-1:-1:-1;;;;;2477:21:0;;2469:66;;;;-1:-1:-1;;;2469:66:0;;;;;;;:::i;:::-;6907:9:::1;:19:::0;;-1:-1:-1;;;;;;6907:19:0::1;-1:-1:-1::0;;;;;6907:19:0;::::1;::::0;;::::1;::::0;;;6942:26:::1;::::0;160:51:1;;;6942:26:0::1;::::0;148:2:1;133:18;6942:26:0::1;14:203:1::0;19566:294:0;-1:-1:-1;;;;;19656:19:0;;19648:49;;;;-1:-1:-1;;;19648:49:0;;14909:2:1;19648:49:0;;;14891:21:1;14948:2;14928:18;;;14921:30;-1:-1:-1;;;14967:18:1;;;14960:47;15024:18;;19648:49:0;14707:341:1;19648:49:0;-1:-1:-1;;;;;19716:21:0;;19708:49;;;;-1:-1:-1;;;19708:49:0;;15255:2:1;19708:49:0;;;15237:21:1;15294:2;15274:18;;;15267:30;-1:-1:-1;;;15313:18:1;;;15306:45;15368:18;;19708:49:0;15053:339:1;19708:49:0;-1:-1:-1;;;;;19768:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19820:32;;1569:25:1;;;19820:32:0;;1542:18:1;19820:32:0;;;;;;;19566:294;;;:::o;8092:931::-;-1:-1:-1;;;;;8185:20:0;;8177:51;;;;-1:-1:-1;;;8177:51:0;;15599:2:1;8177:51:0;;;15581:21:1;15638:2;15618:18;;;15611:30;-1:-1:-1;;;15657:18:1;;;15650:48;15715:18;;8177:51:0;15397:342:1;8177:51:0;-1:-1:-1;;;;;8247:23:0;;8239:52;;;;-1:-1:-1;;;8239:52:0;;15946:2:1;8239:52:0;;;15928:21:1;15985:2;15965:18;;;15958:30;-1:-1:-1;;;16004:18:1;;;15997:46;16060:18;;8239:52:0;15744:340:1;8239:52:0;8307:20;;;;8303:419;;;2390:7;2417:6;-1:-1:-1;;;;;8355:20:0;;;2417:6;;8355:20;;;;:46;;-1:-1:-1;;;;;;8379:22:0;;4921:42;8379:22;;8355:46;:75;;;;-1:-1:-1;8418:12:0;;-1:-1:-1;;;;;8405:25:0;;;8418:12;;8405:25;;8355:75;8351:352;;;8495:9;8466:39;;;;:28;:39;;;;;;8508:12;-1:-1:-1;8458:140:0;;;;-1:-1:-1;;;8458:140:0;;16291:2:1;8458:140:0;;;16273:21:1;16330:2;16310:18;;;16303:30;16369:34;16349:18;;;16342:62;16440:34;16420:18;;;16413:62;-1:-1:-1;;;16491:19:1;;;16484:40;16541:19;;8458:140:0;16089:477:1;8458:140:0;8654:9;8625:39;;;;:28;:39;;;;;8667:12;8625:54;;8351:352;-1:-1:-1;;;;;8735:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;8763:27:0;;;;;;:16;:27;;;;;;;;8735:55;8732:284;;;8805:43;8822:6;8830:9;8841:6;8805:16;:43::i;:::-;8092:931;;;:::o;8732:284::-;8904:1;8888:15;;:17;8880:52;;;;-1:-1:-1;;;8880:52:0;;16773:2:1;8880:52:0;;;16755:21:1;16812:2;16792:18;;;16785:30;16851:25;16831:18;;;16824:53;16894:18;;8880:52:0;16571:347:1;8880:52:0;8947:39;8962:6;8969:9;8979:6;8947:14;:39::i;12607:1378::-;5845:27;:34;;-1:-1:-1;;5845:34:0;5875:4;5845:34;;;;;;12723:4:::1;5845:27:::0;12705:24;;;::::1;::::0;;;;;;;;12767:3:::1;::::0;12754:12:::1;::::0;12705:24;;5845:27;12754:16:::1;::::0;12767:3;12754:16:::1;:::i;:::-;12822:12;::::0;12808::::1;::::0;-1:-1:-1;;;;;12808:12:0::1;12781:16;12798:23:::0;;;:9:::1;:23;::::0;;;;;12740:30;;-1:-1:-1;12781:16:0;12835:4:::1;::::0;12798:36:::1;::::0;::::1;:::i;:::-;:41;;;;:::i;:::-;12781:58;;12853:8;12863:1;12853:11:::0;12850:22:::1;;12865:7;;;;;12850:22;12885:12;12882:134;;;-1:-1:-1::0;12942:4:0::1;12924:24;::::0;;;:9:::1;:24;::::0;;;;;12882:134:::1;;;12983:11;12967:15;:27;12964:52;;;13009:7;;;;;12964:52;13028:22;13061:17;:15;:17::i;:::-;:65;;13118:8;13104:12;;13092:11;:24;;;;:::i;:::-;13091:35;;;;:::i;:::-;13061:65;;;13079:1;13061:65;13028:98:::0;-1:-1:-1;13139:20:0::1;13161:29;13028:98:::0;13161:11;:29:::1;:::i;:::-;13139:51:::0;-1:-1:-1;13203:12:0::1;13216:19;13234:1;13216:17:::0;:19:::1;:::i;:::-;13203:32:::0;-1:-1:-1;13246:14:0::1;13261:23;13269:15:::0;13203:32;13261:23:::1;:::i;:::-;13246:38:::0;-1:-1:-1;13318:21:0::1;13350:27;13246:38:::0;13350:16:::1;:27::i;:::-;13388:11;13401:41;13425:17:::0;13401:21:::1;:41;:::i;:::-;13388:55:::0;-1:-1:-1;13459:19:0;;13456:135:::1;;13494:11;13525:9:::0;13509:14:::1;13516:7:::0;13509:6;:14:::1;:::i;:::-;13508:26;;;;:::i;:::-;13494:40;;13549:30;13563:7;13572:6;13549:13;:30::i;:::-;13479:112;13456:135;13601:18;13657:3;13644:12;;13620:21;:36;;;;:::i;:::-;:40;;;;:::i;:::-;13601:59;;13671:15;13718:3;13711:6;;13687:21;:30;;;;:::i;:::-;:34;;;;:::i;:::-;13671:50:::0;-1:-1:-1;13735:15:0;;13732:130:::1;;13780:15;::::0;:45:::1;::::0;13763:14:::1;::::0;-1:-1:-1;;;;;13780:15:0::1;::::0;13807:13;;13763:14;13780:45;13763:14;13780:45;13807:13;13780:15;:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;13732:130:0::1;13875:12:::0;;13872:106:::1;;13911:9;::::0;:36:::1;::::0;13900:8:::1;::::0;-1:-1:-1;;;;;13911:9:0::1;::::0;13932:10;;13900:8;13911:36;13900:8;13911:36;13932:10;13911:9;:36:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;13872:106:0::1;12673:1312;;;;;;;;;;;5890:1;-1:-1:-1::0;5902:27:0;:35;;-1:-1:-1;;5902:35:0;;;12607:1378::o;11043:339::-;-1:-1:-1;;;;;11156:17:0;;11135:18;11156:17;;;:9;:17;;;;;;11192:23;;;;11184:60;;;;-1:-1:-1;;;11184:60:0;;17335:2:1;11184:60:0;;;17317:21:1;17374:2;17354:18;;;17347:30;-1:-1:-1;;;17393:18:1;;;17386:54;17457:18;;11184:60:0;17133:348:1;11184:60:0;-1:-1:-1;;;;;11255:17:0;;;;;;:9;:17;;;;;:25;;11274:6;;11255:17;:25;;11274:6;;11255:25;:::i;:::-;;;;-1:-1:-1;;;;;;;11291:20:0;;;;;;:9;:20;;;;;:28;;11313:6;;11291:20;:28;;11313:6;;11291:28;:::i;:::-;;;;;;;;11357:9;-1:-1:-1;;;;;11341:33:0;11350:6;-1:-1:-1;;;;;11341:33:0;-1:-1:-1;;;;;;;;;;;11367:6:0;11341:33;;;;1569:25:1;;1557:2;1542:18;;1423:177;11341:33:0;;;;;;;;11124:258;11043:339;;;:::o;9035:1820::-;-1:-1:-1;;;;;9146:17:0;;9125:18;9146:17;;;:9;:17;;;;;;9182:23;;;;9174:60;;;;-1:-1:-1;;;9174:60:0;;17335:2:1;9174:60:0;;;17317:21:1;17374:2;17354:18;;;17347:30;-1:-1:-1;;;17393:18:1;;;17386:54;17457:18;;9174:60:0;17133:348:1;9174:60:0;-1:-1:-1;;;;;9268:26:0;;9245:20;9268:26;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;9298:29:0;;;;;;:18;:29;;;;;;;;9268:59;-1:-1:-1;;;;;9342:13:0;;;;;;:5;:13;;;;;;9245:82;;-1:-1:-1;9342:13:0;;:46;;;;;9373:15;9372:16;9342:46;9338:642;;;9441:20;;9431:6;:30;;9405:132;;;;-1:-1:-1;;;9405:132:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19072:18:0;;9552:32;19072:18;;;:9;:18;;;;;;9685:16;;9648:33;9675:6;19072:18;9648:33;:::i;:::-;:53;;9622:151;;;;-1:-1:-1;;;9622:151:0;;18097:2:1;9622:151:0;;;18079:21:1;18136:2;18116:18;;;18109:30;18175:34;18155:18;;;18148:62;-1:-1:-1;;;18226:18:1;;;18219:34;18270:19;;9622:151:0;17895:400:1;9622:151:0;9390:395;9338:642;;;-1:-1:-1;;;;;9809:16:0;;;;;;:5;:16;;;;;;;;:49;;;;;9843:15;9842:16;9809:49;9791:189;;;9903:20;;9893:6;:30;;9885:83;;;;-1:-1:-1;;;9885:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10003:13:0;;;9992:10;10003:13;;;:5;:13;;;;;;;10039:16;;;;;;;;10003:13;;;;;10039:16;;10085:145;;;;-1:-1:-1;10114:7:0;;10085:145;;;10141:5;10138:92;;;-1:-1:-1;10166:6:0;;10138:92;;;-1:-1:-1;10207:11:0;;10138:92;10254:12;;-1:-1:-1;;;;;10246:20:0;;;10254:12;;10246:20;;;;10245:37;;-1:-1:-1;10271:10:0;;;;;;;10270:11;10245:37;:69;;;;-1:-1:-1;10286:27:0;;;;10285:28;10245:69;10242:112;;;10329:25;10348:5;10329:18;:25::i;:::-;10371:27;;;;10370:28;:48;;;;-1:-1:-1;;;;;;10402:16:0;;;;;;:5;:16;;;;;;;;10370:48;:65;;;;-1:-1:-1;10422:13:0;;;;;;;10370:65;:120;;;;;10475:15;;10458:14;;:32;;;;:::i;:::-;10439:15;:51;;10370:120;10367:169;;;10506:18;:16;:18::i;:::-;;10367:169;10548:18;10567:44;10581:6;10589:3;10598:12;;10594:3;;:16;;;;:::i;:::-;10567:13;:44::i;:::-;10548:63;-1:-1:-1;10622:16:0;10639:20;10548:63;10639:6;:20;:::i;:::-;-1:-1:-1;;;;;10672:17:0;;;;;;:9;:17;;;;;:25;;10622:37;;-1:-1:-1;10691:6:0;;10672:17;;;:25;;10691:6;;10672:25;:::i;:::-;;;;-1:-1:-1;;10726:4:0;10708:24;;;;:9;:24;;;;;:41;;10736:13;;10708:24;:41;;10736:13;;10708:41;:::i;:::-;;;;-1:-1:-1;;;;;;;10760:20:0;;;;;;:9;:20;;;;;:33;;10782:11;;10760:20;:33;;10782:11;;10760:33;:::i;:::-;;;;;;;;10825:9;-1:-1:-1;;;;;10809:38:0;10818:6;-1:-1:-1;;;;;10809:38:0;-1:-1:-1;;;;;;;;;;;10835:11:0;10809:38;;;;1569:25:1;;1557:2;1542:18;;1423:177;10809:38:0;;;;;;;;9114:1741;;;;;;;9035:1820;;;:::o;13991:462::-;14081:10;;14049:52;;14066:4;;14081:10;;;-1:-1:-1;;;;;14081:10:0;14094:6;14049:8;:52::i;:::-;14136:16;;;14150:1;14136:16;;;;;;;;14112:21;;14136:16;;;;;;;;;;-1:-1:-1;14136:16:0;14112:40;;14181:4;14163;14168:1;14163:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14163:23:0;;;-1:-1:-1;;;;;14163:23:0;;;;;14207:10;;;;;;;;;-1:-1:-1;;;;;14207:10:0;-1:-1:-1;;;;;14207:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14197:4;14202:1;14197:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14197:27:0;;;:7;;;;;;;;;:27;14241:10;;:186;;-1:-1:-1;;;14241:186:0;;:10;;;;;;;;:61;;:186;;14317:6;;14338:1;;14354:4;;14381;;14401:15;;14241:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14038:415;13991:462;:::o;14459:351::-;14567:10;;14535:57;;14552:4;;14567:10;;;-1:-1:-1;;;;;14567:10:0;14580:11;14535:8;:57::i;:::-;14603:10;;:199;;-1:-1:-1;;;14603:199:0;;14670:4;14603:199;;;20146:34:1;;;20196:18;;;20189:34;;;14716:1:0;20239:18:1;;;20232:34;;;20282:18;;;20275:34;20325:19;;;20318:44;14776:15:0;20378:19:1;;;20371:35;14603:10:0;;;;-1:-1:-1;;;;;14603:10:0;;:26;;14637:9;;20080:19:1;;14603:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14459:351;;:::o;17132:583::-;17211:15;17194:14;:32;17283:12;;17268:28;;-1:-1:-1;;;17268:28:0;;-1:-1:-1;;;;;17283:12:0;;;17268:28;;;160:51:1;17178:4:0;;;;17268;;:14;;133:18:1;;17268:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17237:59;;17307:20;17370:5;17353:16;;17330:20;:39;;;;:::i;:::-;:45;;;;:::i;:::-;17307:68;-1:-1:-1;17390:16:0;;17386:201;;17432:12;;-1:-1:-1;;;;;17432:12:0;17422:23;;;;:9;:23;;;;;:37;;17447:12;;17422:23;:37;;17447:12;;17422:37;:::i;:::-;;;;-1:-1:-1;;4871:6:0;17474:21;;;;:9;:21;;-1:-1:-1;;;;;;;;;;;17474:35:0;;17497:12;;17474:21;:35;;17497:12;;17474:35;:::i;:::-;;;;-1:-1:-1;;17538:12:0;;17529:46;;1569:25:1;;;4871:6:0;;-1:-1:-1;;;;;17538:12:0;;-1:-1:-1;;;;;;;;;;;17529:46:0;1557:2:1;1542:18;17529:46:0;;;;;;;17386:201;17622:12;;17646:11;;;-1:-1:-1;;;;;;17646:11:0;;;;-1:-1:-1;;;;;17622:12:0;;;;;;17646:9;;:11;;;;;17597:13;;17646:11;;;;;;;17597:13;17622:12;17646:11;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17673:12:0;;;;-1:-1:-1;17673:12:0;;-1:-1:-1;17673:12:0;17703:4;17696:11;;;;;17132:583;:::o;10861:176::-;10946:4;10997:31;4191:4;;10997:31;:::i;:::-;10982:10;10971;10978:3;10971:6;:10;:::i;:::-;:21;;;;:::i;:::-;10970:59;;;;:::i;:::-;10963:66;10861:176;-1:-1:-1;;;;10861:176:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:118::-;2341:5;2334:13;2327:21;2320:5;2317:32;2307:60;;2363:1;2360;2353:12;2378:382;2443:6;2451;2504:2;2492:9;2483:7;2479:23;2475:32;2472:52;;;2520:1;2517;2510:12;2472:52;2559:9;2546:23;2578:31;2603:5;2578:31;:::i;:::-;2628:5;-1:-1:-1;2685:2:1;2670:18;;2657:32;2698:30;2657:32;2698:30;:::i;:::-;2747:7;2737:17;;;2378:382;;;;;:::o;2765:247::-;2824:6;2877:2;2865:9;2856:7;2852:23;2848:32;2845:52;;;2893:1;2890;2883:12;2845:52;2932:9;2919:23;2951:31;2976:5;2951:31;:::i;:::-;3001:5;2765:247;-1:-1:-1;;;2765:247:1:o;3017:248::-;3085:6;3093;3146:2;3134:9;3125:7;3121:23;3117:32;3114:52;;;3162:1;3159;3152:12;3114:52;-1:-1:-1;;3185:23:1;;;3255:2;3240:18;;;3227:32;;-1:-1:-1;3017:248:1:o;3270:377::-;3344:6;3352;3360;3413:2;3401:9;3392:7;3388:23;3384:32;3381:52;;;3429:1;3426;3419:12;3381:52;3465:9;3452:23;3442:33;;3522:2;3511:9;3507:18;3494:32;3484:42;;3576:2;3565:9;3561:18;3548:32;3589:28;3611:5;3589:28;:::i;:::-;3636:5;3626:15;;;3270:377;;;;;:::o;3652:241::-;3708:6;3761:2;3749:9;3740:7;3736:23;3732:32;3729:52;;;3777:1;3774;3767:12;3729:52;3816:9;3803:23;3835:28;3857:5;3835:28;:::i;3898:180::-;3957:6;4010:2;3998:9;3989:7;3985:23;3981:32;3978:52;;;4026:1;4023;4016:12;3978:52;-1:-1:-1;4049:23:1;;3898:180;-1:-1:-1;3898:180:1:o;4083:454::-;4178:6;4186;4194;4202;4210;4263:3;4251:9;4242:7;4238:23;4234:33;4231:53;;;4280:1;4277;4270:12;4231:53;-1:-1:-1;;4303:23:1;;;4373:2;4358:18;;4345:32;;-1:-1:-1;4424:2:1;4409:18;;4396:32;;4475:2;4460:18;;4447:32;;-1:-1:-1;4526:3:1;4511:19;4498:33;;-1:-1:-1;4083:454:1;-1:-1:-1;4083:454:1:o;4542:388::-;4610:6;4618;4671:2;4659:9;4650:7;4646:23;4642:32;4639:52;;;4687:1;4684;4677:12;4639:52;4726:9;4713:23;4745:31;4770:5;4745:31;:::i;:::-;4795:5;-1:-1:-1;4852:2:1;4837:18;;4824:32;4865:33;4824:32;4865:33;:::i;4935:127::-;4996:10;4991:3;4987:20;4984:1;4977:31;5027:4;5024:1;5017:15;5051:4;5048:1;5041:15;5067:422;5156:1;5199:5;5156:1;5213:270;5234:7;5224:8;5221:21;5213:270;;;5293:4;5289:1;5285:6;5281:17;5275:4;5272:27;5269:53;;;5302:18;;:::i;:::-;5352:7;5342:8;5338:22;5335:55;;;5372:16;;;;5335:55;5451:22;;;;5411:15;;;;5213:270;;;5217:3;5067:422;;;;;:::o;5494:806::-;5543:5;5573:8;5563:80;;-1:-1:-1;5614:1:1;5628:5;;5563:80;5662:4;5652:76;;-1:-1:-1;5699:1:1;5713:5;;5652:76;5744:4;5762:1;5757:59;;;;5830:1;5825:130;;;;5737:218;;5757:59;5787:1;5778:10;;5801:5;;;5825:130;5862:3;5852:8;5849:17;5846:43;;;5869:18;;:::i;:::-;-1:-1:-1;;5925:1:1;5911:16;;5940:5;;5737:218;;6039:2;6029:8;6026:16;6020:3;6014:4;6011:13;6007:36;6001:2;5991:8;5988:16;5983:2;5977:4;5974:12;5970:35;5967:77;5964:159;;;-1:-1:-1;6076:19:1;;;6108:5;;5964:159;6155:34;6180:8;6174:4;6155:34;:::i;:::-;6225:6;6221:1;6217:6;6213:19;6204:7;6201:32;6198:58;;;6236:18;;:::i;:::-;6274:20;;5494:806;-1:-1:-1;;;5494:806:1:o;6305:140::-;6363:5;6392:47;6433:4;6423:8;6419:19;6413:4;6392:47;:::i;6450:168::-;6523:9;;;6554;;6571:15;;;6565:22;;6551:37;6541:71;;6592:18;;:::i;6623:356::-;6825:2;6807:21;;;6844:18;;;6837:30;6903:34;6898:2;6883:18;;6876:62;6970:2;6955:18;;6623:356::o;7328:217::-;7368:1;7394;7384:132;;7438:10;7433:3;7429:20;7426:1;7419:31;7473:4;7470:1;7463:15;7501:4;7498:1;7491:15;7384:132;-1:-1:-1;7530:9:1;;7328:217::o;7899:128::-;7966:9;;;7987:11;;;7984:37;;;8001:18;;:::i;8032:125::-;8097:9;;;8118:10;;;8115:36;;;8131:18;;:::i;9518:184::-;9588:6;9641:2;9629:9;9620:7;9616:23;9612:32;9609:52;;;9657:1;9654;9647:12;9609:52;-1:-1:-1;9680:16:1;;9518:184;-1:-1:-1;9518:184:1:o;9986:245::-;10053:6;10106:2;10094:9;10085:7;10081:23;10077:32;10074:52;;;10122:1;10119;10112:12;10074:52;10154:9;10148:16;10173:28;10195:5;10173:28;:::i;17486:404::-;17688:2;17670:21;;;17727:2;17707:18;;;17700:30;17766:34;17761:2;17746:18;;17739:62;-1:-1:-1;;;17832:2:1;17817:18;;17810:38;17880:3;17865:19;;17486:404::o;18432:127::-;18493:10;18488:3;18484:20;18481:1;18474:31;18524:4;18521:1;18514:15;18548:4;18545:1;18538:15;18564:251;18634:6;18687:2;18675:9;18666:7;18662:23;18658:32;18655:52;;;18703:1;18700;18693:12;18655:52;18735:9;18729:16;18754:31;18779:5;18754:31;:::i;18820:980::-;19082:4;19130:3;19119:9;19115:19;19161:6;19150:9;19143:25;19187:2;19225:6;19220:2;19209:9;19205:18;19198:34;19268:3;19263:2;19252:9;19248:18;19241:31;19292:6;19327;19321:13;19358:6;19350;19343:22;19396:3;19385:9;19381:19;19374:26;;19435:2;19427:6;19423:15;19409:29;;19456:1;19466:195;19480:6;19477:1;19474:13;19466:195;;;19545:13;;-1:-1:-1;;;;;19541:39:1;19529:52;;19636:15;;;;19601:12;;;;19577:1;19495:9;19466:195;;;-1:-1:-1;;;;;;;19717:32:1;;;;19712:2;19697:18;;19690:60;-1:-1:-1;;;19781:3:1;19766:19;19759:35;19678:3;18820:980;-1:-1:-1;;;18820:980:1:o;20417:306::-;20505:6;20513;20521;20574:2;20562:9;20553:7;20549:23;20545:32;20542:52;;;20590:1;20587;20580:12;20542:52;20619:9;20613:16;20603:26;;20669:2;20658:9;20654:18;20648:25;20638:35;;20713:2;20702:9;20698:18;20692:25;20682:35;;20417:306;;;;;:::o

Swarm Source

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