ETH Price: $2,336.25 (-1.88%)

Contract

0x9330BbfBa0C8FdAf0D93717E4405a410a6103cC2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...157051142022-10-08 18:18:11704 days ago1665253091IN
0x9330BbfB...0a6103cC2
0 ETH0.0020550675.98126359
0x600460c0140011352022-01-14 3:16:16971 days ago1642130176IN
 Create: MoonCatTraits
0 ETH0.29744099154.83936115

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MoonCatTraits

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: AGPL-3.0

pragma solidity 0.8.1;

interface IMoonCatAcclimator {
    function getApproved(uint256 tokenId) external view returns (address);
    function isApprovedForAll(address owner, address operator) external view returns (bool);
    function ownerOf(uint256 tokenId) external view returns (address);
    function balanceOf(address _owner) external view returns (uint256);
    function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256);
}

interface IMoonCatRescue {
    function rescueOrder(uint256 tokenId) external view returns (bytes5);
    function catOwners(bytes5 catId) external view returns (address);
    function catNames(bytes5 catId) external view returns (bytes32);
}

interface IReverseResolver {
    function claim(address owner) external returns (bytes32);
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
}

interface IERC721 {
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
    function ownerOf(uint256 tokenId) external view returns (address);
}

interface IMoonCatReference {
    function doc (address contractAddress) external view returns (string memory name, string memory description, string memory details);
    function setDoc (address contractAddress, string calldata name, string calldata description) external;
}

/**
 * @title MoonCatTraits
 * @notice On Chain MoonCat Trait Parsing
 * @dev Provides On Chain Reference for the MoonCat Traits
 */
contract MoonCatTraits {

    /* Human-friendly trait names */

    string[2] public facingNames = ["left", "right"];
    string[4] public expressionNames = ["smiling", "grumpy", "pouting", "shy"];
    string[4] public patternNames = ["pure", "tabby", "spotted", "tortie"];
    string[4] public poseNames = ["standing", "sleeping", "pouncing", "stalking"];

    /* External Contracts */

    IMoonCatRescue MCR = IMoonCatRescue(0x60cd862c9C687A9dE49aecdC3A99b74A4fc54aB6);
    IMoonCatReference MoonCatReference;

    /* Traits */

    /**
     * @dev For a given MoonCat rescue order, return the calendar year it was rescued in.
     */
    function rescueYearOf (uint256 rescueOrder) public pure returns (uint16) {
        if (rescueOrder <= 3364) {
            return 2017;
        } else if (rescueOrder <= 5683) {
            return 2018;
        } else if (rescueOrder <= 5754) {
            return 2019;
        } else if (rescueOrder <= 5757) {
            return 2020;
        } else {
            return 2021;
        }
    }

    /**
     * @dev For a given MoonCat hex ID, extract the trait data from the "K" byte.
     */
    function kTraitsOf (bytes5 catId) public pure returns
        (bool genesis,
         bool pale,
         uint8 facing,
         uint8 expression,
         uint8 pattern,
         uint8 pose)
    {
        uint40 c = uint40(catId);
        uint8 classification = uint8(c >> 32);
        require(classification == 0 || classification == 255, "Invalid Classification");

        genesis = (classification == 255);

        uint8 r = uint8(c >> 16);
        uint8 g = uint8(c >> 8);
        uint8 b = uint8(c);

        require(!genesis || (r == 0 && g == 12 && b == 167), "Invalid Genesis Id");

        pale = ((c >> 31) & 1) == 1;
        if (genesis) {
            uint8 k = uint8(c >> 24);
            bool even_k = k % 2 == 0;
            pale = (even_k && pale) || (!even_k && !pale);
        }

        facing = uint8((c >> 30) & 1);
        expression = uint8((c >> 28) & 3);
        pattern = uint8((c >> 26) & 3);
        pose = uint8((c >> 24) & 3);
    }

    /**
     * @dev For a given MoonCat rescue order, extract the trait data from the "K" byte.
     */
    function kTraitsOf (uint256 rescueOrder) public view returns
        (bool genesis,
         bool pale,
         uint8 facing,
         uint8 expression,
         uint8 pattern,
         uint8 pose)
    {
        require(rescueOrder < 25440, "Invalid Rescue Order");
        return kTraitsOf(MCR.rescueOrder(rescueOrder));
    }

    /**
     * @dev For a given MoonCat hex ID, extract the trait data in a human-friendly format.
     */
    function traitsOf (bytes5 catId) public view returns
        (bool genesis,
         bool pale,
         string memory facing,
         string memory expression,
         string memory pattern,
         string memory pose)
    {
        (bool genesisBool, bool paleBool, uint8 facingInt, uint8 expressionInt, uint8 patternInt, uint8 poseInt) = kTraitsOf(catId);
        return (
            genesisBool,
            paleBool,
            facingNames[facingInt],
            expressionNames[expressionInt],
            patternNames[patternInt],
            poseNames[poseInt]
        );
    }

    /**
     * @dev For a given MoonCat rescue order, extract the trait data in a human-friendly format.
     */
    function traitsOf (uint256 rescueOrder) public view returns
        (bool genesis,
         bool pale,
         string memory facing,
         string memory expression,
         string memory pattern,
         string memory pose,
         bytes5 catId,
         uint16 rescueYear,
         bool isNamed
         )
    {
        require(rescueOrder < 25440, "Invalid Rescue Order");
        catId = MCR.rescueOrder(rescueOrder);
        (genesis, pale, facing, expression, pattern, pose) = traitsOf(catId);
        rescueYear = rescueYearOf(rescueOrder);
        isNamed = (uint256(MCR.catNames(catId)) > 0);
    }


    mapping (address => bool) ERC721ProxyOwnership;

    /**
     * @dev Iterating function to find the final owner of a MoonCat (looping through any ERC721 wrappers).
     */
    function proxyOwner (uint256 rescueOrder, address ownerAddress) internal view returns (address) {
        if (ERC721ProxyOwnership[ownerAddress]) {
            return proxyOwner(rescueOrder, IERC721(ownerAddress).ownerOf(rescueOrder));
        } else {
            return ownerAddress;
        }
    }

    /**
     * @dev For a given MoonCat rescue order, return who owns that MoonCat.
     */
    function ownerOf (uint256 rescueOrder) public view returns (address) {
        require(rescueOrder < 25440, "Invalid Rescue Order");
        bytes5 catId = MCR.rescueOrder(rescueOrder);
        return proxyOwner(rescueOrder, MCR.catOwners(catId));
    }

    /**
     * @dev For a given MoonCat rescue order, return the hex ID of that MoonCat.
     */
    function catIdOf (uint256 rescueOrder) public view returns (bytes5) {
        require(rescueOrder < 25440, "Invalid Rescue Order");
        return MCR.rescueOrder(rescueOrder);
    }

    /**
     * @dev For a given MoonCat hex ID, return the recorded name of that MoonCat.
     */
    function nameOf (bytes5 catId) public view returns (string memory) {
        bytes32 nameRaw = MCR.catNames(catId);
        uint8 i = 0;
        while(i < 32 && nameRaw[i] != 0) {
            i++;
        }
        bytes memory nameBytes = new bytes(i);
        for (i = 0; i < 32 && nameRaw[i] != 0; i++) {
            nameBytes[i] = nameRaw[i];
        }
        return string(nameBytes);
    }

    /**
     * @dev For a given MoonCat rescue order, return the recorded name of that MoonCat.
     */
    function nameOf (uint256 rescueOrder) public view returns (string memory) {
        require(rescueOrder < 25440, "Invalid Rescue Order");
        return nameOf(MCR.rescueOrder(rescueOrder));
    }

    /* General */

    /**
     * @dev Get documentation about this contract.
     */
    function doc() public view returns (string memory name, string memory description, string memory details) {
        return MoonCatReference.doc(address(this));
    }

    constructor (address MoonCatReferenceAddress) {
        owner = payable(msg.sender);
        // https://docs.ens.domains/contract-api-reference/reverseregistrar#claim-address
        IReverseResolver(0x084b1c3C81545d370f3634392De611CaaBFf8148).claim(msg.sender);
        ERC721ProxyOwnership[0xc3f733ca98E0daD0386979Eb96fb1722A1A05E69] = true;
        MoonCatReference = IMoonCatReference(MoonCatReferenceAddress);
    }

    address payable public owner;

    modifier onlyOwner () {
        require(msg.sender == owner, "Only Owner");
        _;
    }

    /**
     * @dev Allow current `owner` to transfer ownership to another address.
     */
    function transferOwnership (address payable newOwner) public onlyOwner {
        owner = newOwner;
    }

    /**
     * @dev Update the ERC721 registry for a given address.
     */
    function setERC721Proxy (address proxyAddress, bool isProxy) public onlyOwner {
        ERC721ProxyOwnership[proxyAddress] = isProxy;
    }

    /**
     * @dev Update the location of the Reference Contract.
     */
    function setReferenceContract (address referenceContract) public onlyOwner {
        MoonCatReference = IMoonCatReference(referenceContract);
    }

    /**
     * @dev Rescue ERC20 assets sent directly to this contract.
     */
    function withdrawForeignERC20(address tokenContract) public onlyOwner {
        IERC20 token = IERC20(tokenContract);
        token.transfer(owner, token.balanceOf(address(this)));
    }

    /**
     * @dev Rescue ERC721 assets sent directly to this contract.
     */
    function withdrawForeignERC721(address tokenContract, uint256 tokenId) public onlyOwner {
        IERC721(tokenContract).safeTransferFrom(address(this), owner, tokenId);
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"MoonCatReferenceAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"rescueOrder","type":"uint256"}],"name":"catIdOf","outputs":[{"internalType":"bytes5","name":"","type":"bytes5"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"doc","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"details","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"expressionNames","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"facingNames","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rescueOrder","type":"uint256"}],"name":"kTraitsOf","outputs":[{"internalType":"bool","name":"genesis","type":"bool"},{"internalType":"bool","name":"pale","type":"bool"},{"internalType":"uint8","name":"facing","type":"uint8"},{"internalType":"uint8","name":"expression","type":"uint8"},{"internalType":"uint8","name":"pattern","type":"uint8"},{"internalType":"uint8","name":"pose","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes5","name":"catId","type":"bytes5"}],"name":"kTraitsOf","outputs":[{"internalType":"bool","name":"genesis","type":"bool"},{"internalType":"bool","name":"pale","type":"bool"},{"internalType":"uint8","name":"facing","type":"uint8"},{"internalType":"uint8","name":"expression","type":"uint8"},{"internalType":"uint8","name":"pattern","type":"uint8"},{"internalType":"uint8","name":"pose","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rescueOrder","type":"uint256"}],"name":"nameOf","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes5","name":"catId","type":"bytes5"}],"name":"nameOf","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rescueOrder","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"patternNames","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poseNames","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rescueOrder","type":"uint256"}],"name":"rescueYearOf","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"proxyAddress","type":"address"},{"internalType":"bool","name":"isProxy","type":"bool"}],"name":"setERC721Proxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referenceContract","type":"address"}],"name":"setReferenceContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rescueOrder","type":"uint256"}],"name":"traitsOf","outputs":[{"internalType":"bool","name":"genesis","type":"bool"},{"internalType":"bool","name":"pale","type":"bool"},{"internalType":"string","name":"facing","type":"string"},{"internalType":"string","name":"expression","type":"string"},{"internalType":"string","name":"pattern","type":"string"},{"internalType":"string","name":"pose","type":"string"},{"internalType":"bytes5","name":"catId","type":"bytes5"},{"internalType":"uint16","name":"rescueYear","type":"uint16"},{"internalType":"bool","name":"isNamed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes5","name":"catId","type":"bytes5"}],"name":"traitsOf","outputs":[{"internalType":"bool","name":"genesis","type":"bool"},{"internalType":"bool","name":"pale","type":"bool"},{"internalType":"string","name":"facing","type":"string"},{"internalType":"string","name":"expression","type":"string"},{"internalType":"string","name":"pattern","type":"string"},{"internalType":"string","name":"pose","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"}],"name":"withdrawForeignERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawForeignERC721","outputs":[],"stateMutability":"nonpayable","type":"function"}]

