ETH Price: $1,797.19 (+2.21%)
Gas: 15 Gwei

Contract

0x888888848B652B3E3a0f34c96E00EEC0F3a23F72
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multi Chain

Multichain Addresses

6 addresses found via Blockscan
Transaction Hash
Method
Block
From
To
Value
0x947731db4043ba64ee26ad201bf616d02a9cab2f95f686634b269464058cd03fClaim(pending)2023-03-21 21:50:152 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0xf6bad72a571fec367fa93314f88a3ed9ba446de8bb7946043096a594a8c4c123Transfer(pending)2023-03-20 21:27:461 day 25 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x2f1e591b1fc819234e8ed25dd80cfbd9b5efaedf7a90ebf7b848c88761c5e201Transfer(pending)2023-03-19 6:22:082 days 15 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x73354203c62182313c03c30880d6a59583111c666b2c74cfeb7c3ea33d689fa1Transfer(pending)2023-03-19 3:35:372 days 18 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x98432d3cde38f7b892a1ef5c0a4e769b35d47342e89ee3a715b344be3ca7c314Transfer(pending)2023-03-19 2:50:032 days 19 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0xc9d2a890ab70ac332103211893c87904430d2fa60070ca6db043c329008b4421Claim(pending)2023-03-19 1:58:012 days 19 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x9332d0d8d0be2fad89af86740a2a0d689b2372c440e954d392fd20f5cc61c8f8Transfer(pending)2023-03-19 1:51:502 days 20 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x4fcf11ade2c70108cc3a99ec4f0f837c61f48abb2ead42229e291c5f29bbd456Transfer(pending)2023-03-19 1:33:522 days 20 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x3d158ec9c385555d2ae82659375223675bb1e2420976d35a7ec019ccdb9b11beTransfer(pending)2023-03-19 1:32:412 days 20 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
0x9ec4c7ec863e1d467ac711e28c2aa0081ecc61d1cd0322bd9f62a7bbcbf342ebTransfer(pending)2023-03-19 1:29:052 days 20 hrs agoIN
Alien Worlds Trilium: TLM Token
0 ETH(Pending)(Pending)
Teleport168785742023-03-21 21:07:2345 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0007690723.90136019
Transfer168785632023-03-21 21:05:1147 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0015755430.20893193
Transfer168785022023-03-21 20:52:5959 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0005741418.96931366
Transfer168784812023-03-21 20:48:471 hr 4 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0009117426
Transfer168784262023-03-21 20:37:471 hr 15 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0013325525.54996187
Transfer168783802023-03-21 20:28:111 hr 24 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0006145817.53194173
Transfer168783612023-03-21 20:24:231 hr 28 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0011998423
Transfer168782042023-03-21 19:52:591 hr 59 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0006208220.51158148
Transfer168781812023-03-21 19:48:232 hrs 4 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0011998423
Transfer168776132023-03-21 17:52:593 hrs 59 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.000787326.02222885
Transfer168775802023-03-21 17:46:234 hrs 6 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0018775836
Transfer168774672023-03-21 17:23:114 hrs 29 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.000998232.98006127
Transfer168774432023-03-21 17:18:234 hrs 34 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0022953444
Transfer168770622023-03-21 16:00:115 hrs 52 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0009011929.77498044
Transfer168770322023-03-21 15:54:115 hrs 58 mins agoIN
Alien Worlds Trilium: TLM Token
0 ETH0.0018780136
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TeleportToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-21
*/

pragma solidity ^0.6.12;
/*
 * SPDX-License-Identifier: MIT
 */
pragma experimental ABIEncoderV2;


contract Verify {

  function recoverSigner(bytes32 message, bytes memory sig)
       public
       pure
       returns (address)
    {
       uint8 v;
       bytes32 r;
       bytes32 s;

       (v, r, s) = splitSignature(sig);

       if (v != 27 && v != 28) {
           return (address(0));
       } else {
           // solium-disable-next-line arg-overflow
           return ecrecover(message, v, r, s);
       }
  }

  function splitSignature(bytes memory sig)
       public
       pure
       returns (uint8, bytes32, bytes32)
   {
       require(sig.length == 65);

       bytes32 r;
       bytes32 s;
       uint8 v;

       assembly {
           // first 32 bytes, after the length prefix
           r := mload(add(sig, 32))
           // second 32 bytes
           s := mload(add(sig, 64))
           // final byte (first byte of the next 32 bytes)
           v := byte(0, mload(add(sig, 96)))
       }

       if (v < 27)
           v += 27;

       return (v, r, s);
   }
}


library Endian {
    /* https://ethereum.stackexchange.com/questions/83626/how-to-reverse-byte-order-in-uint256-or-bytes32 */
    function reverse64(uint64 input) internal pure returns (uint64 v) {
        v = input;

        // swap bytes
        v = ((v & 0xFF00FF00FF00FF00) >> 8) |
            ((v & 0x00FF00FF00FF00FF) << 8);

        // swap 2-byte long pairs
        v = ((v & 0xFFFF0000FFFF0000) >> 16) |
            ((v & 0x0000FFFF0000FFFF) << 16);

        // swap 4-byte long pairs
        v = (v >> 32) | (v << 32);
    }
    function reverse32(uint32 input) internal pure returns (uint32 v) {
        v = input;

        // swap bytes
        v = ((v & 0xFF00FF00) >> 8) |
            ((v & 0x00FF00FF) << 8);

        // swap 2-byte long pairs
        v = (v >> 16) | (v << 16);
    }
    function reverse16(uint16 input) internal pure returns (uint16 v) {
        v = input;

        // swap bytes
        v = (v >> 8) | (v << 8);
    }
}

// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}


// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// ----------------------------------------------------------------------------
abstract contract ERC20Interface {
    function totalSupply() virtual public view returns (uint);
    function balanceOf(address tokenOwner) virtual public view returns (uint balance);
    function allowance(address tokenOwner, address spender) virtual public view returns (uint remaining);
    function transfer(address to, uint tokens) virtual public returns (bool success);
    function approve(address spender, uint tokens) virtual public returns (bool success);
    function transferFrom(address from, address to, uint tokens) virtual public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
abstract contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes memory data) virtual public;
}


// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}


contract Oracled is Owned {
    mapping(address => bool) public oracles;

    modifier onlyOracle {
        require(oracles[msg.sender] == true, "Account is not a registered oracle");

        _;
    }

    function regOracle(address _newOracle) public onlyOwner {
        require(!oracles[_newOracle], "Oracle is already registered");

        oracles[_newOracle] = true;
    }

    function unregOracle(address _remOracle) public onlyOwner {
        require(oracles[_remOracle] == true, "Oracle is not registered");

        delete oracles[_remOracle];
    }
}

// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and an
// initial fixed supply, added teleport method
// ----------------------------------------------------------------------------
contract TeleportToken is ERC20Interface, Owned, Oracled, Verify {
    using SafeMath for uint;

    string public symbol;
    string public  name;
    uint8 public decimals;
    uint public _totalSupply;
    uint8 public threshold;
    uint8 public thisChainId;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;

    mapping(uint64 => mapping(address => bool)) signed;
    mapping(uint64 => bool) public claimed;

    event Teleport(address indexed from, string to, uint tokens, uint chainId);
    event Claimed(uint64 id, address to, uint tokens);

    struct TeleportData {
        uint64 id;
        uint32 ts;
        uint64 fromAddr;
        uint64 quantity;
        uint64 symbolRaw;
        uint8 chainId;
        address toAddress;
    }

    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public {
        symbol = "TLM";
        name = "Alien Worlds Trilium";
        decimals = 4;
        _totalSupply = 10000000000 * 10**uint(decimals);
        balances[address(0)] = _totalSupply;
        threshold = 3;
        thisChainId = 1;
    }


    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply() override public view returns (uint) {
        return _totalSupply - balances[address(0)];
    }


    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) override public view returns (uint balance) {
        return balances[tokenOwner];
    }


    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transfer(address to, uint tokens) override public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account
    //
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
    // recommends that there are no checks for the approval double-spend attack
    // as this should be implemented in user interfaces
    // ------------------------------------------------------------------------
    function approve(address spender, uint tokens) override public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Transfer `tokens` from the `from` account to the `to` account
    //
    // The calling account must already have sufficient tokens approve(...)-d
    // for spending from the `from` account and
    // - From account must have sufficient balance to transfer
    // - Spender must have sufficient allowance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transferFrom(address from, address to, uint tokens) override public returns (bool success) {
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(from, to, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address tokenOwner, address spender) override public view returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
    // `receiveApproval(...)` is then executed
    // ------------------------------------------------------------------------
    function approveAndCall(address spender, uint tokens, bytes memory data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
        return true;
    }


    // ------------------------------------------------------------------------
    // Moves tokens to the inaccessible account and then sends event for the oracles
    // to monitor and issue on other chain
    // to : EOS address
    // tokens : number of tokens in satoshis
    // chainId : The chain id that they will be sent to
    // ------------------------------------------------------------------------

    function teleport(string memory to, uint tokens, uint chainid) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[address(0)] = balances[address(0)].add(tokens);
        emit Teleport(msg.sender, to, tokens, chainid);

        return true;
    }


    // ------------------------------------------------------------------------
    // Claim tokens sent using signatures supplied to the other chain
    // ------------------------------------------------------------------------


    function verifySigData(bytes memory sigData) private returns (TeleportData memory) {
        TeleportData memory td;

        uint64 id;
        uint32 ts;
        uint64 fromAddr;
        uint64 quantity;
        uint64 symbolRaw;
        uint8 chainId;
        address toAddress;

        assembly {
            id := mload(add(add(sigData, 0x8), 0))
            ts := mload(add(add(sigData, 0x4), 8))
            fromAddr := mload(add(add(sigData, 0x8), 12))
            quantity := mload(add(add(sigData, 0x8), 20))
            symbolRaw := mload(add(add(sigData, 0x8), 28))
            chainId := mload(add(add(sigData, 0x1), 36))
            toAddress := mload(add(add(sigData, 0x14), 37))
        }

        td.id = Endian.reverse64(id);
        td.ts = Endian.reverse32(ts);
        td.fromAddr = Endian.reverse64(fromAddr);
        td.quantity = Endian.reverse64(quantity);
        td.symbolRaw = Endian.reverse64(symbolRaw);
        td.chainId = chainId;
        td.toAddress = toAddress;

        require(thisChainId == td.chainId, "Invalid Chain ID");
        require(block.timestamp < SafeMath.add(td.ts, (60 * 60 * 24 * 30)), "Teleport has expired");

        require(!claimed[td.id], "Already Claimed");

        claimed[td.id] = true;

        return td;
    }

    function claim(bytes memory sigData, bytes[] calldata signatures) public returns (address toAddress) {
        TeleportData memory td = verifySigData(sigData);

        // verify signatures
        require(sigData.length == 69, "Signature data is the wrong size");
        require(signatures.length <= 10, "Maximum of 10 signatures can be provided");

        bytes32 message = keccak256(sigData);

        uint8 numberSigs = 0;

        for (uint8 i = 0; i < signatures.length; i++){
            address potential = Verify.recoverSigner(message, signatures[i]);

            // Check that they are an oracle and they haven't signed twice
            if (oracles[potential] && !signed[td.id][potential]){
                signed[td.id][potential] = true;
                numberSigs++;

                if (numberSigs >= 10){
                    break;
                }
            }
        }

        require(numberSigs >= threshold, "Not enough valid signatures provided");

        balances[address(0)] = balances[address(0)].sub(td.quantity);
        balances[td.toAddress] = balances[td.toAddress].add(td.quantity);

        emit Claimed(td.id, td.toAddress, td.quantity);
        emit Transfer(address(0), td.toAddress, td.quantity);

        return td.toAddress;
    }

    function updateThreshold(uint8 newThreshold) public onlyOwner returns (bool success) {
        if (newThreshold > 0){
            require(newThreshold <= 10, "Threshold has maximum of 10");

            threshold = newThreshold;

            return true;
        }

        return false;
    }

    function updateChainId(uint8 newChainId) public onlyOwner returns (bool success) {
        if (newChainId > 0){
            require(newChainId <= 100, "ChainID is too big");
            thisChainId = newChainId;

            return true;
        }

        return false;
    }

    // ------------------------------------------------------------------------
    // Don't accept ETH
    // ------------------------------------------------------------------------
    receive () external payable {
        revert();
    }


    // ------------------------------------------------------------------------
    // Owner can transfer out any accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"id","type":"uint64"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"to","type":"string"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"Teleport","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":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"sigData","type":"bytes"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"claim","outputs":[{"internalType":"address","name":"toAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oracles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"message","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newOracle","type":"address"}],"name":"regOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"splitSignature","outputs":[{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"to","type":"string"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"uint256","name":"chainid","type":"uint256"}],"name":"teleport","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"thisChainId","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"threshold","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_remOracle","type":"address"}],"name":"unregOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newChainId","type":"uint8"}],"name":"updateChainId","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newThreshold","type":"uint8"}],"name":"updateThreshold","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600381526020017f544c4d0000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f929190620001b1565b506040518060400160405280601481526020017f416c69656e20576f726c6473205472696c69756d00000000000000000000000081525060049080519060200190620000ed929190620001b1565b506004600560006101000a81548160ff021916908360ff160217905550600560009054906101000a900460ff1660ff16600a0a6402540be40002600681905550600654600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003600760006101000a81548160ff021916908360ff1602179055506001600760016101000a81548160ff021916908360ff16021790555062000257565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f457805160ff191683800117855562000225565b8280016001018555821562000225579182015b828111156200022457825182559160200191906001019062000207565b5b50905062000234919062000238565b5090565b5b808211156200025357600081600090555060010162000239565b5090565b61335180620002676000396000f3fe6080604052600436106101bb5760003560e01c806395d89b41116100ec578063cae9ca511161008a578063dd62ed3e11610064578063dd62ed3e146106a6578063e3d29c5d146106e3578063f2fde38b1461070e578063f3df5b6914610737576101c5565b8063cae9ca5114610601578063d4ee1d901461063e578063dc39d06d14610669576101c5565b80639ea8a71a116100c65780639ea8a71a1461050b578063a7bb580314610548578063a9059cbb14610587578063addd5099146105c4576101c5565b806395d89b411461046657806397aba7f9146104915780639e8da543146104ce576101c5565b80636426d53d116101595780637739acc7116101335780637739acc7146103be57806379ba5097146103fb578063825540c7146104125780638da5cb5b1461043b576101c5565b80636426d53d1461031b57806370a0823114610358578063769c8d9014610395576101c5565b806323b872dd1161019557806323b872dd1461025d578063313ce5671461029a5780633eaaf86b146102c557806342cde4e8146102f0576101c5565b806306fdde03146101ca578063095ea7b3146101f557806318160ddd14610232576101c5565b366101c557600080fd5b600080fd5b3480156101d657600080fd5b506101df610774565b6040516101ec9190612e10565b60405180910390f35b34801561020157600080fd5b5061021c600480360381019061021791906126e0565b610812565b6040516102299190612db0565b60405180910390f35b34801561023e57600080fd5b50610247610904565b6040516102549190612fb0565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612691565b61094f565b6040516102919190612db0565b60405180910390f35b3480156102a657600080fd5b506102af610bfa565b6040516102bc919061301d565b60405180910390f35b3480156102d157600080fd5b506102da610c0d565b6040516102e79190612fb0565b60405180910390f35b3480156102fc57600080fd5b50610305610c13565b604051610312919061301d565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190612841565b610c26565b60405161034f9190612d20565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061262c565b61113c565b60405161038c9190612fb0565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b7919061262c565b611185565b005b3480156103ca57600080fd5b506103e560048036038101906103e09190612941565b6112c2565b6040516103f29190612db0565b60405180910390f35b34801561040757600080fd5b5061041061139e565b005b34801561041e57600080fd5b506104396004803603810190610434919061262c565b61153a565b005b34801561044757600080fd5b5061045061167a565b60405161045d9190612d20565b60405180910390f35b34801561047257600080fd5b5061047b61169e565b6040516104889190612e10565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906127ac565b61173c565b6040516104c59190612d20565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190612918565b6117db565b6040516105029190612db0565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d91906128b1565b6117fb565b60405161053f9190612db0565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a9190612800565b611984565b60405161057e93929190613038565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a991906126e0565b6119da565b6040516105bb9190612db0565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e6919061262c565b611b75565b6040516105f89190612db0565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061271c565b611b95565b6040516106359190612db0565b60405180910390f35b34801561064a57600080fd5b50610653611cf9565b6040516106609190612d20565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b91906126e0565b611d1f565b60405161069d9190612db0565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190612655565b611e2f565b6040516106da9190612fb0565b60405180910390f35b3480156106ef57600080fd5b506106f8611eb6565b604051610705919061301d565b60405180910390f35b34801561071a57600080fd5b506107356004803603810190610730919061262c565b611ec9565b005b34801561074357600080fd5b5061075e60048036038101906107599190612941565b611f65565b60405161076b9190612db0565b60405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561080a5780601f106107df5761010080835404028352916020019161080a565b820191906000526020600020905b8154815290600101906020018083116107ed57829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f29190612fb0565b60405180910390a36001905092915050565b6000600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460065403905090565b60006109a382600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7582600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b4782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610be79190612fb0565b60405180910390a3600190509392505050565b600560009054906101000a900460ff1681565b60065481565b600760009054906101000a900460ff1681565b6000610c30612438565b610c3985612075565b90506045855114610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7690612ef0565b60405180910390fd5b600a848490501115610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd90612eb0565b60405180910390fd5b6000858051906020012090506000805b868690508160ff161015610ecf576000610d538489898560ff16818110610cf957fe5b9050602002810190610d0b919061306f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061173c565b9050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610e215750600a6000866000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610ec1576001600a6000876000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508280600101935050600a8360ff1610610ec05750610ecf565b5b508080600101915050610cd6565b50600760009054906101000a900460ff1660ff168160ff161015610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f90612f90565b60405180910390fd5b610f88836060015167ffffffffffffffff16600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061102f836060015167ffffffffffffffff16600860008660c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008560c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507ff20fc6923b8057dd0c3b606483fcaa038229bb36ebc35a0040e3eaa39cf97b1783600001518460c0015185606001516040516110b593929190612fe6565b60405180910390a18260c0015173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85606001516040516111239190612fcb565b60405180910390a38260c0015193505050509392505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111dd57600080fd5b60011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612f30565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461131d57600080fd5b60008260ff1611156113945760648260ff161115611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790612f10565b60405180910390fd5b81600760016101000a81548160ff021916908360ff16021790555060019050611399565b600090505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159257600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561161f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161690612ed0565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117345780601f1061170957610100808354040283529160200191611734565b820191906000526020600020905b81548152906001019060200180831161171757829003601f168201915b505050505081565b60008060008061174b85611984565b809350819450829550505050601b8360ff161415801561176f5750601c8360ff1614155b1561178057600093505050506117d5565b600186848484604051600081526020016040526040516117a39493929190612dcb565b6020604051602081039080840390855afa1580156117c5573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600061184f83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118e483600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f622824274e0937ee319b036740cd0887131781bc2032b47eac3e88a1be17f5d585858560405161197193929190612e32565b60405180910390a2600190509392505050565b6000806000604184511461199757600080fd5b60008060006020870151925060408701519150606087015160001a9050601b8160ff1610156119c757601b810190505b8083839550955095505050509193909250565b6000611a2e82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b639190612fb0565b60405180910390a36001905092915050565b60026020528060005260406000206000915054906101000a900460ff1681565b600082600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051611c759190612fb0565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401611cbc9493929190612d3b565b600060405180830381600087803b158015611cd657600080fd5b505af1158015611cea573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d7a57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611dd5929190612d87565b602060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e279190612783565b905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760019054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f2157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fc057600080fd5b60008260ff16111561203757600a8260ff161115612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90612e90565b60405180910390fd5b81600760006101000a81548160ff021916908360ff1602179055506001905061203c565b600090505b919050565b60008282111561205057600080fd5b818303905092915050565b600081830190508281101561206f57600080fd5b92915050565b61207d612438565b612085612438565b60008060008060008060008060088b0101519650600860048b0101519550600c60088b0101519450601460088b0101519350601c60088b0101519250602460018b0101519150602560148b01015190506120de8761235f565b886000019067ffffffffffffffff16908167ffffffffffffffff1681525050612106866123f1565b886020019063ffffffff16908163ffffffff16815250506121268561235f565b886040019067ffffffffffffffff16908167ffffffffffffffff168152505061214e8461235f565b886060019067ffffffffffffffff16908167ffffffffffffffff16815250506121768361235f565b886080019067ffffffffffffffff16908167ffffffffffffffff1681525050818860a0019060ff16908160ff1681525050808860c0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508760a0015160ff16600760019054906101000a900460ff1660ff161461223a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223190612e70565b60405180910390fd5b612251886020015163ffffffff1662278d0061205b565b4210612292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228990612f50565b60405180910390fd5b600b6000896000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561230b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230290612f70565b60405180910390fd5b6001600b60008a6000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508798505050505050505050919050565b6000819050600866ff00ff00ff00ff821667ffffffffffffffff16901b600867ff00ff00ff00ff00831667ffffffffffffffff16901c179050601065ffff0000ffff821667ffffffffffffffff16901b601067ffff0000ffff0000831667ffffffffffffffff16901c17905060208167ffffffffffffffff16901b60208267ffffffffffffffff16901c179050919050565b6000819050600862ff00ff821663ffffffff16901b600863ff00ff00831663ffffffff16901c17905060108163ffffffff16901b60108263ffffffff16901c179050919050565b6040518060e00160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000813590506124cb81613291565b92915050565b60008083601f8401126124e357600080fd5b8235905067ffffffffffffffff8111156124fc57600080fd5b60208301915083602082028301111561251457600080fd5b9250929050565b60008151905061252a816132a8565b92915050565b60008135905061253f816132bf565b92915050565b600082601f83011261255657600080fd5b8135612569612564826130f3565b6130c6565b9150808252602083016020830185838301111561258557600080fd5b61259083828461323e565b50505092915050565b600082601f8301126125aa57600080fd5b81356125bd6125b88261311f565b6130c6565b915080825260208301602083018583830111156125d957600080fd5b6125e483828461323e565b50505092915050565b6000813590506125fc816132d6565b92915050565b600081359050612611816132ed565b92915050565b60008135905061262681613304565b92915050565b60006020828403121561263e57600080fd5b600061264c848285016124bc565b91505092915050565b6000806040838503121561266857600080fd5b6000612676858286016124bc565b9250506020612687858286016124bc565b9150509250929050565b6000806000606084860312156126a657600080fd5b60006126b4868287016124bc565b93505060206126c5868287016124bc565b92505060406126d6868287016125ed565b9150509250925092565b600080604083850312156126f357600080fd5b6000612701858286016124bc565b9250506020612712858286016125ed565b9150509250929050565b60008060006060848603121561273157600080fd5b600061273f868287016124bc565b9350506020612750868287016125ed565b925050604084013567ffffffffffffffff81111561276d57600080fd5b61277986828701612545565b9150509250925092565b60006020828403121561279557600080fd5b60006127a38482850161251b565b91505092915050565b600080604083850312156127bf57600080fd5b60006127cd85828601612530565b925050602083013567ffffffffffffffff8111156127ea57600080fd5b6127f685828601612545565b9150509250929050565b60006020828403121561281257600080fd5b600082013567ffffffffffffffff81111561282c57600080fd5b61283884828501612545565b91505092915050565b60008060006040848603121561285657600080fd5b600084013567ffffffffffffffff81111561287057600080fd5b61287c86828701612545565b935050602084013567ffffffffffffffff81111561289957600080fd5b6128a5868287016124d1565b92509250509250925092565b6000806000606084860312156128c657600080fd5b600084013567ffffffffffffffff8111156128e057600080fd5b6128ec86828701612599565b93505060206128fd868287016125ed565b925050604061290e868287016125ed565b9150509250925092565b60006020828403121561292a57600080fd5b600061293884828501612602565b91505092915050565b60006020828403121561295357600080fd5b600061296184828501612617565b91505092915050565b612973816131f6565b82525050565b61298281613183565b82525050565b61299181613195565b82525050565b6129a0816131a1565b82525050565b60006129b18261314b565b6129bb8185613161565b93506129cb81856020860161324d565b6129d481613280565b840191505092915050565b60006129ea82613156565b6129f48185613172565b9350612a0481856020860161324d565b612a0d81613280565b840191505092915050565b6000612a25601083613172565b91507f496e76616c696420436861696e204944000000000000000000000000000000006000830152602082019050919050565b6000612a65601b83613172565b91507f5468726573686f6c6420686173206d6178696d756d206f6620313000000000006000830152602082019050919050565b6000612aa5602883613172565b91507f4d6178696d756d206f66203130207369676e6174757265732063616e2062652060008301527f70726f76696465640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0b601c83613172565b91507f4f7261636c6520697320616c72656164792072656769737465726564000000006000830152602082019050919050565b6000612b4b602083613172565b91507f5369676e61747572652064617461206973207468652077726f6e672073697a656000830152602082019050919050565b6000612b8b601283613172565b91507f436861696e494420697320746f6f2062696700000000000000000000000000006000830152602082019050919050565b6000612bcb601883613172565b91507f4f7261636c65206973206e6f74207265676973746572656400000000000000006000830152602082019050919050565b6000612c0b601483613172565b91507f54656c65706f72742068617320657870697265640000000000000000000000006000830152602082019050919050565b6000612c4b600f83613172565b91507f416c726561647920436c61696d656400000000000000000000000000000000006000830152602082019050919050565b6000612c8b602483613172565b91507f4e6f7420656e6f7567682076616c6964207369676e6174757265732070726f7660008301527f69646564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b612ced816131cb565b82525050565b612cfc8161322c565b82525050565b612d0b816131d5565b82525050565b612d1a816131e9565b82525050565b6000602082019050612d356000830184612979565b92915050565b6000608082019050612d50600083018761296a565b612d5d6020830186612ce4565b612d6a604083018561296a565b8181036060830152612d7c81846129a6565b905095945050505050565b6000604082019050612d9c6000830185612979565b612da96020830184612ce4565b9392505050565b6000602082019050612dc56000830184612988565b92915050565b6000608082019050612de06000830187612997565b612ded6020830186612d11565b612dfa6040830185612997565b612e076060830184612997565b95945050505050565b60006020820190508181036000830152612e2a81846129df565b905092915050565b60006060820190508181036000830152612e4c81866129df565b9050612e5b6020830185612ce4565b612e686040830184612ce4565b949350505050565b60006020820190508181036000830152612e8981612a18565b9050919050565b60006020820190508181036000830152612ea981612a58565b9050919050565b60006020820190508181036000830152612ec981612a98565b9050919050565b60006020820190508181036000830152612ee981612afe565b9050919050565b60006020820190508181036000830152612f0981612b3e565b9050919050565b60006020820190508181036000830152612f2981612b7e565b9050919050565b60006020820190508181036000830152612f4981612bbe565b9050919050565b60006020820190508181036000830152612f6981612bfe565b9050919050565b60006020820190508181036000830152612f8981612c3e565b9050919050565b60006020820190508181036000830152612fa981612c7e565b9050919050565b6000602082019050612fc56000830184612ce4565b92915050565b6000602082019050612fe06000830184612cf3565b92915050565b6000606082019050612ffb6000830186612d02565b6130086020830185612979565b6130156040830184612cf3565b949350505050565b60006020820190506130326000830184612d11565b92915050565b600060608201905061304d6000830186612d11565b61305a6020830185612997565b6130676040830184612997565b949350505050565b6000808335600160200384360303811261308857600080fd5b80840192508235915067ffffffffffffffff8211156130a657600080fd5b6020830192506001820236038313156130be57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff821117156130e957600080fd5b8060405250919050565b600067ffffffffffffffff82111561310a57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561313657600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061318e826131ab565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061320182613208565b9050919050565b60006132138261321a565b9050919050565b6000613225826131ab565b9050919050565b6000613237826131d5565b9050919050565b82818337600083830152505050565b60005b8381101561326b578082015181840152602081019050613250565b8381111561327a576000848401525b50505050565b6000601f19601f8301169050919050565b61329a81613183565b81146132a557600080fd5b50565b6132b181613195565b81146132bc57600080fd5b50565b6132c8816131a1565b81146132d357600080fd5b50565b6132df816131cb565b81146132ea57600080fd5b50565b6132f6816131d5565b811461330157600080fd5b50565b61330d816131e9565b811461331857600080fd5b5056fea264697066735822122096ea4bb0a78d8d74e167250f466bd38d23273f80f65efe9a80cd7a330d9a513464736f6c634300060c0033

