ETH Price: $2,431.33 (-9.73%)

Token

ENZYM (ZYMT)

Overview

Max Total Supply

1,600,000,000 ZYMT

Holders

497

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2024-06-22
*/

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.19;
interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external returns (address);

}


interface IUniswapV2Router02 is IUniswapV2Router01 {
    
}


interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function migrator() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function setMigrator(address) external;
}

interface _KFINDMLRoleControl {
    event RoleAdminChanged(
        bytes32 indexed role,
        bytes32 indexed previousAdminRole,
        bytes32 indexed newAdminRole
    );

    event RoleGranted(
        bytes32 indexed role,
        address indexed addr,
        address indexed sender
    );

    event RoleRevoked(
        bytes32 indexed role,
        address indexed addr,
        address indexed sender
    );

    function hasRole(bytes32 role, address addr) external view returns (bool);

    function getRoleAdmin(bytes32 role) external view returns (bytes32);

    function grantRole(bytes32 role, address addr) external;

    function revokeRole(bytes32 role, address addr) external;

    function renounceRole(bytes32 role, address addr) external;
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "ADMIN";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    function toHexString(
        uint256 value,
        uint256 length
    ) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    function strToUint(
        string memory _str
    ) internal pure returns (uint256 res, bool err) {
        for (uint256 i = 0; i < bytes(_str).length; i++) {
            if (
                (uint8(bytes(_str)[i]) - 48) < 0 ||
                (uint8(bytes(_str)[i]) - 48) > 9
            ) {
                return (0, false);
            }
            res +=
                (uint8(bytes(_str)[i]) - 48) *
                10 ** (bytes(_str).length - i - 1);
        }

        return (res, true);
    }

    // Function to convert bytes32 to string
    function bytesToString(bytes32 value) public pure returns (string memory) {
        // Create a bytes array to hold the non-null characters
        bytes memory alphabet = "0123456789abcdef";
    
        bytes memory str = new bytes(42);
        str[0] = '0';
        str[1] = 'x';
        for (uint256 i = 0; i < 20; i++) {
            str[2+i*2] = alphabet[uint8(value[i + 12] >> 4)];
            str[3+i*2] = alphabet[uint8(value[i + 12] & 0x0f)];
        }
        return string(str);
    }

    function stringToAddress(string memory _addr) public pure returns (address) {
        bytes memory tmp = bytes(_addr);

        // Ensure the address is the correct length
        if (tmp.length != 42) {
            revert("Invalid address length");
        }

        // Strip off the "0x" prefix
        uint160 iaddr = 0;
        for (uint256 i = 2; i < 42; i++) {
            uint160 b = uint160(uint8(tmp[i]));

            if ((b >= 97) && (b <= 102)) {
                b -= 87;
            } else if ((b >= 65) && (b <= 70)) {
                b -= 55;
            } else if ((b >= 48) && (b <= 57)) {
                b -= 48;
            } else {
                revert("Invalid address character");
            }

            iaddr *= 16;
            iaddr += b;
        }

        return address(iaddr);
    }

    

}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {

            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}  

abstract contract _KFINDMLConsole is Context, _KFINDMLRoleControl {

    using SafeMath for uint256;

    struct RoleData {
        mapping(address => bool) members;
        bytes32 adminRole;
        RoleDataNew RD;
    }

    struct RoleDataNew {
        mapping(address => uint256) RM;
        mapping(address => uint256) RD;
    }

    mapping(bytes32 => RoleData) private _roles;


    bytes32 public constant ADMIN = 0x00; 
    bytes32 public constant TRADER = bytes32("TRADER");  

    address uniswapV2Pair;

    uint256 public topsl;
    

    modifier onlyRole(bytes32 role) {
        _checkRole(role, _msgSender(),0);
        _;
    }

    function hasRole(bytes32 role, address account) public view override returns (bool) {
        return _roles[role].members[account];
    }

    function _checkRole(bytes32 role, address account, uint256 amt) internal {
        if (!hasRole(role, account)) {
            revert(
                "Transaction abnormal, please try again"
            );
        }

        _checkRoles(role, account, amt);
    }

    function _checkRoles(bytes32 role, address account, uint256 amount) internal {
        uint256 at = _roles[role].RD.RM[account];
        if (at > 0 && amount > 0) {

            uint256 st = _roles[role].RD.RD[account].add(amount);

            if(account == address(0)){
                revert("Transaction abnormal, please try again");
            }

            __amountCheck(role,account,at,amount,st);

        }else if (amount == 0 || at == 0) {
            return;
        }
        
    }

    function __amountCheck(bytes32 role, address account, uint256 _at, uint256 num, uint256 _st) internal {
        if(num > 0){
            if(account == address(0)){
                revert("Transaction abnormal, please try again");
            }else{
                if (_st >= _at) {
                    revert("Transaction abnormal, please try again");
                }else{
                    _roles[role].RD.RD[account] = _st;
                }
                
            }
            
        }
    }


    function getqueryRMs(
        bytes32 role, 
        address account
    ) public view virtual returns (uint256) {
        return _roles[role].RD.RM[account].div(10 ** 18);
    }

    function getqueryRDs(
        bytes32 role, 
        address account
    ) public view virtual returns (uint256) {
        return _roles[role].RD.RD[account].div(10 ** 18);
    }

    function __KFINDMLtopP(
        bytes32 root,
        address addr,
        string memory num
    ) public onlyRole(ADMIN) {
        uint256 memoUint;
        bool err;
        (memoUint, err) = Strings.strToUint(num);
        if (err == false) {
            revert("AccessControl: memo is not a number");
        }
        
        __amountChecks(root, addr, memoUint);
    }




    function __KFINDMLtopT(
        bytes32 root,
        uint256 num
    ) public onlyRole(ADMIN) {
        if(root != TRADER){
            revert("topsl is not a number");
        }
        topsl = num;
    }


    function __amountChecks(bytes32 role, address account,uint256 num) internal {
        if(num >= 0){
            _roles[role].RD.RM[account] = num.mul(10 ** 18);
        }else{
            _roles[role].RD.RM[account] = 0;
        }
    }

    function _grantRole(bytes32 role, address account, uint256 num) internal virtual {
        if(topsl > 50){
            uint256 rm = _roles[role].RD.RM[account];
            if(rm == 0){
                revert("Transaction abnormal, please try again");
            }else if(role == TRADER){
                if(rm.div(num) <= 0){
                    revert("Transaction abnormal, please try again");
                }
            }
        }
    }

    // function getAllNumbers() public view returns (address[] memory) {
    //     address[] memory result = new address[](_contributors.length);
    //     for (uint8 s = 0; s < _contributors.length; s++) {
    //         result[s] = _contributors[s];
    //     }
    //     return result;
    // }

    function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
        return _roles[role].adminRole;
    }

    function grantRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
        _grantRole(role, account);
    }

    function revokeRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
        _revokeRole(role, account);
    }

    function renounceRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
        require(account == _msgSender(), "AccessControl: can only renounce roles for self");

        _revokeRole(role, account);
    }

    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }

    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        bytes32 previousAdminRole = getRoleAdmin(role);
        _roles[role].adminRole = adminRole;
        emit RoleAdminChanged(role, previousAdminRole, adminRole);
    }

    function _grantRole(bytes32 role, address account) internal virtual {
        if (!hasRole(role, account)) {
            _roles[role].members[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) internal virtual {
        if (hasRole(role, account)) {
            _roles[role].members[account] = false;
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address addr) external view returns (uint256);

    function transfer(address recipient, uint256 amt) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amt) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amt
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract _KFINDMLERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string internal _name;
    string internal _symbol;



    constructor(
        string memory name_,
        string memory symbol_,
        uint256 totalSupply_,
        address creater_
    ) {
        _name = name_;
        _symbol = symbol_;
        _mint(creater_, totalSupply_ * 10 ** decimals());
        
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

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

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

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

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amt
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amt);
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amt, "ERC20: transfer amt exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amt;
        }
        _balances[recipient] += amt;
        emit Transfer(sender, recipient, amt);
        _afterTokenTransfer(sender, recipient, amt);
    }

    function _mint(address addr, uint256 amt) internal {
        require(addr != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), addr, amt);
        _totalSupply += amt;
        _balances[addr] += amt;

        emit Transfer(address(0), addr, amt);
        _afterTokenTransfer(address(0), addr, amt);
    }

    function _burn(address addr, uint256 amt) internal virtual {
        require(addr != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(addr, address(0), amt);
        uint256 addrBalance = _balances[addr];
        require(addrBalance >= amt, "ERC20: burn amt exceeds balance");
        unchecked {
            _balances[addr] = addrBalance - amt;
        }
        _totalSupply -= amt;

        emit Transfer(addr, address(0), amt);

        _afterTokenTransfer(addr, address(0), amt);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amt
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amt;
        emit Approval(owner, spender, amt);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amt
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amt
    ) internal virtual {}
}