600460c0908152631b19599d60e21b60e05260809081526101406040526005610100908152641c9a59da1d60da1b6101205260a05262000044906000906002620003a3565b50604051806080016040528060405180604001604052806007815260200166736d696c696e6760c81b8152508152602001604051806040016040528060068152602001656772756d707960d01b815250815260200160405180604001604052806007815260200166706f7574696e6760c81b81525081526020016040518060400160405280600381526020016273687960e81b8152508152506002906004620000ef929190620003fa565b506040518060800160405280604051806040016040528060048152602001637075726560e01b815250815260200160405180604001604052806005815260200164746162627960d81b8152508152602001604051806040016040528060078152602001661cdc1bdd1d195960ca1b815250815260200160405180604001604052806006815260200165746f7274696560d01b815250815250600690600462000199929190620003fa565b506040805160c081018252600860808201818152677374616e64696e6760c01b60a084015282528251808401845281815267736c656570696e6760c01b602082810191909152808401919091528351808501855282815267706f756e63696e6760c01b81830152838501528351808501909452908352677374616c6b696e6760c01b9083015260608101919091526200023790600a906004620003fa565b50600e80546001600160a01b0319167360cd862c9c687a9de49aecdc3a99b74a4fc54ab61790553480156200026b57600080fd5b5060405162001f1738038062001f178339810160408190526200028e9162000547565b601180546001600160a01b03191633908117909155604051630f41a04d60e11b815273084b1c3c81545d370f3634392de611caabff814891631e83409a91620002db919060040162000590565b602060405180830381600087803b158015620002f657600080fd5b505af11580156200030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000331919062000577565b5073c3f733ca98e0dad0386979eb96fb1722a1a05e6960005260106020527f996b77a2ab8d31f139cc78499d09acae04572eaede38646384b1070c67d070c0805460ff19166001179055600f80546001600160a01b03929092166001600160a01b0319909216919091179055620005e1565b8260028101928215620003e8579160200282015b82811115620003e85782518051620003d79184916020909101906200043f565b5091602001919060010190620003b7565b50620003f6929150620004ca565b5090565b8260048101928215620003e8579160200282015b82811115620003e857825180516200042e9184916020909101906200043f565b50916020019190600101906200040e565b8280546200044d90620005a4565b90600052602060002090601f016020900481019282620004715760008555620004bc565b82601f106200048c57805160ff1916838001178555620004bc565b82800160010185558215620004bc579182015b82811115620004bc5782518255916020019190600101906200049f565b50620003f6929150620004eb565b80821115620003f6576000620004e1828262000502565b50600101620004ca565b5b80821115620003f65760008155600101620004ec565b5080546200051090620005a4565b6000825580601f1062000524575062000544565b601f016020900490600052602060002090810190620005449190620004eb565b50565b60006020828403121562000559578081fd5b81516001600160a01b038116811462000570578182fd5b9392505050565b60006020828403121562000589578081fd5b5051919050565b6001600160a01b0391909116815260200190565b600281046001821680620005b957607f821691505b60208210811415620005db57634e487b7160e01b600052602260045260246000fd5b50919050565b61192680620005f16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063b3d8f28211610071578063b3d8f282146102b2578063c97398a8146102c5578063e20d31b5146102d8578063ef043c73146102eb578063f2fde38b1461030b5761012c565b80638da5cb5b1461022d5780639244e9b51461023557806394034c7e1461025a578063a08a0bbb1461026d578063ae62b43a146102925761012c565b80635c471995116100f45780635c471995146101a85780635efab6e4146101bb5780636352211e146101e35780637a0a3ac51461020357806381cb5e931461021a5761012c565b8063024b7e7114610131578063051a2664146101465780630ce06b681461016f578063259f956c146101825780633cf8a69714610195575b600080fd5b61014461013f36600461139b565b61031e565b005b6101596101543660046114ee565b61037c565b60405161016691906116c7565b60405180910390f35b61014461017d3660046113d3565b610429565b6101596101903660046114ee565b6104bd565b6101446101a3366004611363565b61055d565b6101446101b6366004611363565b6105a9565b6101ce6101c93660046114ee565b6106d5565b604051610166999897969594939291906115ed565b6101f66101f13660046114ee565b610840565b6040516101669190611532565b61020b610977565b604051610166939291906116da565b6101596102283660046114ee565b610a0b565b6101f6610a1b565b610248610243366004611432565b610a2a565b60405161016696959493929190611583565b6101596102683660046114ee565b610d32565b61028061027b3660046114ee565b610d42565b60405161016696959493929190611680565b6102a56102a03660046114ee565b610e02565b60405161016691906117c1565b6102806102c0366004611432565b610e55565b6101596102d33660046114ee565b610f79565b6101596102e6366004611432565b610f89565b6102fe6102f93660046114ee565b61118d565b60405161016691906116b2565b610144610319366004611363565b611230565b6011546001600160a01b031633146103515760405162461bcd60e51b81526004016103489061179d565b60405180910390fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6060616360821061039f5760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b8152610421916001600160a01b03169063434b1208906103d19086906004016117d0565b60206040518083038186803b1580156103e957600080fd5b505afa1580156103fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e6919061144e565b90505b919050565b6011546001600160a01b031633146104535760405162461bcd60e51b81526004016103489061179d565b601154604051632142170760e11b81526001600160a01b03808516926342842e0e926104879230921690869060040161155f565b600060405180830381600087803b1580156104a157600080fd5b505af11580156104b5573d6000803e3d6000fd5b505050505050565b600a81600481106104cd57600080fd5b0180549091506104dc90611809565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611809565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b505050505081565b6011546001600160a01b031633146105875760405162461bcd60e51b81526004016103489061179d565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031633146105d35760405162461bcd60e51b81526004016103489061179d565b6011546040516370a0823160e01b815282916001600160a01b038084169263a9059cbb929091169083906370a0823190610611903090600401611532565b60206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610661919061141a565b6040518363ffffffff1660e01b815260040161067e929190611546565b602060405180830381600087803b15801561069857600080fd5b505af11580156106ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d091906113fe565b505050565b60008060608060608060008060006163608a106107045760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b81526001600160a01b039091169063434b120890610734908d906004016117d0565b60206040518083038186803b15801561074c57600080fd5b505afa158015610760573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610784919061144e565b925061078f83610a2a565b949d50929b509099509750955093506107a78a610e02565b600e546040516311ff2bf560e31b81529193506000916001600160a01b0390911690638ff95fa8906107dd9087906004016116b2565b60206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d919061141a565b60001c1190509193959799909294969850565b600061636082106108635760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b81526000916001600160a01b03169063434b1208906108949086906004016117d0565b60206040518083038186803b1580156108ac57600080fd5b505afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e4919061144e565b600e54604051633894ca5760e01b81529192506109709185916001600160a01b031690633894ca579061091b9086906004016116b2565b60206040518083038186803b15801561093357600080fd5b505afa158015610947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096b919061137f565b61127c565b9392505050565b600f54604051630c5c275960e21b8152606091829182916001600160a01b0316906331709d64906109ac903090600401611532565b60006040518083038186803b1580156109c457600080fd5b505afa1580156109d8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a00919081019061146a565b925092509250909192565b600081600281106104cd57600080fd5b6011546001600160a01b031681565b600080606080606080600080600080600080610a458d610e55565b955095509550955095509550858560008660ff1660028110610a7757634e487b7160e01b600052603260045260246000fd5b0160028660ff1660048110610a9c57634e487b7160e01b600052603260045260246000fd5b0160068660ff1660048110610ac157634e487b7160e01b600052603260045260246000fd5b01600a8660ff1660048110610ae657634e487b7160e01b600052603260045260246000fd5b01838054610af390611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1f90611809565b8015610b6c5780601f10610b4157610100808354040283529160200191610b6c565b820191906000526020600020905b815481529060010190602001808311610b4f57829003601f168201915b50505050509350828054610b7f90611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610bab90611809565b8015610bf85780601f10610bcd57610100808354040283529160200191610bf8565b820191906000526020600020905b815481529060010190602001808311610bdb57829003601f168201915b50505050509250818054610c0b90611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3790611809565b8015610c845780601f10610c5957610100808354040283529160200191610c84565b820191906000526020600020905b815481529060010190602001808311610c6757829003601f168201915b50505050509150808054610c9790611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc390611809565b8015610d105780601f10610ce557610100808354040283529160200191610d10565b820191906000526020600020905b815481529060010190602001808311610cf357829003601f168201915b505050505090509b509b509b509b509b509b5050505050505091939550919395565b600681600481106104cd57600080fd5b6000806000806000806163608710610d6c5760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b8152610dee916001600160a01b03169063434b120890610d9e908b906004016117d0565b60206040518083038186803b158015610db657600080fd5b505afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c0919061144e565b949c939b5091995097509550909350915050565b6000610d248211610e1657506107e1610424565b6116338211610e2857506107e2610424565b61167a8211610e3a57506107e3610424565b61167d8211610e4c57506107e4610424565b506107e5610424565b6000808080808060d887901c60f888901c801580610e7657508060ff1660ff145b610e925760405162461bcd60e51b815260040161034890611713565b60ff80821614975062ffffff601083901c1663ffffffff600884901c16838a1580610edb575060ff8316158015610ecc57508160ff16600c145b8015610edb57508060ff1660a7145b610ef75760405162461bcd60e51b815260040161034890611771565b6001601f86901c81161499508a15610f465761ffff601886901c166000610f1f600283611870565b60ff16159050808015610f2f57508b5b80610f41575080158015610f4157508b155b9b5050505b50989a979950506001601e83901c169750506003601c82901c811696601a83901c8216965060189290921c169350915050565b600281600481106104cd57600080fd5b600e546040516311ff2bf560e31b81526060916000916001600160a01b0390911690638ff95fa890610fbf9086906004016116b2565b60206040518083038186803b158015610fd757600080fd5b505afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f919061141a565b905060005b60208160ff161080156110565750818160ff166020811061104557634e487b7160e01b600052603260045260246000fd5b1a60f81b6001600160f81b03191615155b1561106d578061106581611844565b915050611014565b60008160ff1667ffffffffffffffff81111561109957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156110c3576020820181803683370190505b509050600091505b60208260ff1610801561110d5750828260ff16602081106110fc57634e487b7160e01b600052603260045260246000fd5b1a60f81b6001600160f81b03191615155b1561118557828260ff166020811061113557634e487b7160e01b600052603260045260246000fd5b1a60f81b818360ff168151811061115c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053508161117d81611844565b9250506110cb565b949350505050565b600061636082106111b05760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b81526001600160a01b039091169063434b1208906111e09085906004016117d0565b60206040518083038186803b1580156111f857600080fd5b505afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610421919061144e565b6011546001600160a01b0316331461125a5760405162461bcd60e51b81526004016103489061179d565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526010602052604081205460ff16156112d4576112cd83836001600160a01b0316636352211e866040518263ffffffff1660e01b815260040161091b91906117d0565b90506112d7565b50805b92915050565b600082601f8301126112ed578081fd5b815167ffffffffffffffff808211156113085761130861189e565b604051601f8301601f19908116603f011681019082821181831017156113305761133061189e565b81604052838152866020858801011115611348578485fd5b6113598460208301602089016117d9565b9695505050505050565b600060208284031215611374578081fd5b8135610970816118b4565b600060208284031215611390578081fd5b8151610970816118b4565b600080604083850312156113ad578081fd5b82356113b8816118b4565b915060208301356113c8816118cc565b809150509250929050565b600080604083850312156113e5578182fd5b82356113f0816118b4565b946020939093013593505050565b60006020828403121561140f578081fd5b8151610970816118cc565b60006020828403121561142b578081fd5b5051919050565b600060208284031215611443578081fd5b8135610970816118da565b60006020828403121561145f578081fd5b8151610970816118da565b60008060006060848603121561147e578081fd5b835167ffffffffffffffff80821115611495578283fd5b6114a1878388016112dd565b945060208601519150808211156114b6578283fd5b6114c2878388016112dd565b935060408601519150808211156114d7578283fd5b506114e4868287016112dd565b9150509250925092565b6000602082840312156114ff578081fd5b5035919050565b6000815180845261151e8160208601602086016117d9565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008715158252861515602083015260c060408301526115a660c0830187611506565b82810360608401526115b88187611506565b905082810360808401526115cc8186611506565b905082810360a08401526115e08185611506565b9998505050505050505050565b60006101208b151583528a151560208401528060408401526116118184018b611506565b90508281036060840152611625818a611506565b905082810360808401526116398189611506565b905082810360a084015261164d8188611506565b6001600160d81b03199690961660c0840152505061ffff9290921660e08301521515610100909101529695505050505050565b9515158652931515602086015260ff92831660408601529082166060850152811660808401521660a082015260c00190565b6001600160d81b031991909116815260200190565b6000602082526109706020830184611506565b6000606082526116ed6060830186611506565b82810360208401526116ff8186611506565b905082810360408401526113598185611506565b60208082526016908201527524b73b30b634b21021b630b9b9b4b334b1b0ba34b7b760511b604082015260600190565b60208082526014908201527324b73b30b634b2102932b9b1bab29027b93232b960611b604082015260600190565b602080825260129082015271125b9d985b1a590811d95b995cda5cc8125960721b604082015260600190565b6020808252600a908201526927b7363c9027bbb732b960b11b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60005b838110156117f45781810151838201526020016117dc565b83811115611803576000848401525b50505050565b60028104600182168061181d57607f821691505b6020821081141561183e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060ff821660ff81141561186757634e487b7160e01b82526011600452602482fd5b60010192915050565b600060ff83168061188f57634e487b7160e01b82526012600452602482fd5b8060ff84160691505092915050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146118c957600080fd5b50565b80151581146118c957600080fd5b6001600160d81b0319811681146118c957600080fdfea2646970667358221220ca5247996b5c3eb3cbf502ae39079b7550a8d37d84fd7ef2887052c433fea02864736f6c634300080100330000000000000000000000000b78c64bce6d6d4447e58b09e53f3621f44a2a48

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063b3d8f28211610071578063b3d8f282146102b2578063c97398a8146102c5578063e20d31b5146102d8578063ef043c73146102eb578063f2fde38b1461030b5761012c565b80638da5cb5b1461022d5780639244e9b51461023557806394034c7e1461025a578063a08a0bbb1461026d578063ae62b43a146102925761012c565b80635c471995116100f45780635c471995146101a85780635efab6e4146101bb5780636352211e146101e35780637a0a3ac51461020357806381cb5e931461021a5761012c565b8063024b7e7114610131578063051a2664146101465780630ce06b681461016f578063259f956c146101825780633cf8a69714610195575b600080fd5b61014461013f36600461139b565b61031e565b005b6101596101543660046114ee565b61037c565b60405161016691906116c7565b60405180910390f35b61014461017d3660046113d3565b610429565b6101596101903660046114ee565b6104bd565b6101446101a3366004611363565b61055d565b6101446101b6366004611363565b6105a9565b6101ce6101c93660046114ee565b6106d5565b604051610166999897969594939291906115ed565b6101f66101f13660046114ee565b610840565b6040516101669190611532565b61020b610977565b604051610166939291906116da565b6101596102283660046114ee565b610a0b565b6101f6610a1b565b610248610243366004611432565b610a2a565b60405161016696959493929190611583565b6101596102683660046114ee565b610d32565b61028061027b3660046114ee565b610d42565b60405161016696959493929190611680565b6102a56102a03660046114ee565b610e02565b60405161016691906117c1565b6102806102c0366004611432565b610e55565b6101596102d33660046114ee565b610f79565b6101596102e6366004611432565b610f89565b6102fe6102f93660046114ee565b61118d565b60405161016691906116b2565b610144610319366004611363565b611230565b6011546001600160a01b031633146103515760405162461bcd60e51b81526004016103489061179d565b60405180910390fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6060616360821061039f5760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b8152610421916001600160a01b03169063434b1208906103d19086906004016117d0565b60206040518083038186803b1580156103e957600080fd5b505afa1580156103fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e6919061144e565b90505b919050565b6011546001600160a01b031633146104535760405162461bcd60e51b81526004016103489061179d565b601154604051632142170760e11b81526001600160a01b03808516926342842e0e926104879230921690869060040161155f565b600060405180830381600087803b1580156104a157600080fd5b505af11580156104b5573d6000803e3d6000fd5b505050505050565b600a81600481106104cd57600080fd5b0180549091506104dc90611809565b80601f016020809104026020016040519081016040528092919081815260200182805461050890611809565b80156105555780601f1061052a57610100808354040283529160200191610555565b820191906000526020600020905b81548152906001019060200180831161053857829003601f168201915b505050505081565b6011546001600160a01b031633146105875760405162461bcd60e51b81526004016103489061179d565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031633146105d35760405162461bcd60e51b81526004016103489061179d565b6011546040516370a0823160e01b815282916001600160a01b038084169263a9059cbb929091169083906370a0823190610611903090600401611532565b60206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610661919061141a565b6040518363ffffffff1660e01b815260040161067e929190611546565b602060405180830381600087803b15801561069857600080fd5b505af11580156106ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d091906113fe565b505050565b60008060608060608060008060006163608a106107045760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b81526001600160a01b039091169063434b120890610734908d906004016117d0565b60206040518083038186803b15801561074c57600080fd5b505afa158015610760573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610784919061144e565b925061078f83610a2a565b949d50929b509099509750955093506107a78a610e02565b600e546040516311ff2bf560e31b81529193506000916001600160a01b0390911690638ff95fa8906107dd9087906004016116b2565b60206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d919061141a565b60001c1190509193959799909294969850565b600061636082106108635760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b81526000916001600160a01b03169063434b1208906108949086906004016117d0565b60206040518083038186803b1580156108ac57600080fd5b505afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e4919061144e565b600e54604051633894ca5760e01b81529192506109709185916001600160a01b031690633894ca579061091b9086906004016116b2565b60206040518083038186803b15801561093357600080fd5b505afa158015610947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096b919061137f565b61127c565b9392505050565b600f54604051630c5c275960e21b8152606091829182916001600160a01b0316906331709d64906109ac903090600401611532565b60006040518083038186803b1580156109c457600080fd5b505afa1580156109d8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a00919081019061146a565b925092509250909192565b600081600281106104cd57600080fd5b6011546001600160a01b031681565b600080606080606080600080600080600080610a458d610e55565b955095509550955095509550858560008660ff1660028110610a7757634e487b7160e01b600052603260045260246000fd5b0160028660ff1660048110610a9c57634e487b7160e01b600052603260045260246000fd5b0160068660ff1660048110610ac157634e487b7160e01b600052603260045260246000fd5b01600a8660ff1660048110610ae657634e487b7160e01b600052603260045260246000fd5b01838054610af390611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1f90611809565b8015610b6c5780601f10610b4157610100808354040283529160200191610b6c565b820191906000526020600020905b815481529060010190602001808311610b4f57829003601f168201915b50505050509350828054610b7f90611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610bab90611809565b8015610bf85780601f10610bcd57610100808354040283529160200191610bf8565b820191906000526020600020905b815481529060010190602001808311610bdb57829003601f168201915b50505050509250818054610c0b90611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3790611809565b8015610c845780601f10610c5957610100808354040283529160200191610c84565b820191906000526020600020905b815481529060010190602001808311610c6757829003601f168201915b50505050509150808054610c9790611809565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc390611809565b8015610d105780601f10610ce557610100808354040283529160200191610d10565b820191906000526020600020905b815481529060010190602001808311610cf357829003601f168201915b505050505090509b509b509b509b509b509b5050505050505091939550919395565b600681600481106104cd57600080fd5b6000806000806000806163608710610d6c5760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b8152610dee916001600160a01b03169063434b120890610d9e908b906004016117d0565b60206040518083038186803b158015610db657600080fd5b505afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c0919061144e565b949c939b5091995097509550909350915050565b6000610d248211610e1657506107e1610424565b6116338211610e2857506107e2610424565b61167a8211610e3a57506107e3610424565b61167d8211610e4c57506107e4610424565b506107e5610424565b6000808080808060d887901c60f888901c801580610e7657508060ff1660ff145b610e925760405162461bcd60e51b815260040161034890611713565b60ff80821614975062ffffff601083901c1663ffffffff600884901c16838a1580610edb575060ff8316158015610ecc57508160ff16600c145b8015610edb57508060ff1660a7145b610ef75760405162461bcd60e51b815260040161034890611771565b6001601f86901c81161499508a15610f465761ffff601886901c166000610f1f600283611870565b60ff16159050808015610f2f57508b5b80610f41575080158015610f4157508b155b9b5050505b50989a979950506001601e83901c169750506003601c82901c811696601a83901c8216965060189290921c169350915050565b600281600481106104cd57600080fd5b600e546040516311ff2bf560e31b81526060916000916001600160a01b0390911690638ff95fa890610fbf9086906004016116b2565b60206040518083038186803b158015610fd757600080fd5b505afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f919061141a565b905060005b60208160ff161080156110565750818160ff166020811061104557634e487b7160e01b600052603260045260246000fd5b1a60f81b6001600160f81b03191615155b1561106d578061106581611844565b915050611014565b60008160ff1667ffffffffffffffff81111561109957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156110c3576020820181803683370190505b509050600091505b60208260ff1610801561110d5750828260ff16602081106110fc57634e487b7160e01b600052603260045260246000fd5b1a60f81b6001600160f81b03191615155b1561118557828260ff166020811061113557634e487b7160e01b600052603260045260246000fd5b1a60f81b818360ff168151811061115c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053508161117d81611844565b9250506110cb565b949350505050565b600061636082106111b05760405162461bcd60e51b815260040161034890611743565b600e54604051630869624160e31b81526001600160a01b039091169063434b1208906111e09085906004016117d0565b60206040518083038186803b1580156111f857600080fd5b505afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610421919061144e565b6011546001600160a01b0316331461125a5760405162461bcd60e51b81526004016103489061179d565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526010602052604081205460ff16156112d4576112cd83836001600160a01b0316636352211e866040518263ffffffff1660e01b815260040161091b91906117d0565b90506112d7565b50805b92915050565b600082601f8301126112ed578081fd5b815167ffffffffffffffff808211156113085761130861189e565b604051601f8301601f19908116603f011681019082821181831017156113305761133061189e565b81604052838152866020858801011115611348578485fd5b6113598460208301602089016117d9565b9695505050505050565b600060208284031215611374578081fd5b8135610970816118b4565b600060208284031215611390578081fd5b8151610970816118b4565b600080604083850312156113ad578081fd5b82356113b8816118b4565b915060208301356113c8816118cc565b809150509250929050565b600080604083850312156113e5578182fd5b82356113f0816118b4565b946020939093013593505050565b60006020828403121561140f578081fd5b8151610970816118cc565b60006020828403121561142b578081fd5b5051919050565b600060208284031215611443578081fd5b8135610970816118da565b60006020828403121561145f578081fd5b8151610970816118da565b60008060006060848603121561147e578081fd5b835167ffffffffffffffff80821115611495578283fd5b6114a1878388016112dd565b945060208601519150808211156114b6578283fd5b6114c2878388016112dd565b935060408601519150808211156114d7578283fd5b506114e4868287016112dd565b9150509250925092565b6000602082840312156114ff578081fd5b5035919050565b6000815180845261151e8160208601602086016117d9565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008715158252861515602083015260c060408301526115a660c0830187611506565b82810360608401526115b88187611506565b905082810360808401526115cc8186611506565b905082810360a08401526115e08185611506565b9998505050505050505050565b60006101208b151583528a151560208401528060408401526116118184018b611506565b90508281036060840152611625818a611506565b905082810360808401526116398189611506565b905082810360a084015261164d8188611506565b6001600160d81b03199690961660c0840152505061ffff9290921660e08301521515610100909101529695505050505050565b9515158652931515602086015260ff92831660408601529082166060850152811660808401521660a082015260c00190565b6001600160d81b031991909116815260200190565b6000602082526109706020830184611506565b6000606082526116ed6060830186611506565b82810360208401526116ff8186611506565b905082810360408401526113598185611506565b60208082526016908201527524b73b30b634b21021b630b9b9b4b334b1b0ba34b7b760511b604082015260600190565b60208082526014908201527324b73b30b634b2102932b9b1bab29027b93232b960611b604082015260600190565b602080825260129082015271125b9d985b1a590811d95b995cda5cc8125960721b604082015260600190565b6020808252600a908201526927b7363c9027bbb732b960b11b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60005b838110156117f45781810151838201526020016117dc565b83811115611803576000848401525b50505050565b60028104600182168061181d57607f821691505b6020821081141561183e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060ff821660ff81141561186757634e487b7160e01b82526011600452602482fd5b60010192915050565b600060ff83168061188f57634e487b7160e01b82526012600452602482fd5b8060ff84160691505092915050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146118c957600080fd5b50565b80151581146118c957600080fd5b6001600160d81b0319811681146118c957600080fdfea2646970667358221220ca5247996b5c3eb3cbf502ae39079b7550a8d37d84fd7ef2887052c433fea02864736f6c63430008010033

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

