ETH Price: $4,007.36 (+0.05%)

Token

HashPower AI (HASH)
 

Overview

Max Total Supply

10,000,000 HASH

Holders

446

Market

Price

$0.00 @ 0.000001 ETH

Onchain Market Cap

$31,263.30

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
30,129.214540372 HASH

Value
$94.19 ( ~0.0235042363761726 Eth) [0.3013%]
0x4df10955cc935291cc2f5d5532051cd876c00b40
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

HashPower offering server hosting, Web3 Nodes, and GPUs

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HashPowerAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-12
*/

/*
Website: https://hashpower.bot
Docs: https://docs.hashpower.bot
Twitter: https://twitter.com/hashpowerai
Telegram : https://t.me/hashpowerai
Bot: https://t.me/hashpowerai_bot
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.18;

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

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

    constructor() {
        address msgSender = _msgSender();

        _owner = msgSender;

        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

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

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

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

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

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

contract HashPowerAI is
    Context,
    IERC20,
    Ownable
{
    using SafeMath for uint256;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _balances;

    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint8 private constant _decimals = 9;
    string private constant _name = "HashPower AI";
    string private constant _symbol = "HASH";

    uint256 private constant MAX = ~uint256(0);

    address payable private _mrktAddress = payable(0xa3c95a3305389C150c81543A345c48339E21cE5d);

    bool private inSwap = false;
    bool private isTradingLive;
    bool private allowSwap = true;

    uint256 private _oldTaxFee = _taxFee;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _taxFeeOnSell = 5;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    uint256 public _minSwap = 1000 * 10**9;
    uint256 public _maxTxLimit = 100000 * 10**9;
    uint256 public _maxBalance = 100000 * 10**9;

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

    constructor() {
        _balances[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_mrktAddress] = true;
        _isExcludedFromFee[address(this)] = true;

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

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

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

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

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

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

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

    function deactivateFee() private {
        if (_taxFee == 0) return;

        _oldTaxFee = _taxFee;

        _taxFee = 0;
    }

    function activateFee() private {
        _taxFee = _oldTaxFee;
    }

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount has to be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");

        if (from != owner() && to != owner()) {
            //Trade start check
            if (!isTradingLive) {
                require(
                    from == owner(),
                    "Only owner can trade before trading activation"
                );
            }

            require(amount <= _maxTxLimit, "Exceeded max transaction limit");

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxBalance,
                    "Exceeds max wallet balance"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _minSwap;

            if (contractTokenBalance >= _maxTxLimit) {
                contractTokenBalance = _maxTxLimit;
            }

            if (
                canSwap &&
                !inSwap &&
                from != uniswapV2Pair &&
                allowSwap &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    transferEthToMrkt(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            //Set Fee for Buys
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function transferEthToMrkt(uint256 amount) private {
        _mrktAddress.transfer(amount);
    }

    function changeTradingStatus(bool _isTradingLive) public onlyOwner {
        isTradingLive = _isTradingLive;
    }

    function setMinTknsToSwap(uint256 swapTokensAtAmount) public onlyOwner {
        _minSwap = swapTokensAtAmount;
    }

    function setMaxBalance(uint256 maxWalletSize) public onlyOwner {
        _maxBalance = maxWalletSize;
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        return (_rTotal, _tTotal);
    }

    function setAllowSwap(bool _allowSwap) public onlyOwner {
        allowSwap = _allowSwap;
    }

    function manualsend() external {
        require(_msgSender() == _mrktAddress);
        uint256 contractETHBalance = address(this).balance;
        transferEthToMrkt(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) deactivateFee();
        _transferTakingFees(sender, recipient, amount);
        if (!takeFee) activateFee();
    }

    function _transferTakingFees(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getFeeValues(tAmount);

        _balances[sender] = _balances[sender].sub(rAmount);
        _balances[recipient] = _balances[recipient].add(rTransferAmount);

        _sendFeeToMrkt(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _sendFeeToMrkt(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _balances[address(this)] = _balances[address(this)].add(rTeam);
    }

    function manualswap() external {
        require(_msgSender() == _mrktAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function _getFeeValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tTeam) = _getTaxValues(
            tAmount,
            _taxFee
        );
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount) = _getReflectedValues(
            tAmount,
            tTeam,
            currentRate
        );
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }

    function excludeAccountsFromFees(address[] calldata accounts, bool excluded)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell)
        public
        onlyOwner
    {
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 45);
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 45);

        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMaxTxLimit(uint256 maxTxAmount) public onlyOwner {
        _maxTxLimit = maxTxAmount;
    }

    function _getTaxValues(uint256 tAmount, uint256 taxFee)
        private
        pure
        returns (uint256, uint256)
    {
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tTeam);
        return (tTransferAmount, tTeam);
    }

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

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

    receive() external payable {}

    function _getReflectedValues(
        uint256 tAmount,
        uint256 tTeam,
        uint256 currentRate
    ) private pure returns (uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTeam);
        return (rAmount, rTransferAmount);
    }
}

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":[],"name":"_maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingLive","type":"bool"}],"name":"changeTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowSwap","type":"bool"}],"name":"setAllowSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinTknsToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052662386f26fc100006000196200001b919062000625565b6000196200002a91906200068c565b60055573a3c95a3305389c150c81543a345c48339e21ce5d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660146101000a81548160ff0219169083151502179055506001600660166101000a81548160ff021916908315150217905550600854600755600a5460085560056009556005600a5564e8d4a51000600d55655af3107a4000600e55655af3107a4000600f55348015620000f857600080fd5b5060006200010b620005bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460046000620001c0620005bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca919062000731565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000358919062000731565b6040518363ffffffff1660e01b81526004016200037792919062000774565b6020604051808303816000875af115801562000397573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bd919062000731565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016003600062000413620005c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000546620005bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620005ac9190620007b2565b60405180910390a350620007cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200063282620005ec565b91506200063f83620005ec565b925082620006525762000651620005f6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200069982620005ec565b9150620006a683620005ec565b9250828203905081811115620006c157620006c06200065d565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006f982620006cc565b9050919050565b6200070b81620006ec565b81146200071757600080fd5b50565b6000815190506200072b8162000700565b92915050565b6000602082840312156200074a5762000749620006c7565b5b60006200075a848285016200071a565b91505092915050565b6200076e81620006ec565b82525050565b60006040820190506200078b600083018562000763565b6200079a602083018462000763565b9392505050565b620007ac81620005ec565b82525050565b6000602082019050620007c96000830184620007a1565b92915050565b61344380620007df6000396000f3fe6080604052600436106101855760003560e01c80636fc3eaec116100d15780639d51d9b71161008a578063daad0c5f11610064578063daad0c5f14610543578063dd62ed3e1461056c578063f2fde38b146105a9578063f8f3c5a9146105d25761018c565b80639d51d9b7146104c6578063a9059cbb146104ef578063c3c8cd801461052c5761018c565b80636fc3eaec146103dc57806370a08231146103f3578063715018a6146104305780638da5cb5b1461044757806390d2c93a1461047257806395d89b411461049b5761018c565b8063313ce5671161013e57806349bd5a5e1161011857806349bd5a5e14610336578063526b13fd1461036157806352f7c9881461038a57806364f5a5bb146103b35761018c565b8063313ce567146102b75780633ac992d6146102e2578063410424cc1461030b5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd146102245780631b1d8af21461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b391906125da565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061269a565b61063a565b6040516101f091906126f5565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b919061276f565b60405180910390f35b34801561023057600080fd5b5061023961067e565b6040516102469190612799565b60405180910390f35b34801561025b57600080fd5b5061026461068d565b6040516102719190612799565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c91906127b4565b610693565b6040516102ae91906126f5565b60405180910390f35b3480156102c357600080fd5b506102cc61076c565b6040516102d99190612823565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061283e565b610775565b005b34801561031757600080fd5b50610320610814565b60405161032d9190612799565b60405180910390f35b34801561034257600080fd5b5061034b61081a565b604051610358919061287a565b60405180910390f35b34801561036d57600080fd5b50610388600480360381019061038391906128c1565b610840565b005b34801561039657600080fd5b506103b160048036038101906103ac91906128ee565b6108f2565b005b3480156103bf57600080fd5b506103da60048036038101906103d5919061283e565b6109cf565b005b3480156103e857600080fd5b506103f1610a6e565b005b3480156103ff57600080fd5b5061041a6004803603810190610415919061292e565b610ae0565b6040516104279190612799565b60405180910390f35b34801561043c57600080fd5b50610445610b31565b005b34801561045357600080fd5b5061045c610c84565b604051610469919061287a565b60405180910390f35b34801561047e57600080fd5b50610499600480360381019061049491906129c0565b610cad565b005b3480156104a757600080fd5b506104b0610de7565b6040516104bd91906125da565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e8919061283e565b610e24565b005b3480156104fb57600080fd5b506105166004803603810190610511919061269a565b610ec3565b60405161052391906126f5565b60405180910390f35b34801561053857600080fd5b50610541610ee1565b005b34801561054f57600080fd5b5061056a600480360381019061056591906128c1565b610f5b565b005b34801561057857600080fd5b50610593600480360381019061058e9190612a20565b61100d565b6040516105a09190612799565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb919061292e565b611094565b005b3480156105de57600080fd5b506105e7611255565b6040516105f49190612799565b60405180910390f35b60606040518060400160405280600c81526020017f48617368506f7765722041490000000000000000000000000000000000000000815250905090565b600061064e61064761125b565b8484611263565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600d5481565b60006106a084848461142c565b610761846106ac61125b565b61075c856040518060600160405280602581526020016133e960259139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071261125b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbc9092919063ffffffff16565b611263565b600190509392505050565b60006009905090565b61077d61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612aac565b60405180910390fd5b80600d8190555050565b600f5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084861125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612aac565b60405180910390fd5b80600660156101000a81548160ff02191690831515021790555050565b6108fa61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e90612aac565b60405180910390fd5b600082101580156109995750602d8211155b6109a257600080fd5b600081101580156109b45750602d8111155b6109bd57600080fd5b8160098190555080600a819055505050565b6109d761125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90612aac565b60405180910390fd5b80600e8190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaf61125b565b73ffffffffffffffffffffffffffffffffffffffff1614610acf57600080fd5b6000479050610add81611c20565b50565b6000610b2a600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8c565b9050919050565b610b3961125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612aac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb561125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990612aac565b60405180910390fd5b60005b83839050811015610de1578160036000868685818110610d6857610d67612acc565b5b9050602002016020810190610d7d919061292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dd990612b2a565b915050610d45565b50505050565b60606040518060400160405280600481526020017f4841534800000000000000000000000000000000000000000000000000000000815250905090565b610e2c61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb090612aac565b60405180910390fd5b80600f8190555050565b6000610ed7610ed061125b565b848461142c565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f2261125b565b73ffffffffffffffffffffffffffffffffffffffff1614610f4257600080fd5b6000610f4d30610ae0565b9050610f5881611cfa565b50565b610f6361125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe790612aac565b60405180910390fd5b80600660166101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61109c61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090612aac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612be4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990612c50565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612cbc565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f9190612799565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290612d28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190612d94565b60405180910390fd5b6000811161154d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154490612e00565b60405180910390fd5b611555610c84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c35750611593610c84565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118cd57600660159054906101000a900460ff16611652576115e4610c84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890612e92565b60405180910390fd5b5b600e54811115611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90612efe565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174457600f54816116f984610ae0565b6117039190612f1e565b10611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90612f9e565b60405180910390fd5b5b600061174f30610ae0565b90506000600d548210159050600e54821061176a57600e5491505b8080156117845750600660149054906101000a900460ff16155b80156117de5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117f65750600660169054906101000a900460ff165b801561184c5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a25750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118ca576118b082611cfa565b600047905060008111156118c8576118c747611c20565b5b505b50505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119745750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a275750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a265750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a355760009050611baa565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae05750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aef576009546008819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9a5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ba957600a546008819055505b5b611bb684848484611f73565b50505050565b6000838311158290611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb91906125da565b60405180910390fd5b5060008385611c139190612fbe565b9050809150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c88573d6000803e3d6000fd5b5050565b6000600554821115611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca90613064565b60405180910390fd5b6000611cdd611fa0565b9050611cf28184611fcb90919063ffffffff16565b915050919050565b6001600660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3257611d31613084565b5b604051908082528060200260200182016040528015611d605781602001602082028036833780820191505090505b5090503081600081518110611d7857611d77612acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4391906130c8565b81600181518110611e5757611e56612acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebe30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611263565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f229594939291906131ee565b600060405180830381600087803b158015611f3c57600080fd5b505af1158015611f50573d6000803e3d6000fd5b50505050506000600660146101000a81548160ff02191690831515021790555050565b80611f8157611f80612015565b5b611f8c848484612034565b80611f9a57611f996121ec565b5b50505050565b6000806000611fad6121f7565b91509150611fc48183611fcb90919063ffffffff16565b9250505090565b600061200d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061220d565b905092915050565b600060085403156120325760085460078190555060006008819055505b565b60008060008061204385612270565b935093509350935061209d84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122bf90919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213283600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230990919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217e81612367565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121db9190612799565b60405180910390a350505050505050565b600754600881905550565b600080600554662386f26fc10000915091509091565b60008083118290612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b91906125da565b60405180910390fd5b50600083856122639190613277565b9050809150509392505050565b60008060008060008061228587600854612424565b915091506000612293611fa0565b90506000806122a38a8585612477565b9150915081818686985098509850985050505050509193509193565b600061230183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbc565b905092915050565b60008082846123189190612f1e565b90508381101561235d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612354906132f4565b60405180910390fd5b8091505092915050565b6000612371611fa0565b9050600061238882846124d090919063ffffffff16565b90506123dc81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230990919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080600061244f606461244186886124d090919063ffffffff16565b611fcb90919063ffffffff16565b9050600061246682876122bf90919063ffffffff16565b905080829350935050509250929050565b600080600061248f84876124d090919063ffffffff16565b905060006124a685876124d090919063ffffffff16565b905060006124bd82846122bf90919063ffffffff16565b9050828194509450505050935093915050565b60008083036124e25760009050612544565b600082846124f09190613314565b90508284826124ff9190613277565b1461253f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612536906133c8565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612584578082015181840152602081019050612569565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ac8261254a565b6125b68185612555565b93506125c6818560208601612566565b6125cf81612590565b840191505092915050565b600060208201905081810360008301526125f481846125a1565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263182612606565b9050919050565b61264181612626565b811461264c57600080fd5b50565b60008135905061265e81612638565b92915050565b6000819050919050565b61267781612664565b811461268257600080fd5b50565b6000813590506126948161266e565b92915050565b600080604083850312156126b1576126b06125fc565b5b60006126bf8582860161264f565b92505060206126d085828601612685565b9150509250929050565b60008115159050919050565b6126ef816126da565b82525050565b600060208201905061270a60008301846126e6565b92915050565b6000819050919050565b600061273561273061272b84612606565b612710565b612606565b9050919050565b60006127478261271a565b9050919050565b60006127598261273c565b9050919050565b6127698161274e565b82525050565b60006020820190506127846000830184612760565b92915050565b61279381612664565b82525050565b60006020820190506127ae600083018461278a565b92915050565b6000806000606084860312156127cd576127cc6125fc565b5b60006127db8682870161264f565b93505060206127ec8682870161264f565b92505060406127fd86828701612685565b9150509250925092565b600060ff82169050919050565b61281d81612807565b82525050565b60006020820190506128386000830184612814565b92915050565b600060208284031215612854576128536125fc565b5b600061286284828501612685565b91505092915050565b61287481612626565b82525050565b600060208201905061288f600083018461286b565b92915050565b61289e816126da565b81146128a957600080fd5b50565b6000813590506128bb81612895565b92915050565b6000602082840312156128d7576128d66125fc565b5b60006128e5848285016128ac565b91505092915050565b60008060408385031215612905576129046125fc565b5b600061291385828601612685565b925050602061292485828601612685565b9150509250929050565b600060208284031215612944576129436125fc565b5b60006129528482850161264f565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129805761297f61295b565b5b8235905067ffffffffffffffff81111561299d5761299c612960565b5b6020830191508360208202830111156129b9576129b8612965565b5b9250929050565b6000806000604084860312156129d9576129d86125fc565b5b600084013567ffffffffffffffff8111156129f7576129f6612601565b5b612a038682870161296a565b93509350506020612a16868287016128ac565b9150509250925092565b60008060408385031215612a3757612a366125fc565b5b6000612a458582860161264f565b9250506020612a568582860161264f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a96602083612555565b9150612aa182612a60565b602082019050919050565b60006020820190508181036000830152612ac581612a89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3582612664565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6757612b66612afb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bce602683612555565b9150612bd982612b72565b604082019050919050565b60006020820190508181036000830152612bfd81612bc1565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612c3a601f83612555565b9150612c4582612c04565b602082019050919050565b60006020820190508181036000830152612c6981612c2d565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612ca6601d83612555565b9150612cb182612c70565b602082019050919050565b60006020820190508181036000830152612cd581612c99565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612d12601f83612555565b9150612d1d82612cdc565b602082019050919050565b60006020820190508181036000830152612d4181612d05565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612d7e601d83612555565b9150612d8982612d48565b602082019050919050565b60006020820190508181036000830152612dad81612d71565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612dea601b83612555565b9150612df582612db4565b602082019050919050565b60006020820190508181036000830152612e1981612ddd565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612e7c602e83612555565b9150612e8782612e20565b604082019050919050565b60006020820190508181036000830152612eab81612e6f565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000612ee8601e83612555565b9150612ef382612eb2565b602082019050919050565b60006020820190508181036000830152612f1781612edb565b9050919050565b6000612f2982612664565b9150612f3483612664565b9250828201905080821115612f4c57612f4b612afb565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000612f88601a83612555565b9150612f9382612f52565b602082019050919050565b60006020820190508181036000830152612fb781612f7b565b9050919050565b6000612fc982612664565b9150612fd483612664565b9250828203905081811115612fec57612feb612afb565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b600061304e602c83612555565b915061305982612ff2565b604082019050919050565b6000602082019050818103600083015261307d81613041565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130c281612638565b92915050565b6000602082840312156130de576130dd6125fc565b5b60006130ec848285016130b3565b91505092915050565b6000819050919050565b600061311a613115613110846130f5565b612710565b612664565b9050919050565b61312a816130ff565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316581612626565b82525050565b6000613177838361315c565b60208301905092915050565b6000602082019050919050565b600061319b82613130565b6131a5818561313b565b93506131b08361314c565b8060005b838110156131e15781516131c8888261316b565b97506131d383613183565b9250506001810190506131b4565b5085935050505092915050565b600060a082019050613203600083018861278a565b6132106020830187613121565b81810360408301526132228186613190565b9050613231606083018561286b565b61323e608083018461278a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328282612664565b915061328d83612664565b92508261329d5761329c613248565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132de601b83612555565b91506132e9826132a8565b602082019050919050565b6000602082019050818103600083015261330d816132d1565b9050919050565b600061331f82612664565b915061332a83612664565b925082820261333881612664565b9150828204841483151761334f5761334e612afb565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133b2602183612555565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204f862b50de29870e9e711c8ed72ff97399110c8cf6db62af532cf8ea3ea3257d64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636fc3eaec116100d15780639d51d9b71161008a578063daad0c5f11610064578063daad0c5f14610543578063dd62ed3e1461056c578063f2fde38b146105a9578063f8f3c5a9146105d25761018c565b80639d51d9b7146104c6578063a9059cbb146104ef578063c3c8cd801461052c5761018c565b80636fc3eaec146103dc57806370a08231146103f3578063715018a6146104305780638da5cb5b1461044757806390d2c93a1461047257806395d89b411461049b5761018c565b8063313ce5671161013e57806349bd5a5e1161011857806349bd5a5e14610336578063526b13fd1461036157806352f7c9881461038a57806364f5a5bb146103b35761018c565b8063313ce567146102b75780633ac992d6146102e2578063410424cc1461030b5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd146102245780631b1d8af21461024f57806323b872dd1461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b391906125da565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061269a565b61063a565b6040516101f091906126f5565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b919061276f565b60405180910390f35b34801561023057600080fd5b5061023961067e565b6040516102469190612799565b60405180910390f35b34801561025b57600080fd5b5061026461068d565b6040516102719190612799565b60405180910390f35b34801561028657600080fd5b506102a1600480360381019061029c91906127b4565b610693565b6040516102ae91906126f5565b60405180910390f35b3480156102c357600080fd5b506102cc61076c565b6040516102d99190612823565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061283e565b610775565b005b34801561031757600080fd5b50610320610814565b60405161032d9190612799565b60405180910390f35b34801561034257600080fd5b5061034b61081a565b604051610358919061287a565b60405180910390f35b34801561036d57600080fd5b50610388600480360381019061038391906128c1565b610840565b005b34801561039657600080fd5b506103b160048036038101906103ac91906128ee565b6108f2565b005b3480156103bf57600080fd5b506103da60048036038101906103d5919061283e565b6109cf565b005b3480156103e857600080fd5b506103f1610a6e565b005b3480156103ff57600080fd5b5061041a6004803603810190610415919061292e565b610ae0565b6040516104279190612799565b60405180910390f35b34801561043c57600080fd5b50610445610b31565b005b34801561045357600080fd5b5061045c610c84565b604051610469919061287a565b60405180910390f35b34801561047e57600080fd5b50610499600480360381019061049491906129c0565b610cad565b005b3480156104a757600080fd5b506104b0610de7565b6040516104bd91906125da565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e8919061283e565b610e24565b005b3480156104fb57600080fd5b506105166004803603810190610511919061269a565b610ec3565b60405161052391906126f5565b60405180910390f35b34801561053857600080fd5b50610541610ee1565b005b34801561054f57600080fd5b5061056a600480360381019061056591906128c1565b610f5b565b005b34801561057857600080fd5b50610593600480360381019061058e9190612a20565b61100d565b6040516105a09190612799565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb919061292e565b611094565b005b3480156105de57600080fd5b506105e7611255565b6040516105f49190612799565b60405180910390f35b60606040518060400160405280600c81526020017f48617368506f7765722041490000000000000000000000000000000000000000815250905090565b600061064e61064761125b565b8484611263565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600d5481565b60006106a084848461142c565b610761846106ac61125b565b61075c856040518060600160405280602581526020016133e960259139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071261125b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbc9092919063ffffffff16565b611263565b600190509392505050565b60006009905090565b61077d61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080190612aac565b60405180910390fd5b80600d8190555050565b600f5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084861125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612aac565b60405180910390fd5b80600660156101000a81548160ff02191690831515021790555050565b6108fa61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e90612aac565b60405180910390fd5b600082101580156109995750602d8211155b6109a257600080fd5b600081101580156109b45750602d8111155b6109bd57600080fd5b8160098190555080600a819055505050565b6109d761125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90612aac565b60405180910390fd5b80600e8190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaf61125b565b73ffffffffffffffffffffffffffffffffffffffff1614610acf57600080fd5b6000479050610add81611c20565b50565b6000610b2a600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8c565b9050919050565b610b3961125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612aac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb561125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990612aac565b60405180910390fd5b60005b83839050811015610de1578160036000868685818110610d6857610d67612acc565b5b9050602002016020810190610d7d919061292e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dd990612b2a565b915050610d45565b50505050565b60606040518060400160405280600481526020017f4841534800000000000000000000000000000000000000000000000000000000815250905090565b610e2c61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb090612aac565b60405180910390fd5b80600f8190555050565b6000610ed7610ed061125b565b848461142c565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f2261125b565b73ffffffffffffffffffffffffffffffffffffffff1614610f4257600080fd5b6000610f4d30610ae0565b9050610f5881611cfa565b50565b610f6361125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe790612aac565b60405180910390fd5b80600660166101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61109c61125b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090612aac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612be4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990612c50565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612cbc565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161141f9190612799565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149290612d28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190612d94565b60405180910390fd5b6000811161154d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154490612e00565b60405180910390fd5b611555610c84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c35750611593610c84565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118cd57600660159054906101000a900460ff16611652576115e4610c84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890612e92565b60405180910390fd5b5b600e54811115611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90612efe565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174457600f54816116f984610ae0565b6117039190612f1e565b10611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90612f9e565b60405180910390fd5b5b600061174f30610ae0565b90506000600d548210159050600e54821061176a57600e5491505b8080156117845750600660149054906101000a900460ff16155b80156117de5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117f65750600660169054906101000a900460ff165b801561184c5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a25750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118ca576118b082611cfa565b600047905060008111156118c8576118c747611c20565b5b505b50505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119745750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a275750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a265750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a355760009050611baa565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae05750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aef576009546008819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9a5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ba957600a546008819055505b5b611bb684848484611f73565b50505050565b6000838311158290611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb91906125da565b60405180910390fd5b5060008385611c139190612fbe565b9050809150509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c88573d6000803e3d6000fd5b5050565b6000600554821115611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca90613064565b60405180910390fd5b6000611cdd611fa0565b9050611cf28184611fcb90919063ffffffff16565b915050919050565b6001600660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3257611d31613084565b5b604051908082528060200260200182016040528015611d605781602001602082028036833780820191505090505b5090503081600081518110611d7857611d77612acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4391906130c8565b81600181518110611e5757611e56612acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebe30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611263565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f229594939291906131ee565b600060405180830381600087803b158015611f3c57600080fd5b505af1158015611f50573d6000803e3d6000fd5b50505050506000600660146101000a81548160ff02191690831515021790555050565b80611f8157611f80612015565b5b611f8c848484612034565b80611f9a57611f996121ec565b5b50505050565b6000806000611fad6121f7565b91509150611fc48183611fcb90919063ffffffff16565b9250505090565b600061200d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061220d565b905092915050565b600060085403156120325760085460078190555060006008819055505b565b60008060008061204385612270565b935093509350935061209d84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122bf90919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213283600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230990919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217e81612367565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121db9190612799565b60405180910390a350505050505050565b600754600881905550565b600080600554662386f26fc10000915091509091565b60008083118290612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b91906125da565b60405180910390fd5b50600083856122639190613277565b9050809150509392505050565b60008060008060008061228587600854612424565b915091506000612293611fa0565b90506000806122a38a8585612477565b9150915081818686985098509850985050505050509193509193565b600061230183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbc565b905092915050565b60008082846123189190612f1e565b90508381101561235d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612354906132f4565b60405180910390fd5b8091505092915050565b6000612371611fa0565b9050600061238882846124d090919063ffffffff16565b90506123dc81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230990919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080600061244f606461244186886124d090919063ffffffff16565b611fcb90919063ffffffff16565b9050600061246682876122bf90919063ffffffff16565b905080829350935050509250929050565b600080600061248f84876124d090919063ffffffff16565b905060006124a685876124d090919063ffffffff16565b905060006124bd82846122bf90919063ffffffff16565b9050828194509450505050935093915050565b60008083036124e25760009050612544565b600082846124f09190613314565b90508284826124ff9190613277565b1461253f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612536906133c8565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612584578082015181840152602081019050612569565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ac8261254a565b6125b68185612555565b93506125c6818560208601612566565b6125cf81612590565b840191505092915050565b600060208201905081810360008301526125f481846125a1565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263182612606565b9050919050565b61264181612626565b811461264c57600080fd5b50565b60008135905061265e81612638565b92915050565b6000819050919050565b61267781612664565b811461268257600080fd5b50565b6000813590506126948161266e565b92915050565b600080604083850312156126b1576126b06125fc565b5b60006126bf8582860161264f565b92505060206126d085828601612685565b9150509250929050565b60008115159050919050565b6126ef816126da565b82525050565b600060208201905061270a60008301846126e6565b92915050565b6000819050919050565b600061273561273061272b84612606565b612710565b612606565b9050919050565b60006127478261271a565b9050919050565b60006127598261273c565b9050919050565b6127698161274e565b82525050565b60006020820190506127846000830184612760565b92915050565b61279381612664565b82525050565b60006020820190506127ae600083018461278a565b92915050565b6000806000606084860312156127cd576127cc6125fc565b5b60006127db8682870161264f565b93505060206127ec8682870161264f565b92505060406127fd86828701612685565b9150509250925092565b600060ff82169050919050565b61281d81612807565b82525050565b60006020820190506128386000830184612814565b92915050565b600060208284031215612854576128536125fc565b5b600061286284828501612685565b91505092915050565b61287481612626565b82525050565b600060208201905061288f600083018461286b565b92915050565b61289e816126da565b81146128a957600080fd5b50565b6000813590506128bb81612895565b92915050565b6000602082840312156128d7576128d66125fc565b5b60006128e5848285016128ac565b91505092915050565b60008060408385031215612905576129046125fc565b5b600061291385828601612685565b925050602061292485828601612685565b9150509250929050565b600060208284031215612944576129436125fc565b5b60006129528482850161264f565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129805761297f61295b565b5b8235905067ffffffffffffffff81111561299d5761299c612960565b5b6020830191508360208202830111156129b9576129b8612965565b5b9250929050565b6000806000604084860312156129d9576129d86125fc565b5b600084013567ffffffffffffffff8111156129f7576129f6612601565b5b612a038682870161296a565b93509350506020612a16868287016128ac565b9150509250925092565b60008060408385031215612a3757612a366125fc565b5b6000612a458582860161264f565b9250506020612a568582860161264f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a96602083612555565b9150612aa182612a60565b602082019050919050565b60006020820190508181036000830152612ac581612a89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3582612664565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6757612b66612afb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bce602683612555565b9150612bd982612b72565b604082019050919050565b60006020820190508181036000830152612bfd81612bc1565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612c3a601f83612555565b9150612c4582612c04565b602082019050919050565b60006020820190508181036000830152612c6981612c2d565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612ca6601d83612555565b9150612cb182612c70565b602082019050919050565b60006020820190508181036000830152612cd581612c99565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612d12601f83612555565b9150612d1d82612cdc565b602082019050919050565b60006020820190508181036000830152612d4181612d05565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612d7e601d83612555565b9150612d8982612d48565b602082019050919050565b60006020820190508181036000830152612dad81612d71565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612dea601b83612555565b9150612df582612db4565b602082019050919050565b60006020820190508181036000830152612e1981612ddd565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612e7c602e83612555565b9150612e8782612e20565b604082019050919050565b60006020820190508181036000830152612eab81612e6f565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000612ee8601e83612555565b9150612ef382612eb2565b602082019050919050565b60006020820190508181036000830152612f1781612edb565b9050919050565b6000612f2982612664565b9150612f3483612664565b9250828201905080821115612f4c57612f4b612afb565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000612f88601a83612555565b9150612f9382612f52565b602082019050919050565b60006020820190508181036000830152612fb781612f7b565b9050919050565b6000612fc982612664565b9150612fd483612664565b9250828203905081811115612fec57612feb612afb565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b600061304e602c83612555565b915061305982612ff2565b604082019050919050565b6000602082019050818103600083015261307d81613041565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130c281612638565b92915050565b6000602082840312156130de576130dd6125fc565b5b60006130ec848285016130b3565b91505092915050565b6000819050919050565b600061311a613115613110846130f5565b612710565b612664565b9050919050565b61312a816130ff565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316581612626565b82525050565b6000613177838361315c565b60208301905092915050565b6000602082019050919050565b600061319b82613130565b6131a5818561313b565b93506131b08361314c565b8060005b838110156131e15781516131c8888261316b565b97506131d383613183565b9250506001810190506131b4565b5085935050505092915050565b600060a082019050613203600083018861278a565b6132106020830187613121565b81810360408301526132228186613190565b9050613231606083018561286b565b61323e608083018461278a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328282612664565b915061328d83612664565b92508261329d5761329c613248565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132de601b83612555565b91506132e9826132a8565b602082019050919050565b6000602082019050818103600083015261330d816132d1565b9050919050565b600061331f82612664565b915061332a83612664565b925082820261333881612664565b9150828204841483151761334f5761334e612afb565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133b2602183612555565b91506133bd82613356565b604082019050919050565b600060208201905081810360008301526133e1816133a5565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204f862b50de29870e9e711c8ed72ff97399110c8cf6db62af532cf8ea3ea3257d64736f6c63430008120033

Deployed Bytecode Sourcemap

4345:11587:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6399:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6880:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5324:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6490:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5409:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11040:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5556:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10796:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5504:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5372:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10672:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14218:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14527:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11717:196;;;;;;;;;;;;;:::i;:::-;;6251:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1744:148;;;;;;;;;;;;;:::i;:::-;;1530:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13788:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6593:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10923:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7300:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12992:192;;;;;;;;;;;;;:::i;:::-;;11612:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6688:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1900:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5454:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6399:83;6436:13;6469:5;;;;;;;;;;;;;;;;;6462:12;;6399:83;:::o;6880:193::-;6982:4;7004:39;7013:12;:10;:12::i;:::-;7027:7;7036:6;7004:8;:39::i;:::-;7061:4;7054:11;;6880:193;;;;:::o;5324:41::-;;;;;;;;;;;;;:::o;6490:95::-;6543:7;4673:16;6563:14;;6490:95;:::o;5409:38::-;;;;:::o;11040:443::-;11172:4;11189:36;11199:6;11207:9;11218:6;11189:9;:36::i;:::-;11236:217;11259:6;11280:12;:10;:12::i;:::-;11307:135;11363:6;11307:135;;;;;;;;;;;;;;;;;:11;:19;11319:6;11307:19;;;;;;;;;;;;;;;:33;11327:12;:10;:12::i;:::-;11307:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;11236:8;:217::i;:::-;11471:4;11464:11;;11040:443;;;;;:::o;5556:83::-;5597:5;4789:1;5615:16;;5556:83;:::o;10796:119::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10889:18:::1;10878:8;:29;;;;10796:119:::0;:::o;5504:43::-;;;;:::o;5372:28::-;;;;;;;;;;;;;:::o;10672:116::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:14:::1;10750:13;;:30;;;;;;;;;;;;;;;;;;10672:116:::0;:::o;14218:301::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14351:1:::1;14336:11;:16;;:37;;;;;14371:2;14356:11;:17;;14336:37;14328:46;;;::::0;::::1;;14409:1;14393:12;:17;;:39;;;;;14430:2;14414:12;:18;;14393:39;14385:48;;;::::0;::::1;;14461:11;14446:12;:26;;;;14499:12;14483:13;:28;;;;14218:301:::0;;:::o;14527:105::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14613:11:::1;14599;:25;;;;14527:105:::0;:::o;11717:196::-;11783:12;;;;;;;;;;;11767:28;;:12;:10;:12::i;:::-;:28;;;11759:37;;;;;;11807:26;11836:21;11807:50;;11868:37;11886:18;11868:17;:37::i;:::-;11748:165;11717:196::o;6251:140::-;6317:7;6344:39;6364:9;:18;6374:7;6364:18;;;;;;;;;;;;;;;;6344:19;:39::i;:::-;6337:46;;6251:140;;;:::o;1744:148::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1851:1:::1;1814:40;;1835:6;::::0;::::1;;;;;;;;1814:40;;;;;;;;;;;;1882:1;1865:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1744:148::o:0;1530:79::-;1568:7;1595:6;;;;;;;;;;;1588:13;;1530:79;:::o;13788:250::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13921:9:::1;13916:115;13940:8;;:15;;13936:1;:19;13916:115;;;14011:8;13977:18;:31;13996:8;;14005:1;13996:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13977:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;13957:3;;;;;:::i;:::-;;;;13916:115;;;;13788:250:::0;;;:::o;6593:87::-;6632:13;6665:7;;;;;;;;;;;;;;;;;6658:14;;6593:87;:::o;10923:109::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11011:13:::1;10997:11;:27;;;;10923:109:::0;:::o;7300:199::-;7405:4;7427:42;7437:12;:10;:12::i;:::-;7451:9;7462:6;7427:9;:42::i;:::-;7487:4;7480:11;;7300:199;;;;:::o;12992:192::-;13058:12;;;;;;;;;;;13042:28;;:12;:10;:12::i;:::-;:28;;;13034:37;;;;;;13082:23;13108:24;13126:4;13108:9;:24::i;:::-;13082:50;;13143:33;13160:15;13143:16;:33::i;:::-;13023:161;12992:192::o;11612:97::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11691:10:::1;11679:9;;:22;;;;;;;;;;;;;;;;;;11612:97:::0;:::o;6688:184::-;6805:7;6837:11;:18;6849:5;6837:18;;;;;;;;;;;;;;;:27;6856:7;6837:27;;;;;;;;;;;;;;;;6830:34;;6688:184;;;;:::o;1900:281::-;1667:12;:10;:12::i;:::-;1657:22;;:6;;;;;;;;;;:22;;;1649:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2023:1:::1;2003:22;;:8;:22;;::::0;1981:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2136:8;2107:38;;2128:6;::::0;::::1;;;;;;;;2107:38;;;;;;;;;;;;2165:8;2156:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1900:281:::0;:::o;5454:43::-;;;;:::o;293:98::-;346:7;373:10;366:17;;293:98;:::o;7840:359::-;7984:1;7967:19;;:5;:19;;;7959:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8060:1;8041:21;;:7;:21;;;8033:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8137:6;8107:11;:18;8119:5;8107:18;;;;;;;;;;;;;;;:27;8126:7;8107:27;;;;;;;;;;;;;;;:36;;;;8175:7;8159:32;;8168:5;8159:32;;;8184:6;8159:32;;;;;;:::i;:::-;;;;;;;;7840:359;;;:::o;8207:2350::-;8345:1;8329:18;;:4;:18;;;8321:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8416:1;8402:16;;:2;:16;;;8394:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;8480:1;8471:6;:10;8463:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8538:7;:5;:7::i;:::-;8530:15;;:4;:15;;;;:32;;;;;8555:7;:5;:7::i;:::-;8549:13;;:2;:13;;;;8530:32;8526:1362;;;8617:13;;;;;;;;;;;8612:190;;8689:7;:5;:7::i;:::-;8681:15;;:4;:15;;;8651:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;8612:190;8836:11;;8826:6;:21;;8818:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8909:13;;;;;;;;;;;8903:19;;:2;:19;;;8899:196;;8998:11;;8989:6;8973:13;8983:2;8973:9;:13::i;:::-;:22;;;;:::i;:::-;:36;8943:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;8899:196;9111:28;9142:24;9160:4;9142:9;:24::i;:::-;9111:55;;9181:12;9220:8;;9196:20;:32;;9181:47;;9273:11;;9249:20;:35;9245:110;;9328:11;;9305:34;;9245:110;9393:7;:35;;;;;9422:6;;;;;;;;;;;9421:7;9393:35;:77;;;;;9457:13;;;;;;;;;;;9449:21;;:4;:21;;;;9393:77;:107;;;;;9491:9;;;;;;;;;;;9393:107;:153;;;;;9522:18;:24;9541:4;9522:24;;;;;;;;;;;;;;;;;;;;;;;;;9521:25;9393:153;:197;;;;;9568:18;:22;9587:2;9568:22;;;;;;;;;;;;;;;;;;;;;;;;;9567:23;9393:197;9371:506;;;9625:38;9642:20;9625:16;:38::i;:::-;9682:26;9711:21;9682:50;;9776:1;9755:18;:22;9751:111;;;9802:40;9820:21;9802:17;:40::i;:::-;9751:111;9606:271;9371:506;8564:1324;;8526:1362;9900:12;9915:4;9900:19;;9978:18;:24;9997:4;9978:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10006:18;:22;10025:2;10006:22;;;;;;;;;;;;;;;;;;;;;;;;;9978:50;9977:115;;;;10055:13;;;;;;;;;;;10047:21;;:4;:21;;;;:44;;;;;10078:13;;;;;;;;;;;10072:19;;:2;:19;;;;10047:44;9977:115;9959:537;;;10129:5;10119:15;;9959:537;;;10211:13;;;;;;;;;;;10203:21;;:4;:21;;;:55;;;;;10242:15;;;;;;;;;;;10228:30;;:2;:30;;;;10203:55;10199:118;;;10289:12;;10279:7;:22;;;;10199:118;10376:13;;;;;;;;;;;10370:19;;:2;:19;;;:55;;;;;10409:15;;;;;;;;;;;10393:32;;:4;:32;;;;10370:55;10366:119;;;10456:13;;10446:7;:23;;;;10366:119;9959:537;10508:41;10523:4;10529:2;10533:6;10541:7;10508:14;:41::i;:::-;8310:2247;8207:2350;;;:::o;2543:224::-;2663:7;2696:1;2691;:6;;2699:12;2683:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2723:9;2739:1;2735;:5;;;;:::i;:::-;2723:17;;2758:1;2751:8;;;2543:224;;;;;:::o;10565:99::-;10627:12;;;;;;;;;;;:21;;:29;10649:6;10627:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10565:99;:::o;7507:325::-;7602:7;7660;;7649;:18;;7627:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;7750:19;7772:10;:8;:10::i;:::-;7750:32;;7800:24;7812:11;7800:7;:11;;:24;;;;:::i;:::-;7793:31;;;7507:325;;;:::o;15036:483::-;14979:4;14970:6;;:13;;;;;;;;;;;;;;;;;;15114:21:::1;15152:1;15138:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15114:40;;15183:4;15165;15170:1;15165:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;15209:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15199:4;15204:1;15199:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;15242:62;15259:4;15274:15;;;;;;;;;;;15292:11;15242:8;:62::i;:::-;15315:15;;;;;;;;;;;:66;;;15396:11;15422:1;15438:4;15465;15485:15;15315:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15103:416;15015:5:::0;15006:6;;:14;;;;;;;;;;;;;;;;;;15036:483;:::o;11921:283::-;12077:7;12072:29;;12086:15;:13;:15::i;:::-;12072:29;12112:46;12132:6;12140:9;12151:6;12112:19;:46::i;:::-;12174:7;12169:27;;12183:13;:11;:13::i;:::-;12169:27;11921:283;;;;:::o;14046:164::-;14088:7;14109:15;14126;14145:19;:17;:19::i;:::-;14108:56;;;;14182:20;14194:7;14182;:11;;:20;;;;:::i;:::-;14175:27;;;;14046:164;:::o;3029:132::-;3087:7;3114:39;3118:1;3121;3114:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3107:46;;3029:132;;;;:::o;7081:133::-;7140:1;7129:7;;:12;7125:25;7143:7;7125:25;7175:7;;7162:10;:20;;;;7205:1;7195:7;:11;;;;7081:133;:::o;12212:544::-;12361:15;12391:23;12429;12467:13;12494:22;12508:7;12494:13;:22::i;:::-;12346:170;;;;;;;;12549:30;12571:7;12549:9;:17;12559:6;12549:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;12529:9;:17;12539:6;12529:17;;;;;;;;;;;;;;;:50;;;;12613:41;12638:15;12613:9;:20;12623:9;12613:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;12590:9;:20;12600:9;12590:20;;;;;;;;;;;;;;;:64;;;;12667:21;12682:5;12667:14;:21::i;:::-;12721:9;12704:44;;12713:6;12704:44;;;12732:15;12704:44;;;;;;:::i;:::-;;;;;;;;12335:421;;;;12212:544;;;:::o;7222:70::-;7274:10;;7264:7;:20;;;;7222:70::o;11491:113::-;11542:7;11551;11579;;4673:16;11571:25;;;;11491:113;;:::o;3169:223::-;3289:7;3321:1;3317;:5;3324:12;3309:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3348:9;3364:1;3360;:5;;;;:::i;:::-;3348:17;;3383:1;3376:8;;;3169:223;;;;;:::o;13192:588::-;13295:7;13317;13339;13361;13397:23;13422:13;13439:68;13467:7;13489;;13439:13;:68::i;:::-;13396:111;;;;13518:19;13540:10;:8;:10::i;:::-;13518:32;;13562:15;13579:23;13606:98;13640:7;13662:5;13682:11;13606:19;:98::i;:::-;13561:143;;;;13723:7;13732:15;13749;13766:5;13715:57;;;;;;;;;;;;;13192:588;;;;;:::o;2399:136::-;2457:7;2484:43;2488:1;2491;2484:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2477:50;;2399:136;;;;:::o;2212:179::-;2270:7;2290:9;2306:1;2302;:5;;;;:::i;:::-;2290:17;;2331:1;2326;:6;;2318:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2382:1;2375:8;;;2212:179;;;;:::o;12764:220::-;12822:19;12844:10;:8;:10::i;:::-;12822:32;;12865:13;12881:22;12891:11;12881:5;:9;;:22;;;;:::i;:::-;12865:38;;12941:35;12970:5;12941:9;:24;12959:4;12941:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;12914:9;:24;12932:4;12914:24;;;;;;;;;;;;;;;:62;;;;12811:173;;12764:220;:::o;14640:288::-;14745:7;14754;14779:13;14795:28;14819:3;14795:19;14807:6;14795:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14779:44;;14834:23;14860:18;14872:5;14860:7;:11;;:18;;;;:::i;:::-;14834:44;;14897:15;14914:5;14889:31;;;;;;14640:288;;;;;:::o;15564:365::-;15702:7;15711;15731:15;15749:24;15761:11;15749:7;:11;;:24;;;;:::i;:::-;15731:42;;15784:13;15800:22;15810:11;15800:5;:9;;:22;;;;:::i;:::-;15784:38;;15833:23;15859:18;15871:5;15859:7;:11;;:18;;;;:::i;:::-;15833:44;;15896:7;15905:15;15888:33;;;;;;;15564:365;;;;;;:::o;2775:246::-;2833:7;2862:1;2857;:6;2853:47;;2887:1;2880:8;;;;2853:47;2910:9;2926:1;2922;:5;;;;:::i;:::-;2910:17;;2955:1;2950;2946;:5;;;;:::i;:::-;:10;2938:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3012:1;3005:8;;;2775:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:151::-;3867:9;3900:37;3931:5;3900:37;:::i;:::-;3887:50;;3792:151;;;:::o;3949:181::-;4061:62;4117:5;4061:62;:::i;:::-;4056:3;4049:75;3949:181;;:::o;4136:272::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:96;4398:1;4387:9;4383:17;4374:6;4305:96;:::i;:::-;4136:272;;;;:::o;4414:118::-;4501:24;4519:5;4501:24;:::i;:::-;4496:3;4489:37;4414:118;;:::o;4538:222::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4682:71;4750:1;4739:9;4735:17;4726:6;4682:71;:::i;:::-;4538:222;;;;:::o;4766:619::-;4843:6;4851;4859;4908:2;4896:9;4887:7;4883:23;4879:32;4876:119;;;4914:79;;:::i;:::-;4876:119;5034:1;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5005:117;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;5289:2;5315:53;5360:7;5351:6;5340:9;5336:22;5315:53;:::i;:::-;5305:63;;5260:118;4766:619;;;;;:::o;5391:86::-;5426:7;5466:4;5459:5;5455:16;5444:27;;5391:86;;;:::o;5483:112::-;5566:22;5582:5;5566:22;:::i;:::-;5561:3;5554:35;5483:112;;:::o;5601:214::-;5690:4;5728:2;5717:9;5713:18;5705:26;;5741:67;5805:1;5794:9;5790:17;5781:6;5741:67;:::i;:::-;5601:214;;;;:::o;5821:329::-;5880:6;5929:2;5917:9;5908:7;5904:23;5900:32;5897:119;;;5935:79;;:::i;:::-;5897:119;6055:1;6080:53;6125:7;6116:6;6105:9;6101:22;6080:53;:::i;:::-;6070:63;;6026:117;5821:329;;;;:::o;6156:118::-;6243:24;6261:5;6243:24;:::i;:::-;6238:3;6231:37;6156:118;;:::o;6280:222::-;6373:4;6411:2;6400:9;6396:18;6388:26;;6424:71;6492:1;6481:9;6477:17;6468:6;6424:71;:::i;:::-;6280:222;;;;:::o;6508:116::-;6578:21;6593:5;6578:21;:::i;:::-;6571:5;6568:32;6558:60;;6614:1;6611;6604:12;6558:60;6508:116;:::o;6630:133::-;6673:5;6711:6;6698:20;6689:29;;6727:30;6751:5;6727:30;:::i;:::-;6630:133;;;;:::o;6769:323::-;6825:6;6874:2;6862:9;6853:7;6849:23;6845:32;6842:119;;;6880:79;;:::i;:::-;6842:119;7000:1;7025:50;7067:7;7058:6;7047:9;7043:22;7025:50;:::i;:::-;7015:60;;6971:114;6769:323;;;;:::o;7098:474::-;7166:6;7174;7223:2;7211:9;7202:7;7198:23;7194:32;7191:119;;;7229:79;;:::i;:::-;7191:119;7349:1;7374:53;7419:7;7410:6;7399:9;7395:22;7374:53;:::i;:::-;7364:63;;7320:117;7476:2;7502:53;7547:7;7538:6;7527:9;7523:22;7502:53;:::i;:::-;7492:63;;7447:118;7098:474;;;;;:::o;7578:329::-;7637:6;7686:2;7674:9;7665:7;7661:23;7657:32;7654:119;;;7692:79;;:::i;:::-;7654:119;7812:1;7837:53;7882:7;7873:6;7862:9;7858:22;7837:53;:::i;:::-;7827:63;;7783:117;7578:329;;;;:::o;7913:117::-;8022:1;8019;8012:12;8036:117;8145:1;8142;8135:12;8159:117;8268:1;8265;8258:12;8299:568;8372:8;8382:6;8432:3;8425:4;8417:6;8413:17;8409:27;8399:122;;8440:79;;:::i;:::-;8399:122;8553:6;8540:20;8530:30;;8583:18;8575:6;8572:30;8569:117;;;8605:79;;:::i;:::-;8569:117;8719:4;8711:6;8707:17;8695:29;;8773:3;8765:4;8757:6;8753:17;8743:8;8739:32;8736:41;8733:128;;;8780:79;;:::i;:::-;8733:128;8299:568;;;;;:::o;8873:698::-;8965:6;8973;8981;9030:2;9018:9;9009:7;9005:23;9001:32;8998:119;;;9036:79;;:::i;:::-;8998:119;9184:1;9173:9;9169:17;9156:31;9214:18;9206:6;9203:30;9200:117;;;9236:79;;:::i;:::-;9200:117;9349:80;9421:7;9412:6;9401:9;9397:22;9349:80;:::i;:::-;9331:98;;;;9127:312;9478:2;9504:50;9546:7;9537:6;9526:9;9522:22;9504:50;:::i;:::-;9494:60;;9449:115;8873:698;;;;;:::o;9577:474::-;9645:6;9653;9702:2;9690:9;9681:7;9677:23;9673:32;9670:119;;;9708:79;;:::i;:::-;9670:119;9828:1;9853:53;9898:7;9889:6;9878:9;9874:22;9853:53;:::i;:::-;9843:63;;9799:117;9955:2;9981:53;10026:7;10017:6;10006:9;10002:22;9981:53;:::i;:::-;9971:63;;9926:118;9577:474;;;;;:::o;10057:182::-;10197:34;10193:1;10185:6;10181:14;10174:58;10057:182;:::o;10245:366::-;10387:3;10408:67;10472:2;10467:3;10408:67;:::i;:::-;10401:74;;10484:93;10573:3;10484:93;:::i;:::-;10602:2;10597:3;10593:12;10586:19;;10245:366;;;:::o;10617:419::-;10783:4;10821:2;10810:9;10806:18;10798:26;;10870:9;10864:4;10860:20;10856:1;10845:9;10841:17;10834:47;10898:131;11024:4;10898:131;:::i;:::-;10890:139;;10617:419;;;:::o;11042:180::-;11090:77;11087:1;11080:88;11187:4;11184:1;11177:15;11211:4;11208:1;11201:15;11228:180;11276:77;11273:1;11266:88;11373:4;11370:1;11363:15;11397:4;11394:1;11387:15;11414:233;11453:3;11476:24;11494:5;11476:24;:::i;:::-;11467:33;;11522:66;11515:5;11512:77;11509:103;;11592:18;;:::i;:::-;11509:103;11639:1;11632:5;11628:13;11621:20;;11414:233;;;:::o;11653:225::-;11793:34;11789:1;11781:6;11777:14;11770:58;11862:8;11857:2;11849:6;11845:15;11838:33;11653:225;:::o;11884:366::-;12026:3;12047:67;12111:2;12106:3;12047:67;:::i;:::-;12040:74;;12123:93;12212:3;12123:93;:::i;:::-;12241:2;12236:3;12232:12;12225:19;;11884:366;;;:::o;12256:419::-;12422:4;12460:2;12449:9;12445:18;12437:26;;12509:9;12503:4;12499:20;12495:1;12484:9;12480:17;12473:47;12537:131;12663:4;12537:131;:::i;:::-;12529:139;;12256:419;;;:::o;12681:181::-;12821:33;12817:1;12809:6;12805:14;12798:57;12681:181;:::o;12868:366::-;13010:3;13031:67;13095:2;13090:3;13031:67;:::i;:::-;13024:74;;13107:93;13196:3;13107:93;:::i;:::-;13225:2;13220:3;13216:12;13209:19;;12868:366;;;:::o;13240:419::-;13406:4;13444:2;13433:9;13429:18;13421:26;;13493:9;13487:4;13483:20;13479:1;13468:9;13464:17;13457:47;13521:131;13647:4;13521:131;:::i;:::-;13513:139;;13240:419;;;:::o;13665:179::-;13805:31;13801:1;13793:6;13789:14;13782:55;13665:179;:::o;13850:366::-;13992:3;14013:67;14077:2;14072:3;14013:67;:::i;:::-;14006:74;;14089:93;14178:3;14089:93;:::i;:::-;14207:2;14202:3;14198:12;14191:19;;13850:366;;;:::o;14222:419::-;14388:4;14426:2;14415:9;14411:18;14403:26;;14475:9;14469:4;14465:20;14461:1;14450:9;14446:17;14439:47;14503:131;14629:4;14503:131;:::i;:::-;14495:139;;14222:419;;;:::o;14647:181::-;14787:33;14783:1;14775:6;14771:14;14764:57;14647:181;:::o;14834:366::-;14976:3;14997:67;15061:2;15056:3;14997:67;:::i;:::-;14990:74;;15073:93;15162:3;15073:93;:::i;:::-;15191:2;15186:3;15182:12;15175:19;;14834:366;;;:::o;15206:419::-;15372:4;15410:2;15399:9;15395:18;15387:26;;15459:9;15453:4;15449:20;15445:1;15434:9;15430:17;15423:47;15487:131;15613:4;15487:131;:::i;:::-;15479:139;;15206:419;;;:::o;15631:179::-;15771:31;15767:1;15759:6;15755:14;15748:55;15631:179;:::o;15816:366::-;15958:3;15979:67;16043:2;16038:3;15979:67;:::i;:::-;15972:74;;16055:93;16144:3;16055:93;:::i;:::-;16173:2;16168:3;16164:12;16157:19;;15816:366;;;:::o;16188:419::-;16354:4;16392:2;16381:9;16377:18;16369:26;;16441:9;16435:4;16431:20;16427:1;16416:9;16412:17;16405:47;16469:131;16595:4;16469:131;:::i;:::-;16461:139;;16188:419;;;:::o;16613:177::-;16753:29;16749:1;16741:6;16737:14;16730:53;16613:177;:::o;16796:366::-;16938:3;16959:67;17023:2;17018:3;16959:67;:::i;:::-;16952:74;;17035:93;17124:3;17035:93;:::i;:::-;17153:2;17148:3;17144:12;17137:19;;16796:366;;;:::o;17168:419::-;17334:4;17372:2;17361:9;17357:18;17349:26;;17421:9;17415:4;17411:20;17407:1;17396:9;17392:17;17385:47;17449:131;17575:4;17449:131;:::i;:::-;17441:139;;17168:419;;;:::o;17593:233::-;17733:34;17729:1;17721:6;17717:14;17710:58;17802:16;17797:2;17789:6;17785:15;17778:41;17593:233;:::o;17832:366::-;17974:3;17995:67;18059:2;18054:3;17995:67;:::i;:::-;17988:74;;18071:93;18160:3;18071:93;:::i;:::-;18189:2;18184:3;18180:12;18173:19;;17832:366;;;:::o;18204:419::-;18370:4;18408:2;18397:9;18393:18;18385:26;;18457:9;18451:4;18447:20;18443:1;18432:9;18428:17;18421:47;18485:131;18611:4;18485:131;:::i;:::-;18477:139;;18204:419;;;:::o;18629:180::-;18769:32;18765:1;18757:6;18753:14;18746:56;18629:180;:::o;18815:366::-;18957:3;18978:67;19042:2;19037:3;18978:67;:::i;:::-;18971:74;;19054:93;19143:3;19054:93;:::i;:::-;19172:2;19167:3;19163:12;19156:19;;18815:366;;;:::o;19187:419::-;19353:4;19391:2;19380:9;19376:18;19368:26;;19440:9;19434:4;19430:20;19426:1;19415:9;19411:17;19404:47;19468:131;19594:4;19468:131;:::i;:::-;19460:139;;19187:419;;;:::o;19612:191::-;19652:3;19671:20;19689:1;19671:20;:::i;:::-;19666:25;;19705:20;19723:1;19705:20;:::i;:::-;19700:25;;19748:1;19745;19741:9;19734:16;;19769:3;19766:1;19763:10;19760:36;;;19776:18;;:::i;:::-;19760:36;19612:191;;;;:::o;19809:176::-;19949:28;19945:1;19937:6;19933:14;19926:52;19809:176;:::o;19991:366::-;20133:3;20154:67;20218:2;20213:3;20154:67;:::i;:::-;20147:74;;20230:93;20319:3;20230:93;:::i;:::-;20348:2;20343:3;20339:12;20332:19;;19991:366;;;:::o;20363:419::-;20529:4;20567:2;20556:9;20552:18;20544:26;;20616:9;20610:4;20606:20;20602:1;20591:9;20587:17;20580:47;20644:131;20770:4;20644:131;:::i;:::-;20636:139;;20363:419;;;:::o;20788:194::-;20828:4;20848:20;20866:1;20848:20;:::i;:::-;20843:25;;20882:20;20900:1;20882:20;:::i;:::-;20877:25;;20926:1;20923;20919:9;20911:17;;20950:1;20944:4;20941:11;20938:37;;;20955:18;;:::i;:::-;20938:37;20788:194;;;;:::o;20988:231::-;21128:34;21124:1;21116:6;21112:14;21105:58;21197:14;21192:2;21184:6;21180:15;21173:39;20988:231;:::o;21225:366::-;21367:3;21388:67;21452:2;21447:3;21388:67;:::i;:::-;21381:74;;21464:93;21553:3;21464:93;:::i;:::-;21582:2;21577:3;21573:12;21566:19;;21225:366;;;:::o;21597:419::-;21763:4;21801:2;21790:9;21786:18;21778:26;;21850:9;21844:4;21840:20;21836:1;21825:9;21821:17;21814:47;21878:131;22004:4;21878:131;:::i;:::-;21870:139;;21597:419;;;:::o;22022:180::-;22070:77;22067:1;22060:88;22167:4;22164:1;22157:15;22191:4;22188:1;22181:15;22208:143;22265:5;22296:6;22290:13;22281:22;;22312:33;22339:5;22312:33;:::i;:::-;22208:143;;;;:::o;22357:351::-;22427:6;22476:2;22464:9;22455:7;22451:23;22447:32;22444:119;;;22482:79;;:::i;:::-;22444:119;22602:1;22627:64;22683:7;22674:6;22663:9;22659:22;22627:64;:::i;:::-;22617:74;;22573:128;22357:351;;;;:::o;22714:85::-;22759:7;22788:5;22777:16;;22714:85;;;:::o;22805:158::-;22863:9;22896:61;22914:42;22923:32;22949:5;22923:32;:::i;:::-;22914:42;:::i;:::-;22896:61;:::i;:::-;22883:74;;22805:158;;;:::o;22969:147::-;23064:45;23103:5;23064:45;:::i;:::-;23059:3;23052:58;22969:147;;:::o;23122:114::-;23189:6;23223:5;23217:12;23207:22;;23122:114;;;:::o;23242:184::-;23341:11;23375:6;23370:3;23363:19;23415:4;23410:3;23406:14;23391:29;;23242:184;;;;:::o;23432:132::-;23499:4;23522:3;23514:11;;23552:4;23547:3;23543:14;23535:22;;23432:132;;;:::o;23570:108::-;23647:24;23665:5;23647:24;:::i;:::-;23642:3;23635:37;23570:108;;:::o;23684:179::-;23753:10;23774:46;23816:3;23808:6;23774:46;:::i;:::-;23852:4;23847:3;23843:14;23829:28;;23684:179;;;;:::o;23869:113::-;23939:4;23971;23966:3;23962:14;23954:22;;23869:113;;;:::o;24018:732::-;24137:3;24166:54;24214:5;24166:54;:::i;:::-;24236:86;24315:6;24310:3;24236:86;:::i;:::-;24229:93;;24346:56;24396:5;24346:56;:::i;:::-;24425:7;24456:1;24441:284;24466:6;24463:1;24460:13;24441:284;;;24542:6;24536:13;24569:63;24628:3;24613:13;24569:63;:::i;:::-;24562:70;;24655:60;24708:6;24655:60;:::i;:::-;24645:70;;24501:224;24488:1;24485;24481:9;24476:14;;24441:284;;;24445:14;24741:3;24734:10;;24142:608;;;24018:732;;;;:::o;24756:831::-;25019:4;25057:3;25046:9;25042:19;25034:27;;25071:71;25139:1;25128:9;25124:17;25115:6;25071:71;:::i;:::-;25152:80;25228:2;25217:9;25213:18;25204:6;25152:80;:::i;:::-;25279:9;25273:4;25269:20;25264:2;25253:9;25249:18;25242:48;25307:108;25410:4;25401:6;25307:108;:::i;:::-;25299:116;;25425:72;25493:2;25482:9;25478:18;25469:6;25425:72;:::i;:::-;25507:73;25575:3;25564:9;25560:19;25551:6;25507:73;:::i;:::-;24756:831;;;;;;;;:::o;25593:180::-;25641:77;25638:1;25631:88;25738:4;25735:1;25728:15;25762:4;25759:1;25752:15;25779:185;25819:1;25836:20;25854:1;25836:20;:::i;:::-;25831:25;;25870:20;25888:1;25870:20;:::i;:::-;25865:25;;25909:1;25899:35;;25914:18;;:::i;:::-;25899:35;25956:1;25953;25949:9;25944:14;;25779:185;;;;:::o;25970:177::-;26110:29;26106:1;26098:6;26094:14;26087:53;25970:177;:::o;26153:366::-;26295:3;26316:67;26380:2;26375:3;26316:67;:::i;:::-;26309:74;;26392:93;26481:3;26392:93;:::i;:::-;26510:2;26505:3;26501:12;26494:19;;26153:366;;;:::o;26525:419::-;26691:4;26729:2;26718:9;26714:18;26706:26;;26778:9;26772:4;26768:20;26764:1;26753:9;26749:17;26742:47;26806:131;26932:4;26806:131;:::i;:::-;26798:139;;26525:419;;;:::o;26950:410::-;26990:7;27013:20;27031:1;27013:20;:::i;:::-;27008:25;;27047:20;27065:1;27047:20;:::i;:::-;27042:25;;27102:1;27099;27095:9;27124:30;27142:11;27124:30;:::i;:::-;27113:41;;27303:1;27294:7;27290:15;27287:1;27284:22;27264:1;27257:9;27237:83;27214:139;;27333:18;;:::i;:::-;27214:139;26998:362;26950:410;;;;:::o;27366:220::-;27506:34;27502:1;27494:6;27490:14;27483:58;27575:3;27570:2;27562:6;27558:15;27551:28;27366:220;:::o;27592:366::-;27734:3;27755:67;27819:2;27814:3;27755:67;:::i;:::-;27748:74;;27831:93;27920:3;27831:93;:::i;:::-;27949:2;27944:3;27940:12;27933:19;;27592:366;;;:::o;27964:419::-;28130:4;28168:2;28157:9;28153:18;28145:26;;28217:9;28211:4;28207:20;28203:1;28192:9;28188:17;28181:47;28245:131;28371:4;28245:131;:::i;:::-;28237:139;;27964:419;;;:::o

Swarm Source

ipfs://4f862b50de29870e9e711c8ed72ff97399110c8cf6db62af532cf8ea3ea3257d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.