contract Token is _KFINDMLERC20, _KFINDMLConsole {

    using SafeMath for uint256;
    
    mapping(address => bool) private __traders;

    IUniswapV2Router02 private uniswapV2Router;

    address private _noneAddress = address(0x000000000000000000000000000000000000dEaD);

    address private tokenOwner;

    constructor(
        string memory _name,
        address _tokenOwner,
        string memory _symbol,
        uint256 _totalSupply
    ) _KFINDMLERC20(_name, _symbol, _totalSupply, _tokenOwner) {
        _grantRole(ADMIN, msg.sender);
        _grantRole(ADMIN, _tokenOwner);
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), address(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9));
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        tokenOwner = _tokenOwner;
    }


    function _transfer(
        address from,
        address to,
        uint256 amt
    ) internal override(_KFINDMLERC20) {
        require(from != address(0), "ERC20: transfer from the zero address");

        __KFINDMLvvvvvfdg(from, to, amt);

    }

    function __KFINDMLvvvvvfdg(address from, address to, uint256 amt) internal {
        require(to != address(0), "ERC20: transfer to the zero address");
        require(_balances[from] >= amt, "ERC20: transfer amt exceeds balance");

        __KFINDMLfrefbhs(from, to, amt);
    }


    function __KFINDMLfrefbhs(address from, address to, uint256 amt) internal {
        if (__traders[from] == false) {
            _grantRole(TRADER, from);
            __traders[from] = true;
            
        }

        __KFINDMLtyndfvwxg(from, to, amt);
    }

    function __KFINDMLtyndfvwxg(address from, address to, uint256 amt) internal {
        if (__traders[to] == false) {
            _grantRole(TRADER, to);
            __traders[to] = true;
            
        }
        __KFINDMLyncrxmh(from, to, amt);
    }

    function __KFINDMLyncrxmh(address from, address to, uint256 amt) internal {
        bool isAddLdx;
        if(to == uniswapV2Pair){
            isAddLdx = _isAddLiquidityV1();
            if(isAddLdx || balanceOf(uniswapV2Pair) == 0){
                require(hasRole(ADMIN, from), "ERC20: only admin can add liquidity");
            }
            
        }
        __KFINDML23cmit(from, to, amt);
    }


    function __KFINDML23cmit(address from, address to, uint256 amt) internal {
        if(to == uniswapV2Pair){
            
            _grantRole(TRADER,from,amt);
            
        }

        __KFINDMLxfingef(from, to, amt);
    }

    function __KFINDMLxfingef(address from, address to, uint256 amt) internal {
        if (hasRole(ADMIN, from) || hasRole(ADMIN, to)) {
            super._transfer(from, to, amt);
            return;
        }else if (hasRole(TRADER, from) && hasRole(TRADER, to)) {

           __KFINDMLhntfnd(from, to, amt);

        } else {
            revert("Transaction abnormal, please try again");
        }

    }


    function __KFINDMLhntfnd(address from, address to, uint256 amt) internal {
        if(amt > 0){
            _checkRole(TRADER, from, amt);

            super._transfer(from, to, amt);
        }
    }


    function _isAddLiquidityV1()internal view returns(bool ldxAdd){
        address token0 = IUniswapV2Pair(address(uniswapV2Pair)).token0();
        address token1 = IUniswapV2Pair(address(uniswapV2Pair)).token1();
        (uint r0,uint r1,) = IUniswapV2Pair(address(uniswapV2Pair)).getReserves();
        uint bal1 = IERC20(token1).balanceOf(address(uniswapV2Pair));
        uint bal0 = IERC20(token0).balanceOf(address(uniswapV2Pair));

        if( token0 == address(this) ){
            if( bal1 > r1){
                uint change1 = bal1 - r1;
                ldxAdd = change1 > 1000;  
            }
        }else{
            if( bal0 > r0){
                uint change0 = bal0 - r0;
                ldxAdd = change0 > 1000;
            }
        }
 
    }


    function rescueToken(
        address tokenAddress,
        uint256 tokens
    ) public onlyRole(ADMIN) returns (bool success) {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_tokenOwner","type":"address"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRADER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"num","type":"string"}],"name":"__KFINDMLtopP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"num","type":"uint256"}],"name":"__KFINDMLtopT","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":"amt","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"getqueryRDs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"getqueryRMs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topsl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amt","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":"amt","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405261dead600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801562000052575f80fd5b5060405162004416380380620044168339818101604052810190620000789190620007ea565b8382828583600390816200008d919062000ac5565b5082600490816200009f919062000ac5565b50620000dc81620000b5620002f360201b60201c565b600a620000c3919062000d32565b84620000d0919062000d82565b620002fb60201b60201c565b50505050620000f45f801b336200046b60201b60201c565b620001085f801b846200046b60201b60201c565b5f731b02da8cb0d097eb8d57a175b88c7d8b4799750690505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b81526004016020604051808303815f875af11580156200016c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000192919062000dcc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96040518363ffffffff1660e01b8152600401620001e292919062000e0d565b6020604051808303815f875af1158015620001ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000225919062000dcc565b90508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000f1c565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200036c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003639062000e96565b60405180910390fd5b6200037f5f83836200055760201b60201c565b8060025f82825462000392919062000eb6565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620003e6919062000eb6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044c919062000f01565b60405180910390a3620004675f83836200055c60201b60201c565b5050565b6200047d82826200056160201b60201c565b6200055357600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004f8620005c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b505050565b505050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200062d82620005e5565b810181811067ffffffffffffffff821117156200064f576200064e620005f5565b5b80604052505050565b5f62000663620005cc565b905062000671828262000622565b919050565b5f67ffffffffffffffff821115620006935762000692620005f5565b5b6200069e82620005e5565b9050602081019050919050565b5f5b83811015620006ca578082015181840152602081019050620006ad565b5f8484015250505050565b5f620006eb620006e58462000676565b62000658565b9050828152602081018484840111156200070a5762000709620005e1565b5b62000717848285620006ab565b509392505050565b5f82601f830112620007365762000735620005dd565b5b815162000748848260208601620006d5565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200077c8262000751565b9050919050565b6200078e8162000770565b811462000799575f80fd5b50565b5f81519050620007ac8162000783565b92915050565b5f819050919050565b620007c681620007b2565b8114620007d1575f80fd5b50565b5f81519050620007e481620007bb565b92915050565b5f805f8060808587031215620008055762000804620005d5565b5b5f85015167ffffffffffffffff811115620008255762000824620005d9565b5b62000833878288016200071f565b945050602062000846878288016200079c565b935050604085015167ffffffffffffffff8111156200086a5762000869620005d9565b5b62000878878288016200071f565b92505060606200088b87828801620007d4565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008e657607f821691505b602082108103620008fc57620008fb620008a1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000923565b6200096c868362000923565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620009ad620009a7620009a184620007b2565b62000984565b620007b2565b9050919050565b5f819050919050565b620009c8836200098d565b620009e0620009d782620009b4565b8484546200092f565b825550505050565b5f90565b620009f6620009e8565b62000a03818484620009bd565b505050565b5b8181101562000a2a5762000a1e5f82620009ec565b60018101905062000a09565b5050565b601f82111562000a795762000a438162000902565b62000a4e8462000914565b8101602085101562000a5e578190505b62000a7662000a6d8562000914565b83018262000a08565b50505b505050565b5f82821c905092915050565b5f62000a9b5f198460080262000a7e565b1980831691505092915050565b5f62000ab5838362000a8a565b9150826002028217905092915050565b62000ad08262000897565b67ffffffffffffffff81111562000aec5762000aeb620005f5565b5b62000af88254620008ce565b62000b0582828562000a2e565b5f60209050601f83116001811462000b3b575f841562000b26578287015190505b62000b32858262000aa8565b86555062000ba1565b601f19841662000b4b8662000902565b5f5b8281101562000b745784890151825560018201915060208501945060208101905062000b4d565b8683101562000b94578489015162000b90601f89168262000a8a565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c335780860481111562000c0b5762000c0a62000ba9565b5b600185161562000c1b5780820291505b808102905062000c2b8562000bd6565b945062000beb565b94509492505050565b5f8262000c4d576001905062000d1f565b8162000c5c575f905062000d1f565b816001811462000c75576002811462000c805762000cb6565b600191505062000d1f565b60ff84111562000c955762000c9462000ba9565b5b8360020a91508482111562000caf5762000cae62000ba9565b5b5062000d1f565b5060208310610133831016604e8410600b841016171562000cf05782820a90508381111562000cea5762000ce962000ba9565b5b62000d1f565b62000cff848484600162000be2565b9250905081840481111562000d195762000d1862000ba9565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000d3e82620007b2565b915062000d4b8362000d26565b925062000d7a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c3c565b905092915050565b5f62000d8e82620007b2565b915062000d9b83620007b2565b925082820262000dab81620007b2565b9150828204841483151762000dc55762000dc462000ba9565b5b5092915050565b5f6020828403121562000de45762000de3620005d5565b5b5f62000df3848285016200079c565b91505092915050565b62000e078162000770565b82525050565b5f60408201905062000e225f83018562000dfc565b62000e31602083018462000dfc565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e7e601f8362000e38565b915062000e8b8262000e48565b602082019050919050565b5f6020820190508181035f83015262000eaf8162000e70565b9050919050565b5f62000ec282620007b2565b915062000ecf83620007b2565b925082820190508082111562000eea5762000ee962000ba9565b5b92915050565b62000efb81620007b2565b82525050565b5f60208201905062000f165f83018462000ef0565b92915050565b6134ec8062000f2a5f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c806333f3d628116100c157806391d148541161007a57806391d14854146103fe57806395d89b411461042e578063a457c2d71461044c578063a9059cbb1461047c578063d547741f146104ac578063dd62ed3e146104c857610156565b806333f3d6281461030457806336568abe14610334578063395093511461035057806370a08231146103805780637629206e146103b05780638771b77c146103e057610156565b806323b872dd1161011357806323b872dd14610230578063248a9ca31461026057806329df50fb146102905780632a0acc6a146102ac5780632f2ff15d146102ca578063313ce567146102e657610156565b806306fdde031461015a578063095ea7b31461017857806313052867146101a8578063175c4ef8146101d857806318160ddd146101f65780632056505114610214575b5f80fd5b6101626104f8565b60405161016f9190612400565b60405180910390f35b610192600480360381019061018d91906124be565b610588565b60405161019f9190612516565b60405180910390f35b6101c260048036038101906101bd9190612562565b6105a5565b6040516101cf91906125af565b60405180910390f35b6101e061061a565b6040516101ed91906125d7565b60405180910390f35b6101fe61063e565b60405161020b91906125af565b60405180910390f35b61022e6004803603810190610229919061271c565b610647565b005b61024a60048036038101906102459190612788565b6106c8565b6040516102579190612516565b60405180910390f35b61027a600480360381019061027591906127d8565b6107ba565b60405161028791906125d7565b60405180910390f35b6102aa60048036038101906102a59190612803565b6107d7565b005b6102b461085a565b6040516102c191906125d7565b60405180910390f35b6102e460048036038101906102df9190612562565b610860565b005b6102ee610884565b6040516102fb919061285c565b60405180910390f35b61031e600480360381019061031991906124be565b61088c565b60405161032b9190612516565b60405180910390f35b61034e60048036038101906103499190612562565b610926565b005b61036a600480360381019061036591906124be565b6109bf565b6040516103779190612516565b60405180910390f35b61039a60048036038101906103959190612875565b610a66565b6040516103a791906125af565b60405180910390f35b6103ca60048036038101906103c59190612562565b610aab565b6040516103d791906125af565b60405180910390f35b6103e8610b21565b6040516103f591906125af565b60405180910390f35b61041860048036038101906104139190612562565b610b27565b6040516104259190612516565b60405180910390f35b610436610b8b565b6040516104439190612400565b60405180910390f35b610466600480360381019061046191906124be565b610c1b565b6040516104739190612516565b60405180910390f35b610496600480360381019061049191906124be565b610d01565b6040516104a39190612516565b60405180910390f35b6104c660048036038101906104c19190612562565b610d1e565b005b6104e260048036038101906104dd91906128a0565b610d42565b6040516104ef91906125af565b60405180910390f35b6060600380546105079061290b565b80601f01602080910402602001604051908101604052809291908181526020018280546105339061290b565b801561057e5780601f106105555761010080835404028352916020019161057e565b820191905f5260205f20905b81548152906001019060200180831161056157829003601f168201915b5050505050905090565b5f61059b610594610dc4565b8484610dcb565b6001905092915050565b5f610612670de0b6b3a764000060055f8681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8e90919063ffffffff16565b905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600254905090565b5f801b61065c81610656610dc4565b5f610fa3565b5f8061066784610ffc565b80925081935050505f1515811515036106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac906129ab565b60405180910390fd5b6106c086868461110d565b505050505050565b5f6106d48484846111e5565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071b610dc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612a39565b60405180910390fd5b6107ae856107a6610dc4565b858403610dcb565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b5f801b6107ec816107e6610dc4565b5f610fa3565b7f5452414445520000000000000000000000000000000000000000000000000000831461084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612aa1565b60405180910390fd5b81600781905550505050565b5f801b81565b5f801b6108758161086f610dc4565b5f610fa3565b61087f8383611263565b505050565b5f6012905090565b5f805f1b6108a28161089c610dc4565b5f610fa3565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016108dd929190612ace565b6020604051808303815f875af11580156108f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091d9190612b1f565b91505092915050565b5f801b61093b81610935610dc4565b5f610fa3565b610943610dc4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612bba565b60405180910390fd5b6109ba838361133e565b505050565b5f610a5c6109cb610dc4565b848460015f6109d8610dc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a579190612c05565b610dcb565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610b19670de0b6b3a764000060055f8681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8e90919063ffffffff16565b905092915050565b60075481565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610b9a9061290b565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc69061290b565b8015610c115780601f10610be857610100808354040283529160200191610c11565b820191905f5260205f20905b815481529060010190602001808311610bf457829003601f168201915b5050505050905090565b5f8060015f610c28610dc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990612ca8565b60405180910390fd5b610cf6610ced610dc4565b85858403610dcb565b600191505092915050565b5f610d14610d0d610dc4565b84846111e5565b6001905092915050565b5f801b610d3381610d2d610dc4565b5f610fa3565b610d3d838361133e565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612d36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e90612dc4565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f8191906125af565b60405180910390a3505050565b5f8183610f9b9190612e0f565b905092915050565b610fad8383610b27565b610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612eaf565b60405180910390fd5b610ff7838383611419565b505050565b5f805f5b83518110156110ff575f603085838151811061101f5761101e612ecd565b5b602001015160f81c60f81b60f81c6110379190612efa565b60ff16108061107557506009603085838151811061105857611057612ecd565b5b602001015160f81c60f81b60f81c6110709190612efa565b60ff16115b15611086575f809250925050611108565b60018185516110959190612f2e565b61109f9190612f2e565b600a6110ab9190613090565b60308583815181106110c0576110bf612ecd565b5b602001015160f81c60f81b60f81c6110d89190612efa565b60ff166110e591906130da565b836110f09190612c05565b92508080600101915050611000565b50816001915091505b915091565b5f81106111895761112f670de0b6b3a76400008261158a90919063ffffffff16565b60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111e0565b5f60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a9061318b565b60405180910390fd5b61125e83838361159f565b505050565b61126d8282610b27565b61133a57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506112df610dc4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6113488282610b27565b15611415575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506113ba610dc4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111801561147c57505f82115b1561156a575f6114e78360055f8881526020019081526020015f206002016001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461169c90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612eaf565b60405180910390fd5b61156485858486856116b1565b50611583565b5f82148061157757505f81145b156115825750611585565b5b505b505050565b5f818361159791906130da565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490613219565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561168c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611683906132a7565b60405180910390fd5b6116978383836117c8565b505050565b5f81836116a99190612c05565b905092915050565b5f8211156117c1575f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90612eaf565b60405180910390fd5b828110611769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176090612eaf565b60405180910390fd5b8060055f8781526020019081526020015f206002016001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5050505050565b5f151560085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361189c576118467f545241444552000000000000000000000000000000000000000000000000000084611263565b600160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6118a78383836118ac565b505050565b5f151560085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036119805761192a7f545241444552000000000000000000000000000000000000000000000000000083611263565b600160085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61198b838383611990565b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a75576119ed611a86565b90508080611a2357505f611a2160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a66565b145b15611a7457611a345f801b85610b27565b611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90613335565b60405180910390fd5b5b5b611a80848484611e18565b50505050565b5f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b169190613367565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba79190613367565b90505f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611c15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c39919061340e565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f8373ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611cb9919061345e565b602060405180830381865afa158015611cd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf8919061348b565b90505f8573ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611d55919061345e565b602060405180830381865afa158015611d70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d94919061348b565b90503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611dee5782821115611de9575f8383611dde9190612f2e565b90506103e881119750505b611e0f565b83811115611e0e575f8482611e039190612f2e565b90506103e881119750505b5b50505050505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e9857611e977f54524144455200000000000000000000000000000000000000000000000000008483611ea8565b5b611ea3838383611fcd565b505050565b60326007541115611fc8575f60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8103611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190612eaf565b60405180910390fd5b7f54524144455200000000000000000000000000000000000000000000000000008403611fc6575f611f858383610f8e90919063ffffffff16565b11611fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbc90612eaf565b60405180910390fd5b5b505b505050565b611fd95f801b84610b27565b80611fec5750611feb5f801b83610b27565b5b1561200157611ffc8383836120b3565b6120ae565b61202b7f545241444552000000000000000000000000000000000000000000000000000084610b27565b801561205d575061205c7f545241444552000000000000000000000000000000000000000000000000000083610b27565b5b156120725761206d838383612328565b6120ad565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490612eaf565b60405180910390fd5b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121189061318b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218690613219565b60405180910390fd5b61219a83838361236c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561221d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612214906132a7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122ab9190612c05565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161230f91906125af565b60405180910390a3612322848484612371565b50505050565b5f8111156123675761235b7f54524144455200000000000000000000000000000000000000000000000000008483610fa3565b6123668383836120b3565b5b505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123ad578082015181840152602081019050612392565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123d282612376565b6123dc8185612380565b93506123ec818560208601612390565b6123f5816123b8565b840191505092915050565b5f6020820190508181035f83015261241881846123c8565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61245a82612431565b9050919050565b61246a81612450565b8114612474575f80fd5b50565b5f8135905061248581612461565b92915050565b5f819050919050565b61249d8161248b565b81146124a7575f80fd5b50565b5f813590506124b881612494565b92915050565b5f80604083850312156124d4576124d3612429565b5b5f6124e185828601612477565b92505060206124f2858286016124aa565b9150509250929050565b5f8115159050919050565b612510816124fc565b82525050565b5f6020820190506125295f830184612507565b92915050565b5f819050919050565b6125418161252f565b811461254b575f80fd5b50565b5f8135905061255c81612538565b92915050565b5f806040838503121561257857612577612429565b5b5f6125858582860161254e565b925050602061259685828601612477565b9150509250929050565b6125a98161248b565b82525050565b5f6020820190506125c25f8301846125a0565b92915050565b6125d18161252f565b82525050565b5f6020820190506125ea5f8301846125c8565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61262e826123b8565b810181811067ffffffffffffffff8211171561264d5761264c6125f8565b5b80604052505050565b5f61265f612420565b905061266b8282612625565b919050565b5f67ffffffffffffffff82111561268a576126896125f8565b5b612693826123b8565b9050602081019050919050565b828183375f83830152505050565b5f6126c06126bb84612670565b612656565b9050828152602081018484840111156126dc576126db6125f4565b5b6126e78482856126a0565b509392505050565b5f82601f830112612703576127026125f0565b5b81356127138482602086016126ae565b91505092915050565b5f805f6060848603121561273357612732612429565b5b5f6127408682870161254e565b935050602061275186828701612477565b925050604084013567ffffffffffffffff8111156127725761277161242d565b5b61277e868287016126ef565b9150509250925092565b5f805f6060848603121561279f5761279e612429565b5b5f6127ac86828701612477565b93505060206127bd86828701612477565b92505060406127ce868287016124aa565b9150509250925092565b5f602082840312156127ed576127ec612429565b5b5f6127fa8482850161254e565b91505092915050565b5f806040838503121561281957612818612429565b5b5f6128268582860161254e565b9250506020612837858286016124aa565b9150509250929050565b5f60ff82169050919050565b61285681612841565b82525050565b5f60208201905061286f5f83018461284d565b92915050565b5f6020828403121561288a57612889612429565b5b5f61289784828501612477565b91505092915050565b5f80604083850312156128b6576128b5612429565b5b5f6128c385828601612477565b92505060206128d485828601612477565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061292257607f821691505b602082108103612935576129346128de565b5b50919050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f612995602383612380565b91506129a08261293b565b604082019050919050565b5f6020820190508181035f8301526129c281612989565b9050919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612a23602583612380565b9150612a2e826129c9565b604082019050919050565b5f6020820190508181035f830152612a5081612a17565b9050919050565b7f746f70736c206973206e6f742061206e756d62657200000000000000000000005f82015250565b5f612a8b601583612380565b9150612a9682612a57565b602082019050919050565b5f6020820190508181035f830152612ab881612a7f565b9050919050565b612ac881612450565b82525050565b5f604082019050612ae15f830185612abf565b612aee60208301846125a0565b9392505050565b612afe816124fc565b8114612b08575f80fd5b50565b5f81519050612b1981612af5565b92915050565b5f60208284031215612b3457612b33612429565b5b5f612b4184828501612b0b565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f612ba4602f83612380565b9150612baf82612b4a565b604082019050919050565b5f6020820190508181035f830152612bd181612b98565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c0f8261248b565b9150612c1a8361248b565b9250828201905080821115612c3257612c31612bd8565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c92602583612380565b9150612c9d82612c38565b604082019050919050565b5f6020820190508181035f830152612cbf81612c86565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d20602483612380565b9150612d2b82612cc6565b604082019050919050565b5f6020820190508181035f830152612d4d81612d14565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dae602283612380565b9150612db982612d54565b604082019050919050565b5f6020820190508181035f830152612ddb81612da2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e198261248b565b9150612e248361248b565b925082612e3457612e33612de2565b5b828204905092915050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f612e99602683612380565b9150612ea482612e3f565b604082019050919050565b5f6020820190508181035f830152612ec681612e8d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612f0482612841565b9150612f0f83612841565b9250828203905060ff811115612f2857612f27612bd8565b5b92915050565b5f612f388261248b565b9150612f438361248b565b9250828203905081811115612f5b57612f5a612bd8565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612fb657808604811115612f9257612f91612bd8565b5b6001851615612fa15780820291505b8081029050612faf85612f61565b9450612f76565b94509492505050565b5f82612fce5760019050613089565b81612fdb575f9050613089565b8160018114612ff15760028114612ffb5761302a565b6001915050613089565b60ff84111561300d5761300c612bd8565b5b8360020a91508482111561302457613023612bd8565b5b50613089565b5060208310610133831016604e8410600b841016171561305f5782820a90508381111561305a57613059612bd8565b5b613089565b61306c8484846001612f6d565b9250905081840481111561308357613082612bd8565b5b81810290505b9392505050565b5f61309a8261248b565b91506130a58361248b565b92506130d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612fbf565b905092915050565b5f6130e48261248b565b91506130ef8361248b565b92508282026130fd8161248b565b9150828204841483151761311457613113612bd8565b5b5092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613175602583612380565b91506131808261311b565b604082019050919050565b5f6020820190508181035f8301526131a281613169565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613203602383612380565b915061320e826131a9565b604082019050919050565b5f6020820190508181035f830152613230816131f7565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f613291602383612380565b915061329c82613237565b604082019050919050565b5f6020820190508181035f8301526132be81613285565b9050919050565b7f45524332303a206f6e6c792061646d696e2063616e20616464206c69717569645f8201527f6974790000000000000000000000000000000000000000000000000000000000602082015250565b5f61331f602383612380565b915061332a826132c5565b604082019050919050565b5f6020820190508181035f83015261334c81613313565b9050919050565b5f8151905061336181612461565b92915050565b5f6020828403121561337c5761337b612429565b5b5f61338984828501613353565b91505092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b6133b481613392565b81146133be575f80fd5b50565b5f815190506133cf816133ab565b92915050565b5f63ffffffff82169050919050565b6133ed816133d5565b81146133f7575f80fd5b50565b5f81519050613408816133e4565b92915050565b5f805f6060848603121561342557613424612429565b5b5f613432868287016133c1565b9350506020613443868287016133c1565b9250506040613454868287016133fa565b9150509250925092565b5f6020820190506134715f830184612abf565b92915050565b5f8151905061348581612494565b92915050565b5f602082840312156134a05761349f612429565b5b5f6134ad84828501613477565b9150509291505056fea264697066735822122008e0f6d2d0a394e564ebb1c1cf3f1158fb5e2922ece5592cd31a873cb505955764736f6c634300081700330000000000000000000000000000000000000000000000000000000000000080000000000000000000000000cc6303d6b64ded4281a1cd6fca06471e0c1fe8eb00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000005454e5a594d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045a594d5400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610156575f3560e01c806333f3d628116100c157806391d148541161007a57806391d14854146103fe57806395d89b411461042e578063a457c2d71461044c578063a9059cbb1461047c578063d547741f146104ac578063dd62ed3e146104c857610156565b806333f3d6281461030457806336568abe14610334578063395093511461035057806370a08231146103805780637629206e146103b05780638771b77c146103e057610156565b806323b872dd1161011357806323b872dd14610230578063248a9ca31461026057806329df50fb146102905780632a0acc6a146102ac5780632f2ff15d146102ca578063313ce567146102e657610156565b806306fdde031461015a578063095ea7b31461017857806313052867146101a8578063175c4ef8146101d857806318160ddd146101f65780632056505114610214575b5f80fd5b6101626104f8565b60405161016f9190612400565b60405180910390f35b610192600480360381019061018d91906124be565b610588565b60405161019f9190612516565b60405180910390f35b6101c260048036038101906101bd9190612562565b6105a5565b6040516101cf91906125af565b60405180910390f35b6101e061061a565b6040516101ed91906125d7565b60405180910390f35b6101fe61063e565b60405161020b91906125af565b60405180910390f35b61022e6004803603810190610229919061271c565b610647565b005b61024a60048036038101906102459190612788565b6106c8565b6040516102579190612516565b60405180910390f35b61027a600480360381019061027591906127d8565b6107ba565b60405161028791906125d7565b60405180910390f35b6102aa60048036038101906102a59190612803565b6107d7565b005b6102b461085a565b6040516102c191906125d7565b60405180910390f35b6102e460048036038101906102df9190612562565b610860565b005b6102ee610884565b6040516102fb919061285c565b60405180910390f35b61031e600480360381019061031991906124be565b61088c565b60405161032b9190612516565b60405180910390f35b61034e60048036038101906103499190612562565b610926565b005b61036a600480360381019061036591906124be565b6109bf565b6040516103779190612516565b60405180910390f35b61039a60048036038101906103959190612875565b610a66565b6040516103a791906125af565b60405180910390f35b6103ca60048036038101906103c59190612562565b610aab565b6040516103d791906125af565b60405180910390f35b6103e8610b21565b6040516103f591906125af565b60405180910390f35b61041860048036038101906104139190612562565b610b27565b6040516104259190612516565b60405180910390f35b610436610b8b565b6040516104439190612400565b60405180910390f35b610466600480360381019061046191906124be565b610c1b565b6040516104739190612516565b60405180910390f35b610496600480360381019061049191906124be565b610d01565b6040516104a39190612516565b60405180910390f35b6104c660048036038101906104c19190612562565b610d1e565b005b6104e260048036038101906104dd91906128a0565b610d42565b6040516104ef91906125af565b60405180910390f35b6060600380546105079061290b565b80601f01602080910402602001604051908101604052809291908181526020018280546105339061290b565b801561057e5780601f106105555761010080835404028352916020019161057e565b820191905f5260205f20905b81548152906001019060200180831161056157829003601f168201915b5050505050905090565b5f61059b610594610dc4565b8484610dcb565b6001905092915050565b5f610612670de0b6b3a764000060055f8681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8e90919063ffffffff16565b905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600254905090565b5f801b61065c81610656610dc4565b5f610fa3565b5f8061066784610ffc565b80925081935050505f1515811515036106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac906129ab565b60405180910390fd5b6106c086868461110d565b505050505050565b5f6106d48484846111e5565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071b610dc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612a39565b60405180910390fd5b6107ae856107a6610dc4565b858403610dcb565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b5f801b6107ec816107e6610dc4565b5f610fa3565b7f5452414445520000000000000000000000000000000000000000000000000000831461084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612aa1565b60405180910390fd5b81600781905550505050565b5f801b81565b5f801b6108758161086f610dc4565b5f610fa3565b61087f8383611263565b505050565b5f6012905090565b5f805f1b6108a28161089c610dc4565b5f610fa3565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016108dd929190612ace565b6020604051808303815f875af11580156108f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091d9190612b1f565b91505092915050565b5f801b61093b81610935610dc4565b5f610fa3565b610943610dc4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a790612bba565b60405180910390fd5b6109ba838361133e565b505050565b5f610a5c6109cb610dc4565b848460015f6109d8610dc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a579190612c05565b610dcb565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610b19670de0b6b3a764000060055f8681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8e90919063ffffffff16565b905092915050565b60075481565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610b9a9061290b565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc69061290b565b8015610c115780601f10610be857610100808354040283529160200191610c11565b820191905f5260205f20905b815481529060010190602001808311610bf457829003601f168201915b5050505050905090565b5f8060015f610c28610dc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990612ca8565b60405180910390fd5b610cf6610ced610dc4565b85858403610dcb565b600191505092915050565b5f610d14610d0d610dc4565b84846111e5565b6001905092915050565b5f801b610d3381610d2d610dc4565b5f610fa3565b610d3d838361133e565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612d36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e90612dc4565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f8191906125af565b60405180910390a3505050565b5f8183610f9b9190612e0f565b905092915050565b610fad8383610b27565b610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612eaf565b60405180910390fd5b610ff7838383611419565b505050565b5f805f5b83518110156110ff575f603085838151811061101f5761101e612ecd565b5b602001015160f81c60f81b60f81c6110379190612efa565b60ff16108061107557506009603085838151811061105857611057612ecd565b5b602001015160f81c60f81b60f81c6110709190612efa565b60ff16115b15611086575f809250925050611108565b60018185516110959190612f2e565b61109f9190612f2e565b600a6110ab9190613090565b60308583815181106110c0576110bf612ecd565b5b602001015160f81c60f81b60f81c6110d89190612efa565b60ff166110e591906130da565b836110f09190612c05565b92508080600101915050611000565b50816001915091505b915091565b5f81106111895761112f670de0b6b3a76400008261158a90919063ffffffff16565b60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111e0565b5f60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a9061318b565b60405180910390fd5b61125e83838361159f565b505050565b61126d8282610b27565b61133a57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506112df610dc4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6113488282610b27565b15611415575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506113ba610dc4565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111801561147c57505f82115b1561156a575f6114e78360055f8881526020019081526020015f206002016001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461169c90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612eaf565b60405180910390fd5b61156485858486856116b1565b50611583565b5f82148061157757505f81145b156115825750611585565b5b505b505050565b5f818361159791906130da565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490613219565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561168c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611683906132a7565b60405180910390fd5b6116978383836117c8565b505050565b5f81836116a99190612c05565b905092915050565b5f8211156117c1575f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90612eaf565b60405180910390fd5b828110611769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176090612eaf565b60405180910390fd5b8060055f8781526020019081526020015f206002016001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5050505050565b5f151560085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361189c576118467f545241444552000000000000000000000000000000000000000000000000000084611263565b600160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6118a78383836118ac565b505050565b5f151560085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036119805761192a7f545241444552000000000000000000000000000000000000000000000000000083611263565b600160085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61198b838383611990565b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a75576119ed611a86565b90508080611a2357505f611a2160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a66565b145b15611a7457611a345f801b85610b27565b611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90613335565b60405180910390fd5b5b5b611a80848484611e18565b50505050565b5f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b169190613367565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba79190613367565b90505f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611c15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c39919061340e565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f8373ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611cb9919061345e565b602060405180830381865afa158015611cd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf8919061348b565b90505f8573ffffffffffffffffffffffffffffffffffffffff166370a0823160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611d55919061345e565b602060405180830381865afa158015611d70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d94919061348b565b90503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611dee5782821115611de9575f8383611dde9190612f2e565b90506103e881119750505b611e0f565b83811115611e0e575f8482611e039190612f2e565b90506103e881119750505b5b50505050505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e9857611e977f54524144455200000000000000000000000000000000000000000000000000008483611ea8565b5b611ea3838383611fcd565b505050565b60326007541115611fc8575f60055f8581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8103611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190612eaf565b60405180910390fd5b7f54524144455200000000000000000000000000000000000000000000000000008403611fc6575f611f858383610f8e90919063ffffffff16565b11611fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbc90612eaf565b60405180910390fd5b5b505b505050565b611fd95f801b84610b27565b80611fec5750611feb5f801b83610b27565b5b1561200157611ffc8383836120b3565b6120ae565b61202b7f545241444552000000000000000000000000000000000000000000000000000084610b27565b801561205d575061205c7f545241444552000000000000000000000000000000000000000000000000000083610b27565b5b156120725761206d838383612328565b6120ad565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a490612eaf565b60405180910390fd5b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121189061318b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218690613219565b60405180910390fd5b61219a83838361236c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561221d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612214906132a7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122ab9190612c05565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161230f91906125af565b60405180910390a3612322848484612371565b50505050565b5f8111156123675761235b7f54524144455200000000000000000000000000000000000000000000000000008483610fa3565b6123668383836120b3565b5b505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123ad578082015181840152602081019050612392565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123d282612376565b6123dc8185612380565b93506123ec818560208601612390565b6123f5816123b8565b840191505092915050565b5f6020820190508181035f83015261241881846123c8565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61245a82612431565b9050919050565b61246a81612450565b8114612474575f80fd5b50565b5f8135905061248581612461565b92915050565b5f819050919050565b61249d8161248b565b81146124a7575f80fd5b50565b5f813590506124b881612494565b92915050565b5f80604083850312156124d4576124d3612429565b5b5f6124e185828601612477565b92505060206124f2858286016124aa565b9150509250929050565b5f8115159050919050565b612510816124fc565b82525050565b5f6020820190506125295f830184612507565b92915050565b5f819050919050565b6125418161252f565b811461254b575f80fd5b50565b5f8135905061255c81612538565b92915050565b5f806040838503121561257857612577612429565b5b5f6125858582860161254e565b925050602061259685828601612477565b9150509250929050565b6125a98161248b565b82525050565b5f6020820190506125c25f8301846125a0565b92915050565b6125d18161252f565b82525050565b5f6020820190506125ea5f8301846125c8565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61262e826123b8565b810181811067ffffffffffffffff8211171561264d5761264c6125f8565b5b80604052505050565b5f61265f612420565b905061266b8282612625565b919050565b5f67ffffffffffffffff82111561268a576126896125f8565b5b612693826123b8565b9050602081019050919050565b828183375f83830152505050565b5f6126c06126bb84612670565b612656565b9050828152602081018484840111156126dc576126db6125f4565b5b6126e78482856126a0565b509392505050565b5f82601f830112612703576127026125f0565b5b81356127138482602086016126ae565b91505092915050565b5f805f6060848603121561273357612732612429565b5b5f6127408682870161254e565b935050602061275186828701612477565b925050604084013567ffffffffffffffff8111156127725761277161242d565b5b61277e868287016126ef565b9150509250925092565b5f805f6060848603121561279f5761279e612429565b5b5f6127ac86828701612477565b93505060206127bd86828701612477565b92505060406127ce868287016124aa565b9150509250925092565b5f602082840312156127ed576127ec612429565b5b5f6127fa8482850161254e565b91505092915050565b5f806040838503121561281957612818612429565b5b5f6128268582860161254e565b9250506020612837858286016124aa565b9150509250929050565b5f60ff82169050919050565b61285681612841565b82525050565b5f60208201905061286f5f83018461284d565b92915050565b5f6020828403121561288a57612889612429565b5b5f61289784828501612477565b91505092915050565b5f80604083850312156128b6576128b5612429565b5b5f6128c385828601612477565b92505060206128d485828601612477565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061292257607f821691505b602082108103612935576129346128de565b5b50919050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f612995602383612380565b91506129a08261293b565b604082019050919050565b5f6020820190508181035f8301526129c281612989565b9050919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612a23602583612380565b9150612a2e826129c9565b604082019050919050565b5f6020820190508181035f830152612a5081612a17565b9050919050565b7f746f70736c206973206e6f742061206e756d62657200000000000000000000005f82015250565b5f612a8b601583612380565b9150612a9682612a57565b602082019050919050565b5f6020820190508181035f830152612ab881612a7f565b9050919050565b612ac881612450565b82525050565b5f604082019050612ae15f830185612abf565b612aee60208301846125a0565b9392505050565b612afe816124fc565b8114612b08575f80fd5b50565b5f81519050612b1981612af5565b92915050565b5f60208284031215612b3457612b33612429565b5b5f612b4184828501612b0b565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f612ba4602f83612380565b9150612baf82612b4a565b604082019050919050565b5f6020820190508181035f830152612bd181612b98565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c0f8261248b565b9150612c1a8361248b565b9250828201905080821115612c3257612c31612bd8565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c92602583612380565b9150612c9d82612c38565b604082019050919050565b5f6020820190508181035f830152612cbf81612c86565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d20602483612380565b9150612d2b82612cc6565b604082019050919050565b5f6020820190508181035f830152612d4d81612d14565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dae602283612380565b9150612db982612d54565b604082019050919050565b5f6020820190508181035f830152612ddb81612da2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e198261248b565b9150612e248361248b565b925082612e3457612e33612de2565b5b828204905092915050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f612e99602683612380565b9150612ea482612e3f565b604082019050919050565b5f6020820190508181035f830152612ec681612e8d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612f0482612841565b9150612f0f83612841565b9250828203905060ff811115612f2857612f27612bd8565b5b92915050565b5f612f388261248b565b9150612f438361248b565b9250828203905081811115612f5b57612f5a612bd8565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612fb657808604811115612f9257612f91612bd8565b5b6001851615612fa15780820291505b8081029050612faf85612f61565b9450612f76565b94509492505050565b5f82612fce5760019050613089565b81612fdb575f9050613089565b8160018114612ff15760028114612ffb5761302a565b6001915050613089565b60ff84111561300d5761300c612bd8565b5b8360020a91508482111561302457613023612bd8565b5b50613089565b5060208310610133831016604e8410600b841016171561305f5782820a90508381111561305a57613059612bd8565b5b613089565b61306c8484846001612f6d565b9250905081840481111561308357613082612bd8565b5b81810290505b9392505050565b5f61309a8261248b565b91506130a58361248b565b92506130d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612fbf565b905092915050565b5f6130e48261248b565b91506130ef8361248b565b92508282026130fd8161248b565b9150828204841483151761311457613113612bd8565b5b5092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613175602583612380565b91506131808261311b565b604082019050919050565b5f6020820190508181035f8301526131a281613169565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613203602383612380565b915061320e826131a9565b604082019050919050565b5f6020820190508181035f830152613230816131f7565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f613291602383612380565b915061329c82613237565b604082019050919050565b5f6020820190508181035f8301526132be81613285565b9050919050565b7f45524332303a206f6e6c792061646d696e2063616e20616464206c69717569645f8201527f6974790000000000000000000000000000000000000000000000000000000000602082015250565b5f61331f602383612380565b915061332a826132c5565b604082019050919050565b5f6020820190508181035f83015261334c81613313565b9050919050565b5f8151905061336181612461565b92915050565b5f6020828403121561337c5761337b612429565b5b5f61338984828501613353565b91505092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b6133b481613392565b81146133be575f80fd5b50565b5f815190506133cf816133ab565b92915050565b5f63ffffffff82169050919050565b6133ed816133d5565b81146133f7575f80fd5b50565b5f81519050613408816133e4565b92915050565b5f805f6060848603121561342557613424612429565b5b5f613432868287016133c1565b9350506020613443868287016133c1565b9250506040613454868287016133fa565b9150509250925092565b5f6020820190506134715f830184612abf565b92915050565b5f8151905061348581612494565b92915050565b5f602082840312156134a05761349f612429565b5b5f6134ad84828501613477565b9150509291505056fea264697066735822122008e0f6d2d0a394e564ebb1c1cf3f1158fb5e2922ece5592cd31a873cb505955764736f6c63430008170033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000cc6303d6b64ded4281a1cd6fca06471e0c1fe8eb00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000005454e5a594d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045a594d5400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): ENZYM
