ETH Price: $3,803.57 (+0.89%)
Gas: 9 Gwei

Token

CEJI (CEJI)
 

Overview

Max Total Supply

2,000,000,000 CEJI

Holders

848

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
dolgame.eth
Balance
100 CEJI

Value
$0.00
0xf8992a1f4e302460bd49a1646ee315d810235212
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The creation energy join international (CEJI) project is a technology project that mixes all combustible waste and reproduces energy, and aims to build an ecosystem by combining technology and blockchain to build a CEJI platform.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CreateToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-14
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract Lockable is Context {
    event Locked(address account);
    event Unlocked(address account);

    mapping(address => bool) private _locked;

    function locked(address _to) internal view returns (bool) {
        return _locked[_to];
    }

    function _lock(address to) internal virtual {
        require(to != address(0), "ERC20: lock to the zero address");

        _locked[to] = true;
        emit Locked(to);
    }

    function _unlock(address to) internal virtual {
        require(to != address(0), "ERC20: lock to the zero address");

        _locked[to] = false;
        emit Unlocked(to);
    }
}

contract TimeLock {
    using SafeMath for uint256;
    using Address for address;

    event SetTimeLock(address account, uint timestamp);
    event RemoveTimeLock(address account);

    mapping(address => uint) private _endTimestamp;

    function getEndTime(address to) public view virtual returns(uint) {
        return _endTimestamp[to];
    }

    function _setTimeLock(address to, uint256 timestamp) internal virtual {
        require(to != address(0), "Timelock: account is the zero address");
        require(timestamp != uint256(0), "Timelock: is the zero day");

        _endTimestamp[to] = timestamp;

        emit SetTimeLock(to, timestamp);
    }

    function _removeTimeLock(address to) internal virtual {
        require(to != address(0), "Timelock: account is the zero address");

        _endTimestamp[to] = 0;

        emit RemoveTimeLock(to);
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata, Lockable, TimeLock {
    using SafeMath for uint256;
    using Address for address;

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(locked(from) != true, "ERC20: sender is locked");
        require((getEndTime(from) <= block.timestamp) != false, "ERC20: sender is Time locked");

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract ERC20Pauser is Context, ERC20, Ownable {
    constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_){}

    function mint(address account, uint256 amount) internal virtual onlyOwner {
        _mint(account, amount);
    }

    function lock(address account) public virtual onlyOwner {
        _lock(account);
    }

    function unlock(address account) public virtual onlyOwner {
        _unlock(account);
    }
    
    function burn(uint256 amount) public virtual onlyOwner {
        _burn(_msgSender(), amount*(10**uint256(decimals())));
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function setTimeLock(address account, uint256 timestamp) public virtual onlyOwner {
        _setTimeLock(account, timestamp);
    }

    function removeTimeLock(address account) public virtual onlyOwner {
        _removeTimeLock(account);
    }
}

contract CreateToken is ERC20Pauser {
    constructor () ERC20Pauser("CEJI", "CEJI") {
        mint(msg.sender, 20*(10**8)*(10**uint256(decimals())));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveTimeLock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetTimeLock","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unlocked","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"address","name":"to","type":"address"}],"name":"getEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeTimeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setTimeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600481526020017f43454a49000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f43454a49000000000000000000000000000000000000000000000000000000008152508181816005908051906020019062000098929190620004de565b508060069080519060200190620000b1929190620004de565b505050620000d4620000c86200011f60201b60201c565b6200012760201b60201c565b50506200011933620000eb620001ed60201b60201c565b60ff16600a620000fc919062000760565b63773594006200010d91906200089d565b620001f660201b60201c565b62000a24565b600033905090565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b620002066200011f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200022c6200029b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000285576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200027c9062000636565b60405180910390fd5b620002978282620002c560201b60201c565b5050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000338576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200032f9062000658565b60405180910390fd5b6200034c600083836200047660201b60201c565b62000368816004546200047b60201b62000be91790919060201c565b600481905550620003c781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200047b60201b62000be91790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200046a91906200067a565b60405180910390a35050565b505050565b60008082846200048c9190620006a8565b905083811015620004d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004cb9062000614565b60405180910390fd5b8091505092915050565b828054620004ec9062000908565b90600052602060002090601f0160209004810192826200051057600085556200055c565b82601f106200052b57805160ff19168380011785556200055c565b828001600101855582156200055c579182015b828111156200055b5782518255916020019190600101906200053e565b5b5090506200056b91906200056f565b5090565b5b808211156200058a57600081600090555060010162000570565b5090565b60006200059d601b8362000697565b9150620005aa82620009a9565b602082019050919050565b6000620005c460208362000697565b9150620005d182620009d2565b602082019050919050565b6000620005eb601f8362000697565b9150620005f882620009fb565b602082019050919050565b6200060e81620008fe565b82525050565b600060208201905081810360008301526200062f816200058e565b9050919050565b600060208201905081810360008301526200065181620005b5565b9050919050565b600060208201905081810360008301526200067381620005dc565b9050919050565b600060208201905062000691600083018462000603565b92915050565b600082825260208201905092915050565b6000620006b582620008fe565b9150620006c283620008fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006fa57620006f96200093e565b5b828201905092915050565b6000808291508390505b600185111562000757578086048111156200072f576200072e6200093e565b5b60018516156200073f5780820291505b80810290506200074f856200099c565b94506200070f565b94509492505050565b60006200076d82620008fe565b91506200077a83620008fe565b9250620007a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007b1565b905092915050565b600082620007c3576001905062000896565b81620007d3576000905062000896565b8160018114620007ec5760028114620007f7576200082d565b600191505062000896565b60ff8411156200080c576200080b6200093e565b5b8360020a9150848211156200082657620008256200093e565b5b5062000896565b5060208310610133831016604e8410600b8410161715620008675782820a9050838111156200086157620008606200093e565b5b62000896565b62000876848484600162000705565b9250905081840481111562000890576200088f6200093e565b5b81810290505b9392505050565b6000620008aa82620008fe565b9150620008b783620008fe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008f357620008f26200093e565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200092157607f821691505b602082108114156200093857620009376200096d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6128268062000a346000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063644fab74116100ad578063a457c2d711610071578063a457c2d714610331578063a9059cbb14610361578063dd62ed3e14610391578063f2fde38b146103c1578063f435f5a7146103dd5761012c565b8063644fab741461029f57806370a08231146102bb578063715018a6146102eb5780638da5cb5b146102f557806395d89b41146103135761012c565b806323b872dd116100f457806323b872dd146101e95780632f6c493c14610219578063313ce56714610235578063395093511461025357806342966c68146102835761012c565b806306fdde0314610131578063095ea7b31461014f57806317abee1e1461017f57806318160ddd1461019b5780631c260b5f146101b9575b600080fd5b6101396103f9565b6040516101469190611db6565b60405180910390f35b61016960048036038101906101649190611a45565b61048b565b6040516101769190611d9b565b60405180910390f35b61019960048036038101906101949190611985565b6104ae565b005b6101a3610536565b6040516101b09190611fd8565b60405180910390f35b6101d360048036038101906101ce9190611985565b610540565b6040516101e09190611fd8565b60405180910390f35b61020360048036038101906101fe91906119f2565b610589565b6040516102109190611d9b565b60405180910390f35b610233600480360381019061022e9190611985565b6105b8565b005b61023d610640565b60405161024a9190611ff3565b60405180910390f35b61026d60048036038101906102689190611a45565b610649565b60405161027a9190611d9b565b60405180910390f35b61029d60048036038101906102989190611a85565b610680565b005b6102b960048036038101906102b49190611a45565b610731565b005b6102d560048036038101906102d09190611985565b6107bb565b6040516102e29190611fd8565b60405180910390f35b6102f3610804565b005b6102fd61088c565b60405161030a9190611d57565b60405180910390f35b61031b6108b6565b6040516103289190611db6565b60405180910390f35b61034b60048036038101906103469190611a45565b610948565b6040516103589190611d9b565b60405180910390f35b61037b60048036038101906103769190611a45565b6109bf565b6040516103889190611d9b565b60405180910390f35b6103ab60048036038101906103a691906119b2565b6109e2565b6040516103b89190611fd8565b60405180910390f35b6103db60048036038101906103d69190611985565b610a69565b005b6103f760048036038101906103f29190611985565b610b61565b005b60606005805461040890612307565b80601f016020809104026020016040519081016040528092919081815260200182805461043490612307565b80156104815780601f1061045657610100808354040283529160200191610481565b820191906000526020600020905b81548152906001019060200180831161046457829003601f168201915b5050505050905090565b600080610496610c47565b90506104a3818585610c4f565b600191505092915050565b6104b6610c47565b73ffffffffffffffffffffffffffffffffffffffff166104d461088c565b73ffffffffffffffffffffffffffffffffffffffff161461052a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052190611ed8565b60405180910390fd5b61053381610e1a565b50565b6000600454905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080610594610c47565b90506105a1858285610f09565b6105ac858585610f95565b60019150509392505050565b6105c0610c47565b73ffffffffffffffffffffffffffffffffffffffff166105de61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90611ed8565b60405180910390fd5b61063d816112a6565b50565b60006012905090565b600080610654610c47565b905061067581858561066685896109e2565b610670919061202a565b610c4f565b600191505092915050565b610688610c47565b73ffffffffffffffffffffffffffffffffffffffff166106a661088c565b73ffffffffffffffffffffffffffffffffffffffff16146106fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f390611ed8565b60405180910390fd5b61072e610707610c47565b61070f610640565b60ff16600a61071e91906120d3565b8361072991906121f1565b6113a7565b50565b610739610c47565b73ffffffffffffffffffffffffffffffffffffffff1661075761088c565b73ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a490611ed8565b60405180910390fd5b6107b78282611557565b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61080c610c47565b73ffffffffffffffffffffffffffffffffffffffff1661082a61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790611ed8565b60405180910390fd5b61088a600061168c565b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546108c590612307565b80601f01602080910402602001604051908101604052809291908181526020018280546108f190612307565b801561093e5780601f106109135761010080835404028352916020019161093e565b820191906000526020600020905b81548152906001019060200180831161092157829003601f168201915b5050505050905090565b600080610953610c47565b9050600061096182866109e2565b9050838110156109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90611fb8565b60405180910390fd5b6109b38286868403610c4f565b60019250505092915050565b6000806109ca610c47565b90506109d7818585610f95565b600191505092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a71610c47565b73ffffffffffffffffffffffffffffffffffffffff16610a8f61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90611ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90611e18565b60405180910390fd5b610b5e8161168c565b50565b610b69610c47565b73ffffffffffffffffffffffffffffffffffffffff16610b8761088c565b73ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490611ed8565b60405180910390fd5b610be681611752565b50565b6000808284610bf8919061202a565b905083811015610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490611e58565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb690611f38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690611e38565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e0d9190611fd8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190611f78565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f2411a6bc22519fe98a9db2ddbd83af278807704eac69a546c5d52fd3e0b2db9181604051610efe9190611d57565b60405180910390a150565b6000610f1584846109e2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f8f5781811015610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890611e78565b60405180910390fd5b610f8e8484848403610c4f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90611f18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90611dd8565b60405180910390fd5b6001151561108284611853565b151514156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90611eb8565b60405180910390fd5b60001515426110d385610540565b111515151415611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f90611f58565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690611e98565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611234919061202a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112989190611fd8565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90611f98565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7e6adfec7e3f286831a0200a754127c171a2da564078722cb97704741bbdb0ea8160405161139c9190611d57565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90611ef8565b60405180910390fd5b611423826000836118a8565b61148f816040518060600160405280602281526020016127cf60229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118ad9092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114e78160045461191190919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161154b9190611fd8565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90611f78565b60405180910390fd5b600081141561160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290611df8565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fde6a7e6fbd24aa298ba27260cb50684143d79f1132db1e14ba235be2a60306108282604051611680929190611d72565b60405180910390a15050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990611f98565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f44427e3003a08f22cf803894075ac0297524e09e521fc1c15bc91741ce3dc159816040516118489190611d57565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b60008383111582906118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9190611db6565b60405180910390fd5b5060008385611904919061224b565b9050809150509392505050565b600061195383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118ad565b905092915050565b60008135905061196a816127a0565b92915050565b60008135905061197f816127b7565b92915050565b60006020828403121561199b5761199a612397565b5b60006119a98482850161195b565b91505092915050565b600080604083850312156119c9576119c8612397565b5b60006119d78582860161195b565b92505060206119e88582860161195b565b9150509250929050565b600080600060608486031215611a0b57611a0a612397565b5b6000611a198682870161195b565b9350506020611a2a8682870161195b565b9250506040611a3b86828701611970565b9150509250925092565b60008060408385031215611a5c57611a5b612397565b5b6000611a6a8582860161195b565b9250506020611a7b85828601611970565b9150509250929050565b600060208284031215611a9b57611a9a612397565b5b6000611aa984828501611970565b91505092915050565b611abb8161227f565b82525050565b611aca81612291565b82525050565b6000611adb8261200e565b611ae58185612019565b9350611af58185602086016122d4565b611afe8161239c565b840191505092915050565b6000611b16602383612019565b9150611b21826123ba565b604082019050919050565b6000611b39601983612019565b9150611b4482612409565b602082019050919050565b6000611b5c602683612019565b9150611b6782612432565b604082019050919050565b6000611b7f602283612019565b9150611b8a82612481565b604082019050919050565b6000611ba2601b83612019565b9150611bad826124d0565b602082019050919050565b6000611bc5601d83612019565b9150611bd0826124f9565b602082019050919050565b6000611be8602683612019565b9150611bf382612522565b604082019050919050565b6000611c0b601783612019565b9150611c1682612571565b602082019050919050565b6000611c2e602083612019565b9150611c398261259a565b602082019050919050565b6000611c51602183612019565b9150611c5c826125c3565b604082019050919050565b6000611c74602583612019565b9150611c7f82612612565b604082019050919050565b6000611c97602483612019565b9150611ca282612661565b604082019050919050565b6000611cba601c83612019565b9150611cc5826126b0565b602082019050919050565b6000611cdd602583612019565b9150611ce8826126d9565b604082019050919050565b6000611d00601f83612019565b9150611d0b82612728565b602082019050919050565b6000611d23602583612019565b9150611d2e82612751565b604082019050919050565b611d42816122bd565b82525050565b611d51816122c7565b82525050565b6000602082019050611d6c6000830184611ab2565b92915050565b6000604082019050611d876000830185611ab2565b611d946020830184611d39565b9392505050565b6000602082019050611db06000830184611ac1565b92915050565b60006020820190508181036000830152611dd08184611ad0565b905092915050565b60006020820190508181036000830152611df181611b09565b9050919050565b60006020820190508181036000830152611e1181611b2c565b9050919050565b60006020820190508181036000830152611e3181611b4f565b9050919050565b60006020820190508181036000830152611e5181611b72565b9050919050565b60006020820190508181036000830152611e7181611b95565b9050919050565b60006020820190508181036000830152611e9181611bb8565b9050919050565b60006020820190508181036000830152611eb181611bdb565b9050919050565b60006020820190508181036000830152611ed181611bfe565b9050919050565b60006020820190508181036000830152611ef181611c21565b9050919050565b60006020820190508181036000830152611f1181611c44565b9050919050565b60006020820190508181036000830152611f3181611c67565b9050919050565b60006020820190508181036000830152611f5181611c8a565b9050919050565b60006020820190508181036000830152611f7181611cad565b9050919050565b60006020820190508181036000830152611f9181611cd0565b9050919050565b60006020820190508181036000830152611fb181611cf3565b9050919050565b60006020820190508181036000830152611fd181611d16565b9050919050565b6000602082019050611fed6000830184611d39565b92915050565b60006020820190506120086000830184611d48565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612035826122bd565b9150612040836122bd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561207557612074612339565b5b828201905092915050565b6000808291508390505b60018511156120ca578086048111156120a6576120a5612339565b5b60018516156120b55780820291505b80810290506120c3856123ad565b945061208a565b94509492505050565b60006120de826122bd565b91506120e9836122bd565b92506121167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461211e565b905092915050565b60008261212e57600190506121ea565b8161213c57600090506121ea565b8160018114612152576002811461215c5761218b565b60019150506121ea565b60ff84111561216e5761216d612339565b5b8360020a91508482111561218557612184612339565b5b506121ea565b5060208310610133831016604e8410600b84101617156121c05782820a9050838111156121bb576121ba612339565b5b6121ea565b6121cd8484846001612080565b925090508184048111156121e4576121e3612339565b5b81810290505b9392505050565b60006121fc826122bd565b9150612207836122bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122405761223f612339565b5b828202905092915050565b6000612256826122bd565b9150612261836122bd565b92508282101561227457612273612339565b5b828203905092915050565b600061228a8261229d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156122f25780820151818401526020810190506122d7565b83811115612301576000848401525b50505050565b6000600282049050600182168061231f57607f821691505b6020821081141561233357612332612368565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54696d656c6f636b3a20697320746865207a65726f2064617900000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2073656e646572206973206c6f636b6564000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2073656e6465722069732054696d65206c6f636b656400000000600082015250565b7f54696d656c6f636b3a206163636f756e7420697320746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206c6f636b20746f20746865207a65726f206164647265737300600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6127a98161227f565b81146127b457600080fd5b50565b6127c0816122bd565b81146127cb57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365a26469706673582212202a8fe6638ad8af7eeb6098a2f4e328fabaac0173738af450b54f38ecb842914864736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063644fab74116100ad578063a457c2d711610071578063a457c2d714610331578063a9059cbb14610361578063dd62ed3e14610391578063f2fde38b146103c1578063f435f5a7146103dd5761012c565b8063644fab741461029f57806370a08231146102bb578063715018a6146102eb5780638da5cb5b146102f557806395d89b41146103135761012c565b806323b872dd116100f457806323b872dd146101e95780632f6c493c14610219578063313ce56714610235578063395093511461025357806342966c68146102835761012c565b806306fdde0314610131578063095ea7b31461014f57806317abee1e1461017f57806318160ddd1461019b5780631c260b5f146101b9575b600080fd5b6101396103f9565b6040516101469190611db6565b60405180910390f35b61016960048036038101906101649190611a45565b61048b565b6040516101769190611d9b565b60405180910390f35b61019960048036038101906101949190611985565b6104ae565b005b6101a3610536565b6040516101b09190611fd8565b60405180910390f35b6101d360048036038101906101ce9190611985565b610540565b6040516101e09190611fd8565b60405180910390f35b61020360048036038101906101fe91906119f2565b610589565b6040516102109190611d9b565b60405180910390f35b610233600480360381019061022e9190611985565b6105b8565b005b61023d610640565b60405161024a9190611ff3565b60405180910390f35b61026d60048036038101906102689190611a45565b610649565b60405161027a9190611d9b565b60405180910390f35b61029d60048036038101906102989190611a85565b610680565b005b6102b960048036038101906102b49190611a45565b610731565b005b6102d560048036038101906102d09190611985565b6107bb565b6040516102e29190611fd8565b60405180910390f35b6102f3610804565b005b6102fd61088c565b60405161030a9190611d57565b60405180910390f35b61031b6108b6565b6040516103289190611db6565b60405180910390f35b61034b60048036038101906103469190611a45565b610948565b6040516103589190611d9b565b60405180910390f35b61037b60048036038101906103769190611a45565b6109bf565b6040516103889190611d9b565b60405180910390f35b6103ab60048036038101906103a691906119b2565b6109e2565b6040516103b89190611fd8565b60405180910390f35b6103db60048036038101906103d69190611985565b610a69565b005b6103f760048036038101906103f29190611985565b610b61565b005b60606005805461040890612307565b80601f016020809104026020016040519081016040528092919081815260200182805461043490612307565b80156104815780601f1061045657610100808354040283529160200191610481565b820191906000526020600020905b81548152906001019060200180831161046457829003601f168201915b5050505050905090565b600080610496610c47565b90506104a3818585610c4f565b600191505092915050565b6104b6610c47565b73ffffffffffffffffffffffffffffffffffffffff166104d461088c565b73ffffffffffffffffffffffffffffffffffffffff161461052a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052190611ed8565b60405180910390fd5b61053381610e1a565b50565b6000600454905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080610594610c47565b90506105a1858285610f09565b6105ac858585610f95565b60019150509392505050565b6105c0610c47565b73ffffffffffffffffffffffffffffffffffffffff166105de61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062b90611ed8565b60405180910390fd5b61063d816112a6565b50565b60006012905090565b600080610654610c47565b905061067581858561066685896109e2565b610670919061202a565b610c4f565b600191505092915050565b610688610c47565b73ffffffffffffffffffffffffffffffffffffffff166106a661088c565b73ffffffffffffffffffffffffffffffffffffffff16146106fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f390611ed8565b60405180910390fd5b61072e610707610c47565b61070f610640565b60ff16600a61071e91906120d3565b8361072991906121f1565b6113a7565b50565b610739610c47565b73ffffffffffffffffffffffffffffffffffffffff1661075761088c565b73ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a490611ed8565b60405180910390fd5b6107b78282611557565b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61080c610c47565b73ffffffffffffffffffffffffffffffffffffffff1661082a61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790611ed8565b60405180910390fd5b61088a600061168c565b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546108c590612307565b80601f01602080910402602001604051908101604052809291908181526020018280546108f190612307565b801561093e5780601f106109135761010080835404028352916020019161093e565b820191906000526020600020905b81548152906001019060200180831161092157829003601f168201915b5050505050905090565b600080610953610c47565b9050600061096182866109e2565b9050838110156109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90611fb8565b60405180910390fd5b6109b38286868403610c4f565b60019250505092915050565b6000806109ca610c47565b90506109d7818585610f95565b600191505092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a71610c47565b73ffffffffffffffffffffffffffffffffffffffff16610a8f61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90611ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90611e18565b60405180910390fd5b610b5e8161168c565b50565b610b69610c47565b73ffffffffffffffffffffffffffffffffffffffff16610b8761088c565b73ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490611ed8565b60405180910390fd5b610be681611752565b50565b6000808284610bf8919061202a565b905083811015610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490611e58565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb690611f38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690611e38565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e0d9190611fd8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8190611f78565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f2411a6bc22519fe98a9db2ddbd83af278807704eac69a546c5d52fd3e0b2db9181604051610efe9190611d57565b60405180910390a150565b6000610f1584846109e2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f8f5781811015610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890611e78565b60405180910390fd5b610f8e8484848403610c4f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90611f18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90611dd8565b60405180910390fd5b6001151561108284611853565b151514156110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90611eb8565b60405180910390fd5b60001515426110d385610540565b111515151415611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f90611f58565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690611e98565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611234919061202a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112989190611fd8565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90611f98565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7e6adfec7e3f286831a0200a754127c171a2da564078722cb97704741bbdb0ea8160405161139c9190611d57565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90611ef8565b60405180910390fd5b611423826000836118a8565b61148f816040518060600160405280602281526020016127cf60229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118ad9092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114e78160045461191190919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161154b9190611fd8565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90611f78565b60405180910390fd5b600081141561160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290611df8565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fde6a7e6fbd24aa298ba27260cb50684143d79f1132db1e14ba235be2a60306108282604051611680929190611d72565b60405180910390a15050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990611f98565b60405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f44427e3003a08f22cf803894075ac0297524e09e521fc1c15bc91741ce3dc159816040516118489190611d57565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b60008383111582906118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9190611db6565b60405180910390fd5b5060008385611904919061224b565b9050809150509392505050565b600061195383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118ad565b905092915050565b60008135905061196a816127a0565b92915050565b60008135905061197f816127b7565b92915050565b60006020828403121561199b5761199a612397565b5b60006119a98482850161195b565b91505092915050565b600080604083850312156119c9576119c8612397565b5b60006119d78582860161195b565b92505060206119e88582860161195b565b9150509250929050565b600080600060608486031215611a0b57611a0a612397565b5b6000611a198682870161195b565b9350506020611a2a8682870161195b565b9250506040611a3b86828701611970565b9150509250925092565b60008060408385031215611a5c57611a5b612397565b5b6000611a6a8582860161195b565b9250506020611a7b85828601611970565b9150509250929050565b600060208284031215611a9b57611a9a612397565b5b6000611aa984828501611970565b91505092915050565b611abb8161227f565b82525050565b611aca81612291565b82525050565b6000611adb8261200e565b611ae58185612019565b9350611af58185602086016122d4565b611afe8161239c565b840191505092915050565b6000611b16602383612019565b9150611b21826123ba565b604082019050919050565b6000611b39601983612019565b9150611b4482612409565b602082019050919050565b6000611b5c602683612019565b9150611b6782612432565b604082019050919050565b6000611b7f602283612019565b9150611b8a82612481565b604082019050919050565b6000611ba2601b83612019565b9150611bad826124d0565b602082019050919050565b6000611bc5601d83612019565b9150611bd0826124f9565b602082019050919050565b6000611be8602683612019565b9150611bf382612522565b604082019050919050565b6000611c0b601783612019565b9150611c1682612571565b602082019050919050565b6000611c2e602083612019565b9150611c398261259a565b602082019050919050565b6000611c51602183612019565b9150611c5c826125c3565b604082019050919050565b6000611c74602583612019565b9150611c7f82612612565b604082019050919050565b6000611c97602483612019565b9150611ca282612661565b604082019050919050565b6000611cba601c83612019565b9150611cc5826126b0565b602082019050919050565b6000611cdd602583612019565b9150611ce8826126d9565b604082019050919050565b6000611d00601f83612019565b9150611d0b82612728565b602082019050919050565b6000611d23602583612019565b9150611d2e82612751565b604082019050919050565b611d42816122bd565b82525050565b611d51816122c7565b82525050565b6000602082019050611d6c6000830184611ab2565b92915050565b6000604082019050611d876000830185611ab2565b611d946020830184611d39565b9392505050565b6000602082019050611db06000830184611ac1565b92915050565b60006020820190508181036000830152611dd08184611ad0565b905092915050565b60006020820190508181036000830152611df181611b09565b9050919050565b60006020820190508181036000830152611e1181611b2c565b9050919050565b60006020820190508181036000830152611e3181611b4f565b9050919050565b60006020820190508181036000830152611e5181611b72565b9050919050565b60006020820190508181036000830152611e7181611b95565b9050919050565b60006020820190508181036000830152611e9181611bb8565b9050919050565b60006020820190508181036000830152611eb181611bdb565b9050919050565b60006020820190508181036000830152611ed181611bfe565b9050919050565b60006020820190508181036000830152611ef181611c21565b9050919050565b60006020820190508181036000830152611f1181611c44565b9050919050565b60006020820190508181036000830152611f3181611c67565b9050919050565b60006020820190508181036000830152611f5181611c8a565b9050919050565b60006020820190508181036000830152611f7181611cad565b9050919050565b60006020820190508181036000830152611f9181611cd0565b9050919050565b60006020820190508181036000830152611fb181611cf3565b9050919050565b60006020820190508181036000830152611fd181611d16565b9050919050565b6000602082019050611fed6000830184611d39565b92915050565b60006020820190506120086000830184611d48565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612035826122bd565b9150612040836122bd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561207557612074612339565b5b828201905092915050565b6000808291508390505b60018511156120ca578086048111156120a6576120a5612339565b5b60018516156120b55780820291505b80810290506120c3856123ad565b945061208a565b94509492505050565b60006120de826122bd565b91506120e9836122bd565b92506121167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461211e565b905092915050565b60008261212e57600190506121ea565b8161213c57600090506121ea565b8160018114612152576002811461215c5761218b565b60019150506121ea565b60ff84111561216e5761216d612339565b5b8360020a91508482111561218557612184612339565b5b506121ea565b5060208310610133831016604e8410600b84101617156121c05782820a9050838111156121bb576121ba612339565b5b6121ea565b6121cd8484846001612080565b925090508184048111156121e4576121e3612339565b5b81810290505b9392505050565b60006121fc826122bd565b9150612207836122bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122405761223f612339565b5b828202905092915050565b6000612256826122bd565b9150612261836122bd565b92508282101561227457612273612339565b5b828203905092915050565b600061228a8261229d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156122f25780820151818401526020810190506122d7565b83811115612301576000848401525b50505050565b6000600282049050600182168061231f57607f821691505b6020821081141561233357612332612368565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54696d656c6f636b3a20697320746865207a65726f2064617900000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2073656e646572206973206c6f636b6564000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2073656e6465722069732054696d65206c6f636b656400000000600082015250565b7f54696d656c6f636b3a206163636f756e7420697320746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206c6f636b20746f20746865207a65726f206164647265737300600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6127a98161227f565b81146127b457600080fd5b50565b6127c0816122bd565b81146127cb57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365a26469706673582212202a8fe6638ad8af7eeb6098a2f4e328fabaac0173738af450b54f38ecb842914864736f6c63430008070033

Deployed Bytecode Sourcemap

13509:162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7630:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8562:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13393:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7951:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8771:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12692:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7850;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9040:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12797:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13252:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8067:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12932:103;;;:::i;:::-;;4257:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7738:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9286:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8403:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13043:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12595:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7630:100;7684:13;7717:5;7710:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7630:100;:::o;8562:201::-;8645:4;8662:13;8678:12;:10;:12::i;:::-;8662:28;;8701:32;8710:5;8717:7;8726:6;8701:8;:32::i;:::-;8751:4;8744:11;;;8562:201;;;;:::o;13393:109::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13470:24:::1;13486:7;13470:15;:24::i;:::-;13393:109:::0;:::o;7951:108::-;8012:7;8039:12;;8032:19;;7951:108;:::o;5573:109::-;5633:4;5657:13;:17;5671:2;5657:17;;;;;;;;;;;;;;;;5650:24;;5573:109;;;:::o;8771:261::-;8868:4;8885:15;8903:12;:10;:12::i;:::-;8885:30;;8926:38;8942:4;8948:7;8957:6;8926:15;:38::i;:::-;8975:27;8985:4;8991:2;8995:6;8975:9;:27::i;:::-;9020:4;9013:11;;;8771:261;;;;;:::o;12692:93::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12761:16:::1;12769:7;12761;:16::i;:::-;12692:93:::0;:::o;7850:::-;7908:5;7933:2;7926:9;;7850:93;:::o;9040:238::-;9128:4;9145:13;9161:12;:10;:12::i;:::-;9145:28;;9184:64;9193:5;9200:7;9237:10;9209:25;9219:5;9226:7;9209:9;:25::i;:::-;:38;;;;:::i;:::-;9184:8;:64::i;:::-;9266:4;9259:11;;;9040:238;;;;:::o;12797:127::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12863:53:::1;12869:12;:10;:12::i;:::-;12903:10;:8;:10::i;:::-;12895:19;;12891:2;:23;;;;:::i;:::-;12883:6;:32;;;;:::i;:::-;12863:5;:53::i;:::-;12797:127:::0;:::o;13252:133::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13345:32:::1;13358:7;13367:9;13345:12;:32::i;:::-;13252:133:::0;;:::o;8067:127::-;8141:7;8168:9;:18;8178:7;8168:18;;;;;;;;;;;;;;;;8161:25;;8067:127;;;:::o;12932:103::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12997:30:::1;13024:1;12997:18;:30::i;:::-;12932:103::o:0;4257:87::-;4303:7;4330:6;;;;;;;;;;;4323:13;;4257:87;:::o;7738:104::-;7794:13;7827:7;7820:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7738:104;:::o;9286:436::-;9379:4;9396:13;9412:12;:10;:12::i;:::-;9396:28;;9435:24;9462:25;9472:5;9479:7;9462:9;:25::i;:::-;9435:52;;9526:15;9506:16;:35;;9498:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9619:60;9628:5;9635:7;9663:15;9644:16;:34;9619:8;:60::i;:::-;9710:4;9703:11;;;;9286:436;;;;:::o;8202:193::-;8281:4;8298:13;8314:12;:10;:12::i;:::-;8298:28;;8337;8347:5;8354:2;8358:6;8337:9;:28::i;:::-;8383:4;8376:11;;;8202:193;;;;:::o;8403:151::-;8492:7;8519:11;:18;8531:5;8519:18;;;;;;;;;;;;;;;:27;8538:7;8519:27;;;;;;;;;;;;;;;;8512:34;;8403:151;;;;:::o;13043:201::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13152:1:::1;13132:22;;:8;:22;;;;13124:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13208:28;13227:8;13208:18;:28::i;:::-;13043:201:::0;:::o;12595:89::-;4403:12;:10;:12::i;:::-;4392:23;;:7;:5;:7::i;:::-;:23;;;4384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12662:14:::1;12668:7;12662:5;:14::i;:::-;12595:89:::0;:::o;2496:181::-;2554:7;2574:9;2590:1;2586;:5;;;;:::i;:::-;2574:17;;2615:1;2610;:6;;2602:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2668:1;2661:8;;;2496:181;;;;:::o;2258:98::-;2311:7;2338:10;2331:17;;2258:98;:::o;11251:346::-;11370:1;11353:19;;:5;:19;;;;11345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11451:1;11432:21;;:7;:21;;;;11424:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11535:6;11505:11;:18;11517:5;11505:18;;;;;;;;;;;;;;;:27;11524:7;11505:27;;;;;;;;;;;;;;;:36;;;;11573:7;11557:32;;11566:5;11557:32;;;11582:6;11557:32;;;;;;:::i;:::-;;;;;;;;11251:346;;;:::o;6011:209::-;6098:1;6084:16;;:2;:16;;;;6076:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6175:1;6155:13;:17;6169:2;6155:17;;;;;;;;;;;;;;;:21;;;;6194:18;6209:2;6194:18;;;;;;:::i;:::-;;;;;;;;6011:209;:::o;11605:453::-;11740:24;11767:25;11777:5;11784:7;11767:9;:25::i;:::-;11740:52;;11827:17;11807:16;:37;11803:248;;11889:6;11869:16;:26;;11861:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11973:51;11982:5;11989:7;12017:6;11998:16;:25;11973:8;:51::i;:::-;11803:248;11729:329;11605:453;;;:::o;9730:701::-;9843:1;9827:18;;:4;:18;;;;9819:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9920:1;9906:16;;:2;:16;;;;9898:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9997:4;9981:20;;:12;9988:4;9981:6;:12::i;:::-;:20;;;;9973:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10089:5;10048:46;;10069:15;10049:16;10060:4;10049:10;:16::i;:::-;:35;;10048:46;;;;10040:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10140:19;10162:9;:15;10172:4;10162:15;;;;;;;;;;;;;;;;10140:37;;10211:6;10196:11;:21;;10188:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10328:6;10314:11;:20;10296:9;:15;10306:4;10296:15;;;;;;;;;;;;;;;:38;;;;10373:6;10356:9;:13;10366:2;10356:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;10412:2;10397:26;;10406:4;10397:26;;;10416:6;10397:26;;;;;;:::i;:::-;;;;;;;;9808:623;9730:701;;;:::o;5131:185::-;5210:1;5196:16;;:2;:16;;;;5188:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5275:5;5261:7;:11;5269:2;5261:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;5296:12;5305:2;5296:12;;;;;;:::i;:::-;;;;;;;;5131:185;:::o;10825:418::-;10928:1;10909:21;;:7;:21;;;;10901:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10981:49;11002:7;11019:1;11023:6;10981:20;:49::i;:::-;11064:68;11087:6;11064:68;;;;;;;;;;;;;;;;;:9;:18;11074:7;11064:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;11043:9;:18;11053:7;11043:18;;;;;;;;;;;;;;;:89;;;;11158:24;11175:6;11158:12;;:16;;:24;;;;:::i;:::-;11143:12;:39;;;;11224:1;11198:37;;11207:7;11198:37;;;11228:6;11198:37;;;;;;:::i;:::-;;;;;;;;10825:418;;:::o;5690:313::-;5793:1;5779:16;;:2;:16;;;;5771:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5877:1;5856:9;:23;;5848:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;5942:9;5922:13;:17;5936:2;5922:17;;;;;;;;;;;;;;;:29;;;;5969:26;5981:2;5985:9;5969:26;;;;;;;:::i;:::-;;;;;;;;5690:313;;:::o;4480:191::-;4554:16;4573:6;;;;;;;;;;;4554:25;;4599:8;4590:6;;:17;;;;;;;;;;;;;;;;;;4654:8;4623:40;;4644:8;4623:40;;;;;;;;;;;;4543:128;4480:191;:::o;4943:180::-;5020:1;5006:16;;:2;:16;;;;4998:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5085:4;5071:7;:11;5079:2;5071:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;5105:10;5112:2;5105:10;;;;;;:::i;:::-;;;;;;;;4943:180;:::o;4839:96::-;4891:4;4915:7;:12;4923:3;4915:12;;;;;;;;;;;;;;;;;;;;;;;;;4908:19;;4839:96;;;:::o;12066:125::-;;;;:::o;2829:192::-;2915:7;2948:1;2943;:6;;2951:12;2935:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2975:9;2991:1;2987;:5;;;;:::i;:::-;2975:17;;3012:1;3005:8;;;2829:192;;;;;:::o;2685:136::-;2743:7;2770:43;2774:1;2777;2770:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2763:50;;2685:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:329::-;2276:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:119;;;2331:79;;:::i;:::-;2293:119;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2217:329;;;;:::o;2552:118::-;2639:24;2657:5;2639:24;:::i;:::-;2634:3;2627:37;2552:118;;:::o;2676:109::-;2757:21;2772:5;2757:21;:::i;:::-;2752:3;2745:34;2676:109;;:::o;2791:364::-;2879:3;2907:39;2940:5;2907:39;:::i;:::-;2962:71;3026:6;3021:3;2962:71;:::i;:::-;2955:78;;3042:52;3087:6;3082:3;3075:4;3068:5;3064:16;3042:52;:::i;:::-;3119:29;3141:6;3119:29;:::i;:::-;3114:3;3110:39;3103:46;;2883:272;2791:364;;;;:::o;3161:366::-;3303:3;3324:67;3388:2;3383:3;3324:67;:::i;:::-;3317:74;;3400:93;3489:3;3400:93;:::i;:::-;3518:2;3513:3;3509:12;3502:19;;3161:366;;;:::o;3533:::-;3675:3;3696:67;3760:2;3755:3;3696:67;:::i;:::-;3689:74;;3772:93;3861:3;3772:93;:::i;:::-;3890:2;3885:3;3881:12;3874:19;;3533:366;;;:::o;3905:::-;4047:3;4068:67;4132:2;4127:3;4068:67;:::i;:::-;4061:74;;4144:93;4233:3;4144:93;:::i;:::-;4262:2;4257:3;4253:12;4246:19;;3905:366;;;:::o;4277:::-;4419:3;4440:67;4504:2;4499:3;4440:67;:::i;:::-;4433:74;;4516:93;4605:3;4516:93;:::i;:::-;4634:2;4629:3;4625:12;4618:19;;4277:366;;;:::o;4649:::-;4791:3;4812:67;4876:2;4871:3;4812:67;:::i;:::-;4805:74;;4888:93;4977:3;4888:93;:::i;:::-;5006:2;5001:3;4997:12;4990:19;;4649:366;;;:::o;5021:::-;5163:3;5184:67;5248:2;5243:3;5184:67;:::i;:::-;5177:74;;5260:93;5349:3;5260:93;:::i;:::-;5378:2;5373:3;5369:12;5362:19;;5021:366;;;:::o;5393:::-;5535:3;5556:67;5620:2;5615:3;5556:67;:::i;:::-;5549:74;;5632:93;5721:3;5632:93;:::i;:::-;5750:2;5745:3;5741:12;5734:19;;5393:366;;;:::o;5765:::-;5907:3;5928:67;5992:2;5987:3;5928:67;:::i;:::-;5921:74;;6004:93;6093:3;6004:93;:::i;:::-;6122:2;6117:3;6113:12;6106:19;;5765:366;;;:::o;6137:::-;6279:3;6300:67;6364:2;6359:3;6300:67;:::i;:::-;6293:74;;6376:93;6465:3;6376:93;:::i;:::-;6494:2;6489:3;6485:12;6478:19;;6137:366;;;:::o;6509:::-;6651:3;6672:67;6736:2;6731:3;6672:67;:::i;:::-;6665:74;;6748:93;6837:3;6748:93;:::i;:::-;6866:2;6861:3;6857:12;6850:19;;6509:366;;;:::o;6881:::-;7023:3;7044:67;7108:2;7103:3;7044:67;:::i;:::-;7037:74;;7120:93;7209:3;7120:93;:::i;:::-;7238:2;7233:3;7229:12;7222:19;;6881:366;;;:::o;7253:::-;7395:3;7416:67;7480:2;7475:3;7416:67;:::i;:::-;7409:74;;7492:93;7581:3;7492:93;:::i;:::-;7610:2;7605:3;7601:12;7594:19;;7253:366;;;:::o;7625:::-;7767:3;7788:67;7852:2;7847:3;7788:67;:::i;:::-;7781:74;;7864:93;7953:3;7864:93;:::i;:::-;7982:2;7977:3;7973:12;7966:19;;7625:366;;;:::o;7997:::-;8139:3;8160:67;8224:2;8219:3;8160:67;:::i;:::-;8153:74;;8236:93;8325:3;8236:93;:::i;:::-;8354:2;8349:3;8345:12;8338:19;;7997:366;;;:::o;8369:::-;8511:3;8532:67;8596:2;8591:3;8532:67;:::i;:::-;8525:74;;8608:93;8697:3;8608:93;:::i;:::-;8726:2;8721:3;8717:12;8710:19;;8369:366;;;:::o;8741:::-;8883:3;8904:67;8968:2;8963:3;8904:67;:::i;:::-;8897:74;;8980:93;9069:3;8980:93;:::i;:::-;9098:2;9093:3;9089:12;9082:19;;8741:366;;;:::o;9113:118::-;9200:24;9218:5;9200:24;:::i;:::-;9195:3;9188:37;9113:118;;:::o;9237:112::-;9320:22;9336:5;9320:22;:::i;:::-;9315:3;9308:35;9237:112;;:::o;9355:222::-;9448:4;9486:2;9475:9;9471:18;9463:26;;9499:71;9567:1;9556:9;9552:17;9543:6;9499:71;:::i;:::-;9355:222;;;;:::o;9583:332::-;9704:4;9742:2;9731:9;9727:18;9719:26;;9755:71;9823:1;9812:9;9808:17;9799:6;9755:71;:::i;:::-;9836:72;9904:2;9893:9;9889:18;9880:6;9836:72;:::i;:::-;9583:332;;;;;:::o;9921:210::-;10008:4;10046:2;10035:9;10031:18;10023:26;;10059:65;10121:1;10110:9;10106:17;10097:6;10059:65;:::i;:::-;9921:210;;;;:::o;10137:313::-;10250:4;10288:2;10277:9;10273:18;10265:26;;10337:9;10331:4;10327:20;10323:1;10312:9;10308:17;10301:47;10365:78;10438:4;10429:6;10365:78;:::i;:::-;10357:86;;10137:313;;;;:::o;10456:419::-;10622:4;10660:2;10649:9;10645:18;10637:26;;10709:9;10703:4;10699:20;10695:1;10684:9;10680:17;10673:47;10737:131;10863:4;10737:131;:::i;:::-;10729:139;;10456:419;;;:::o;10881:::-;11047:4;11085:2;11074:9;11070:18;11062:26;;11134:9;11128:4;11124:20;11120:1;11109:9;11105:17;11098:47;11162:131;11288:4;11162:131;:::i;:::-;11154:139;;10881:419;;;:::o;11306:::-;11472:4;11510:2;11499:9;11495:18;11487:26;;11559:9;11553:4;11549:20;11545:1;11534:9;11530:17;11523:47;11587:131;11713:4;11587:131;:::i;:::-;11579:139;;11306:419;;;:::o;11731:::-;11897:4;11935:2;11924:9;11920:18;11912:26;;11984:9;11978:4;11974:20;11970:1;11959:9;11955:17;11948:47;12012:131;12138:4;12012:131;:::i;:::-;12004:139;;11731:419;;;:::o;12156:::-;12322:4;12360:2;12349:9;12345:18;12337:26;;12409:9;12403:4;12399:20;12395:1;12384:9;12380:17;12373:47;12437:131;12563:4;12437:131;:::i;:::-;12429:139;;12156:419;;;:::o;12581:::-;12747:4;12785:2;12774:9;12770:18;12762:26;;12834:9;12828:4;12824:20;12820:1;12809:9;12805:17;12798:47;12862:131;12988:4;12862:131;:::i;:::-;12854:139;;12581:419;;;:::o;13006:::-;13172:4;13210:2;13199:9;13195:18;13187:26;;13259:9;13253:4;13249:20;13245:1;13234:9;13230:17;13223:47;13287:131;13413:4;13287:131;:::i;:::-;13279:139;;13006:419;;;:::o;13431:::-;13597:4;13635:2;13624:9;13620:18;13612:26;;13684:9;13678:4;13674:20;13670:1;13659:9;13655:17;13648:47;13712:131;13838:4;13712:131;:::i;:::-;13704:139;;13431:419;;;:::o;13856:::-;14022:4;14060:2;14049:9;14045:18;14037:26;;14109:9;14103:4;14099:20;14095:1;14084:9;14080:17;14073:47;14137:131;14263:4;14137:131;:::i;:::-;14129:139;;13856:419;;;:::o;14281:::-;14447:4;14485:2;14474:9;14470:18;14462:26;;14534:9;14528:4;14524:20;14520:1;14509:9;14505:17;14498:47;14562:131;14688:4;14562:131;:::i;:::-;14554:139;;14281:419;;;:::o;14706:::-;14872:4;14910:2;14899:9;14895:18;14887:26;;14959:9;14953:4;14949:20;14945:1;14934:9;14930:17;14923:47;14987:131;15113:4;14987:131;:::i;:::-;14979:139;;14706:419;;;:::o;15131:::-;15297:4;15335:2;15324:9;15320:18;15312:26;;15384:9;15378:4;15374:20;15370:1;15359:9;15355:17;15348:47;15412:131;15538:4;15412:131;:::i;:::-;15404:139;;15131:419;;;:::o;15556:::-;15722:4;15760:2;15749:9;15745:18;15737:26;;15809:9;15803:4;15799:20;15795:1;15784:9;15780:17;15773:47;15837:131;15963:4;15837:131;:::i;:::-;15829:139;;15556:419;;;:::o;15981:::-;16147:4;16185:2;16174:9;16170:18;16162:26;;16234:9;16228:4;16224:20;16220:1;16209:9;16205:17;16198:47;16262:131;16388:4;16262:131;:::i;:::-;16254:139;;15981:419;;;:::o;16406:::-;16572:4;16610:2;16599:9;16595:18;16587:26;;16659:9;16653:4;16649:20;16645:1;16634:9;16630:17;16623:47;16687:131;16813:4;16687:131;:::i;:::-;16679:139;;16406:419;;;:::o;16831:::-;16997:4;17035:2;17024:9;17020:18;17012:26;;17084:9;17078:4;17074:20;17070:1;17059:9;17055:17;17048:47;17112:131;17238:4;17112:131;:::i;:::-;17104:139;;16831:419;;;:::o;17256:222::-;17349:4;17387:2;17376:9;17372:18;17364:26;;17400:71;17468:1;17457:9;17453:17;17444:6;17400:71;:::i;:::-;17256:222;;;;:::o;17484:214::-;17573:4;17611:2;17600:9;17596:18;17588:26;;17624:67;17688:1;17677:9;17673:17;17664:6;17624:67;:::i;:::-;17484:214;;;;:::o;17785:99::-;17837:6;17871:5;17865:12;17855:22;;17785:99;;;:::o;17890:169::-;17974:11;18008:6;18003:3;17996:19;18048:4;18043:3;18039:14;18024:29;;17890:169;;;;:::o;18065:305::-;18105:3;18124:20;18142:1;18124:20;:::i;:::-;18119:25;;18158:20;18176:1;18158:20;:::i;:::-;18153:25;;18312:1;18244:66;18240:74;18237:1;18234:81;18231:107;;;18318:18;;:::i;:::-;18231:107;18362:1;18359;18355:9;18348:16;;18065:305;;;;:::o;18376:848::-;18437:5;18444:4;18468:6;18459:15;;18492:5;18483:14;;18506:712;18527:1;18517:8;18514:15;18506:712;;;18622:4;18617:3;18613:14;18607:4;18604:24;18601:50;;;18631:18;;:::i;:::-;18601:50;18681:1;18671:8;18667:16;18664:451;;;19096:4;19089:5;19085:16;19076:25;;18664:451;19146:4;19140;19136:15;19128:23;;19176:32;19199:8;19176:32;:::i;:::-;19164:44;;18506:712;;;18376:848;;;;;;;:::o;19230:285::-;19290:5;19314:23;19332:4;19314:23;:::i;:::-;19306:31;;19358:27;19376:8;19358:27;:::i;:::-;19346:39;;19404:104;19441:66;19431:8;19425:4;19404:104;:::i;:::-;19395:113;;19230:285;;;;:::o;19521:1073::-;19575:5;19766:8;19756:40;;19787:1;19778:10;;19789:5;;19756:40;19815:4;19805:36;;19832:1;19823:10;;19834:5;;19805:36;19901:4;19949:1;19944:27;;;;19985:1;19980:191;;;;19894:277;;19944:27;19962:1;19953:10;;19964:5;;;19980:191;20025:3;20015:8;20012:17;20009:43;;;20032:18;;:::i;:::-;20009:43;20081:8;20078:1;20074:16;20065:25;;20116:3;20109:5;20106:14;20103:40;;;20123:18;;:::i;:::-;20103:40;20156:5;;;19894:277;;20280:2;20270:8;20267:16;20261:3;20255:4;20252:13;20248:36;20230:2;20220:8;20217:16;20212:2;20206:4;20203:12;20199:35;20183:111;20180:246;;;20336:8;20330:4;20326:19;20317:28;;20371:3;20364:5;20361:14;20358:40;;;20378:18;;:::i;:::-;20358:40;20411:5;;20180:246;20451:42;20489:3;20479:8;20473:4;20470:1;20451:42;:::i;:::-;20436:57;;;;20525:4;20520:3;20516:14;20509:5;20506:25;20503:51;;;20534:18;;:::i;:::-;20503:51;20583:4;20576:5;20572:16;20563:25;;19521:1073;;;;;;:::o;20600:348::-;20640:7;20663:20;20681:1;20663:20;:::i;:::-;20658:25;;20697:20;20715:1;20697:20;:::i;:::-;20692:25;;20885:1;20817:66;20813:74;20810:1;20807:81;20802:1;20795:9;20788:17;20784:105;20781:131;;;20892:18;;:::i;:::-;20781:131;20940:1;20937;20933:9;20922:20;;20600:348;;;;:::o;20954:191::-;20994:4;21014:20;21032:1;21014:20;:::i;:::-;21009:25;;21048:20;21066:1;21048:20;:::i;:::-;21043:25;;21087:1;21084;21081:8;21078:34;;;21092:18;;:::i;:::-;21078:34;21137:1;21134;21130:9;21122:17;;20954:191;;;;:::o;21151:96::-;21188:7;21217:24;21235:5;21217:24;:::i;:::-;21206:35;;21151:96;;;:::o;21253:90::-;21287:7;21330:5;21323:13;21316:21;21305:32;;21253:90;;;:::o;21349:126::-;21386:7;21426:42;21419:5;21415:54;21404:65;;21349:126;;;:::o;21481:77::-;21518:7;21547:5;21536:16;;21481:77;;;:::o;21564:86::-;21599:7;21639:4;21632:5;21628:16;21617:27;;21564:86;;;:::o;21656:307::-;21724:1;21734:113;21748:6;21745:1;21742:13;21734:113;;;21833:1;21828:3;21824:11;21818:18;21814:1;21809:3;21805:11;21798:39;21770:2;21767:1;21763:10;21758:15;;21734:113;;;21865:6;21862:1;21859:13;21856:101;;;21945:1;21936:6;21931:3;21927:16;21920:27;21856:101;21705:258;21656:307;;;:::o;21969:320::-;22013:6;22050:1;22044:4;22040:12;22030:22;;22097:1;22091:4;22087:12;22118:18;22108:81;;22174:4;22166:6;22162:17;22152:27;;22108:81;22236:2;22228:6;22225:14;22205:18;22202:38;22199:84;;;22255:18;;:::i;:::-;22199:84;22020:269;21969:320;;;:::o;22295:180::-;22343:77;22340:1;22333:88;22440:4;22437:1;22430:15;22464:4;22461:1;22454:15;22481:180;22529:77;22526:1;22519:88;22626:4;22623:1;22616:15;22650:4;22647:1;22640:15;22790:117;22899:1;22896;22889:12;22913:102;22954:6;23005:2;23001:7;22996:2;22989:5;22985:14;22981:28;22971:38;;22913:102;;;:::o;23021:::-;23063:8;23110:5;23107:1;23103:13;23082:34;;23021:102;;;:::o;23129:222::-;23269:34;23265:1;23257:6;23253:14;23246:58;23338:5;23333:2;23325:6;23321:15;23314:30;23129:222;:::o;23357:175::-;23497:27;23493:1;23485:6;23481:14;23474:51;23357:175;:::o;23538:225::-;23678:34;23674:1;23666:6;23662:14;23655:58;23747:8;23742:2;23734:6;23730:15;23723:33;23538:225;:::o;23769:221::-;23909:34;23905:1;23897:6;23893:14;23886:58;23978:4;23973:2;23965:6;23961:15;23954:29;23769:221;:::o;23996:177::-;24136:29;24132:1;24124:6;24120:14;24113:53;23996:177;:::o;24179:179::-;24319:31;24315:1;24307:6;24303:14;24296:55;24179:179;:::o;24364:225::-;24504:34;24500:1;24492:6;24488:14;24481:58;24573:8;24568:2;24560:6;24556:15;24549:33;24364:225;:::o;24595:173::-;24735:25;24731:1;24723:6;24719:14;24712:49;24595:173;:::o;24774:182::-;24914:34;24910:1;24902:6;24898:14;24891:58;24774:182;:::o;24962:220::-;25102:34;25098:1;25090:6;25086:14;25079:58;25171:3;25166:2;25158:6;25154:15;25147:28;24962:220;:::o;25188:224::-;25328:34;25324:1;25316:6;25312:14;25305:58;25397:7;25392:2;25384:6;25380:15;25373:32;25188:224;:::o;25418:223::-;25558:34;25554:1;25546:6;25542:14;25535:58;25627:6;25622:2;25614:6;25610:15;25603:31;25418:223;:::o;25647:178::-;25787:30;25783:1;25775:6;25771:14;25764:54;25647:178;:::o;25831:224::-;25971:34;25967:1;25959:6;25955:14;25948:58;26040:7;26035:2;26027:6;26023:15;26016:32;25831:224;:::o;26061:181::-;26201:33;26197:1;26189:6;26185:14;26178:57;26061:181;:::o;26248:224::-;26388:34;26384:1;26376:6;26372:14;26365:58;26457:7;26452:2;26444:6;26440:15;26433:32;26248:224;:::o;26478:122::-;26551:24;26569:5;26551:24;:::i;:::-;26544:5;26541:35;26531:63;;26590:1;26587;26580:12;26531:63;26478:122;:::o;26606:::-;26679:24;26697:5;26679:24;:::i;:::-;26672:5;26669:35;26659:63;;26718:1;26715;26708:12;26659:63;26606:122;:::o

Swarm Source

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