ETH Price: $3,275.11 (+0.90%)
Gas: 1 Gwei

Token

Pepe Gainz (GAINZ)
 

Overview

Max Total Supply

420,690,000,000,000 GAINZ

Holders

83

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: GAINZ 7
Balance
0.000000012935391078 GAINZ

Value
$0.00
0x9d9e14d481bfd0551cb43c21387c7855b259d3c7
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PEPEGAINZ

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-01
*/

/*
https://t.me/pepegainzclub
https://pepegainz.com/
https://twitter.com/PepegainzERC

*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

contract Ownable is Context {
    address private _owner;
    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 transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

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

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

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

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract PEPEGAINZ is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _AllowedWallets;
    mapping(address => uint256) private _StopedWallet;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 420690000000000 * 10**_decimals;
    uint256 private constant minimumSwapAmount = 168276000000 * 10**_decimals;
    uint256 private constant onePercent = 4206900000000 * 10**_decimals;
    uint256 private maxSwap = onePercent;
    uint256 public AmountMaxPerTrx = onePercent;

    uint256 private InitialBlockNo;

    uint256 public buyTax = 25;
    uint256 public sellTax = 45;
    
    string private constant _name = "Pepe Gainz";
    string private constant _symbol = "GAINZ";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public FeesAddress ;
    address immutable public SecFeesWallet;

    bool private launch = false;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        FeesAddress  = 0xf519cCd7a3bE0469A928354695eC1CB6d338C12D;
        SecFeesWallet = 0xd3fDeD53B6f9Bff2d8fd999215587dccbfAfd843;
        _balance[msg.sender] = _totalSupply;
        _AllowedWallets[FeesAddress ] = 1;
        _AllowedWallets[msg.sender] = 1;
        _AllowedWallets[address(this)] = 1;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

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


    function InitiateTrading() external onlyOwner {
        launch = true;
        InitialBlockNo = block.number;
    }

    function MakeAWalletLimitless(address wallet) external onlyOwner {
        _AllowedWallets[wallet] = 1;
    }

    function AddWalletLimits(address wallet) external onlyOwner {
        _AllowedWallets[wallet] = 0;
    }
    
    function StopActivity(address _wallet) external onlyOwner {
        require(_wallet != address(this) && _wallet != address(uniswapV2Pair) && _wallet != address(uniswapV2Router), "Invalid wallet");
        _StopedWallet[_wallet] = 1;
    }

    function ReleaseActivity(address _wallet) external onlyOwner {
        _StopedWallet[_wallet] = 0;
    }

    function FreeAllFromLimits() external onlyOwner {
        AmountMaxPerTrx = _totalSupply;
    }

    function EditTaxValue(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax + newSellTax <= 70, "Tax too high");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_AllowedWallets[from] == 0 && _AllowedWallets[to] == 0)
        {
            require(launch, "Trading not open");
            require(_StopedWallet[from] == 0, "Please contact support");
            require(amount <= AmountMaxPerTrx, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= AmountMaxPerTrx, "MaxTx Enabled at launch");
            if (block.number < InitialBlockNo + 2) {_tax=70;} else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minimumSwapAmount) { 
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function SelfBalanceTransfer() external {
        require(_msgSender() == FeesAddress );
        bool success;
        (success, ) = SecFeesWallet.call{value: address(this).balance / 10}("");
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    } 

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

    function ChangeMaxSwap(uint256 _max) external onlyOwner {
        maxSwap = _max;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
        bool success;
        (success, ) = SecFeesWallet.call{value: address(this).balance / 10}("");
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"AddWalletLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AmountMaxPerTrx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"name":"ChangeMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"EditTaxValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"FeesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FreeAllFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitiateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"MakeAWalletLimitless","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"ReleaseActivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SecFeesWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SelfBalanceTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SelfTokensExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"StopActivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"},{"stateMutability":"payable","type":"receive"}]

60c06040526012600a6200001491906200077b565b6503d37ec7b500620000279190620007cc565b6005556012600a6200003a91906200077b565b6503d37ec7b5006200004d9190620007cc565b6006556019600855602d6009556000600b60146101000a81548160ff0219169083151502179055503480156200008257600080fd5b50600062000095620005d960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c919062000881565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cc919062000881565b6040518363ffffffff1660e01b8152600401620002eb929190620008c4565b6020604051808303816000875af11580156200030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000331919062000881565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f519ccd7a3be0469a928354695ec1cb6d338c12d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073d3fded53b6f9bff2d8fd999215587dccbfafd84373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a6200041191906200077b565b66017e9d8602b400620004259190620007cc565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000549620005d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005a891906200077b565b66017e9d8602b400620005bc9190620007cc565b604051620005cb919062000902565b60405180910390a36200091f565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200066f57808604811115620006475762000646620005e1565b5b6001851615620006575780820291505b8081029050620006678562000610565b945062000627565b94509492505050565b6000826200068a57600190506200075d565b816200069a57600090506200075d565b8160018114620006b35760028114620006be57620006f4565b60019150506200075d565b60ff841115620006d357620006d2620005e1565b5b8360020a915084821115620006ed57620006ec620005e1565b5b506200075d565b5060208310610133831016604e8410600b84101617156200072e5782820a905083811115620007285762000727620005e1565b5b6200075d565b6200073d84848460016200061d565b92509050818404811115620007575762000756620005e1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007888262000764565b915062000795836200076e565b9250620007c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000678565b905092915050565b6000620007d98262000764565b9150620007e68362000764565b9250828202620007f68162000764565b9150828204841483151762000810576200080f620005e1565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000849826200081c565b9050919050565b6200085b816200083c565b81146200086757600080fd5b50565b6000815190506200087b8162000850565b92915050565b6000602082840312156200089a576200089962000817565b5b6000620008aa848285016200086a565b91505092915050565b620008be816200083c565b82525050565b6000604082019050620008db6000830185620008b3565b620008ea6020830184620008b3565b9392505050565b620008fc8162000764565b82525050565b6000602082019050620009196000830184620008f1565b92915050565b60805160a05161312a6200096f60003960008181610e6a0152818161124e0152611e1d015260008181610a0f01528181611169015281816111ed015281816112e60152611eb5015261312a6000f3fe6080604052600436106101bb5760003560e01c80638c2f0ec6116100ec578063c37e9c491161008a578063d3c12d1111610064578063d3c12d11146105bd578063dd62ed3e146105d4578063f0955cc914610611578063f2fde38b1461063a576101c2565b8063c37e9c4914610550578063cc1776d314610567578063cece997c14610592576101c2565b806397b2ebfe116100c657806397b2ebfe146104a857806398d1ee80146104d3578063a9059cbb146104fc578063ac9f69c414610539576101c2565b80638c2f0ec61461043b5780638da5cb5b1461045257806395d89b411461047d576101c2565b80634f7041a51161015957806370a082311161013357806370a0823114610395578063711c05a6146103d2578063715018a6146103fb57806379ec392914610412576101c2565b80634f7041a51461031657806367526604146103415780636cae5a691461036a576101c2565b806323b872dd1161019557806323b872dd1461025a578063313ce56714610297578063399c07ae146102c257806349bd5a5e146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610663565b6040516101e99190612343565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906123fe565b6106a0565b6040516102269190612459565b60405180910390f35b34801561023b57600080fd5b506102446106be565b6040516102519190612483565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061249e565b6106e5565b60405161028e9190612459565b60405180910390f35b3480156102a357600080fd5b506102ac610805565b6040516102b9919061250d565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612528565b61080e565b005b3480156102f757600080fd5b506103006108eb565b60405161030d9190612564565b60405180910390f35b34801561032257600080fd5b5061032b610911565b6040516103389190612483565b60405180910390f35b34801561034d57600080fd5b506103686004803603810190610363919061257f565b610917565b005b34801561037657600080fd5b5061037f610a0d565b60405161038c9190612564565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190612528565b610a31565b6040516103c99190612483565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f491906125bf565b610a7a565b005b34801561040757600080fd5b50610410610b19565b005b34801561041e57600080fd5b5061043960048036038101906104349190612528565b610c6c565b005b34801561044757600080fd5b50610450610d49565b005b34801561045e57600080fd5b50610467610e02565b6040516104749190612564565b60405180910390f35b34801561048957600080fd5b50610492610e2b565b60405161049f9190612343565b60405180910390f35b3480156104b457600080fd5b506104bd610e68565b6040516104ca9190612564565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612528565b610e8c565b005b34801561050857600080fd5b50610523600480360381019061051e91906123fe565b61108c565b6040516105309190612459565b60405180910390f35b34801561054557600080fd5b5061054e6110aa565b005b34801561055c57600080fd5b50610565611167565b005b34801561057357600080fd5b5061057c6111df565b6040516105899190612483565b60405180910390f35b34801561059e57600080fd5b506105a76111e5565b6040516105b49190612483565b60405180910390f35b3480156105c957600080fd5b506105d26111eb565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906125ec565b611373565b6040516106089190612483565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612528565b6113fa565b005b34801561064657600080fd5b50610661600480360381019061065c9190612528565b6114d7565b005b60606040518060400160405280600a81526020017f50657065204761696e7a00000000000000000000000000000000000000000000815250905090565b60006106b46106ad611578565b8484611580565b6001905092915050565b60006012600a6106ce919061278e565b66017e9d8602b4006106e091906127d9565b905090565b60006106f2848484611749565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073d611578565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f957828110156107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db9061288d565b60405180910390fd5b6107f8856107f0611578565b858403611580565b5b60019150509392505050565b60006012905090565b610816611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a906128f9565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b61091f611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a3906128f9565b60405180910390fd5b604681836109ba9190612919565b11156109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612999565b60405180910390fd5b81600881905550806009819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a82611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b06906128f9565b60405180910390fd5b8060058190555050565b610b21611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c74611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf8906128f9565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b610d51611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd5906128f9565b60405180910390fd5b6001600b60146101000a81548160ff02191690831515021790555043600781905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4741494e5a000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610e94611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906128f9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610fab5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156110055750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90612a05565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006110a0611099611578565b8484611749565b6001905092915050565b6110b2611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611136906128f9565b60405180910390fd5b6012600a61114d919061278e565b66017e9d8602b40061115f91906127d9565b600681905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166111a6611578565b73ffffffffffffffffffffffffffffffffffffffff16146111c657600080fd5b60006111d130610a31565b90506111dc81611bda565b50565b60095481565b60065481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661122a611578565b73ffffffffffffffffffffffffffffffffffffffff161461124a57600080fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a476112909190612a54565b60405161129c90612ab6565b60006040518083038185875af1925050503d80600081146112d9576040519150601f19603f3d011682016040523d82523d6000602084013e6112de565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff164760405161132890612ab6565b60006040518083038185875af1925050503d8060008114611365576040519150601f19603f3d011682016040523d82523d6000602084013e61136a565b606091505b50508091505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611402611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906128f9565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6114df611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906128f9565b60405180910390fd5b61157581611f44565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690612b3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590612bcf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161173c9190612483565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117af90612c61565b60405180910390fd5b600081116117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290612ccd565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561188a57506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611bc857600b60149054906101000a900460ff166118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d590612d39565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790612da5565b60405180910390fd5b6006548211156119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c90612e11565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a31575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8f5760065482611a4385610a31565b611a4d9190612919565b1115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8590612e11565b60405180910390fd5b5b6002600754611a9e9190612919565b431015611aae5760469050611bc7565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b0d576008549050611bc6565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc5576000611b6d30610a31565b90506012600a611b7d919061278e565b64272e07fd00611b8d91906127d9565b811115611bbe576000600554905083821115611ba7578391505b80821115611bb3578091505b611bbc82611bda565b505b6009549150505b5b5b5b611bd484848484612070565b50505050565b6000600267ffffffffffffffff811115611bf757611bf6612e31565b5b604051908082528060200260200182016040528015611c255781602001602082028036833780820191505090505b5090503081600081518110611c3d57611c3c612e60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612ea4565b81600181518110611d1c57611d1b612e60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d8330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611580565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611de7959493929190612fd4565b600060405180830381600087803b158015611e0157600080fd5b505af1158015611e15573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16600a47611e5f9190612a54565b604051611e6b90612ab6565b60006040518083038185875af1925050503d8060008114611ea8576040519150601f19603f3d011682016040523d82523d6000602084013e611ead565b606091505b5050809150507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611ef790612ab6565b60006040518083038185875af1925050503d8060008114611f34576040519150601f19603f3d011682016040523d82523d6000602084013e611f39565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa906130a0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064828461208091906127d9565b61208a9190612a54565b90506000818461209a91906130c0565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e791906130c0565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121759190612919565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122039190612919565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a39190612483565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122ed5780820151818401526020810190506122d2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612315826122b3565b61231f81856122be565b935061232f8185602086016122cf565b612338816122f9565b840191505092915050565b6000602082019050818103600083015261235d818461230a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123958261236a565b9050919050565b6123a58161238a565b81146123b057600080fd5b50565b6000813590506123c28161239c565b92915050565b6000819050919050565b6123db816123c8565b81146123e657600080fd5b50565b6000813590506123f8816123d2565b92915050565b6000806040838503121561241557612414612365565b5b6000612423858286016123b3565b9250506020612434858286016123e9565b9150509250929050565b60008115159050919050565b6124538161243e565b82525050565b600060208201905061246e600083018461244a565b92915050565b61247d816123c8565b82525050565b60006020820190506124986000830184612474565b92915050565b6000806000606084860312156124b7576124b6612365565b5b60006124c5868287016123b3565b93505060206124d6868287016123b3565b92505060406124e7868287016123e9565b9150509250925092565b600060ff82169050919050565b612507816124f1565b82525050565b600060208201905061252260008301846124fe565b92915050565b60006020828403121561253e5761253d612365565b5b600061254c848285016123b3565b91505092915050565b61255e8161238a565b82525050565b60006020820190506125796000830184612555565b92915050565b6000806040838503121561259657612595612365565b5b60006125a4858286016123e9565b92505060206125b5858286016123e9565b9150509250929050565b6000602082840312156125d5576125d4612365565b5b60006125e3848285016123e9565b91505092915050565b6000806040838503121561260357612602612365565b5b6000612611858286016123b3565b9250506020612622858286016123b3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126b25780860481111561268e5761268d61262c565b5b600185161561269d5780820291505b80810290506126ab8561265b565b9450612672565b94509492505050565b6000826126cb5760019050612787565b816126d95760009050612787565b81600181146126ef57600281146126f957612728565b6001915050612787565b60ff84111561270b5761270a61262c565b5b8360020a9150848211156127225761272161262c565b5b50612787565b5060208310610133831016604e8410600b841016171561275d5782820a9050838111156127585761275761262c565b5b612787565b61276a8484846001612668565b925090508184048111156127815761278061262c565b5b81810290505b9392505050565b6000612799826123c8565b91506127a4836124f1565b92506127d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126bb565b905092915050565b60006127e4826123c8565b91506127ef836123c8565b92508282026127fd816123c8565b915082820484148315176128145761281361262c565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006128776028836122be565b91506128828261281b565b604082019050919050565b600060208201905081810360008301526128a68161286a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128e36020836122be565b91506128ee826128ad565b602082019050919050565b60006020820190508181036000830152612912816128d6565b9050919050565b6000612924826123c8565b915061292f836123c8565b92508282019050808211156129475761294661262c565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612983600c836122be565b915061298e8261294d565b602082019050919050565b600060208201905081810360008301526129b281612976565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b60006129ef600e836122be565b91506129fa826129b9565b602082019050919050565b60006020820190508181036000830152612a1e816129e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a5f826123c8565b9150612a6a836123c8565b925082612a7a57612a79612a25565b5b828204905092915050565b600081905092915050565b50565b6000612aa0600083612a85565b9150612aab82612a90565b600082019050919050565b6000612ac182612a93565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b276024836122be565b9150612b3282612acb565b604082019050919050565b60006020820190508181036000830152612b5681612b1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb96022836122be565b9150612bc482612b5d565b604082019050919050565b60006020820190508181036000830152612be881612bac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c4b6025836122be565b9150612c5682612bef565b604082019050919050565b60006020820190508181036000830152612c7a81612c3e565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612cb7601c836122be565b9150612cc282612c81565b602082019050919050565b60006020820190508181036000830152612ce681612caa565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612d236010836122be565b9150612d2e82612ced565b602082019050919050565b60006020820190508181036000830152612d5281612d16565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000612d8f6016836122be565b9150612d9a82612d59565b602082019050919050565b60006020820190508181036000830152612dbe81612d82565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612dfb6017836122be565b9150612e0682612dc5565b602082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e9e8161239c565b92915050565b600060208284031215612eba57612eb9612365565b5b6000612ec884828501612e8f565b91505092915050565b6000819050919050565b6000819050919050565b6000612f00612efb612ef684612ed1565b612edb565b6123c8565b9050919050565b612f1081612ee5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f4b8161238a565b82525050565b6000612f5d8383612f42565b60208301905092915050565b6000602082019050919050565b6000612f8182612f16565b612f8b8185612f21565b9350612f9683612f32565b8060005b83811015612fc7578151612fae8882612f51565b9750612fb983612f69565b925050600181019050612f9a565b5085935050505092915050565b600060a082019050612fe96000830188612474565b612ff66020830187612f07565b81810360408301526130088186612f76565b90506130176060830185612555565b6130246080830184612474565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061308a6026836122be565b91506130958261302e565b604082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b60006130cb826123c8565b91506130d6836123c8565b92508282039050818111156130ee576130ed61262c565b5b9291505056fea2646970667358221220cd38bb964ad552c12e0bd8d9cf80785d272af9f44a6782db61d2205fa565f95064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638c2f0ec6116100ec578063c37e9c491161008a578063d3c12d1111610064578063d3c12d11146105bd578063dd62ed3e146105d4578063f0955cc914610611578063f2fde38b1461063a576101c2565b8063c37e9c4914610550578063cc1776d314610567578063cece997c14610592576101c2565b806397b2ebfe116100c657806397b2ebfe146104a857806398d1ee80146104d3578063a9059cbb146104fc578063ac9f69c414610539576101c2565b80638c2f0ec61461043b5780638da5cb5b1461045257806395d89b411461047d576101c2565b80634f7041a51161015957806370a082311161013357806370a0823114610395578063711c05a6146103d2578063715018a6146103fb57806379ec392914610412576101c2565b80634f7041a51461031657806367526604146103415780636cae5a691461036a576101c2565b806323b872dd1161019557806323b872dd1461025a578063313ce56714610297578063399c07ae146102c257806349bd5a5e146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610663565b6040516101e99190612343565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906123fe565b6106a0565b6040516102269190612459565b60405180910390f35b34801561023b57600080fd5b506102446106be565b6040516102519190612483565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061249e565b6106e5565b60405161028e9190612459565b60405180910390f35b3480156102a357600080fd5b506102ac610805565b6040516102b9919061250d565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612528565b61080e565b005b3480156102f757600080fd5b506103006108eb565b60405161030d9190612564565b60405180910390f35b34801561032257600080fd5b5061032b610911565b6040516103389190612483565b60405180910390f35b34801561034d57600080fd5b506103686004803603810190610363919061257f565b610917565b005b34801561037657600080fd5b5061037f610a0d565b60405161038c9190612564565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190612528565b610a31565b6040516103c99190612483565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f491906125bf565b610a7a565b005b34801561040757600080fd5b50610410610b19565b005b34801561041e57600080fd5b5061043960048036038101906104349190612528565b610c6c565b005b34801561044757600080fd5b50610450610d49565b005b34801561045e57600080fd5b50610467610e02565b6040516104749190612564565b60405180910390f35b34801561048957600080fd5b50610492610e2b565b60405161049f9190612343565b60405180910390f35b3480156104b457600080fd5b506104bd610e68565b6040516104ca9190612564565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612528565b610e8c565b005b34801561050857600080fd5b50610523600480360381019061051e91906123fe565b61108c565b6040516105309190612459565b60405180910390f35b34801561054557600080fd5b5061054e6110aa565b005b34801561055c57600080fd5b50610565611167565b005b34801561057357600080fd5b5061057c6111df565b6040516105899190612483565b60405180910390f35b34801561059e57600080fd5b506105a76111e5565b6040516105b49190612483565b60405180910390f35b3480156105c957600080fd5b506105d26111eb565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906125ec565b611373565b6040516106089190612483565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612528565b6113fa565b005b34801561064657600080fd5b50610661600480360381019061065c9190612528565b6114d7565b005b60606040518060400160405280600a81526020017f50657065204761696e7a00000000000000000000000000000000000000000000815250905090565b60006106b46106ad611578565b8484611580565b6001905092915050565b60006012600a6106ce919061278e565b66017e9d8602b4006106e091906127d9565b905090565b60006106f2848484611749565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073d611578565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f957828110156107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db9061288d565b60405180910390fd5b6107f8856107f0611578565b858403611580565b5b60019150509392505050565b60006012905090565b610816611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a906128f9565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b61091f611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a3906128f9565b60405180910390fd5b604681836109ba9190612919565b11156109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612999565b60405180910390fd5b81600881905550806009819055505050565b7f000000000000000000000000f519ccd7a3be0469a928354695ec1cb6d338c12d81565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a82611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b06906128f9565b60405180910390fd5b8060058190555050565b610b21611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c74611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf8906128f9565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b610d51611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd5906128f9565b60405180910390fd5b6001600b60146101000a81548160ff02191690831515021790555043600781905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4741494e5a000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000d3fded53b6f9bff2d8fd999215587dccbfafd84381565b610e94611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906128f9565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610fab5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156110055750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90612a05565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006110a0611099611578565b8484611749565b6001905092915050565b6110b2611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611136906128f9565b60405180910390fd5b6012600a61114d919061278e565b66017e9d8602b40061115f91906127d9565b600681905550565b7f000000000000000000000000f519ccd7a3be0469a928354695ec1cb6d338c12d73ffffffffffffffffffffffffffffffffffffffff166111a6611578565b73ffffffffffffffffffffffffffffffffffffffff16146111c657600080fd5b60006111d130610a31565b90506111dc81611bda565b50565b60095481565b60065481565b7f000000000000000000000000f519ccd7a3be0469a928354695ec1cb6d338c12d73ffffffffffffffffffffffffffffffffffffffff1661122a611578565b73ffffffffffffffffffffffffffffffffffffffff161461124a57600080fd5b60007f000000000000000000000000d3fded53b6f9bff2d8fd999215587dccbfafd84373ffffffffffffffffffffffffffffffffffffffff16600a476112909190612a54565b60405161129c90612ab6565b60006040518083038185875af1925050503d80600081146112d9576040519150601f19603f3d011682016040523d82523d6000602084013e6112de565b606091505b5050809150507f000000000000000000000000f519ccd7a3be0469a928354695ec1cb6d338c12d73ffffffffffffffffffffffffffffffffffffffff164760405161132890612ab6565b60006040518083038185875af1925050503d8060008114611365576040519150601f19603f3d011682016040523d82523d6000602084013e61136a565b606091505b50508091505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611402611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906128f9565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6114df611578565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906128f9565b60405180910390fd5b61157581611f44565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690612b3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590612bcf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161173c9190612483565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117af90612c61565b60405180910390fd5b600081116117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f290612ccd565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414801561188a57506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611bc857600b60149054906101000a900460ff166118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d590612d39565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790612da5565b60405180910390fd5b6006548211156119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c90612e11565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a31575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a8f5760065482611a4385610a31565b611a4d9190612919565b1115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8590612e11565b60405180910390fd5b5b6002600754611a9e9190612919565b431015611aae5760469050611bc7565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b0d576008549050611bc6565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc5576000611b6d30610a31565b90506012600a611b7d919061278e565b64272e07fd00611b8d91906127d9565b811115611bbe576000600554905083821115611ba7578391505b80821115611bb3578091505b611bbc82611bda565b505b6009549150505b5b5b5b611bd484848484612070565b50505050565b6000600267ffffffffffffffff811115611bf757611bf6612e31565b5b604051908082528060200260200182016040528015611c255781602001602082028036833780820191505090505b5090503081600081518110611c3d57611c3c612e60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612ea4565b81600181518110611d1c57611d1b612e60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d8330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611580565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611de7959493929190612fd4565b600060405180830381600087803b158015611e0157600080fd5b505af1158015611e15573d6000803e3d6000fd5b5050505060007f000000000000000000000000d3fded53b6f9bff2d8fd999215587dccbfafd84373ffffffffffffffffffffffffffffffffffffffff16600a47611e5f9190612a54565b604051611e6b90612ab6565b60006040518083038185875af1925050503d8060008114611ea8576040519150601f19603f3d011682016040523d82523d6000602084013e611ead565b606091505b5050809150507f000000000000000000000000f519ccd7a3be0469a928354695ec1cb6d338c12d73ffffffffffffffffffffffffffffffffffffffff1647604051611ef790612ab6565b60006040518083038185875af1925050503d8060008114611f34576040519150601f19603f3d011682016040523d82523d6000602084013e611f39565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa906130a0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064828461208091906127d9565b61208a9190612a54565b90506000818461209a91906130c0565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e791906130c0565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121759190612919565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122039190612919565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122a39190612483565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122ed5780820151818401526020810190506122d2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612315826122b3565b61231f81856122be565b935061232f8185602086016122cf565b612338816122f9565b840191505092915050565b6000602082019050818103600083015261235d818461230a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123958261236a565b9050919050565b6123a58161238a565b81146123b057600080fd5b50565b6000813590506123c28161239c565b92915050565b6000819050919050565b6123db816123c8565b81146123e657600080fd5b50565b6000813590506123f8816123d2565b92915050565b6000806040838503121561241557612414612365565b5b6000612423858286016123b3565b9250506020612434858286016123e9565b9150509250929050565b60008115159050919050565b6124538161243e565b82525050565b600060208201905061246e600083018461244a565b92915050565b61247d816123c8565b82525050565b60006020820190506124986000830184612474565b92915050565b6000806000606084860312156124b7576124b6612365565b5b60006124c5868287016123b3565b93505060206124d6868287016123b3565b92505060406124e7868287016123e9565b9150509250925092565b600060ff82169050919050565b612507816124f1565b82525050565b600060208201905061252260008301846124fe565b92915050565b60006020828403121561253e5761253d612365565b5b600061254c848285016123b3565b91505092915050565b61255e8161238a565b82525050565b60006020820190506125796000830184612555565b92915050565b6000806040838503121561259657612595612365565b5b60006125a4858286016123e9565b92505060206125b5858286016123e9565b9150509250929050565b6000602082840312156125d5576125d4612365565b5b60006125e3848285016123e9565b91505092915050565b6000806040838503121561260357612602612365565b5b6000612611858286016123b3565b9250506020612622858286016123b3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126b25780860481111561268e5761268d61262c565b5b600185161561269d5780820291505b80810290506126ab8561265b565b9450612672565b94509492505050565b6000826126cb5760019050612787565b816126d95760009050612787565b81600181146126ef57600281146126f957612728565b6001915050612787565b60ff84111561270b5761270a61262c565b5b8360020a9150848211156127225761272161262c565b5b50612787565b5060208310610133831016604e8410600b841016171561275d5782820a9050838111156127585761275761262c565b5b612787565b61276a8484846001612668565b925090508184048111156127815761278061262c565b5b81810290505b9392505050565b6000612799826123c8565b91506127a4836124f1565b92506127d17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126bb565b905092915050565b60006127e4826123c8565b91506127ef836123c8565b92508282026127fd816123c8565b915082820484148315176128145761281361262c565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006128776028836122be565b91506128828261281b565b604082019050919050565b600060208201905081810360008301526128a68161286a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128e36020836122be565b91506128ee826128ad565b602082019050919050565b60006020820190508181036000830152612912816128d6565b9050919050565b6000612924826123c8565b915061292f836123c8565b92508282019050808211156129475761294661262c565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612983600c836122be565b915061298e8261294d565b602082019050919050565b600060208201905081810360008301526129b281612976565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b60006129ef600e836122be565b91506129fa826129b9565b602082019050919050565b60006020820190508181036000830152612a1e816129e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a5f826123c8565b9150612a6a836123c8565b925082612a7a57612a79612a25565b5b828204905092915050565b600081905092915050565b50565b6000612aa0600083612a85565b9150612aab82612a90565b600082019050919050565b6000612ac182612a93565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b276024836122be565b9150612b3282612acb565b604082019050919050565b60006020820190508181036000830152612b5681612b1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bb96022836122be565b9150612bc482612b5d565b604082019050919050565b60006020820190508181036000830152612be881612bac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c4b6025836122be565b9150612c5682612bef565b604082019050919050565b60006020820190508181036000830152612c7a81612c3e565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612cb7601c836122be565b9150612cc282612c81565b602082019050919050565b60006020820190508181036000830152612ce681612caa565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612d236010836122be565b9150612d2e82612ced565b602082019050919050565b60006020820190508181036000830152612d5281612d16565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b6000612d8f6016836122be565b9150612d9a82612d59565b602082019050919050565b60006020820190508181036000830152612dbe81612d82565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612dfb6017836122be565b9150612e0682612dc5565b602082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e9e8161239c565b92915050565b600060208284031215612eba57612eb9612365565b5b6000612ec884828501612e8f565b91505092915050565b6000819050919050565b6000819050919050565b6000612f00612efb612ef684612ed1565b612edb565b6123c8565b9050919050565b612f1081612ee5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f4b8161238a565b82525050565b6000612f5d8383612f42565b60208301905092915050565b6000602082019050919050565b6000612f8182612f16565b612f8b8185612f21565b9350612f9683612f32565b8060005b83811015612fc7578151612fae8882612f51565b9750612fb983612f69565b925050600181019050612f9a565b5085935050505092915050565b600060a082019050612fe96000830188612474565b612ff66020830187612f07565b81810360408301526130088186612f76565b90506130176060830185612555565b6130246080830184612474565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061308a6026836122be565b91506130958261302e565b604082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b60006130cb826123c8565b91506130d6836123c8565b92508282039050818111156130ee576130ed61262c565b5b9291505056fea2646970667358221220cd38bb964ad552c12e0bd8d9cf80785d272af9f44a6782db61d2205fa565f95064736f6c63430008130033

Deployed Bytecode Sourcemap

2555:7883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4314:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5148:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4591:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5316:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4500:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6492:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3530:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3307:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7078:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3565:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4699:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9651:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1884:148;;;;;;;;;;;;;:::i;:::-;;6373:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6247:118;;;;;;;;;;;;;:::i;:::-;;1316:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4405:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3609:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6610:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4825:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6973:97;;;;;;;;;;;;;:::i;:::-;;9442:201;;;;;;;;;;;;;:::i;:::-;;3340:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3216:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9156:277;;;;;;;;;;;;;:::i;:::-;;4998:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1530:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4314:83;4351:13;4384:5;;;;;;;;;;;;;;;;;4377:12;;4314:83;:::o;5148:160::-;5223:4;5239:39;5248:12;:10;:12::i;:::-;5262:7;5271:6;5239:8;:39::i;:::-;5296:4;5289:11;;5148:160;;;;:::o;4591:100::-;4644:7;2932:2;2999;:13;;;;:::i;:::-;2981:15;:31;;;;:::i;:::-;4664:19;;4591:100;:::o;5316:578::-;5414:4;5431:36;5441:6;5449:9;5460:6;5431:9;:36::i;:::-;5480:24;5507:11;:19;5519:6;5507:19;;;;;;;;;;;;;;;:33;5527:12;:10;:12::i;:::-;5507:33;;;;;;;;;;;;;;;;5480:60;;5574:17;5554:16;:37;5551:314;;5655:6;5635:16;:26;;5609:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5781:57;5790:6;5798:12;:10;:12::i;:::-;5831:6;5812:16;:25;5781:8;:57::i;:::-;5551:314;5882:4;5875:11;;;5316:578;;;;;:::o;4500:83::-;4541:5;2932:2;4559:16;;4500:83;:::o;6492:106::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6589:1:::1;6563:15;:23;6579:6;6563:23;;;;;;;;;;;;;;;:27;;;;6492:106:::0;:::o;3530:28::-;;;;;;;;;;;;;:::o;3307:26::-;;;;:::o;7078:212::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7203:2:::1;7189:10;7177:9;:22;;;;:::i;:::-;:28;;7169:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7242:9;7233:6;:18;;;;7272:10;7262:7;:20;;;;7078:212:::0;;:::o;3565:36::-;;;:::o;4699:118::-;4765:7;4792:8;:17;4801:7;4792:17;;;;;;;;;;;;;;;;4785:24;;4699:118;;;:::o;9651:89::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9728:4:::1;9718:7;:14;;;;9651:89:::0;:::o;1884:148::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1991:1:::1;1954:40;;1975:6;::::0;::::1;;;;;;;;1954:40;;;;;;;;;;;;2022:1;2005:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1884:148::o:0;6373:111::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6475:1:::1;6449:15;:23;6465:6;6449:23;;;;;;;;;;;;;;;:27;;;;6373:111:::0;:::o;6247:118::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6313:4:::1;6304:6;;:13;;;;;;;;;;;;;;;;;;6345:12;6328:14;:29;;;;6247:118::o:0;1316:79::-;1354:7;1381:6;;;;;;;;;;;1374:13;;1316:79;:::o;4405:87::-;4444:13;4477:7;;;;;;;;;;;;;;;;;4470:14;;4405:87;:::o;3609:38::-;;;:::o;6610:241::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6706:4:::1;6687:24;;:7;:24;;;;:61;;;;;6734:13;;;;;;;;;;;6715:33;;:7;:33;;;;6687:61;:100;;;;;6771:15;;;;;;;;;;;6752:35;;:7;:35;;;;6687:100;6679:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;6842:1;6817:13;:22;6831:7;6817:22;;;;;;;;;;;;;;;:26;;;;6610:241:::0;:::o;4825:165::-;4902:4;4918:42;4928:12;:10;:12::i;:::-;4942:9;4953:6;4918:9;:42::i;:::-;4978:4;4971:11;;4825:165;;;;:::o;6973:97::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2932:2:::1;2999;:13;;;;:::i;:::-;2981:15;:31;;;;:::i;:::-;7032:15;:30;;;;6973:97::o:0;9442:201::-;9517:11;9501:27;;:12;:10;:12::i;:::-;:27;;;9493:37;;;;;;9541:23;9567:24;9585:4;9567:9;:24::i;:::-;9541:50;;9602:33;9619:15;9602:16;:33::i;:::-;9482:161;9442:201::o;3340:27::-;;;;:::o;3216:43::-;;;;:::o;9156:277::-;9231:11;9215:27;;:12;:10;:12::i;:::-;:27;;;9207:37;;;;;;9255:12;9292:13;:18;;9342:2;9318:21;:26;;;;:::i;:::-;9292:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9278:71;;;;;9374:11;:17;;9399:21;9374:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9360:65;;;;;9196:237;9156:277::o;4998:142::-;5079:7;5105:11;:18;5117:5;5105:18;;;;;;;;;;;;;;;:27;5124:7;5105:27;;;;;;;;;;;;;;;;5098:34;;4998:142;;;;:::o;6859:106::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6956:1:::1;6931:13;:22;6945:7;6931:22;;;;;;;;;;;;;;;:26;;;;6859:106:::0;:::o;1530:109::-;1453:12;:10;:12::i;:::-;1443:22;;:6;;;;;;;;;;:22;;;1435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1603:28:::1;1622:8;1603:18;:28::i;:::-;1530:109:::0;:::o;191:98::-;244:7;271:10;264:17;;191:98;:::o;5902:335::-;6012:1;5995:19;;:5;:19;;;5987:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6093:1;6074:21;;:7;:21;;;6066:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6175:6;6145:11;:18;6157:5;6145:18;;;;;;;;;;;;;;;:27;6164:7;6145:27;;;;;;;;;;;;;;;:36;;;;6213:7;6197:32;;6206:5;6197:32;;;6222:6;6197:32;;;;;;:::i;:::-;;;;;;;;5902:335;;;:::o;7740:1408::-;7844:1;7828:18;;:4;:18;;;7820:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7916:1;7907:6;:10;7899:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:12;8017:1;7992:15;:21;8008:4;7992:21;;;;;;;;;;;;;;;;:26;:54;;;;;8045:1;8022:15;:19;8038:2;8022:19;;;;;;;;;;;;;;;;:24;7992:54;7988:1104;;;8080:6;;;;;;;;;;;8072:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8153:1;8130:13;:19;8144:4;8130:19;;;;;;;;;;;;;;;;:24;8122:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8214:15;;8204:6;:25;;8196:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8282:13;;;;;;;;;;;8276:19;;:2;:19;;;;:44;;;;;8313:6;8299:21;;:2;:21;;;;8276:44;8272:127;;;8356:15;;8346:6;8330:13;8340:2;8330:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;8322:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8272:127;8450:1;8433:14;;:18;;;;:::i;:::-;8418:12;:33;8414:667;;;8459:2;8454:7;;8414:667;;;8500:13;;;;;;;;;;;8492:21;;:4;:21;;;8488:578;;8545:6;;8538:13;;8488:578;;;8587:13;;;;;;;;;;;8581:19;;:2;:19;;;8577:489;;8625:20;8648:24;8666:4;8648:9;:24::i;:::-;8625:47;;2932:2;3079;:13;;;;:::i;:::-;3064:12;:28;;;;:::i;:::-;8699:12;:32;8695:315;;;8761:12;8776:7;;8761:22;;8829:6;8814:12;:21;8810:48;;;8852:6;8837:21;;8810:48;8904:4;8889:12;:19;8885:44;;;8925:4;8910:19;;8885:44;8956:30;8973:12;8956:16;:30::i;:::-;8733:277;8695:315;9039:7;;9032:14;;8602:464;8577:489;8488:578;8414:667;7988:1104;9102:38;9117:4;9123:2;9127:6;9135:4;9102:14;:38::i;:::-;7809:1339;7740:1408;;;:::o;9748:652::-;9814:21;9852:1;9838:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9814:40;;9883:4;9865;9870:1;9865:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9909:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9899:4;9904:1;9899:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;9942:62;9959:4;9974:15;;;;;;;;;;;9992:11;9942:8;:62::i;:::-;10015:15;;;;;;;;;;;:66;;;10096:11;10122:1;10138:4;10165;10185:15;10015:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10222:12;10259:13;:18;;10309:2;10285:21;:26;;;;:::i;:::-;10259:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10245:71;;;;;10341:11;:17;;10366:21;10341:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10327:65;;;;;9803:597;;9748:652;:::o;1647:229::-;1741:1;1721:22;;:8;:22;;;1713:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1831:8;1802:38;;1823:6;;;;;;;;;;1802:38;;;;;;;;;;;;1860:8;1851:6;;:17;;;;;;;;;;;;;;;;;;1647:229;:::o;7298:434::-;7397:17;7435:3;7427:4;7418:6;:13;;;;:::i;:::-;7417:21;;;;:::i;:::-;7397:41;;7449:22;7483:9;7474:6;:18;;;;:::i;:::-;7449:43;;7539:6;7522:8;:14;7531:4;7522:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;7505:8;:14;7514:4;7505:14;;;;;;;;;;;;;;;:40;;;;7586:14;7571:8;:12;7580:2;7571:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7556:8;:12;7565:2;7556:12;;;;;;;;;;;;;;;:44;;;;7663:9;7637:8;:23;7654:4;7637:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;7611:8;:23;7628:4;7611:23;;;;;;;;;;;;;;;:61;;;;7705:2;7690:34;;7699:4;7690:34;;;7709:14;7690:34;;;;;;:::i;:::-;;;;;;;;7386:346;;7298:434;;;;:::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;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:227::-;9905:34;9901:1;9893:6;9889:14;9882:58;9974:10;9969:2;9961:6;9957:15;9950:35;9765:227;:::o;9998:366::-;10140:3;10161:67;10225:2;10220:3;10161:67;:::i;:::-;10154:74;;10237:93;10326:3;10237:93;:::i;:::-;10355:2;10350:3;10346:12;10339:19;;9998:366;;;:::o;10370:419::-;10536:4;10574:2;10563:9;10559:18;10551:26;;10623:9;10617:4;10613:20;10609:1;10598:9;10594:17;10587:47;10651:131;10777:4;10651:131;:::i;:::-;10643:139;;10370:419;;;:::o;10795:182::-;10935:34;10931:1;10923:6;10919:14;10912:58;10795:182;:::o;10983:366::-;11125:3;11146:67;11210:2;11205:3;11146:67;:::i;:::-;11139:74;;11222:93;11311:3;11222:93;:::i;:::-;11340:2;11335:3;11331:12;11324:19;;10983:366;;;:::o;11355:419::-;11521:4;11559:2;11548:9;11544:18;11536:26;;11608:9;11602:4;11598:20;11594:1;11583:9;11579:17;11572:47;11636:131;11762:4;11636:131;:::i;:::-;11628:139;;11355:419;;;:::o;11780:191::-;11820:3;11839:20;11857:1;11839:20;:::i;:::-;11834:25;;11873:20;11891:1;11873:20;:::i;:::-;11868:25;;11916:1;11913;11909:9;11902:16;;11937:3;11934:1;11931:10;11928:36;;;11944:18;;:::i;:::-;11928:36;11780:191;;;;:::o;11977:162::-;12117:14;12113:1;12105:6;12101:14;12094:38;11977:162;:::o;12145:366::-;12287:3;12308:67;12372:2;12367:3;12308:67;:::i;:::-;12301:74;;12384:93;12473:3;12384:93;:::i;:::-;12502:2;12497:3;12493:12;12486:19;;12145:366;;;:::o;12517:419::-;12683:4;12721:2;12710:9;12706:18;12698:26;;12770:9;12764:4;12760:20;12756:1;12745:9;12741:17;12734:47;12798:131;12924:4;12798:131;:::i;:::-;12790:139;;12517:419;;;:::o;12942:164::-;13082:16;13078:1;13070:6;13066:14;13059:40;12942:164;:::o;13112:366::-;13254:3;13275:67;13339:2;13334:3;13275:67;:::i;:::-;13268:74;;13351:93;13440:3;13351:93;:::i;:::-;13469:2;13464:3;13460:12;13453:19;;13112:366;;;:::o;13484:419::-;13650:4;13688:2;13677:9;13673:18;13665:26;;13737:9;13731:4;13727:20;13723:1;13712:9;13708:17;13701:47;13765:131;13891:4;13765:131;:::i;:::-;13757:139;;13484:419;;;:::o;13909:180::-;13957:77;13954:1;13947:88;14054:4;14051:1;14044:15;14078:4;14075:1;14068:15;14095:185;14135:1;14152:20;14170:1;14152:20;:::i;:::-;14147:25;;14186:20;14204:1;14186:20;:::i;:::-;14181:25;;14225:1;14215:35;;14230:18;;:::i;:::-;14215:35;14272:1;14269;14265:9;14260:14;;14095:185;;;;:::o;14286:147::-;14387:11;14424:3;14409:18;;14286:147;;;;:::o;14439:114::-;;:::o;14559:398::-;14718:3;14739:83;14820:1;14815:3;14739:83;:::i;:::-;14732:90;;14831:93;14920:3;14831:93;:::i;:::-;14949:1;14944:3;14940:11;14933:18;;14559:398;;;:::o;14963:379::-;15147:3;15169:147;15312:3;15169:147;:::i;:::-;15162:154;;15333:3;15326:10;;14963:379;;;:::o;15348:223::-;15488:34;15484:1;15476:6;15472:14;15465:58;15557:6;15552:2;15544:6;15540:15;15533:31;15348:223;:::o;15577:366::-;15719:3;15740:67;15804:2;15799:3;15740:67;:::i;:::-;15733:74;;15816:93;15905:3;15816:93;:::i;:::-;15934:2;15929:3;15925:12;15918:19;;15577:366;;;:::o;15949:419::-;16115:4;16153:2;16142:9;16138:18;16130:26;;16202:9;16196:4;16192:20;16188:1;16177:9;16173:17;16166:47;16230:131;16356:4;16230:131;:::i;:::-;16222:139;;15949:419;;;:::o;16374:221::-;16514:34;16510:1;16502:6;16498:14;16491:58;16583:4;16578:2;16570:6;16566:15;16559:29;16374:221;:::o;16601:366::-;16743:3;16764:67;16828:2;16823:3;16764:67;:::i;:::-;16757:74;;16840:93;16929:3;16840:93;:::i;:::-;16958:2;16953:3;16949:12;16942:19;;16601:366;;;:::o;16973:419::-;17139:4;17177:2;17166:9;17162:18;17154:26;;17226:9;17220:4;17216:20;17212:1;17201:9;17197:17;17190:47;17254:131;17380:4;17254:131;:::i;:::-;17246:139;;16973:419;;;:::o;17398:224::-;17538:34;17534:1;17526:6;17522:14;17515:58;17607:7;17602:2;17594:6;17590:15;17583:32;17398:224;:::o;17628:366::-;17770:3;17791:67;17855:2;17850:3;17791:67;:::i;:::-;17784:74;;17867:93;17956:3;17867:93;:::i;:::-;17985:2;17980:3;17976:12;17969:19;;17628:366;;;:::o;18000:419::-;18166:4;18204:2;18193:9;18189:18;18181:26;;18253:9;18247:4;18243:20;18239:1;18228:9;18224:17;18217:47;18281:131;18407:4;18281:131;:::i;:::-;18273:139;;18000:419;;;:::o;18425:178::-;18565:30;18561:1;18553:6;18549:14;18542:54;18425:178;:::o;18609:366::-;18751:3;18772:67;18836:2;18831:3;18772:67;:::i;:::-;18765:74;;18848:93;18937:3;18848:93;:::i;:::-;18966:2;18961:3;18957:12;18950:19;;18609:366;;;:::o;18981:419::-;19147:4;19185:2;19174:9;19170:18;19162:26;;19234:9;19228:4;19224:20;19220:1;19209:9;19205:17;19198:47;19262:131;19388:4;19262:131;:::i;:::-;19254:139;;18981:419;;;:::o;19406:166::-;19546:18;19542:1;19534:6;19530:14;19523:42;19406:166;:::o;19578:366::-;19720:3;19741:67;19805:2;19800:3;19741:67;:::i;:::-;19734:74;;19817:93;19906:3;19817:93;:::i;:::-;19935:2;19930:3;19926:12;19919:19;;19578:366;;;:::o;19950:419::-;20116:4;20154:2;20143:9;20139:18;20131:26;;20203:9;20197:4;20193:20;20189:1;20178:9;20174:17;20167:47;20231:131;20357:4;20231:131;:::i;:::-;20223:139;;19950:419;;;:::o;20375:172::-;20515:24;20511:1;20503:6;20499:14;20492:48;20375:172;:::o;20553:366::-;20695:3;20716:67;20780:2;20775:3;20716:67;:::i;:::-;20709:74;;20792:93;20881:3;20792:93;:::i;:::-;20910:2;20905:3;20901:12;20894:19;;20553:366;;;:::o;20925:419::-;21091:4;21129:2;21118:9;21114:18;21106:26;;21178:9;21172:4;21168:20;21164:1;21153:9;21149:17;21142:47;21206:131;21332:4;21206:131;:::i;:::-;21198:139;;20925:419;;;:::o;21350:173::-;21490:25;21486:1;21478:6;21474:14;21467:49;21350:173;:::o;21529:366::-;21671:3;21692:67;21756:2;21751:3;21692:67;:::i;:::-;21685:74;;21768:93;21857:3;21768:93;:::i;:::-;21886:2;21881:3;21877:12;21870:19;;21529:366;;;:::o;21901:419::-;22067:4;22105:2;22094:9;22090:18;22082:26;;22154:9;22148:4;22144:20;22140:1;22129:9;22125:17;22118:47;22182:131;22308:4;22182:131;:::i;:::-;22174:139;;21901:419;;;:::o;22326:180::-;22374:77;22371:1;22364:88;22471:4;22468:1;22461:15;22495:4;22492:1;22485:15;22512:180;22560:77;22557:1;22550:88;22657:4;22654:1;22647:15;22681:4;22678:1;22671:15;22698:143;22755:5;22786:6;22780:13;22771:22;;22802:33;22829:5;22802:33;:::i;:::-;22698:143;;;;:::o;22847:351::-;22917:6;22966:2;22954:9;22945:7;22941:23;22937:32;22934:119;;;22972:79;;:::i;:::-;22934:119;23092:1;23117:64;23173:7;23164:6;23153:9;23149:22;23117:64;:::i;:::-;23107:74;;23063:128;22847:351;;;;:::o;23204:85::-;23249:7;23278:5;23267:16;;23204:85;;;:::o;23295:60::-;23323:3;23344:5;23337:12;;23295:60;;;:::o;23361:158::-;23419:9;23452:61;23470:42;23479:32;23505:5;23479:32;:::i;:::-;23470:42;:::i;:::-;23452:61;:::i;:::-;23439:74;;23361:158;;;:::o;23525:147::-;23620:45;23659:5;23620:45;:::i;:::-;23615:3;23608:58;23525:147;;:::o;23678:114::-;23745:6;23779:5;23773:12;23763:22;;23678:114;;;:::o;23798:184::-;23897:11;23931:6;23926:3;23919:19;23971:4;23966:3;23962:14;23947:29;;23798:184;;;;:::o;23988:132::-;24055:4;24078:3;24070:11;;24108:4;24103:3;24099:14;24091:22;;23988:132;;;:::o;24126:108::-;24203:24;24221:5;24203:24;:::i;:::-;24198:3;24191:37;24126:108;;:::o;24240:179::-;24309:10;24330:46;24372:3;24364:6;24330:46;:::i;:::-;24408:4;24403:3;24399:14;24385:28;;24240:179;;;;:::o;24425:113::-;24495:4;24527;24522:3;24518:14;24510:22;;24425:113;;;:::o;24574:732::-;24693:3;24722:54;24770:5;24722:54;:::i;:::-;24792:86;24871:6;24866:3;24792:86;:::i;:::-;24785:93;;24902:56;24952:5;24902:56;:::i;:::-;24981:7;25012:1;24997:284;25022:6;25019:1;25016:13;24997:284;;;25098:6;25092:13;25125:63;25184:3;25169:13;25125:63;:::i;:::-;25118:70;;25211:60;25264:6;25211:60;:::i;:::-;25201:70;;25057:224;25044:1;25041;25037:9;25032:14;;24997:284;;;25001:14;25297:3;25290:10;;24698:608;;;24574:732;;;;:::o;25312:831::-;25575:4;25613:3;25602:9;25598:19;25590:27;;25627:71;25695:1;25684:9;25680:17;25671:6;25627:71;:::i;:::-;25708:80;25784:2;25773:9;25769:18;25760:6;25708:80;:::i;:::-;25835:9;25829:4;25825:20;25820:2;25809:9;25805:18;25798:48;25863:108;25966:4;25957:6;25863:108;:::i;:::-;25855:116;;25981:72;26049:2;26038:9;26034:18;26025:6;25981:72;:::i;:::-;26063:73;26131:3;26120:9;26116:19;26107:6;26063:73;:::i;:::-;25312:831;;;;;;;;:::o;26149:225::-;26289:34;26285:1;26277:6;26273:14;26266:58;26358:8;26353:2;26345:6;26341:15;26334:33;26149:225;:::o;26380:366::-;26522:3;26543:67;26607:2;26602:3;26543:67;:::i;:::-;26536:74;;26619:93;26708:3;26619:93;:::i;:::-;26737:2;26732:3;26728:12;26721:19;;26380:366;;;:::o;26752:419::-;26918:4;26956:2;26945:9;26941:18;26933:26;;27005:9;26999:4;26995:20;26991:1;26980:9;26976:17;26969:47;27033:131;27159:4;27033:131;:::i;:::-;27025:139;;26752:419;;;:::o;27177:194::-;27217:4;27237:20;27255:1;27237:20;:::i;:::-;27232:25;;27271:20;27289:1;27271:20;:::i;:::-;27266:25;;27315:1;27312;27308:9;27300:17;;27339:1;27333:4;27330:11;27327:37;;;27344:18;;:::i;:::-;27327:37;27177:194;;;;:::o

Swarm Source

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