Deployed ByteCode Sourcemap

5968:10253:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15780:8;;;5968:10253;;;;6099:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9062:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7443:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9822:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6125:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6153:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6184:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13633:1309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5500:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15261:285;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4896:196;;;;;;;;;;;;;:::i;:::-;;5317:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4496:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6072;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;130:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6404:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11751:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;554:583;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;8270:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5134:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10986:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4523:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16034:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10462:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6213:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4786:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14950:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6099:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9062:217::-;9134:12;9190:6;9159:7;:19;9167:10;9159:19;;;;;;;;;;;;;;;:28;9179:7;9159:28;;;;;;;;;;;;;;;:37;;;;9233:7;9212:37;;9221:10;9212:37;;;9242:6;9212:37;;;;;;:::i;:::-;;;;;;;;9267:4;9260:11;;9062:217;;;;:::o;7443:120::-;7496:4;7535:8;:20;7552:1;7535:20;;;;;;;;;;;;;;;;7520:12;;:35;7513:42;;7443:120;:::o;9822:352::-;9908:12;9950:26;9969:6;9950:8;:14;9959:4;9950:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;9933:8;:14;9942:4;9933:14;;;;;;;;;;;;;;;:43;;;;10015:37;10045:6;10015:7;:13;10023:4;10015:13;;;;;;;;;;;;;;;:25;10029:10;10015:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;9987:7;:13;9995:4;9987:13;;;;;;;;;;;;;;;:25;10001:10;9987:25;;;;;;;;;;;;;;;:65;;;;10078:24;10095:6;10078:8;:12;10087:2;10078:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;10063:8;:12;10072:2;10063:12;;;;;;;;;;;;;;;:39;;;;10133:2;10118:26;;10127:4;10118:26;;;10137:6;10118:26;;;;;;:::i;:::-;;;;;;;;10162:4;10155:11;;9822:352;;;;;:::o;6125:21::-;;;;;;;;;;;;;:::o;6153:24::-;;;;:::o;6184:22::-;;;;;;;;;;;;;:::o;13633:1309::-;13715:17;13745:22;;:::i;:::-;13770;13784:7;13770:13;:22::i;:::-;13745:47;;13861:2;13843:7;:14;:20;13835:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13940:2;13919:10;;:17;;:23;;13911:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;14000:15;14028:7;14018:18;;;;;;14000:36;;14049:16;14087:7;14082:466;14104:10;;:17;;14100:1;:21;;;14082:466;;;14142:17;14162:44;14183:7;14192:10;;14203:1;14192:13;;;;;;;;;;;;;;;;;;;;:::i;:::-;14162:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;:44::i;:::-;14142:64;;14303:7;:18;14311:9;14303:18;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;;14326:6;:13;14333:2;:5;;;14326:13;;;;;;;;;;;;;;;:24;14340:9;14326:24;;;;;;;;;;;;;;;;;;;;;;;;;14325:25;14303:47;14299:238;;;14397:4;14370:6;:13;14377:2;:5;;;14370:13;;;;;;;;;;;;;;;:24;14384:9;14370:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14420:12;;;;;;;14471:2;14457:10;:16;;;14453:69;;14497:5;;;14453:69;14299:238;14082:466;14123:3;;;;;;;14082:466;;;;14582:9;;;;;;;;;;;14568:23;;:10;:23;;;;14560:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14668:37;14693:2;:11;;;14668:37;;:8;:20;14685:1;14668:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14645:8;:20;14662:1;14645:20;;;;;;;;;;;;;;;:60;;;;14741:39;14768:2;:11;;;14741:39;;:8;:22;14750:2;:12;;;14741:22;;;;;;;;;;;;;;;;:26;;:39;;;;:::i;:::-;14716:8;:22;14725:2;:12;;;14716:22;;;;;;;;;;;;;;;:64;;;;14798:41;14806:2;:5;;;14813:2;:12;;;14827:2;:11;;;14798:41;;;;;;;;:::i;:::-;;;;;;;;14876:2;:12;;;14855:47;;14872:1;14855:47;;;14890:2;:11;;;14855:47;;;;;;:::i;:::-;;;;;;;;14922:2;:12;;;14915:19;;;;;13633:1309;;;;;:::o;7790:129::-;7859:12;7891:8;:20;7900:10;7891:20;;;;;;;;;;;;;;;;7884:27;;7790:129;;;:::o;5500:180::-;4752:5;;;;;;;;;;4738:19;;:10;:19;;;4730:28;;;;;;5600:4:::1;5577:27;;:7;:19;5585:10;5577:19;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;5569:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5653:7;:19;5661:10;5653:19;;;;;;;;;;;;;;;;5646:26;;;;;;;;;;;5500:180:::0;:::o;15261:285::-;15328:12;4752:5;;;;;;;;;;;4738:19;;:10;:19;;;4730:28;;;;;;15370:1:::1;15357:10;:14;;;15353:161;;;15409:3;15395:10;:17;;;;15387:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15464:10;15450:11;;:24;;;;;;;;;;;;;;;;;;15498:4;15491:11;;;;15353:161;15533:5;15526:12;;4769:1;15261:285:::0;;;:::o;4896:196::-;4963:8;;;;;;;;;;;4949:22;;:10;:22;;;4941:31;;;;;;5016:8;;;;;;;;;;;4988:37;;5009:5;;;;;;;;;;4988:37;;;;;;;;;;;;5044:8;;;;;;;;;;;5036:5;;:16;;;;;;;;;;;;;;;;;;5082:1;5063:8;;:21;;;;;;;;;;;;;;;;;;4896:196::o;5317:175::-;4752:5;;;;;;;;;;4738:19;;:10;:19;;;4730:28;;;;;;5393:7:::1;:19;5401:10;5393:19;;;;;;;;;;;;;;;;;;;;;;;;;5392:20;5384:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;5480:4;5458:7;:19;5466:10;5458:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5317:175:::0;:::o;4496:20::-;;;;;;;;;;;;:::o;6072:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;130:418::-;233:7;257;274:9;293;326:19;341:3;326:14;:19::i;:::-;314:31;;;;;;;;;;;;366:2;361:1;:7;;;;:18;;;;;377:2;372:1;:7;;;;361:18;357:186;;;411:1;395:19;;;;;;;357:186;505:27;515:7;524:1;527;530;505:27;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:34;;;;;130:418;;;;;:::o;6404:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11751:314::-;11830:12;11878:32;11903:6;11878:8;:20;11887:10;11878:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11855:8;:20;11864:10;11855:20;;;;;;;;;;;;;;;:55;;;;11944:32;11969:6;11944:8;:20;11961:1;11944:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11921:8;:20;11938:1;11921:20;;;;;;;;;;;;;;;:55;;;;12001:10;11992:41;;;12013:2;12017:6;12025:7;11992:41;;;;;;;;:::i;:::-;;;;;;;;12053:4;12046:11;;11751:314;;;;;:::o;554:583::-;641:5;648:7;657;702:2;688:3;:10;:16;680:25;;;;;;717:9;736;755:7;872:2;867:3;863:12;857:19;852:24;;940:2;935:3;931:12;925:19;920:24;;1045:2;1040:3;1036:12;1030:19;1027:1;1022:28;1017:33;;1079:2;1075:1;:6;;;1071:31;;;1100:2;1095:7;;;;1071:31;1122:1;1125;1128;1114:16;;;;;;;;;554:583;;;;;:::o;8270:276::-;8338:12;8386:32;8411:6;8386:8;:20;8395:10;8386:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8363:8;:20;8372:10;8363:20;;;;;;;;;;;;;;;:55;;;;8444:24;8461:6;8444:8;:12;8453:2;8444:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;8429:8;:12;8438:2;8429:12;;;;;;;;;;;;;;;:39;;;;8505:2;8484:32;;8493:10;8484:32;;;8509:6;8484:32;;;;;;:::i;:::-;;;;;;;;8534:4;8527:11;;8270:276;;;;:::o;5134:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;10986:333::-;11075:12;11131:6;11100:7;:19;11108:10;11100:19;;;;;;;;;;;;;;;:28;11120:7;11100:28;;;;;;;;;;;;;;;:37;;;;11174:7;11153:37;;11162:10;11153:37;;;11183:6;11153:37;;;;;;:::i;:::-;;;;;;;;11224:7;11201:47;;;11249:10;11261:6;11277:4;11284;11201:88;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11307:4;11300:11;;10986:333;;;;;:::o;4523:23::-;;;;;;;;;;;;;:::o;16034:184::-;16126:12;4752:5;;;;;;;;;;;4738:19;;:10;:19;;;4730:28;;;;;;16173:12:::1;16158:37;;;16196:5;::::0;::::1;;;;;;;;16203:6;16158:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16151:59;;16034:184:::0;;;;:::o;10462:156::-;10548:14;10582:7;:19;10590:10;10582:19;;;;;;;;;;;;;;;:28;10602:7;10582:28;;;;;;;;;;;;;;;;10575:35;;10462:156;;;;:::o;6213:24::-;;;;;;;;;;;;;:::o;4786:102::-;4752:5;;;;;;;;;;4738:19;;:10;:19;;;4730:28;;;;;;4871:9:::1;4860:8;;:20;;;;;;;;;;;;;;;;;;4786:102:::0;:::o;14950:303::-;15021:12;4752:5;;;;;;;;;;;4738:19;;:10;:19;;;4730:28;;;;;;15065:1:::1;15050:12;:16;;;15046:175;;;15106:2;15090:12;:18;;;;15082:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15169:12;15157:9;;:24;;;;;;;;;;;;;;;;;;15205:4;15198:11;;;;15046:175;15240:5;15233:12;;4769:1;14950:303:::0;;;:::o;2457:114::-;2509:6;2541:1;2536;:6;;2528:15;;;;;;2562:1;2558;:5;2554:9;;2457:114;;;;:::o;2337:::-;2389:6;2416:1;2412;:5;2408:9;;2441:1;2436;:6;;2428:15;;;;;;2337:114;;;;:::o;12312:1313::-;12374:19;;:::i;:::-;12406:22;;:::i;:::-;12441:9;12461;12481:15;12507;12533:16;12560:13;12584:17;12673:1;12667:3;12658:7;12654:17;12650:25;12644:32;12638:38;;12725:1;12719:3;12710:7;12706:17;12702:25;12696:32;12690:38;;12783:2;12777:3;12768:7;12764:17;12760:26;12754:33;12742:45;;12842:2;12836:3;12827:7;12823:17;12819:26;12813:33;12801:45;;12902:2;12896:3;12887:7;12883:17;12879:26;12873:33;12860:46;;12960:2;12954:3;12945:7;12941:17;12937:26;12931:33;12920:44;;13021:2;13014:4;13005:7;13001:18;12997:27;12991:34;12978:47;;13056:20;13073:2;13056:16;:20::i;:::-;13048:2;:5;;:28;;;;;;;;;;;13095:20;13112:2;13095:16;:20::i;:::-;13087:2;:5;;:28;;;;;;;;;;;13140:26;13157:8;13140:16;:26::i;:::-;13126:2;:11;;:40;;;;;;;;;;;13191:26;13208:8;13191:16;:26::i;:::-;13177:2;:11;;:40;;;;;;;;;;;13243:27;13260:9;13243:16;:27::i;:::-;13228:2;:12;;:42;;;;;;;;;;;13294:7;13281:2;:10;;:20;;;;;;;;;;;13327:9;13312:2;:12;;:24;;;;;;;;;;;13372:2;:10;;;13357:25;;:11;;;;;;;;;;;:25;;;13349:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;13440:40;13453:2;:5;;;13440:40;;13461:17;13440:12;:40::i;:::-;13422:15;:58;13414:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13527:7;:14;13535:2;:5;;;13527:14;;;;;;;;;;;;;;;;;;;;;;;;;13526:15;13518:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;13591:4;13574:7;:14;13582:2;:5;;;13574:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13615:2;13608:9;;;;;;;;;;12312:1313;;;:::o;1278:417::-;1334:8;1359:5;1355:9;;1480:1;1457:18;1453:1;:22;1452:29;;;;1433:1;1410:18;1406:1;:22;1405:29;;;;1404:78;1400:82;;1611:2;1588:18;1584:1;:22;1583:30;;;;1563:2;1540:18;1536:1;:22;1535:30;;;;1534:80;1530:84;;1684:2;1679:1;:7;;;;1672:2;1667:1;:7;;;;1666:21;1662:25;;1278:417;;;:::o;1701:269::-;1757:8;1782:5;1778:9;;1887:1;1872:10;1868:1;:14;1867:21;;;;1848:1;1833:10;1829:1;:14;1828:21;;;;1827:62;1823:66;;1959:2;1954:1;:7;;;;1947:2;1942:1;:7;;;;1941:21;1937:25;;1701:269;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;158:363::-;;;299:3;292:4;284:6;280:17;276:27;266:2;;317:1;314;307:12;266:2;350:6;337:20;327:30;;377:18;369:6;366:30;363:2;;;409:1;406;399:12;363:2;443:4;435:6;431:17;419:29;;494:3;486:4;478:6;474:17;464:8;460:32;457:41;454:2;;;511:1;508;501:12;454:2;259:262;;;;;:::o;529:128::-;;610:6;604:13;595:22;;622:30;646:5;622:30;:::i;:::-;589:68;;;;:::o;664:130::-;;744:6;731:20;722:29;;756:33;783:5;756:33;:::i;:::-;716:78;;;;:::o;802:440::-;;903:3;896:4;888:6;884:17;880:27;870:2;;921:1;918;911:12;870:2;958:6;945:20;980:64;995:48;1036:6;995:48;:::i;:::-;980:64;:::i;:::-;971:73;;1064:6;1057:5;1050:21;1100:4;1092:6;1088:17;1133:4;1126:5;1122:16;1168:3;1159:6;1154:3;1150:16;1147:25;1144:2;;;1185:1;1182;1175:12;1144:2;1195:41;1229:6;1224:3;1219;1195:41;:::i;:::-;863:379;;;;;;;:::o;1251:442::-;;1353:3;1346:4;1338:6;1334:17;1330:27;1320:2;;1371:1;1368;1361:12;1320:2;1408:6;1395:20;1430:65;1445:49;1487:6;1445:49;:::i;:::-;1430:65;:::i;:::-;1421:74;;1515:6;1508:5;1501:21;1551:4;1543:6;1539:17;1584:4;1577:5;1573:16;1619:3;1610:6;1605:3;1601:16;1598:25;1595:2;;;1636:1;1633;1626:12;1595:2;1646:41;1680:6;1675:3;1670;1646:41;:::i;:::-;1313:380;;;;;;;:::o;1701:130::-;;1781:6;1768:20;1759:29;;1793:33;1820:5;1793:33;:::i;:::-;1753:78;;;;:::o;1838:128::-;;1917:6;1904:20;1895:29;;1929:32;1955:5;1929:32;:::i;:::-;1889:77;;;;:::o;1973:126::-;;2051:6;2038:20;2029:29;;2063:31;2088:5;2063:31;:::i;:::-;2023:76;;;;:::o;2106:241::-;;2210:2;2198:9;2189:7;2185:23;2181:32;2178:2;;;2226:1;2223;2216:12;2178:2;2261:1;2278:53;2323:7;2314:6;2303:9;2299:22;2278:53;:::i;:::-;2268:63;;2240:97;2172:175;;;;:::o;2354:366::-;;;2475:2;2463:9;2454:7;2450:23;2446:32;2443:2;;;2491:1;2488;2481:12;2443:2;2526:1;2543:53;2588:7;2579:6;2568:9;2564:22;2543:53;:::i;:::-;2533:63;;2505:97;2633:2;2651:53;2696:7;2687:6;2676:9;2672:22;2651:53;:::i;:::-;2641:63;;2612:98;2437:283;;;;;:::o;2727:491::-;;;;2865:2;2853:9;2844:7;2840:23;2836:32;2833:2;;;2881:1;2878;2871:12;2833:2;2916:1;2933:53;2978:7;2969:6;2958:9;2954:22;2933:53;:::i;:::-;2923:63;;2895:97;3023:2;3041:53;3086:7;3077:6;3066:9;3062:22;3041:53;:::i;:::-;3031:63;;3002:98;3131:2;3149:53;3194:7;3185:6;3174:9;3170:22;3149:53;:::i;:::-;3139:63;;3110:98;2827:391;;;;;:::o;3225:366::-;;;3346:2;3334:9;3325:7;3321:23;3317:32;3314:2;;;3362:1;3359;3352:12;3314:2;3397:1;3414:53;3459:7;3450:6;3439:9;3435:22;3414:53;:::i;:::-;3404:63;;3376:97;3504:2;3522:53;3567:7;3558:6;3547:9;3543:22;3522:53;:::i;:::-;3512:63;;3483:98;3308:283;;;;;:::o;3598:595::-;;;;3745:2;3733:9;3724:7;3720:23;3716:32;3713:2;;;3761:1;3758;3751:12;3713:2;3796:1;3813:53;3858:7;3849:6;3838:9;3834:22;3813:53;:::i;:::-;3803:63;;3775:97;3903:2;3921:53;3966:7;3957:6;3946:9;3942:22;3921:53;:::i;:::-;3911:63;;3882:98;4039:2;4028:9;4024:18;4011:32;4063:18;4055:6;4052:30;4049:2;;;4095:1;4092;4085:12;4049:2;4115:62;4169:7;4160:6;4149:9;4145:22;4115:62;:::i;:::-;4105:72;;3990:193;3707:486;;;;;:::o;4200:257::-;;4312:2;4300:9;4291:7;4287:23;4283:32;4280:2;;;4328:1;4325;4318:12;4280:2;4363:1;4380:61;4433:7;4424:6;4413:9;4409:22;4380:61;:::i;:::-;4370:71;;4342:105;4274:183;;;;:::o;4464:470::-;;;4594:2;4582:9;4573:7;4569:23;4565:32;4562:2;;;4610:1;4607;4600:12;4562:2;4645:1;4662:53;4707:7;4698:6;4687:9;4683:22;4662:53;:::i;:::-;4652:63;;4624:97;4780:2;4769:9;4765:18;4752:32;4804:18;4796:6;4793:30;4790:2;;;4836:1;4833;4826:12;4790:2;4856:62;4910:7;4901:6;4890:9;4886:22;4856:62;:::i;:::-;4846:72;;4731:193;4556:378;;;;;:::o;4941:345::-;;5054:2;5042:9;5033:7;5029:23;5025:32;5022:2;;;5070:1;5067;5060:12;5022:2;5133:1;5122:9;5118:17;5105:31;5156:18;5148:6;5145:30;5142:2;;;5188:1;5185;5178:12;5142:2;5208:62;5262:7;5253:6;5242:9;5238:22;5208:62;:::i;:::-;5198:72;;5084:192;5016:270;;;;:::o;5293:648::-;;;;5469:2;5457:9;5448:7;5444:23;5440:32;5437:2;;;5485:1;5482;5475:12;5437:2;5548:1;5537:9;5533:17;5520:31;5571:18;5563:6;5560:30;5557:2;;;5603:1;5600;5593:12;5557:2;5623:62;5677:7;5668:6;5657:9;5653:22;5623:62;:::i;:::-;5613:72;;5499:192;5750:2;5739:9;5735:18;5722:32;5774:18;5766:6;5763:30;5760:2;;;5806:1;5803;5796:12;5760:2;5834:91;5917:7;5908:6;5897:9;5893:22;5834:91;:::i;:::-;5816:109;;;;5701:230;5431:510;;;;;:::o;5948:597::-;;;;6096:2;6084:9;6075:7;6071:23;6067:32;6064:2;;;6112:1;6109;6102:12;6064:2;6175:1;6164:9;6160:17;6147:31;6198:18;6190:6;6187:30;6184:2;;;6230:1;6227;6220:12;6184:2;6250:63;6305:7;6296:6;6285:9;6281:22;6250:63;:::i;:::-;6240:73;;6126:193;6350:2;6368:53;6413:7;6404:6;6393:9;6389:22;6368:53;:::i;:::-;6358:63;;6329:98;6458:2;6476:53;6521:7;6512:6;6501:9;6497:22;6476:53;:::i;:::-;6466:63;;6437:98;6058:487;;;;;:::o;6552:239::-;;6655:2;6643:9;6634:7;6630:23;6626:32;6623:2;;;6671:1;6668;6661:12;6623:2;6706:1;6723:52;6767:7;6758:6;6747:9;6743:22;6723:52;:::i;:::-;6713:62;;6685:96;6617:174;;;;:::o;6798:237::-;;6900:2;6888:9;6879:7;6875:23;6871:32;6868:2;;;6916:1;6913;6906:12;6868:2;6951:1;6968:51;7011:7;7002:6;6991:9;6987:22;6968:51;:::i;:::-;6958:61;;6930:95;6862:173;;;;:::o;7042:142::-;7133:45;7172:5;7133:45;:::i;:::-;7128:3;7121:58;7115:69;;:::o;7191:113::-;7274:24;7292:5;7274:24;:::i;:::-;7269:3;7262:37;7256:48;;:::o;7311:104::-;7388:21;7403:5;7388:21;:::i;:::-;7383:3;7376:34;7370:45;;:::o;7422:113::-;7505:24;7523:5;7505:24;:::i;:::-;7500:3;7493:37;7487:48;;:::o;7542:343::-;;7652:38;7684:5;7652:38;:::i;:::-;7702:70;7765:6;7760:3;7702:70;:::i;:::-;7695:77;;7777:52;7822:6;7817:3;7810:4;7803:5;7799:16;7777:52;:::i;:::-;7850:29;7872:6;7850:29;:::i;:::-;7845:3;7841:39;7834:46;;7632:253;;;;;:::o;7892:347::-;;8004:39;8037:5;8004:39;:::i;:::-;8055:71;8119:6;8114:3;8055:71;:::i;:::-;8048:78;;8131:52;8176:6;8171:3;8164:4;8157:5;8153:16;8131:52;:::i;:::-;8204:29;8226:6;8204:29;:::i;:::-;8199:3;8195:39;8188:46;;7984:255;;;;;:::o;8247:316::-;;8407:67;8471:2;8466:3;8407:67;:::i;:::-;8400:74;;8507:18;8503:1;8498:3;8494:11;8487:39;8554:2;8549:3;8545:12;8538:19;;8393:170;;;:::o;8572:327::-;;8732:67;8796:2;8791:3;8732:67;:::i;:::-;8725:74;;8832:29;8828:1;8823:3;8819:11;8812:50;8890:2;8885:3;8881:12;8874:19;;8718:181;;;:::o;8908:377::-;;9068:67;9132:2;9127:3;9068:67;:::i;:::-;9061:74;;9168:34;9164:1;9159:3;9155:11;9148:55;9237:10;9232:2;9227:3;9223:12;9216:32;9276:2;9271:3;9267:12;9260:19;;9054:231;;;:::o;9294:328::-;;9454:67;9518:2;9513:3;9454:67;:::i;:::-;9447:74;;9554:30;9550:1;9545:3;9541:11;9534:51;9613:2;9608:3;9604:12;9597:19;;9440:182;;;:::o;9631:332::-;;9791:67;9855:2;9850:3;9791:67;:::i;:::-;9784:74;;9891:34;9887:1;9882:3;9878:11;9871:55;9954:2;9949:3;9945:12;9938:19;;9777:186;;;:::o;9972:318::-;;10132:67;10196:2;10191:3;10132:67;:::i;:::-;10125:74;;10232:20;10228:1;10223:3;10219:11;10212:41;10281:2;10276:3;10272:12;10265:19;;10118:172;;;:::o;10299:324::-;;10459:67;10523:2;10518:3;10459:67;:::i;:::-;10452:74;;10559:26;10555:1;10550:3;10546:11;10539:47;10614:2;10609:3;10605:12;10598:19;;10445:178;;;:::o;10632:320::-;;10792:67;10856:2;10851:3;10792:67;:::i;:::-;10785:74;;10892:22;10888:1;10883:3;10879:11;10872:43;10943:2;10938:3;10934:12;10927:19;;10778:174;;;:::o;10961:315::-;;11121:67;11185:2;11180:3;11121:67;:::i;:::-;11114:74;;11221:17;11217:1;11212:3;11208:11;11201:38;11267:2;11262:3;11258:12;11251:19;;11107:169;;;:::o;11285:373::-;;11445:67;11509:2;11504:3;11445:67;:::i;:::-;11438:74;;11545:34;11541:1;11536:3;11532:11;11525:55;11614:6;11609:2;11604:3;11600:12;11593:28;11649:2;11644:3;11640:12;11633:19;;11431:227;;;:::o;11666:113::-;11749:24;11767:5;11749:24;:::i;:::-;11744:3;11737:37;11731:48;;:::o;11786:124::-;11868:36;11898:5;11868:36;:::i;:::-;11863:3;11856:49;11850:60;;:::o;11917:110::-;11998:23;12015:5;11998:23;:::i;:::-;11993:3;11986:36;11980:47;;:::o;12034:107::-;12113:22;12129:5;12113:22;:::i;:::-;12108:3;12101:35;12095:46;;:::o;12148:222::-;;12275:2;12264:9;12260:18;12252:26;;12289:71;12357:1;12346:9;12342:17;12333:6;12289:71;:::i;:::-;12246:124;;;;:::o;12377:672::-;;12622:3;12611:9;12607:19;12599:27;;12637:79;12713:1;12702:9;12698:17;12689:6;12637:79;:::i;:::-;12727:72;12795:2;12784:9;12780:18;12771:6;12727:72;:::i;:::-;12810:80;12886:2;12875:9;12871:18;12862:6;12810:80;:::i;:::-;12938:9;12932:4;12928:20;12923:2;12912:9;12908:18;12901:48;12963:76;13034:4;13025:6;12963:76;:::i;:::-;12955:84;;12593:456;;;;;;;:::o;13056:333::-;;13211:2;13200:9;13196:18;13188:26;;13225:71;13293:1;13282:9;13278:17;13269:6;13225:71;:::i;:::-;13307:72;13375:2;13364:9;13360:18;13351:6;13307:72;:::i;:::-;13182:207;;;;;:::o;13396:210::-;;13517:2;13506:9;13502:18;13494:26;;13531:65;13593:1;13582:9;13578:17;13569:6;13531:65;:::i;:::-;13488:118;;;;:::o;13613:548::-;;13820:3;13809:9;13805:19;13797:27;;13835:71;13903:1;13892:9;13888:17;13879:6;13835:71;:::i;:::-;13917:68;13981:2;13970:9;13966:18;13957:6;13917:68;:::i;:::-;13996:72;14064:2;14053:9;14049:18;14040:6;13996:72;:::i;:::-;14079;14147:2;14136:9;14132:18;14123:6;14079:72;:::i;:::-;13791:370;;;;;;;:::o;14168:310::-;;14315:2;14304:9;14300:18;14292:26;;14365:9;14359:4;14355:20;14351:1;14340:9;14336:17;14329:47;14390:78;14463:4;14454:6;14390:78;:::i;:::-;14382:86;;14286:192;;;;:::o;14485:532::-;;14688:2;14677:9;14673:18;14665:26;;14738:9;14732:4;14728:20;14724:1;14713:9;14709:17;14702:47;14763:78;14836:4;14827:6;14763:78;:::i;:::-;14755:86;;14852:72;14920:2;14909:9;14905:18;14896:6;14852:72;:::i;:::-;14935;15003:2;14992:9;14988:18;14979:6;14935:72;:::i;:::-;14659:358;;;;;;:::o;15024:416::-;;15224:2;15213:9;15209:18;15201:26;;15274:9;15268:4;15264:20;15260:1;15249:9;15245:17;15238:47;15299:131;15425:4;15299:131;:::i;:::-;15291:139;;15195:245;;;:::o;15447:416::-;;15647:2;15636:9;15632:18;15624:26;;15697:9;15691:4;15687:20;15683:1;15672:9;15668:17;15661:47;15722:131;15848:4;15722:131;:::i;:::-;15714:139;;15618:245;;;:::o;15870:416::-;;16070:2;16059:9;16055:18;16047:26;;16120:9;16114:4;16110:20;16106:1;16095:9;16091:17;16084:47;16145:131;16271:4;16145:131;:::i;:::-;16137:139;;16041:245;;;:::o;16293:416::-;;16493:2;16482:9;16478:18;16470:26;;16543:9;16537:4;16533:20;16529:1;16518:9;16514:17;16507:47;16568:131;16694:4;16568:131;:::i;:::-;16560:139;;16464:245;;;:::o;16716:416::-;;16916:2;16905:9;16901:18;16893:26;;16966:9;16960:4;16956:20;16952:1;16941:9;16937:17;16930:47;16991:131;17117:4;16991:131;:::i;:::-;16983:139;;16887:245;;;:::o;17139:416::-;;17339:2;17328:9;17324:18;17316:26;;17389:9;17383:4;17379:20;17375:1;17364:9;17360:17;17353:47;17414:131;17540:4;17414:131;:::i;:::-;17406:139;;17310:245;;;:::o;17562:416::-;;17762:2;17751:9;17747:18;17739:26;;17812:9;17806:4;17802:20;17798:1;17787:9;17783:17;17776:47;17837:131;17963:4;17837:131;:::i;:::-;17829:139;;17733:245;;;:::o;17985:416::-;;18185:2;18174:9;18170:18;18162:26;;18235:9;18229:4;18225:20;18221:1;18210:9;18206:17;18199:47;18260:131;18386:4;18260:131;:::i;:::-;18252:139;;18156:245;;;:::o;18408:416::-;;18608:2;18597:9;18593:18;18585:26;;18658:9;18652:4;18648:20;18644:1;18633:9;18629:17;18622:47;18683:131;18809:4;18683:131;:::i;:::-;18675:139;;18579:245;;;:::o;18831:416::-;;19031:2;19020:9;19016:18;19008:26;;19081:9;19075:4;19071:20;19067:1;19056:9;19052:17;19045:47;19106:131;19232:4;19106:131;:::i;:::-;19098:139;;19002:245;;;:::o;19254:222::-;;19381:2;19370:9;19366:18;19358:26;;19395:71;19463:1;19452:9;19448:17;19439:6;19395:71;:::i;:::-;19352:124;;;;:::o;19483:220::-;;19609:2;19598:9;19594:18;19586:26;;19623:70;19690:1;19679:9;19675:17;19666:6;19623:70;:::i;:::-;19580:123;;;;:::o;19710:438::-;;19890:2;19879:9;19875:18;19867:26;;19904:69;19970:1;19959:9;19955:17;19946:6;19904:69;:::i;:::-;19984:72;20052:2;20041:9;20037:18;20028:6;19984:72;:::i;:::-;20067:71;20134:2;20123:9;20119:18;20110:6;20067:71;:::i;:::-;19861:287;;;;;;:::o;20155:214::-;;20278:2;20267:9;20263:18;20255:26;;20292:67;20356:1;20345:9;20341:17;20332:6;20292:67;:::i;:::-;20249:120;;;;:::o;20376:436::-;;20555:2;20544:9;20540:18;20532:26;;20569:67;20633:1;20622:9;20618:17;20609:6;20569:67;:::i;:::-;20647:72;20715:2;20704:9;20700:18;20691:6;20647:72;:::i;:::-;20730;20798:2;20787:9;20783:18;20774:6;20730:72;:::i;:::-;20526:286;;;;;;:::o;20819:506::-;;;20954:11;20941:25;21050:1;21044:4;21040:12;21029:8;21013:14;21009:29;21005:48;20985:18;20981:73;20971:2;;21068:1;21065;21058:12;20971:2;21099:18;21089:8;21085:33;21077:41;;21152:4;21139:18;21129:28;;21177:18;21169:6;21166:30;21163:2;;;21209:1;21206;21199:12;21163:2;21237;21231:4;21227:13;21219:21;;21291:4;21283:6;21279:17;21263:14;21259:38;21253:4;21249:49;21246:2;;;21311:1;21308;21301:12;21246:2;20909:416;;;;;;:::o;21332:256::-;;21394:2;21388:9;21378:19;;21432:4;21424:6;21420:17;21531:6;21519:10;21516:22;21495:18;21483:10;21480:34;21477:62;21474:2;;;21552:1;21549;21542:12;21474:2;21572:10;21568:2;21561:22;21372:216;;;;:::o;21595:321::-;;21738:18;21730:6;21727:30;21724:2;;;21770:1;21767;21760:12;21724:2;21837:4;21833:9;21826:4;21818:6;21814:17;21810:33;21802:41;;21901:4;21895;21891:15;21883:23;;21661:255;;;:::o;21923:322::-;;22067:18;22059:6;22056:30;22053:2;;;22099:1;22096;22089:12;22053:2;22166:4;22162:9;22155:4;22147:6;22143:17;22139:33;22131:41;;22230:4;22224;22220:15;22212:23;;21990:255;;;:::o;22252:121::-;;22345:5;22339:12;22329:22;;22310:63;;;:::o;22380:122::-;;22474:5;22468:12;22458:22;;22439:63;;;:::o;22510:162::-;;22624:6;22619:3;22612:19;22661:4;22656:3;22652:14;22637:29;;22605:67;;;;:::o;22681:163::-;;22796:6;22791:3;22784:19;22833:4;22828:3;22824:14;22809:29;;22777:67;;;;:::o;22852:91::-;;22914:24;22932:5;22914:24;:::i;:::-;22903:35;;22897:46;;;:::o;22950:85::-;;23023:5;23016:13;23009:21;22998:32;;22992:43;;;:::o;23042:72::-;;23104:5;23093:16;;23087:27;;;:::o;23121:121::-;;23194:42;23187:5;23183:54;23172:65;;23166:76;;;:::o;23249:72::-;;23311:5;23300:16;;23294:27;;;:::o;23328:96::-;;23400:18;23393:5;23389:30;23378:41;;23372:52;;;:::o;23431:81::-;;23502:4;23495:5;23491:16;23480:27;;23474:38;;;:::o;23519:129::-;;23606:37;23637:5;23606:37;:::i;:::-;23593:50;;23587:61;;;:::o;23655:121::-;;23734:37;23765:5;23734:37;:::i;:::-;23721:50;;23715:61;;;:::o;23783:108::-;;23862:24;23880:5;23862:24;:::i;:::-;23849:37;;23843:48;;;:::o;23898:106::-;;23976:23;23993:5;23976:23;:::i;:::-;23963:36;;23957:47;;;:::o;24012:145::-;24093:6;24088:3;24083;24070:30;24149:1;24140:6;24135:3;24131:16;24124:27;24063:94;;;:::o;24166:268::-;24231:1;24238:101;24252:6;24249:1;24246:13;24238:101;;;24328:1;24323:3;24319:11;24313:18;24309:1;24304:3;24300:11;24293:39;24274:2;24271:1;24267:10;24262:15;;24238:101;;;24354:6;24351:1;24348:13;24345:2;;;24419:1;24410:6;24405:3;24401:16;24394:27;24345:2;24215:219;;;;:::o;24442:97::-;;24530:2;24526:7;24521:2;24514:5;24510:14;24506:28;24496:38;;24490:49;;;:::o;24547:117::-;24616:24;24634:5;24616:24;:::i;:::-;24609:5;24606:35;24596:2;;24655:1;24652;24645:12;24596:2;24590:74;:::o;24671:111::-;24737:21;24752:5;24737:21;:::i;:::-;24730:5;24727:32;24717:2;;24773:1;24770;24763:12;24717:2;24711:71;:::o;24789:117::-;24858:24;24876:5;24858:24;:::i;:::-;24851:5;24848:35;24838:2;;24897:1;24894;24887:12;24838:2;24832:74;:::o;24913:117::-;24982:24;25000:5;24982:24;:::i;:::-;24975:5;24972:35;24962:2;;25021:1;25018;25011:12;24962:2;24956:74;:::o;25037:115::-;25105:23;25122:5;25105:23;:::i;:::-;25098:5;25095:34;25085:2;;25143:1;25140;25133:12;25085:2;25079:73;:::o;25159:113::-;25226:22;25242:5;25226:22;:::i;:::-;25219:5;25216:33;25206:2;;25263:1;25260;25253:12;25206:2;25200:72;:::o

Swarm Source

ipfs://96ea4bb0a78d8d74e167250f466bd38d23273f80f65efe9a80cd7a330d9a5134

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Alien Worlds is an NFT Metaverse where you can play with digital items (NFTs).Players stake Trilium to planets to vote in the upcoming Planetary elections, as well as to increase the Planet’s reward pool.

Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.