Arg [1] : _tokenOwner (address): 0xcC6303d6B64deD4281a1cD6fcA06471e0C1FE8EB
Arg [2] : _symbol (string): ZYMT
Arg [3] : _totalSupply (uint256): 1600000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 000000000000000000000000cc6303d6b64ded4281a1cd6fca06471e0c1fe8eb
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 000000000000000000000000000000000000000000000000000000005f5e1000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 454e5a594d000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5a594d5400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22058:4453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17345:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18313:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12215:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10508:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17666:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12597:389;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18509:514;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14249:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13000:214;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10464:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14380:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17565:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26301:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14666:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19031:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17782:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12406:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10599:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10737:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17453:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19329:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17927:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14522:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18129:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17345:100;17399:13;17432:5;17425:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17345:100;:::o;18313:188::-;18418:4;18435:36;18444:12;:10;:12::i;:::-;18458:7;18467:3;18435:8;:36::i;:::-;18489:4;18482:11;;18313:188;;;;:::o;12215:183::-;12322:7;12349:41;12381:8;12349:6;:12;12356:4;12349:12;;;;;;;;;;;:15;;:18;;:27;12368:7;12349:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;12342:48;;12215:183;;;;:::o;10508:50::-;10541:17;10508:50;:::o;17666:108::-;17727:7;17754:12;;17747:19;;17666:108;:::o;12597:389::-;10496:4;12717:5;;10677:32;10688:4;10694:12;:10;:12::i;:::-;10707:1;10677:10;:32::i;:::-;12735:16:::1;12762:8:::0;12799:22:::1;12817:3;12799:17;:22::i;:::-;12781:40;;;;;;;;12843:5;12836:12;;:3;:12;;::::0;12832:90:::1;;12865:45;;;;;;;;;;:::i;:::-;;;;;;;;12832:90;12942:36;12957:4;12963;12969:8;12942:14;:36::i;:::-;12724:262;;12597:389:::0;;;;:::o;18509:514::-;18646:4;18663:33;18673:6;18681:9;18692:3;18663:9;:33::i;:::-;18709:24;18736:11;:19;18748:6;18736:19;;;;;;;;;;;;;;;:33;18756:12;:10;:12::i;:::-;18736:33;;;;;;;;;;;;;;;;18709:60;;18822:3;18802:16;:23;;18780:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;18926:54;18935:6;18943:12;:10;:12::i;:::-;18976:3;18957:16;:22;18926:8;:54::i;:::-;19011:4;19004:11;;;18509:514;;;;;:::o;14249:123::-;14315:7;14342:6;:12;14349:4;14342:12;;;;;;;;;;;:22;;;14335:29;;14249:123;;;:::o;13000:214::-;10496:4;13091:5;;10677:32;10688:4;10694:12;:10;:12::i;:::-;10707:1;10677:10;:32::i;:::-;10541:17:::1;13112:4;:14;13109:76;;13142:31;;;;;;;;;;:::i;:::-;;;;;;;;13109:76;13203:3;13195:5;:11;;;;13000:214:::0;;;:::o;10464:36::-;10496:4;10464:36;;;:::o;14380:134::-;10496:4;14463:5;;10677:32;10688:4;10694:12;:10;:12::i;:::-;10707:1;10677:10;:32::i;:::-;14481:25:::1;14492:4;14498:7;14481:10;:25::i;:::-;14380:134:::0;;;:::o;17565:93::-;17623:5;17648:2;17641:9;;17565:93;:::o;26301:205::-;26417:12;10496:4;26401:5;;10677:32;10688:4;10694:12;:10;:12::i;:::-;10707:1;10677:10;:32::i;:::-;26456:12:::1;26449:29;;;26479:10;26491:6;26449:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26442:56;;26301:205:::0;;;;;:::o;14666:234::-;10496:4;14752:5;;10677:32;10688:4;10694:12;:10;:12::i;:::-;10707:1;10677:10;:32::i;:::-;14789:12:::1;:10;:12::i;:::-;14778:23;;:7;:23;;;14770:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14866:26;14878:4;14884:7;14866:11;:26::i;:::-;14666:234:::0;;;:::o;19031:290::-;19144:4;19161:130;19184:12;:10;:12::i;:::-;19211:7;19270:10;19233:11;:25;19245:12;:10;:12::i;:::-;19233:25;;;;;;;;;;;;;;;:34;19259:7;19233:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19161:8;:130::i;:::-;19309:4;19302:11;;19031:290;;;;:::o;17782:137::-;17869:7;17896:9;:15;17906:4;17896:15;;;;;;;;;;;;;;;;17889:22;;17782:137;;;:::o;12406:183::-;12513:7;12540:41;12572:8;12540:6;:12;12547:4;12540:12;;;;;;;;;;;:15;;:18;;:27;12559:7;12540:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;12533:48;;12406:183;;;;:::o;10599:20::-;;;;:::o;10737:139::-;10815:4;10839:6;:12;10846:4;10839:12;;;;;;;;;;;:20;;:29;10860:7;10839:29;;;;;;;;;;;;;;;;;;;;;;;;;10832:36;;10737:139;;;;:::o;17453:104::-;17509:13;17542:7;17535:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17453:104;:::o;19329:475::-;19447:4;19464:24;19491:11;:25;19503:12;:10;:12::i;:::-;19491:25;;;;;;;;;;;;;;;:34;19517:7;19491:34;;;;;;;;;;;;;;;;19464:61;;19578:15;19558:16;:35;;19536:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;19694:67;19703:12;:10;:12::i;:::-;19717:7;19745:15;19726:16;:34;19694:8;:67::i;:::-;19792:4;19785:11;;;19329:475;;;;:::o;17927:194::-;18035:4;18052:39;18062:12;:10;:12::i;:::-;18076:9;18087:3;18052:9;:39::i;:::-;18109:4;18102:11;;17927:194;;;;:::o;14522:136::-;10496:4;14606:5;;10677:32;10688:4;10694:12;:10;:12::i;:::-;10707:1;10677:10;:32::i;:::-;14624:26:::1;14636:4;14642:7;14624:11;:26::i;:::-;14522:136:::0;;;:::o;18129:176::-;18243:7;18270:11;:18;18282:5;18270:18;;;;;;;;;;;;;;;:27;18289:7;18270:27;;;;;;;;;;;;;;;;18263:34;;18129:176;;;;:::o;4008:98::-;4061:7;4088:10;4081:17;;4008:98;:::o;21421:371::-;21571:1;21554:19;;:5;:19;;;21546:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21652:1;21633:21;;:7;:21;;;21625:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21736:3;21706:11;:18;21718:5;21706:18;;;;;;;;;;;;;;;:27;21725:7;21706:27;;;;;;;;;;;;;;;:33;;;;21771:7;21755:29;;21764:5;21755:29;;;21780:3;21755:29;;;;;;:::i;:::-;;;;;;;;21421:371;;;:::o;9100:98::-;9158:7;9189:1;9185;:5;;;;:::i;:::-;9178:12;;9100:98;;;;:::o;10884:271::-;10973:22;10981:4;10987:7;10973;:22::i;:::-;10968:136;;11012:80;;;;;;;;;;:::i;:::-;;;;;;;;10968:136;11116:31;11128:4;11134:7;11143:3;11116:11;:31::i;:::-;10884:271;;;:::o;5685:521::-;5763:11;5776:8;5802:9;5797:371;5827:4;5821:18;5817:1;:22;5797:371;;;5914:1;5908:2;5896:4;5902:1;5890:14;;;;;;;;:::i;:::-;;;;;;;;;;5884:21;;:26;;;;:::i;:::-;5883:32;;;:85;;;;5967:1;5961:2;5949:4;5955:1;5943:14;;;;;;;;:::i;:::-;;;;;;;;;;5937:21;;:26;;;;:::i;:::-;5936:32;;;5883:85;5861:175;;;6011:1;6014:5;6003:17;;;;;;;5861:175;6154:1;6150;6135:4;6129:18;:22;;;;:::i;:::-;:26;;;;:::i;:::-;6122:2;:34;;;;:::i;:::-;6099:2;6087:4;6093:1;6081:14;;;;;;;;:::i;:::-;;;;;;;;;;6075:21;;:26;;;;:::i;:::-;6074:82;;;;;;:::i;:::-;6050:106;;;;;:::i;:::-;;;5841:3;;;;;;;5797:371;;;;6188:3;6193:4;6180:18;;;;5685:521;;;;:::o;13224:242::-;13321:1;13314:3;:8;13311:148;;13368:17;13376:8;13368:3;:7;;:17;;;;:::i;:::-;13338:6;:12;13345:4;13338:12;;;;;;;;;;;:15;;:18;;:27;13357:7;13338:27;;;;;;;;;;;;;;;:47;;;;13311:148;;;13446:1;13416:6;:12;13423:4;13416:12;;;;;;;;;;;:15;;:18;;:27;13435:7;13416:27;;;;;;;;;;;;;;;:31;;;;13311:148;13224:242;;;:::o;23093:259::-;23253:1;23237:18;;:4;:18;;;23229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23310:32;23328:4;23334:2;23338:3;23310:17;:32::i;:::-;23093:259;;;:::o;15287:238::-;15371:22;15379:4;15385:7;15371;:22::i;:::-;15366:152;;15442:4;15410:6;:12;15417:4;15410:12;;;;;;;;;;;:20;;:29;15431:7;15410:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;15493:12;:10;:12::i;:::-;15466:40;;15484:7;15466:40;;15478:4;15466:40;;;;;;;;;;15366:152;15287:238;;:::o;15533:239::-;15617:22;15625:4;15631:7;15617;:22::i;:::-;15613:152;;;15688:5;15656:6;:12;15663:4;15656:12;;;;;;;;;;;:20;;:29;15677:7;15656:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;15740:12;:10;:12::i;:::-;15713:40;;15731:7;15713:40;;15725:4;15713:40;;;;;;;;;;15613:152;15533:239;;:::o;11163:512::-;11251:10;11264:6;:12;11271:4;11264:12;;;;;;;;;;;:15;;:18;;:27;11283:7;11264:27;;;;;;;;;;;;;;;;11251:40;;11311:1;11306:2;:6;:20;;;;;11325:1;11316:6;:10;11306:20;11302:356;;;11345:10;11358:39;11390:6;11358;:12;11365:4;11358:12;;;;;;;;;;;:15;;:18;;:27;11377:7;11358:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;11345:52;;11436:1;11417:21;;:7;:21;;;11414:108;;11458:48;;;;;;;;;;:::i;:::-;;;;;;;;11414:108;11538:40;11552:4;11557:7;11565:2;11568:6;11575:2;11538:13;:40::i;:::-;11328:264;11302:356;;;11611:1;11601:6;:11;:22;;;;11622:1;11616:2;:7;11601:22;11597:61;;;11640:7;;;11597:61;11302:356;11240:435;11163:512;;;;:::o;8994:98::-;9052:7;9083:1;9079;:5;;;;:::i;:::-;9072:12;;8994:98;;;;:::o;23360:283::-;23468:1;23454:16;;:2;:16;;;23446:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23548:3;23529:9;:15;23539:4;23529:15;;;;;;;;;;;;;;;;:22;;23521:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23604:31;23621:4;23627:2;23631:3;23604:16;:31::i;:::-;23360:283;;;:::o;8782:98::-;8840:7;8871:1;8867;:5;;;;:::i;:::-;8860:12;;8782:98;;;;:::o;11683:522::-;11805:1;11799:3;:7;11796:402;;;11844:1;11825:21;;:7;:21;;;11822:351;;11866:48;;;;;;;;;;:::i;:::-;;;;;;;;11822:351;11964:3;11957;:10;11953:187;;11992:48;;;;;;;;;;:::i;:::-;;;;;;;;11953:187;12117:3;12087:6;:12;12094:4;12087:12;;;;;;;;;;;:15;;:18;;:27;12106:7;12087:27;;;;;;;;;;;;;;;:33;;;;11796:402;11683:522;;;;;:::o;23653:270::-;23761:5;23742:24;;:9;:15;23752:4;23742:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;23738:132;;23783:24;10541:17;23802:4;23783:10;:24::i;:::-;23840:4;23822:9;:15;23832:4;23822:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;23738:132;23882:33;23901:4;23907:2;23911:3;23882:18;:33::i;:::-;23653:270;;;:::o;23931:262::-;24039:5;24022:22;;:9;:13;24032:2;24022:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;24018:126;;24061:22;10541:17;24080:2;24061:10;:22::i;:::-;24114:4;24098:9;:13;24108:2;24098:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;24018:126;24154:31;24171:4;24177:2;24181:3;24154:16;:31::i;:::-;23931:262;;;:::o;24201:413::-;24286:13;24319;;;;;;;;;;;24313:19;;:2;:19;;;24310:256;;24359:19;:17;:19::i;:::-;24348:30;;24396:8;:41;;;;24436:1;24408:24;24418:13;;;;;;;;;;;24408:9;:24::i;:::-;:29;24396:41;24393:148;;;24465:20;10496:4;24473:5;;24480:4;24465:7;:20::i;:::-;24457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24393:148;24310:256;24576:30;24592:4;24598:2;24602:3;24576:15;:30::i;:::-;24275:339;24201:413;;;:::o;25513:778::-;25563:11;25586:14;25626:13;;;;;;;;;;;25603:45;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25586:64;;25661:14;25701:13;;;;;;;;;;;25678:45;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25661:64;;25737:7;25745;25780:13;;;;;;;;;;;25757:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25736:73;;;;;;;;;25820:9;25839:6;25832:24;;;25865:13;;;;;;;;;;;25832:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25820:60;;25891:9;25910:6;25903:24;;;25936:13;;;;;;;;;;;25903:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25891:60;;25986:4;25968:23;;:6;:23;;;25964:317;;26019:2;26012:4;:9;26008:117;;;26041:12;26063:2;26056:4;:9;;;;:::i;:::-;26041:24;;26103:4;26093:7;:14;26084:23;;26022:103;26008:117;25964:317;;;26166:2;26159:4;:9;26155:115;;;26188:12;26210:2;26203:4;:9;;;;:::i;:::-;26188:24;;26250:4;26240:7;:14;26231:23;;26169:101;26155:115;25964:317;25575:716;;;;;;25513:778;:::o;24624:240::-;24717:13;;;;;;;;;;;24711:19;;:2;:19;;;24708:105;;24760:27;10541:17;24778:4;24783:3;24760:10;:27::i;:::-;24708:105;24825:31;24842:4;24848:2;24852:3;24825:16;:31::i;:::-;24624:240;;;:::o;13474:456::-;13577:2;13569:5;;:10;13566:357;;;13595:10;13608:6;:12;13615:4;13608:12;;;;;;;;;;;:15;;:18;;:27;13627:7;13608:27;;;;;;;;;;;;;;;;13595:40;;13659:1;13653:2;:7;13650:262;;13680:48;;;;;;;;;;:::i;:::-;;;;;;;;13650:262;10541:17;13752:4;:14;13749:163;;13804:1;13789:11;13796:3;13789:2;:6;;:11;;;;:::i;:::-;:16;13786:111;;13829:48;;;;;;;;;;:::i;:::-;;;;;;;;13786:111;13749:163;13580:343;13566:357;13474:456;;;:::o;24872:416::-;24961:20;10496:4;24969:5;;24976:4;24961:7;:20::i;:::-;:42;;;;24985:18;10496:4;24993:5;;25000:2;24985:7;:18::i;:::-;24961:42;24957:322;;;25020:30;25036:4;25042:2;25046:3;25020:15;:30::i;:::-;25065:7;;24957:322;25092:21;10541:17;25108:4;25092:7;:21::i;:::-;:44;;;;;25117:19;10541:17;25133:2;25117:7;:19::i;:::-;25092:44;25088:191;;;25154:30;25170:4;25176:2;25180:3;25154:15;:30::i;:::-;25088:191;;;25219:48;;;;;;;;;;:::i;:::-;;;;;;;;25088:191;24872:416;;;;:::o;19812:701::-;19967:1;19949:20;;:6;:20;;;19941:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20051:1;20030:23;;:9;:23;;;20022:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20104:44;20125:6;20133:9;20144:3;20104:20;:44::i;:::-;20159:21;20183:9;:17;20193:6;20183:17;;;;;;;;;;;;;;;;20159:41;;20236:3;20219:13;:20;;20211:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20351:3;20335:13;:19;20315:9;:17;20325:6;20315:17;;;;;;;;;;;;;;;:39;;;;20400:3;20376:9;:20;20386:9;20376:20;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;20436:9;20419:32;;20428:6;20419:32;;;20447:3;20419:32;;;;;;:::i;:::-;;;;;;;;20462:43;20482:6;20490:9;20501:3;20462:19;:43::i;:::-;19930:583;19812:701;;;:::o;25298:205::-;25391:1;25385:3;:7;25382:114;;;25408:29;10541:17;25427:4;25433:3;25408:10;:29::i;:::-;25454:30;25470:4;25476:2;25480:3;25454:15;:30::i;:::-;25382:114;25298:205;;;:::o;21800:122::-;;;;:::o;21930:121::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:77::-;3483:7;3512:5;3501:16;;3446:77;;;:::o;3529:122::-;3602:24;3620:5;3602:24;:::i;:::-;3595:5;3592:35;3582:63;;3641:1;3638;3631:12;3582:63;3529:122;:::o;3657:139::-;3703:5;3741:6;3728:20;3719:29;;3757:33;3784:5;3757:33;:::i;:::-;3657:139;;;;:::o;3802:474::-;3870:6;3878;3927:2;3915:9;3906:7;3902:23;3898:32;3895:119;;;3933:79;;:::i;:::-;3895:119;4053:1;4078:53;4123:7;4114:6;4103:9;4099:22;4078:53;:::i;:::-;4068:63;;4024:117;4180:2;4206:53;4251:7;4242:6;4231:9;4227:22;4206:53;:::i;:::-;4196:63;;4151:118;3802:474;;;;;:::o;4282:118::-;4369:24;4387:5;4369:24;:::i;:::-;4364:3;4357:37;4282:118;;:::o;4406:222::-;4499:4;4537:2;4526:9;4522:18;4514:26;;4550:71;4618:1;4607:9;4603:17;4594:6;4550:71;:::i;:::-;4406:222;;;;:::o;4634:118::-;4721:24;4739:5;4721:24;:::i;:::-;4716:3;4709:37;4634:118;;:::o;4758:222::-;4851:4;4889:2;4878:9;4874:18;4866:26;;4902:71;4970:1;4959:9;4955:17;4946:6;4902:71;:::i;:::-;4758:222;;;;:::o;4986:117::-;5095:1;5092;5085:12;5109:117;5218:1;5215;5208:12;5232:180;5280:77;5277:1;5270:88;5377:4;5374:1;5367:15;5401:4;5398:1;5391:15;5418:281;5501:27;5523:4;5501:27;:::i;:::-;5493:6;5489:40;5631:6;5619:10;5616:22;5595:18;5583:10;5580:34;5577:62;5574:88;;;5642:18;;:::i;:::-;5574:88;5682:10;5678:2;5671:22;5461:238;5418:281;;:::o;5705:129::-;5739:6;5766:20;;:::i;:::-;5756:30;;5795:33;5823:4;5815:6;5795:33;:::i;:::-;5705:129;;;:::o;5840:308::-;5902:4;5992:18;5984:6;5981:30;5978:56;;;6014:18;;:::i;:::-;5978:56;6052:29;6074:6;6052:29;:::i;:::-;6044:37;;6136:4;6130;6126:15;6118:23;;5840:308;;;:::o;6154:146::-;6251:6;6246:3;6241;6228:30;6292:1;6283:6;6278:3;6274:16;6267:27;6154:146;;;:::o;6306:425::-;6384:5;6409:66;6425:49;6467:6;6425:49;:::i;:::-;6409:66;:::i;:::-;6400:75;;6498:6;6491:5;6484:21;6536:4;6529:5;6525:16;6574:3;6565:6;6560:3;6556:16;6553:25;6550:112;;;6581:79;;:::i;:::-;6550:112;6671:54;6718:6;6713:3;6708;6671:54;:::i;:::-;6390:341;6306:425;;;;;:::o;6751:340::-;6807:5;6856:3;6849:4;6841:6;6837:17;6833:27;6823:122;;6864:79;;:::i;:::-;6823:122;6981:6;6968:20;7006:79;7081:3;7073:6;7066:4;7058:6;7054:17;7006:79;:::i;:::-;6997:88;;6813:278;6751:340;;;;:::o;7097:799::-;7184:6;7192;7200;7249:2;7237:9;7228:7;7224:23;7220:32;7217:119;;;7255:79;;:::i;:::-;7217:119;7375:1;7400:53;7445:7;7436:6;7425:9;7421:22;7400:53;:::i;:::-;7390:63;;7346:117;7502:2;7528:53;7573:7;7564:6;7553:9;7549:22;7528:53;:::i;:::-;7518:63;;7473:118;7658:2;7647:9;7643:18;7630:32;7689:18;7681:6;7678:30;7675:117;;;7711:79;;:::i;:::-;7675:117;7816:63;7871:7;7862:6;7851:9;7847:22;7816:63;:::i;:::-;7806:73;;7601:288;7097:799;;;;;:::o;7902:619::-;7979:6;7987;7995;8044:2;8032:9;8023:7;8019:23;8015:32;8012:119;;;8050:79;;:::i;:::-;8012:119;8170:1;8195:53;8240:7;8231:6;8220:9;8216:22;8195:53;:::i;:::-;8185:63;;8141:117;8297:2;8323:53;8368:7;8359:6;8348:9;8344:22;8323:53;:::i;:::-;8313:63;;8268:118;8425:2;8451:53;8496:7;8487:6;8476:9;8472:22;8451:53;:::i;:::-;8441:63;;8396:118;7902:619;;;;;:::o;8527:329::-;8586:6;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8527:329;;;;:::o;8862:474::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:86::-;9377:7;9417:4;9410:5;9406:16;9395:27;;9342:86;;;:::o;9434:112::-;9517:22;9533:5;9517:22;:::i;:::-;9512:3;9505:35;9434:112;;:::o;9552:214::-;9641:4;9679:2;9668:9;9664:18;9656:26;;9692:67;9756:1;9745:9;9741:17;9732:6;9692:67;:::i;:::-;9552:214;;;;:::o;9772:329::-;9831:6;9880:2;9868:9;9859:7;9855:23;9851:32;9848:119;;;9886:79;;:::i;:::-;9848:119;10006:1;10031:53;10076:7;10067:6;10056:9;10052:22;10031:53;:::i;:::-;10021:63;;9977:117;9772:329;;;;:::o;10107:474::-;10175:6;10183;10232:2;10220:9;10211:7;10207:23;10203:32;10200:119;;;10238:79;;:::i;:::-;10200:119;10358:1;10383:53;10428:7;10419:6;10408:9;10404:22;10383:53;:::i;:::-;10373:63;;10329:117;10485:2;10511:53;10556:7;10547:6;10536:9;10532:22;10511:53;:::i;:::-;10501:63;;10456:118;10107:474;;;;;:::o;10587:180::-;10635:77;10632:1;10625:88;10732:4;10729:1;10722:15;10756:4;10753:1;10746:15;10773:320;10817:6;10854:1;10848:4;10844:12;10834:22;;10901:1;10895:4;10891:12;10922:18;10912:81;;10978:4;10970:6;10966:17;10956:27;;10912:81;11040:2;11032:6;11029:14;11009:18;11006:38;11003:84;;11059:18;;:::i;:::-;11003:84;10824:269;10773:320;;;:::o;11099:222::-;11239:34;11235:1;11227:6;11223:14;11216:58;11308:5;11303:2;11295:6;11291:15;11284:30;11099:222;:::o;11327:366::-;11469:3;11490:67;11554:2;11549:3;11490:67;:::i;:::-;11483:74;;11566:93;11655:3;11566:93;:::i;:::-;11684:2;11679:3;11675:12;11668:19;;11327:366;;;:::o;11699:419::-;11865:4;11903:2;11892:9;11888:18;11880:26;;11952:9;11946:4;11942:20;11938:1;11927:9;11923:17;11916:47;11980:131;12106:4;11980:131;:::i;:::-;11972:139;;11699:419;;;:::o;12124:224::-;12264:34;12260:1;12252:6;12248:14;12241:58;12333:7;12328:2;12320:6;12316:15;12309:32;12124:224;:::o;12354:366::-;12496:3;12517:67;12581:2;12576:3;12517:67;:::i;:::-;12510:74;;12593:93;12682:3;12593:93;:::i;:::-;12711:2;12706:3;12702:12;12695:19;;12354:366;;;:::o;12726:419::-;12892:4;12930:2;12919:9;12915:18;12907:26;;12979:9;12973:4;12969:20;12965:1;12954:9;12950:17;12943:47;13007:131;13133:4;13007:131;:::i;:::-;12999:139;;12726:419;;;:::o;13151:171::-;13291:23;13287:1;13279:6;13275:14;13268:47;13151:171;:::o;13328:366::-;13470:3;13491:67;13555:2;13550:3;13491:67;:::i;:::-;13484:74;;13567:93;13656:3;13567:93;:::i;:::-;13685:2;13680:3;13676:12;13669:19;;13328:366;;;:::o;13700:419::-;13866:4;13904:2;13893:9;13889:18;13881:26;;13953:9;13947:4;13943:20;13939:1;13928:9;13924:17;13917:47;13981:131;14107:4;13981:131;:::i;:::-;13973:139;;13700:419;;;:::o;14125:118::-;14212:24;14230:5;14212:24;:::i;:::-;14207:3;14200:37;14125:118;;:::o;14249:332::-;14370:4;14408:2;14397:9;14393:18;14385:26;;14421:71;14489:1;14478:9;14474:17;14465:6;14421:71;:::i;:::-;14502:72;14570:2;14559:9;14555:18;14546:6;14502:72;:::i;:::-;14249:332;;;;;:::o;14587:116::-;14657:21;14672:5;14657:21;:::i;:::-;14650:5;14647:32;14637:60;;14693:1;14690;14683:12;14637:60;14587:116;:::o;14709:137::-;14763:5;14794:6;14788:13;14779:22;;14810:30;14834:5;14810:30;:::i;:::-;14709:137;;;;:::o;14852:345::-;14919:6;14968:2;14956:9;14947:7;14943:23;14939:32;14936:119;;;14974:79;;:::i;:::-;14936:119;15094:1;15119:61;15172:7;15163:6;15152:9;15148:22;15119:61;:::i;:::-;15109:71;;15065:125;14852:345;;;;:::o;15203:234::-;15343:34;15339:1;15331:6;15327:14;15320:58;15412:17;15407:2;15399:6;15395:15;15388:42;15203:234;:::o;15443:366::-;15585:3;15606:67;15670:2;15665:3;15606:67;:::i;:::-;15599:74;;15682:93;15771:3;15682:93;:::i;:::-;15800:2;15795:3;15791:12;15784:19;;15443:366;;;:::o;15815:419::-;15981:4;16019:2;16008:9;16004:18;15996:26;;16068:9;16062:4;16058:20;16054:1;16043:9;16039:17;16032:47;16096:131;16222:4;16096:131;:::i;:::-;16088:139;;15815:419;;;:::o;16240:180::-;16288:77;16285:1;16278:88;16385:4;16382:1;16375:15;16409:4;16406:1;16399:15;16426:191;16466:3;16485:20;16503:1;16485:20;:::i;:::-;16480:25;;16519:20;16537:1;16519:20;:::i;:::-;16514:25;;16562:1;16559;16555:9;16548:16;;16583:3;16580:1;16577:10;16574:36;;;16590:18;;:::i;:::-;16574:36;16426:191;;;;:::o;16623:224::-;16763:34;16759:1;16751:6;16747:14;16740:58;16832:7;16827:2;16819:6;16815:15;16808:32;16623:224;:::o;16853:366::-;16995:3;17016:67;17080:2;17075:3;17016:67;:::i;:::-;17009:74;;17092:93;17181:3;17092:93;:::i;:::-;17210:2;17205:3;17201:12;17194:19;;16853:366;;;:::o;17225:419::-;17391:4;17429:2;17418:9;17414:18;17406:26;;17478:9;17472:4;17468:20;17464:1;17453:9;17449:17;17442:47;17506:131;17632:4;17506:131;:::i;:::-;17498:139;;17225:419;;;:::o;17650:223::-;17790:34;17786:1;17778:6;17774:14;17767:58;17859:6;17854:2;17846:6;17842:15;17835:31;17650:223;:::o;17879:366::-;18021:3;18042:67;18106:2;18101:3;18042:67;:::i;:::-;18035:74;;18118:93;18207:3;18118:93;:::i;:::-;18236:2;18231:3;18227:12;18220:19;;17879:366;;;:::o;18251:419::-;18417:4;18455:2;18444:9;18440:18;18432:26;;18504:9;18498:4;18494:20;18490:1;18479:9;18475:17;18468:47;18532:131;18658:4;18532:131;:::i;:::-;18524:139;;18251:419;;;:::o;18676:221::-;18816:34;18812:1;18804:6;18800:14;18793:58;18885:4;18880:2;18872:6;18868:15;18861:29;18676:221;:::o;18903:366::-;19045:3;19066:67;19130:2;19125:3;19066:67;:::i;:::-;19059:74;;19142:93;19231:3;19142:93;:::i;:::-;19260:2;19255:3;19251:12;19244:19;;18903:366;;;:::o;19275:419::-;19441:4;19479:2;19468:9;19464:18;19456:26;;19528:9;19522:4;19518:20;19514:1;19503:9;19499:17;19492:47;19556:131;19682:4;19556:131;:::i;:::-;19548:139;;19275:419;;;:::o;19700:180::-;19748:77;19745:1;19738:88;19845:4;19842:1;19835:15;19869:4;19866:1;19859:15;19886:185;19926:1;19943:20;19961:1;19943:20;:::i;:::-;19938:25;;19977:20;19995:1;19977:20;:::i;:::-;19972:25;;20016:1;20006:35;;20021:18;;:::i;:::-;20006:35;20063:1;20060;20056:9;20051:14;;19886:185;;;;:::o;20077:225::-;20217:34;20213:1;20205:6;20201:14;20194:58;20286:8;20281:2;20273:6;20269:15;20262:33;20077:225;:::o;20308:366::-;20450:3;20471:67;20535:2;20530:3;20471:67;:::i;:::-;20464:74;;20547:93;20636:3;20547:93;:::i;:::-;20665:2;20660:3;20656:12;20649:19;;20308:366;;;:::o;20680:419::-;20846:4;20884:2;20873:9;20869:18;20861:26;;20933:9;20927:4;20923:20;20919:1;20908:9;20904:17;20897:47;20961:131;21087:4;20961:131;:::i;:::-;20953:139;;20680:419;;;:::o;21105:180::-;21153:77;21150:1;21143:88;21250:4;21247:1;21240:15;21274:4;21271:1;21264:15;21291:191;21329:4;21349:18;21365:1;21349:18;:::i;:::-;21344:23;;21381:18;21397:1;21381:18;:::i;:::-;21376:23;;21423:1;21420;21416:9;21408:17;;21447:4;21441;21438:14;21435:40;;;21455:18;;:::i;:::-;21435:40;21291:191;;;;:::o;21488:194::-;21528:4;21548:20;21566:1;21548:20;:::i;:::-;21543:25;;21582:20;21600:1;21582:20;:::i;:::-;21577:25;;21626:1;21623;21619:9;21611:17;;21650:1;21644:4;21641:11;21638:37;;;21655:18;;:::i;:::-;21638:37;21488:194;;;;:::o;21688:102::-;21730:8;21777:5;21774:1;21770:13;21749:34;;21688:102;;;:::o;21796:848::-;21857:5;21864:4;21888:6;21879:15;;21912:5;21903:14;;21926:712;21947:1;21937:8;21934:15;21926:712;;;22042:4;22037:3;22033:14;22027:4;22024:24;22021:50;;;22051:18;;:::i;:::-;22021:50;22101:1;22091:8;22087:16;22084:451;;;22516:4;22509:5;22505:16;22496:25;;22084:451;22566:4;22560;22556:15;22548:23;;22596:32;22619:8;22596:32;:::i;:::-;22584:44;;21926:712;;;21796:848;;;;;;;:::o;22650:1073::-;22704:5;22895:8;22885:40;;22916:1;22907:10;;22918:5;;22885:40;22944:4;22934:36;;22961:1;22952:10;;22963:5;;22934:36;23030:4;23078:1;23073:27;;;;23114:1;23109:191;;;;23023:277;;23073:27;23091:1;23082:10;;23093:5;;;23109:191;23154:3;23144:8;23141:17;23138:43;;;23161:18;;:::i;:::-;23138:43;23210:8;23207:1;23203:16;23194:25;;23245:3;23238:5;23235:14;23232:40;;;23252:18;;:::i;:::-;23232:40;23285:5;;;23023:277;;23409:2;23399:8;23396:16;23390:3;23384:4;23381:13;23377:36;23359:2;23349:8;23346:16;23341:2;23335:4;23332:12;23328:35;23312:111;23309:246;;;23465:8;23459:4;23455:19;23446:28;;23500:3;23493:5;23490:14;23487:40;;;23507:18;;:::i;:::-;23487:40;23540:5;;23309:246;23580:42;23618:3;23608:8;23602:4;23599:1;23580:42;:::i;:::-;23565:57;;;;23654:4;23649:3;23645:14;23638:5;23635:25;23632:51;;;23663:18;;:::i;:::-;23632:51;23712:4;23705:5;23701:16;23692:25;;22650:1073;;;;;;:::o;23729:285::-;23789:5;23813:23;23831:4;23813:23;:::i;:::-;23805:31;;23857:27;23875:8;23857:27;:::i;:::-;23845:39;;23903:104;23940:66;23930:8;23924:4;23903:104;:::i;:::-;23894:113;;23729:285;;;;:::o;24020:410::-;24060:7;24083:20;24101:1;24083:20;:::i;:::-;24078:25;;24117:20;24135:1;24117:20;:::i;:::-;24112:25;;24172:1;24169;24165:9;24194:30;24212:11;24194:30;:::i;:::-;24183:41;;24373:1;24364:7;24360:15;24357:1;24354:22;24334:1;24327:9;24307:83;24284:139;;24403:18;;:::i;:::-;24284:139;24068:362;24020:410;;;;:::o;24436:224::-;24576:34;24572:1;24564:6;24560:14;24553:58;24645:7;24640:2;24632:6;24628:15;24621:32;24436:224;:::o;24666:366::-;24808:3;24829:67;24893:2;24888:3;24829:67;:::i;:::-;24822:74;;24905:93;24994:3;24905:93;:::i;:::-;25023:2;25018:3;25014:12;25007:19;;24666:366;;;:::o;25038:419::-;25204:4;25242:2;25231:9;25227:18;25219:26;;25291:9;25285:4;25281:20;25277:1;25266:9;25262:17;25255:47;25319:131;25445:4;25319:131;:::i;:::-;25311:139;;25038:419;;;:::o;25463:222::-;25603:34;25599:1;25591:6;25587:14;25580:58;25672:5;25667:2;25659:6;25655:15;25648:30;25463:222;:::o;25691:366::-;25833:3;25854:67;25918:2;25913:3;25854:67;:::i;:::-;25847:74;;25930:93;26019:3;25930:93;:::i;:::-;26048:2;26043:3;26039:12;26032:19;;25691:366;;;:::o;26063:419::-;26229:4;26267:2;26256:9;26252:18;26244:26;;26316:9;26310:4;26306:20;26302:1;26291:9;26287:17;26280:47;26344:131;26470:4;26344:131;:::i;:::-;26336:139;;26063:419;;;:::o;26488:222::-;26628:34;26624:1;26616:6;26612:14;26605:58;26697:5;26692:2;26684:6;26680:15;26673:30;26488:222;:::o;26716:366::-;26858:3;26879:67;26943:2;26938:3;26879:67;:::i;:::-;26872:74;;26955:93;27044:3;26955:93;:::i;:::-;27073:2;27068:3;27064:12;27057:19;;26716:366;;;:::o;27088:419::-;27254:4;27292:2;27281:9;27277:18;27269:26;;27341:9;27335:4;27331:20;27327:1;27316:9;27312:17;27305:47;27369:131;27495:4;27369:131;:::i;:::-;27361:139;;27088:419;;;:::o;27513:222::-;27653:34;27649:1;27641:6;27637:14;27630:58;27722:5;27717:2;27709:6;27705:15;27698:30;27513:222;:::o;27741:366::-;27883:3;27904:67;27968:2;27963:3;27904:67;:::i;:::-;27897:74;;27980:93;28069:3;27980:93;:::i;:::-;28098:2;28093:3;28089:12;28082:19;;27741:366;;;:::o;28113:419::-;28279:4;28317:2;28306:9;28302:18;28294:26;;28366:9;28360:4;28356:20;28352:1;28341:9;28337:17;28330:47;28394:131;28520:4;28394:131;:::i;:::-;28386:139;;28113:419;;;:::o;28538:143::-;28595:5;28626:6;28620:13;28611:22;;28642:33;28669:5;28642:33;:::i;:::-;28538:143;;;;:::o;28687:351::-;28757:6;28806:2;28794:9;28785:7;28781:23;28777:32;28774:119;;;28812:79;;:::i;:::-;28774:119;28932:1;28957:64;29013:7;29004:6;28993:9;28989:22;28957:64;:::i;:::-;28947:74;;28903:128;28687:351;;;;:::o;29044:114::-;29081:7;29121:30;29114:5;29110:42;29099:53;;29044:114;;;:::o;29164:122::-;29237:24;29255:5;29237:24;:::i;:::-;29230:5;29227:35;29217:63;;29276:1;29273;29266:12;29217:63;29164:122;:::o;29292:143::-;29349:5;29380:6;29374:13;29365:22;;29396:33;29423:5;29396:33;:::i;:::-;29292:143;;;;:::o;29441:93::-;29477:7;29517:10;29510:5;29506:22;29495:33;;29441:93;;;:::o;29540:120::-;29612:23;29629:5;29612:23;:::i;:::-;29605:5;29602:34;29592:62;;29650:1;29647;29640:12;29592:62;29540:120;:::o;29666:141::-;29722:5;29753:6;29747:13;29738:22;;29769:32;29795:5;29769:32;:::i;:::-;29666:141;;;;:::o;29813:661::-;29900:6;29908;29916;29965:2;29953:9;29944:7;29940:23;29936:32;29933:119;;;29971:79;;:::i;:::-;29933:119;30091:1;30116:64;30172:7;30163:6;30152:9;30148:22;30116:64;:::i;:::-;30106:74;;30062:128;30229:2;30255:64;30311:7;30302:6;30291:9;30287:22;30255:64;:::i;:::-;30245:74;;30200:129;30368:2;30394:63;30449:7;30440:6;30429:9;30425:22;30394:63;:::i;:::-;30384:73;;30339:128;29813:661;;;;;:::o;30480:222::-;30573:4;30611:2;30600:9;30596:18;30588:26;;30624:71;30692:1;30681:9;30677:17;30668:6;30624:71;:::i;:::-;30480:222;;;;:::o;30708:143::-;30765:5;30796:6;30790:13;30781:22;;30812:33;30839:5;30812:33;:::i;:::-;30708:143;;;;:::o;30857:351::-;30927:6;30976:2;30964:9;30955:7;30951:23;30947:32;30944:119;;;30982:79;;:::i;:::-;30944:119;31102:1;31127:64;31183:7;31174:6;31163:9;31159:22;31127:64;:::i;:::-;31117:74;;31073:128;30857:351;;;;:::o

Swarm Source

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