0000000000000000000000000b78c64bce6d6d4447e58b09e53f3621f44a2a48

-----Decoded View---------------
Arg [0] : MoonCatReferenceAddress (address): 0x0B78C64bCE6d6d4447e58b09E53F3621f44A2a48

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000b78c64bce6d6d4447e58b09e53f3621f44a2a48


Deployed Bytecode Sourcemap

1648:8152:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8868:141;;;;;;:::i;:::-;;:::i;:::-;;7533:199;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9616:177;;;;;;:::i;:::-;;:::i;1933:77::-;;;;;;:::i;:::-;;:::i;9095:149::-;;;;;;:::i;:::-;;:::i;9335:189::-;;;;;;:::i;:::-;;:::i;5121:630::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;6352:257::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7831:167::-;;;:::i;:::-;;;;;;;;;:::i;1720:48::-;;;;;;:::i;:::-;;:::i;8440:28::-;;;:::i;4389:608::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;1856:70::-;;;;;;:::i;:::-;;:::i;3933:338::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;2309:405::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2823:995::-;;;;;;:::i;:::-;;:::i;1775:74::-;;;;;;:::i;:::-;;:::i;7011:407::-;;;;;;:::i;:::-;;:::i;6717:185::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8675:106::-;;;;;;:::i;:::-;;:::i;8868:141::-;8532:5;;-1:-1:-1;;;;;8532:5:0;8518:10;:19;8510:42;;;;-1:-1:-1;;;8510:42:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8957:34:0;;;::::1;;::::0;;;:20:::1;:34;::::0;;;;:44;;-1:-1:-1;;8957:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8868:141::o;7533:199::-;7592:13;7640:5;7626:11;:19;7618:52;;;;-1:-1:-1;;;7618:52:0;;;;;;;:::i;:::-;7695:3;;:28;;-1:-1:-1;;;7695:28:0;;7688:36;;-1:-1:-1;;;;;7695:3:0;;:15;;:28;;7711:11;;7695:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7688:36::-;7681:43;;7533:199;;;;:::o;9616:177::-;8532:5;;-1:-1:-1;;;;;8532:5:0;8518:10;:19;8510:42;;;;-1:-1:-1;;;8510:42:0;;;;;;;:::i;:::-;9770:5:::1;::::0;9715:70:::1;::::0;-1:-1:-1;;;9715:70:0;;-1:-1:-1;;;;;9715:39:0;;::::1;::::0;::::1;::::0;:70:::1;::::0;9763:4:::1;::::0;9770:5:::1;::::0;9777:7;;9715:70:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9616:177:::0;;:::o;1933:77::-;;;;;;;;;;;;;;;;;-1:-1:-1;1933:77:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9095:149::-;8532:5;;-1:-1:-1;;;;;8532:5:0;8518:10;:19;8510:42;;;;-1:-1:-1;;;8510:42:0;;;;;;;:::i;:::-;9181:16:::1;:55:::0;;-1:-1:-1;;;;;;9181:55:0::1;-1:-1:-1::0;;;;;9181:55:0;;;::::1;::::0;;;::::1;::::0;;9095:149::o;9335:189::-;8532:5;;-1:-1:-1;;;;;8532:5:0;8518:10;:19;8510:42;;;;-1:-1:-1;;;8510:42:0;;;;;;;:::i;:::-;9478:5:::1;::::0;9485:30:::1;::::0;-1:-1:-1;;;9485:30:0;;9438:13;;-1:-1:-1;;;;;9463:14:0;;::::1;::::0;::::1;::::0;9478:5;;::::1;::::0;9463:14;;9485:15:::1;::::0;:30:::1;::::0;9509:4:::1;::::0;9485:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9463:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8563:1;9335:189:::0;:::o;5121:630::-;5191:12;5215:9;5236:20;5268:24;5304:21;5337:18;5367:12;5391:17;5420:12;5483:5;5469:11;:19;5461:52;;;;-1:-1:-1;;;5461:52:0;;;;;;;:::i;:::-;5532:3;;:28;;-1:-1:-1;;;5532:28:0;;-1:-1:-1;;;;;5532:3:0;;;;:15;;:28;;5548:11;;5532:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5524:36;;5624:15;5633:5;5624:8;:15::i;:::-;5571:68;;-1:-1:-1;5571:68:0;;-1:-1:-1;5571:68:0;;-1:-1:-1;5571:68:0;-1:-1:-1;5571:68:0;-1:-1:-1;5571:68:0;-1:-1:-1;5663:25:0;5676:11;5663:12;:25::i;:::-;5718:3;;:19;;-1:-1:-1;;;5718:19:0;;5650:38;;-1:-1:-1;5741:1:0;;-1:-1:-1;;;;;5718:3:0;;;;:12;;:19;;5731:5;;5718:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5710:28;;:32;5699:44;;5121:630;;;;;;;;;;;:::o;6352:257::-;6412:7;6454:5;6440:11;:19;6432:52;;;;-1:-1:-1;;;6432:52:0;;;;;;;:::i;:::-;6510:3;;:28;;-1:-1:-1;;;6510:28:0;;6495:12;;-1:-1:-1;;;;;6510:3:0;;:15;;:28;;6526:11;;6510:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6580:3;;:20;;-1:-1:-1;;;6580:20:0;;6495:43;;-1:-1:-1;6556:45:0;;6567:11;;-1:-1:-1;;;;;6580:3:0;;:13;;:20;;6495:43;;6580:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6556:10;:45::i;:::-;6549:52;6352:257;-1:-1:-1;;;6352:257:0:o;7831:167::-;7955:16;;:35;;-1:-1:-1;;;7955:35:0;;7867:18;;;;;;-1:-1:-1;;;;;7955:16:0;;:20;;:35;;7984:4;;7955:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7955:35:0;;;;;;;;;;;;:::i;:::-;7948:42;;;;;;7831:167;;;:::o;1720:48::-;;;;;;;;;;;8440:28;;;-1:-1:-1;;;;;8440:28:0;;:::o;4389:608::-;4452:12;4476:9;4497:20;4529:24;4565:21;4598:18;4635:16;4653:13;4668:15;4685:19;4706:16;4724:13;4741:16;4751:5;4741:9;:16::i;:::-;4634:123;;;;;;;;;;;;4790:11;4816:8;4839:11;4851:9;4839:22;;;;;;;-1:-1:-1;;;4839:22:0;;;;;;;;;;4876:15;4892:13;4876:30;;;;;;;-1:-1:-1;;;4876:30:0;;;;;;;;;;4921:12;4934:10;4921:24;;;;;;;-1:-1:-1;;;4921:24:0;;;;;;;;;;4960:9;4970:7;4960:18;;;;;;;-1:-1:-1;;;4960:18:0;;;;;;;;;;4768:221;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4389:608;;;;;;;:::o;1856:70::-;;;;;;;;;;;3933:338;4004:12;4028:9;4049:12;4073:16;4101:13;4126:10;4176:5;4162:11;:19;4154:52;;;;-1:-1:-1;;;4154:52:0;;;;;;;:::i;:::-;4234:3;;:28;;-1:-1:-1;;;4234:28:0;;4224:39;;-1:-1:-1;;;;;4234:3:0;;:15;;:28;;4250:11;;4234:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4224:39::-;4217:46;;;;-1:-1:-1;4217:46:0;;-1:-1:-1;4217:46:0;-1:-1:-1;4217:46:0;-1:-1:-1;4217:46:0;;-1:-1:-1;3933:338:0;-1:-1:-1;;3933:338:0:o;2309:405::-;2374:6;2412:4;2397:11;:19;2393:314;;-1:-1:-1;2440:4:0;2433:11;;2393:314;2481:4;2466:11;:19;2462:245;;-1:-1:-1;2509:4:0;2502:11;;2462:245;2550:4;2535:11;:19;2531:176;;-1:-1:-1;2578:4:0;2571:11;;2531:176;2619:4;2604:11;:19;2600:107;;-1:-1:-1;2647:4:0;2640:11;;2600:107;-1:-1:-1;2691:4:0;2684:11;;2823:995;2887:12;;;;;;3048:13;;;;3101:7;;;;3128:19;;;:44;;;3151:14;:21;;3169:3;3151:21;3128:44;3120:79;;;;-1:-1:-1;;;3120:79:0;;;;;;;:::i;:::-;3223:21;;;;;;-1:-1:-1;3274:7:0;3279:2;3274:7;;;;3309:6;3314:1;3309:6;;;;3274:1;3366:8;;;:43;;-1:-1:-1;3379:6:0;;;;:17;;;;;3389:1;:7;;3394:2;3389:7;3379:17;:29;;;;;3400:1;:8;;3405:3;3400:8;3379:29;3358:74;;;;-1:-1:-1;;;3358:74:0;;;;;;;:::i;:::-;3465:1;3459:2;3454:7;;;3453:13;;3452:20;;-1:-1:-1;3483:163:0;;;;3527:7;3532:2;3527:7;;;;3511;3564:5;3568:1;3527:7;3564:5;:::i;:::-;:10;;;;-1:-1:-1;3564:10:0;3597:14;;;;;3607:4;3597:14;3596:38;;;;3618:6;3617:7;:16;;;;;3629:4;3628:5;3617:16;3589:45;;3483:163;;;-1:-1:-1;2823:995:0;;;;-1:-1:-1;;3685:1:0;3679:2;3674:7;;;3673:13;;-1:-1:-1;;3729:1:0;3723:2;3718:7;;;3717:13;;;3764:2;3759:7;;;3758:13;;;-1:-1:-1;3802:2:0;3797:7;;;;3796:13;;-1:-1:-1;2823:995:0;-1:-1:-1;;2823:995:0:o;1775:74::-;;;;;;;;;;;7011:407;7107:3;;:19;;-1:-1:-1;;;7107:19:0;;7063:13;;7089:15;;-1:-1:-1;;;;;7107:3:0;;;;:12;;:19;;7120:5;;7107:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7089:37;;7137:7;7159:63;7169:2;7165:1;:6;;;:25;;;;;7175:7;7183:1;7175:10;;;;;;;-1:-1:-1;;;7175:10:0;;;;;;;;;;;;-1:-1:-1;;;;;;7175:15:0;;;7165:25;7159:63;;;7207:3;;;;:::i;:::-;;;;7159:63;;;7232:22;7267:1;7257:12;;;;;;;;-1:-1:-1;;;7257:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7257:12:0;;7232:37;;7289:1;7285:5;;7280:96;7296:2;7292:1;:6;;;:25;;;;;7302:7;7310:1;7302:10;;;;;;;-1:-1:-1;;;7302:10:0;;;;;;;;;;;;-1:-1:-1;;;;;;7302:15:0;;;7292:25;7280:96;;;7354:7;7362:1;7354:10;;;;;;;-1:-1:-1;;;7354:10:0;;;;;;;;;;;;7339:9;7349:1;7339:12;;;;;;;;-1:-1:-1;;;7339:12:0;;;;;;;;;;;;:25;-1:-1:-1;;;;;7339:25:0;;;;;;;;-1:-1:-1;7319:3:0;;;;:::i;:::-;;;;7280:96;;;7400:9;7011:407;-1:-1:-1;;;;7011:407:0:o;6717:185::-;6777:6;6818:5;6804:11;:19;6796:52;;;;-1:-1:-1;;;6796:52:0;;;;;;;:::i;:::-;6866:3;;:28;;-1:-1:-1;;;6866:28:0;;-1:-1:-1;;;;;6866:3:0;;;;:15;;:28;;6882:11;;6866:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8675:106::-;8532:5;;-1:-1:-1;;;;;8532:5:0;8518:10;:19;8510:42;;;;-1:-1:-1;;;8510:42:0;;;;;;;:::i;:::-;8757:5:::1;:16:::0;;-1:-1:-1;;;;;;8757:16:0::1;-1:-1:-1::0;;;;;8757:16:0;;;::::1;::::0;;;::::1;::::0;;8675:106::o;5942:307::-;-1:-1:-1;;;;;6053:34:0;;6029:7;6053:34;;;:20;:34;;;;;;;;6049:193;;;6111:67;6122:11;6143:12;-1:-1:-1;;;;;6135:29:0;;6165:11;6135:42;;;;;;;;;;;;;;;:::i;6111:67::-;6104:74;;;;6049:193;-1:-1:-1;6218:12:0;6049:193;5942:307;;;;:::o;14:704:1:-;;123:3;116:4;108:6;104:17;100:27;90:2;;145:5;138;131:20;90:2;178:6;172:13;204:18;241:2;237;234:10;231:2;;;247:18;;:::i;:::-;322:2;316:9;290:2;376:13;;-1:-1:-1;;372:22:1;;;396:2;368:31;364:40;352:53;;;420:18;;;440:22;;;417:46;414:2;;;466:18;;:::i;:::-;506:10;502:2;495:22;541:2;533:6;526:18;587:3;580:4;575:2;567:6;563:15;559:26;556:35;553:2;;;608:5;601;594:20;553:2;625:63;685:2;678:4;670:6;666:17;659:4;651:6;647:17;625:63;:::i;:::-;706:6;80:638;-1:-1:-1;;;;;;80:638:1:o;723:259::-;;835:2;823:9;814:7;810:23;806:32;803:2;;;856:6;848;841:22;803:2;900:9;887:23;919:33;946:5;919:33;:::i;987:263::-;;1110:2;1098:9;1089:7;1085:23;1081:32;1078:2;;;1131:6;1123;1116:22;1078:2;1168:9;1162:16;1187:33;1214:5;1187:33;:::i;1527:396::-;;;1653:2;1641:9;1632:7;1628:23;1624:32;1621:2;;;1674:6;1666;1659:22;1621:2;1718:9;1705:23;1737:33;1764:5;1737:33;:::i;:::-;1789:5;-1:-1:-1;1846:2:1;1831:18;;1818:32;1859;1818;1859;:::i;:::-;1910:7;1900:17;;;1611:312;;;;;:::o;1928:327::-;;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2078:6;2070;2063:22;2025:2;2122:9;2109:23;2141:33;2168:5;2141:33;:::i;:::-;2193:5;2245:2;2230:18;;;;2217:32;;-1:-1:-1;;;2015:240:1:o;2260:257::-;;2380:2;2368:9;2359:7;2355:23;2351:32;2348:2;;;2401:6;2393;2386:22;2348:2;2438:9;2432:16;2457:30;2481:5;2457:30;:::i;2522:194::-;;2645:2;2633:9;2624:7;2620:23;2616:32;2613:2;;;2666:6;2658;2651:22;2613:2;-1:-1:-1;2694:16:1;;2603:113;-1:-1:-1;2603:113:1:o;2721:257::-;;2832:2;2820:9;2811:7;2807:23;2803:32;2800:2;;;2853:6;2845;2838:22;2800:2;2897:9;2884:23;2916:32;2942:5;2916:32;:::i;2983:261::-;;3105:2;3093:9;3084:7;3080:23;3076:32;3073:2;;;3126:6;3118;3111:22;3073:2;3163:9;3157:16;3182:32;3208:5;3182:32;:::i;3249:812::-;;;;3436:2;3424:9;3415:7;3411:23;3407:32;3404:2;;;3457:6;3449;3442:22;3404:2;3495:9;3489:16;3524:18;3565:2;3557:6;3554:14;3551:2;;;3586:6;3578;3571:22;3551:2;3614:63;3669:7;3660:6;3649:9;3645:22;3614:63;:::i;:::-;3604:73;;3723:2;3712:9;3708:18;3702:25;3686:41;;3752:2;3742:8;3739:16;3736:2;;;3773:6;3765;3758:22;3736:2;3801:65;3858:7;3847:8;3836:9;3832:24;3801:65;:::i;:::-;3791:75;;3912:2;3901:9;3897:18;3891:25;3875:41;;3941:2;3931:8;3928:16;3925:2;;;3962:6;3954;3947:22;3925:2;;3990:65;4047:7;4036:8;4025:9;4021:24;3990:65;:::i;:::-;3980:75;;;3394:667;;;;;:::o;4066:190::-;;4178:2;4166:9;4157:7;4153:23;4149:32;4146:2;;;4199:6;4191;4184:22;4146:2;-1:-1:-1;4227:23:1;;4136:120;-1:-1:-1;4136:120:1:o;4460:260::-;;4542:5;4536:12;4569:6;4564:3;4557:19;4585:63;4641:6;4634:4;4629:3;4625:14;4618:4;4611:5;4607:16;4585:63;:::i;:::-;4702:2;4681:15;-1:-1:-1;;4677:29:1;4668:39;;;;4709:4;4664:50;;4512:208;-1:-1:-1;;4512:208:1:o;4725:203::-;-1:-1:-1;;;;;4889:32:1;;;;4871:51;;4859:2;4844:18;;4826:102::o;5157:282::-;-1:-1:-1;;;;;5357:32:1;;;;5339:51;;5421:2;5406:18;;5399:34;5327:2;5312:18;;5294:145::o;5444:383::-;-1:-1:-1;;;;;5710:15:1;;;5692:34;;5762:15;;;;5757:2;5742:18;;5735:43;5809:2;5794:18;;5787:34;;;;5642:2;5627:18;;5609:218::o;5832:883::-;;6183:6;6176:14;6169:22;6158:9;6151:41;6242:6;6235:14;6228:22;6223:2;6212:9;6208:18;6201:50;6287:3;6282:2;6271:9;6267:18;6260:31;6314:48;6357:3;6346:9;6342:19;6334:6;6314:48;:::i;:::-;6410:9;6402:6;6398:22;6393:2;6382:9;6378:18;6371:50;6444:35;6472:6;6464;6444:35;:::i;:::-;6430:49;;6528:9;6520:6;6516:22;6510:3;6499:9;6495:19;6488:51;6562:35;6590:6;6582;6562:35;:::i;:::-;6548:49;;6646:9;6638:6;6634:22;6628:3;6617:9;6613:19;6606:51;6674:35;6702:6;6694;6674:35;:::i;:::-;6666:43;6141:574;-1:-1:-1;;;;;;;;;6141:574:1:o;6720:1167::-;;7123:3;7167:6;7160:14;7153:22;7142:9;7135:41;7226:6;7219:14;7212:22;7207:2;7196:9;7192:18;7185:50;7271:2;7266;7255:9;7251:18;7244:30;7297:47;7340:2;7329:9;7325:18;7317:6;7297:47;:::i;:::-;7283:61;;7392:9;7384:6;7380:22;7375:2;7364:9;7360:18;7353:50;7426:35;7454:6;7446;7426:35;:::i;:::-;7412:49;;7510:9;7502:6;7498:22;7492:3;7481:9;7477:19;7470:51;7544:35;7572:6;7564;7544:35;:::i;:::-;7530:49;;7628:9;7620:6;7616:22;7610:3;7599:9;7595:19;7588:51;7656:35;7684:6;7676;7656:35;:::i;:::-;-1:-1:-1;;;;;;7728:35:1;;;;7722:3;7707:19;;7700:64;-1:-1:-1;;7813:6:1;7801:19;;;;7795:3;7780:19;;7773:48;7865:14;7858:22;7852:3;7837:19;;;7830:51;7648:43;7103:784;-1:-1:-1;;;;;;7103:784:1:o;7892:583::-;8176:14;;8169:22;8151:41;;8235:14;;8228:22;8223:2;8208:18;;8201:50;8299:4;8287:17;;;8282:2;8267:18;;8260:45;8341:17;;;8336:2;8321:18;;8314:45;8396:17;;8390:3;8375:19;;8368:46;8451:17;8445:3;8430:19;;8423:46;8138:3;8123:19;;8105:370::o;8480:204::-;-1:-1:-1;;;;;;8642:35:1;;;;8624:54;;8612:2;8597:18;;8579:105::o;8689:222::-;;8838:2;8827:9;8820:21;8858:47;8901:2;8890:9;8886:18;8878:6;8858:47;:::i;8916:552::-;;9161:2;9150:9;9143:21;9187:47;9230:2;9219:9;9215:18;9207:6;9187:47;:::i;:::-;9282:9;9274:6;9270:22;9265:2;9254:9;9250:18;9243:50;9316:35;9344:6;9336;9316:35;:::i;:::-;9302:49;;9399:9;9391:6;9387:22;9382:2;9371:9;9367:18;9360:50;9427:35;9455:6;9447;9427:35;:::i;9473:346::-;9675:2;9657:21;;;9714:2;9694:18;;;9687:30;-1:-1:-1;;;9748:2:1;9733:18;;9726:52;9810:2;9795:18;;9647:172::o;9824:344::-;10026:2;10008:21;;;10065:2;10045:18;;;10038:30;-1:-1:-1;;;10099:2:1;10084:18;;10077:50;10159:2;10144:18;;9998:170::o;10173:342::-;10375:2;10357:21;;;10414:2;10394:18;;;10387:30;-1:-1:-1;;;10448:2:1;10433:18;;10426:48;10506:2;10491:18;;10347:168::o;10520:334::-;10722:2;10704:21;;;10761:2;10741:18;;;10734:30;-1:-1:-1;;;10795:2:1;10780:18;;10773:40;10845:2;10830:18;;10694:160::o;10859:188::-;11033:6;11021:19;;;;11003:38;;10991:2;10976:18;;10958:89::o;11052:177::-;11198:25;;;11186:2;11171:18;;11153:76::o;11234:258::-;11306:1;11316:113;11330:6;11327:1;11324:13;11316:113;;;11406:11;;;11400:18;11387:11;;;11380:39;11352:2;11345:10;11316:113;;;11447:6;11444:1;11441:13;11438:2;;;11482:1;11473:6;11468:3;11464:16;11457:27;11438:2;;11287:205;;;:::o;11497:380::-;11582:1;11572:12;;11629:1;11619:12;;;11640:2;;11694:4;11686:6;11682:17;11672:27;;11640:2;11747;11739:6;11736:14;11716:18;11713:38;11710:2;;;11793:10;11788:3;11784:20;11781:1;11774:31;11828:4;11825:1;11818:15;11856:4;11853:1;11846:15;11710:2;;11552:325;;;:::o;11882:276::-;;11963:4;11956:5;11952:16;11992:4;11983:7;11980:17;11977:2;;;-1:-1:-1;;;12020:33:1;;12076:4;12073:1;12066:15;12106:4;12027:3;12094:17;11977:2;12150:1;12137:15;;11927:231;-1:-1:-1;;11927:231:1:o;12163:254::-;;12227:4;12224:1;12220:12;12251:3;12241:2;;-1:-1:-1;;;12278:31:1;;12332:4;12329:1;12322:15;12360:4;12285:1;12350:15;12241:2;12407:3;12400:4;12397:1;12393:12;12389:22;12384:27;;;12199:218;;;;:::o;12422:127::-;12483:10;12478:3;12474:20;12471:1;12464:31;12514:4;12511:1;12504:15;12538:4;12535:1;12528:15;12554:133;-1:-1:-1;;;;;12631:31:1;;12621:42;;12611:2;;12677:1;12674;12667:12;12611:2;12601:86;:::o;12692:120::-;12780:5;12773:13;12766:21;12759:5;12756:32;12746:2;;12802:1;12799;12792:12;12817:135;-1:-1:-1;;;;;;12893:34:1;;12883:45;;12873:2;;12942:1;12939;12932:12

Swarm Source

ipfs://ca5247996b5c3eb3cbf502ae39079b7550a8d37d84fd7ef2887052c433fea028

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.