ETH Price: $1,840.09 (+1.98%)

Contract

0x861E3c82Bc2753ea64aE5f962d993DF6853a6700
 

Overview

ETH Balance

30.85 ETH

Eth Value

$56,766.83 (@ $1,840.09/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Burn221276772025-03-26 1:05:235 days ago1742951123IN
0x861E3c82...6853a6700
0.01 ETH0.000069250.8814021
Burn221032142025-03-22 15:08:239 days ago1742656103IN
0x861E3c82...6853a6700
0.01 ETH0.000071270.90729637
Burn221025412025-03-22 12:53:239 days ago1742648003IN
0x861E3c82...6853a6700
0.01 ETH0.000073190.93408889
Mint221025232025-03-22 12:49:479 days ago1742647787IN
0x861E3c82...6853a6700
0 ETH0.000106150.91548062
Burn220700542025-03-18 0:01:5913 days ago1742256119IN
0x861E3c82...6853a6700
0.01 ETH0.000069330.88236788
Mint220379872025-03-13 12:36:2318 days ago1741869383IN
0x861E3c82...6853a6700
0 ETH0.000120911.22334848
Mint220379832025-03-13 12:35:3518 days ago1741869335IN
0x861E3c82...6853a6700
0 ETH0.000121041.22447548
Mint220379782025-03-13 12:34:3518 days ago1741869275IN
0x861E3c82...6853a6700
0 ETH0.000118371.19745825
Mint220370592025-03-13 9:29:4718 days ago1741858187IN
0x861E3c82...6853a6700
0 ETH0.000130921.1291967
Mint219942202025-03-07 9:50:5924 days ago1741341059IN
0x861E3c82...6853a6700
0 ETH0.000125291.0808172
Burn219932722025-03-07 6:40:2324 days ago1741329623IN
0x861E3c82...6853a6700
0.01 ETH0.00008841.12508287
Burn219916402025-03-07 1:10:4724 days ago1741309847IN
0x861E3c82...6853a6700
0.01 ETH0.000226912.88789325
Mint219803672025-03-05 11:24:4726 days ago1741173887IN
0x861E3c82...6853a6700
0 ETH0.000178961.81109619
Mint219803112025-03-05 11:13:3526 days ago1741173215IN
0x861E3c82...6853a6700
0 ETH0.000184351.8656453
Burn219700202025-03-04 0:43:5927 days ago1741049039IN
0x861E3c82...6853a6700
0.01 ETH0.000102121.29970732
Burn219557912025-03-02 1:05:4729 days ago1740877547IN
0x861E3c82...6853a6700
0.01 ETH0.000090581.15291824
Mint219432092025-02-28 6:59:5931 days ago1740725999IN
0x861E3c82...6853a6700
0 ETH0.00040623.50315179
Mint219318082025-02-26 16:49:3533 days ago1740588575IN
0x861E3c82...6853a6700
0 ETH0.00019231.94605758
Burn218825002025-02-19 19:27:3539 days ago1739993255IN
0x861E3c82...6853a6700
0.01 ETH0.000118451.51124592
Burn218436232025-02-14 8:50:5945 days ago1739523059IN
0x861E3c82...6853a6700
0.01 ETH0.000170472.16955765
Burn218221372025-02-11 8:38:1148 days ago1739263091IN
0x861E3c82...6853a6700
0.01 ETH0.000166352.11768271
Mint218063702025-02-09 3:47:5950 days ago1739072879IN
0x861E3c82...6853a6700
0 ETH0.000139971.41614548
Mint217636642025-02-03 4:42:1156 days ago1738557731IN
0x861E3c82...6853a6700
0 ETH0.0047014740.55020664
Mint217616122025-02-02 21:48:5956 days ago1738532939IN
0x861E3c82...6853a6700
0 ETH0.000961058.28826496
Mint217437102025-01-31 9:47:2359 days ago1738316843IN
0x861E3c82...6853a6700
0 ETH0.000415393.58316536
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60c06040201373942024-06-21 3:25:11283 days ago1718940311
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040200729932024-06-12 3:14:11292 days ago1718162051
0x861E3c82...6853a6700
 Contract Creation0 ETH
Burn196245852024-04-10 10:18:23355 days ago1712744303
0x861E3c82...6853a6700
0.03 ETH
0x60c06040194375312024-03-15 2:59:11381 days ago1710471551
0x861E3c82...6853a6700
 Contract Creation0 ETH
Transfer193994682024-03-09 18:55:47386 days ago1710010547
0x861E3c82...6853a6700
40.57 ETH
0x60c06040193249722024-02-28 8:54:23397 days ago1709110463
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040192979492024-02-24 14:09:35401 days ago1708783775
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040189839932024-01-11 13:30:47445 days ago1704979847
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040189186982024-01-02 9:05:47454 days ago1704186347
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040188883812023-12-29 2:51:23458 days ago1703818283
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040188773732023-12-27 13:44:23460 days ago1703684663
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040188477522023-12-23 9:55:11464 days ago1703325311
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040188457952023-12-23 3:18:35464 days ago1703301515
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040188175072023-12-19 4:03:11468 days ago1702958591
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040187898032023-12-15 6:43:11472 days ago1702622591
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040187815222023-12-14 2:50:47473 days ago1702522247
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040187473132023-12-09 7:54:47478 days ago1702108487
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040186844692023-11-30 12:38:11487 days ago1701347891
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040186673502023-11-28 3:08:59489 days ago1701140939
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040186673432023-11-28 3:07:35489 days ago1701140855
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040186470312023-11-25 6:49:59492 days ago1700894999
0x861E3c82...6853a6700
 Contract Creation0 ETH
Transfer185968902023-11-18 6:15:47499 days ago1700288147
0x861E3c82...6853a6700
1.32 ETH
0x60c06040185961592023-11-18 3:47:35499 days ago1700279255
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040185897472023-11-17 6:14:23500 days ago1700201663
0x861E3c82...6853a6700
 Contract Creation0 ETH
0x60c06040185629892023-11-13 12:29:35504 days ago1699878575
0x861E3c82...6853a6700
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BRC20Factory

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-11-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IBRC20Factory {
    function parameters() external view returns (string memory name, string memory symbol, uint8 decimals);
}

contract BRC20 {
    string public name;
    string public symbol;
    uint8 public immutable decimals;
    address public immutable factory;
    uint256  public totalSupply;
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping(address => uint256)) public allowance;
    mapping (address => uint256) public nonces;

    bytes32 public DOMAIN_SEPARATOR;
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");

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

    constructor() {
        (name, symbol, decimals) = IBRC20Factory(msg.sender).parameters();

        factory = msg.sender;

        uint256 chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this)));
    }

    function mint(address to, uint256 amount) external {
        require(msg.sender == factory, "unauthorized");
        _mint(to, amount);
    }

    function burn(uint256 amount) external {
        require(msg.sender == factory, "unauthorized");
        _burn(msg.sender, amount);
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address to, uint256 amount) external returns (bool) {
        balanceOf[msg.sender] -= amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) external returns (bool) {
        uint256 allowed = allowance[from][msg.sender];

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);
        return true;
    }

    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'EXPIRED');
        unchecked {
            bytes32 digest = keccak256(
                abi.encodePacked(
                    '\x19\x01',
                    DOMAIN_SEPARATOR,
                    keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
                )
            );
            address recoveredAddress = ecrecover(digest, v, r, s);
            require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE');
            allowance[recoveredAddress][spender] = value;
        }
        emit Approval(owner, spender, value);
    }

    function _mint(address to, uint256 amount) internal {
        totalSupply += amount;

        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal {
        balanceOf[from] -= amount;

        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}


contract BRC20Factory  {

    bytes32 private constant DOMAIN_NAME = keccak256("MultiBit");
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
    bytes32 public constant MINT_TYPEHASH = keccak256(abi.encodePacked("Mint(address token,address to,uint256 amount,string txid)"));
    bytes32 public DOMAIN_SEPARATOR;

    struct Parameters {
        string name;
        string symbol;
        uint8 decimals;
    }

    bool private entered;
    Parameters public parameters;
    address public owner;
    uint256 public fee;
    address[] public signers;
    mapping (address => bool) public authorized;
    mapping (address => uint256) public indexes;
    mapping (bytes32 => bool) public used;

    event OwnerChanged(address indexed oldOwner, address indexed newOwner);

    event FeeChanged(uint256 indexed oldFee, uint256 indexed newFee);

    event BRC20Created(address indexed sender, address indexed dog20);

    event Minted(address indexed token, address indexed to, uint256 indexed amount, string txid);

    event Burned(address indexed token, address indexed from, uint256 indexed amount, uint256 fee, string receiver);
    
    event SignerAdded(address indexed sender, address indexed account);

    event SignerRemoved(address indexed sender, address indexed account);

    modifier nonReentrant() {
        require(!entered, "REENTRANT");
        entered = true;
        _;
        entered = false;
    }

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

    constructor(address[] memory _signers) {
        for (uint256 i = 0; i < _signers.length; i++) {
            address _addr = _signers[i];
            signers.push(_addr);
            authorized[_addr] = true;
            indexes[_addr] = i;
        }

        owner = msg.sender;
        emit OwnerChanged(address(0), msg.sender);

        fee = 0.01 ether;

        uint256 chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(abi.encode(DOMAIN_TYPEHASH, DOMAIN_NAME, keccak256(bytes('1')), chainId, address(this)));
    }

    function createBRC20(string memory name, string memory symbol, uint8 decimals) external onlyOwner returns (address brc20) {
        parameters = Parameters({name: name, symbol: symbol, decimals: decimals});
        brc20 = address(new BRC20{salt: keccak256(abi.encode(name, symbol, decimals))}());
        delete parameters;
        emit BRC20Created(msg.sender, brc20);
    }

    function mint(address token, address to, uint256 amount, string memory txid, uint8[] memory v, bytes32[] memory r, bytes32[] memory s) external nonReentrant {
        require(v.length == signers.length, "invalid signatures");

        bytes32 digest = buildMintSeparator(token, to, amount, txid);
        require(!used[digest], "reuse");
        used[digest] = true;

        address[] memory signatures = new address[](v.length);
        for (uint256 i = 0; i < v.length; i++) {
            address signer = ecrecover(digest, v[i], r[i], s[i]);
            require(authorized[signer], "invalid signer");
            for (uint256 j = 0; j < i; j++) {
                require(signatures[j] != signer, "duplicated");
            }
            signatures[i] = signer;
        }

        BRC20(token).mint(to, amount);

        emit Minted(token, to, amount, txid);
    }

    function burn(address token, uint256 amount, string memory receiver) external payable nonReentrant {
        require(msg.value >= fee, "invalid ether");

        BRC20(token).transferFrom(msg.sender, address(this), amount);
        BRC20(token).burn(amount);

        emit Burned(token, msg.sender, amount, fee, receiver);
    }

    function withdraw(address to) external onlyOwner {
        uint256 balance = address(this).balance;
        payable(to).transfer(balance);
    }

    function setOwner(address _owner) external onlyOwner {
        emit OwnerChanged(owner, _owner);
        owner = _owner;
    }

    function setFee(uint256 _fee) external onlyOwner {
        emit FeeChanged(fee, _fee);
        fee = _fee;
    }

    function addSigner(address account) external onlyOwner {
        require(!authorized[account], "already exists");

        indexes[account] = signers.length;
        authorized[account] = true;
        signers.push(account);

        emit SignerAdded(msg.sender, account);
    }

    function removeSigner(address account) external onlyOwner {
        require(authorized[account], "non-existent");
        require(indexes[account] < signers.length, "index out of range");

        uint256 index = indexes[account];
        uint256 lastIndex = signers.length - 1;

        if (index != lastIndex) {
            address lastAddr = signers[lastIndex];
            signers[index] = lastAddr;
            indexes[lastAddr] = index;
        }

        delete authorized[account];
        delete indexes[account];
        signers.pop();

        emit SignerRemoved(msg.sender, account);
    }

    function buildMintSeparator(address token, address to, uint256 amount, string memory txid) view public returns (bytes32) {
        return keccak256(abi.encodePacked(
            '\x19\x01',
            DOMAIN_SEPARATOR,
            keccak256(abi.encode(MINT_TYPEHASH, token, to, amount, keccak256(bytes(txid))))
        ));
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address[]","name":"_signers","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"dog20","type":"address"}],"name":"BRC20Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"string","name":"receiver","type":"string"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"txid","type":"string"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SignerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"SignerRemoved","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"txid","type":"string"}],"name":"buildMintSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"receiver","type":"string"}],"name":"burn","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"name":"createBRC20","outputs":[{"internalType":"address","name":"brc20","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"indexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"txid","type":"string"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"parameters","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"signers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"used","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002dc938038062002dc9833981016040819052620000349162000221565b60005b8151811015620000e7576000828281518110620000585762000058620002f3565b6020908102919091018101516007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0390931692831790556000918252600883526040808320805460ff19169092179091556009909252208290555080620000de8162000309565b91505062000037565b50600580546001600160a01b031916339081179091556040516000907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908290a350662386f26fc1000060065560408051808201825260018152603160f81b60209182015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f81d08e771527fc9a46630282a87b7767dfd8cafb1c6d5a0fd834215982e4c184818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012060005562000333565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200021c57600080fd5b919050565b600060208083850312156200023557600080fd5b82516001600160401b03808211156200024d57600080fd5b818501915085601f8301126200026257600080fd5b815181811115620002775762000277620001ee565b8060051b604051601f19603f830116810181811085821117156200029f576200029f620001ee565b604052918252848201925083810185019188831115620002be57600080fd5b938501935b82851015620002e757620002d78562000204565b84529385019392850192620002c3565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200032c57634e487b7160e01b600052601160045260246000fd5b5060010190565b612a8680620003436000396000f3fe6080604052600436106200012b5760003560e01c8063673199d111620000ad578063b07c411f116200006c578063b07c411f1462000367578063b918161114620003ac578063ddca3f4314620003e0578063eb12d61e14620003f8578063f76fc35e146200041d57600080fd5b8063673199d114620002ad57806369fe0e2d14620002d25780636db4e99b14620002f757806389035730146200031c5780638da5cb5b146200034557600080fd5b80632079fb9a11620000fa5780632079fb9a14620001dc5780632db78d93146200021a57806332aab8eb146200024b5780633644e515146200027057806351cff8d9146200028857600080fd5b80630e316ab7146200013057806313af4035146200015757806315f570dc146200017c57806320606b701462000193575b600080fd5b3480156200013d57600080fd5b50620001556200014f366004620013ab565b62000435565b005b3480156200016457600080fd5b506200015562000176366004620013ab565b6200067d565b620001556200018d36600462001491565b62000706565b348015620001a057600080fd5b50620001c97f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6040519081526020015b60405180910390f35b348015620001e957600080fd5b5062000201620001fb366004620014ee565b620008cf565b6040516001600160a01b039091168152602001620001d3565b3480156200022757600080fd5b50620001c962000239366004620013ab565b60096020526000908152604090205481565b3480156200025857600080fd5b50620001c96200026a36600462001508565b620008fa565b3480156200027d57600080fd5b50620001c960005481565b3480156200029557600080fd5b5062000155620002a7366004620013ab565b620009b8565b348015620002ba57600080fd5b5062000201620002cc3660046200158a565b62000a23565b348015620002df57600080fd5b5062000155620002f1366004620014ee565b62000b8a565b3480156200030457600080fd5b5062000155620003163660046200170c565b62000beb565b3480156200032957600080fd5b506200033462001009565b604051620001d39392919062001845565b3480156200035257600080fd5b5060055462000201906001600160a01b031681565b3480156200037457600080fd5b506200039b62000386366004620014ee565b600a6020526000908152604090205460ff1681565b6040519015158152602001620001d3565b348015620003b957600080fd5b506200039b620003cb366004620013ab565b60086020526000908152604090205460ff1681565b348015620003ed57600080fd5b50620001c960065481565b3480156200040557600080fd5b506200015562000417366004620013ab565b62001142565b3480156200042a57600080fd5b50620001c96200126e565b6005546001600160a01b031633146200046b5760405162461bcd60e51b8152600401620004629062001882565b60405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16620004c45760405162461bcd60e51b815260206004820152600c60248201526b1b9bdb8b595e1a5cdd195b9d60a21b604482015260640162000462565b6007546001600160a01b03821660009081526009602052604090205410620005245760405162461bcd60e51b8152602060048201526012602482015271696e646578206f7574206f662072616e676560701b604482015260640162000462565b6001600160a01b0381166000908152600960205260408120546007549091906200055190600190620018be565b9050808214620005e057600060078281548110620005735762000573620018d8565b600091825260209091200154600780546001600160a01b039092169250829185908110620005a557620005a5620018d8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559290911681526009909152604090208290555b6001600160a01b0383166000908152600860209081526040808320805460ff19169055600990915281205560078054806200061f576200061f620018ee565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0385169133917f98d1ebbe00ae92a5de96a0f49742a8afa89f42363592bc2e7cfaaed68b45e7a69190a3505050565b6005546001600160a01b03163314620006aa5760405162461bcd60e51b8152600401620004629062001882565b6005546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60015460ff1615620007475760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff191681179055600654341015620007975760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21032ba3432b960991b604482015260640162000462565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038416906323b872dd906064016020604051808303816000875af1158015620007eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000811919062001904565b50604051630852cd8d60e31b8152600481018390526001600160a01b038416906342966c6890602401600060405180830381600087803b1580156200085557600080fd5b505af11580156200086a573d6000803e3d6000fd5b5050505081336001600160a01b0316846001600160a01b03167f67a4f16c43f1ae602bc49450a4dee166bb3dc5d27807220f67113b799f1cdb5060065485604051620008b892919062001928565b60405180910390a450506001805460ff1916905550565b60078181548110620008e057600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546040516020016200090f906200194b565b60408051601f198184030181528282528051602091820120865187830120918401526001600160a01b03808a169284019290925290871660608301526080820186905260a082015260c001604051602081830303815290604052805190602001206040516020016200099892919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050949350505050565b6005546001600160a01b03163314620009e55760405162461bcd60e51b8152600401620004629062001882565b60405147906001600160a01b0383169082156108fc029083906000818181858888f1935050505015801562000a1e573d6000803e3d6000fd5b505050565b6005546000906001600160a01b0316331462000a535760405162461bcd60e51b8152600401620004629062001882565b60408051606081018252858152602080820186905260ff8516928201929092528551909160029162000a8b9183919089019062001298565b50602082810151805162000aa6926001850192019062001298565b50604091820151600291909101805460ff191660ff9092169190911790555162000ad99085908590859060200162001845565b6040516020818303038152906040528051906020012060405162000afd9062001327565b8190604051809103906000f590508015801562000b1e573d6000803e3d6000fd5b5090506002600062000b31828262001335565b62000b4160018301600062001335565b50600201805460ff191690556040516001600160a01b0382169033907fcafacc4a24deda55f94fc8bf5cb205b02aee745025f72472fe3e6e38e2a8b26690600090a39392505050565b6005546001600160a01b0316331462000bb75760405162461bcd60e51b8152600401620004629062001882565b6006546040518291907f5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f190600090a3600655565b60015460ff161562000c2c5760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff19168117905560075483511462000c815760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207369676e61747572657360701b604482015260640162000462565b600062000c9188888888620008fa565b6000818152600a602052604090205490915060ff161562000cdd5760405162461bcd60e51b8152602060048201526005602482015264726575736560d81b604482015260640162000462565b6000818152600a60205260408120805460ff19166001179055845167ffffffffffffffff81111562000d135762000d13620013d0565b60405190808252806020026020018201604052801562000d3d578160200160208202803683370190505b50905060005b855181101562000f4157600060018488848151811062000d675762000d67620018d8565b602002602001015188858151811062000d845762000d84620018d8565b602002602001015188868151811062000da15762000da1620018d8565b60200260200101516040516000815260200160405260405162000de0949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801562000e03573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526008602052919091205490925060ff16905062000e6e5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b604482015260640162000462565b60005b8281101562000efc57816001600160a01b031684828151811062000e995762000e99620018d8565b60200260200101516001600160a01b0316141562000ee75760405162461bcd60e51b815260206004820152600a602482015269191d5c1b1a58d85d195960b21b604482015260640162000462565b8062000ef3816200199a565b91505062000e71565b508083838151811062000f135762000f13620018d8565b6001600160a01b0390921660209283029190910190910152508062000f38816200199a565b91505062000d43565b506040516340c10f1960e01b81526001600160a01b038981166004830152602482018990528a16906340c10f1990604401600060405180830381600087803b15801562000f8d57600080fd5b505af115801562000fa2573d6000803e3d6000fd5b5050505086886001600160a01b03168a6001600160a01b03167fafe8c5a4c36942a61550534b714a0076ab46ef8ef23e361572aad8b7ca2ac27d8960405162000fec9190620019b8565b60405180910390a450506001805460ff1916905550505050505050565b6002805481906200101a90620019cd565b80601f01602080910402602001604051908101604052809291908181526020018280546200104890620019cd565b8015620010995780601f106200106d5761010080835404028352916020019162001099565b820191906000526020600020905b8154815290600101906020018083116200107b57829003601f168201915b505050505090806001018054620010b090620019cd565b80601f0160208091040260200160405190810160405280929190818152602001828054620010de90620019cd565b80156200112f5780601f1062001103576101008083540402835291602001916200112f565b820191906000526020600020905b8154815290600101906020018083116200111157829003601f168201915b5050506002909301549192505060ff1683565b6005546001600160a01b031633146200116f5760405162461bcd60e51b8152600401620004629062001882565b6001600160a01b03811660009081526008602052604090205460ff1615620011cb5760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792065786973747360901b604482015260640162000462565b600780546001600160a01b03831660008181526009602090815260408083209490945560089052828120805460ff19166001908117909155845490810185559381527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890930180546001600160a01b031916821790559051909133917f12146497b3b826918ec47f0cac7272a09ed06b30c16c030e99ec48ff5dd60b479190a350565b6040516020016200127f906200194b565b6040516020818303038152906040528051906020012081565b828054620012a690620019cd565b90600052602060002090601f016020900481019282620012ca576000855562001315565b82601f10620012e557805160ff191683800117855562001315565b8280016001018555821562001315579182015b8281111562001315578251825591602001919060010190620012f8565b506200132392915062001377565b5090565b6110468062001a0b83390190565b5080546200134390620019cd565b6000825580601f1062001354575050565b601f01602090049060005260206000209081019062001374919062001377565b50565b5b8082111562001323576000815560010162001378565b80356001600160a01b0381168114620013a657600080fd5b919050565b600060208284031215620013be57600080fd5b620013c9826200138e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620014125762001412620013d0565b604052919050565b600082601f8301126200142c57600080fd5b813567ffffffffffffffff811115620014495762001449620013d0565b6200145e601f8201601f1916602001620013e6565b8181528460208386010111156200147457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620014a757600080fd5b620014b2846200138e565b925060208401359150604084013567ffffffffffffffff811115620014d657600080fd5b620014e4868287016200141a565b9150509250925092565b6000602082840312156200150157600080fd5b5035919050565b600080600080608085870312156200151f57600080fd5b6200152a856200138e565b93506200153a602086016200138e565b925060408501359150606085013567ffffffffffffffff8111156200155e57600080fd5b6200156c878288016200141a565b91505092959194509250565b803560ff81168114620013a657600080fd5b600080600060608486031215620015a057600080fd5b833567ffffffffffffffff80821115620015b957600080fd5b620015c7878388016200141a565b94506020860135915080821115620015de57600080fd5b50620015ed868287016200141a565b925050620015fe6040850162001578565b90509250925092565b600067ffffffffffffffff821115620016245762001624620013d0565b5060051b60200190565b600082601f8301126200164057600080fd5b8135602062001659620016538362001607565b620013e6565b82815260059290921b840181019181810190868411156200167957600080fd5b8286015b848110156200169f57620016918162001578565b83529183019183016200167d565b509695505050505050565b600082601f830112620016bc57600080fd5b81356020620016cf620016538362001607565b82815260059290921b84018101918181019086841115620016ef57600080fd5b8286015b848110156200169f5780358352918301918301620016f3565b600080600080600080600060e0888a0312156200172857600080fd5b62001733886200138e565b965062001743602089016200138e565b955060408801359450606088013567ffffffffffffffff808211156200176857600080fd5b620017768b838c016200141a565b955060808a01359150808211156200178d57600080fd5b6200179b8b838c016200162e565b945060a08a0135915080821115620017b257600080fd5b620017c08b838c01620016aa565b935060c08a0135915080821115620017d757600080fd5b50620017e68a828b01620016aa565b91505092959891949750929550565b6000815180845260005b818110156200181d57602081850181015186830182015201620017ff565b8181111562001830576000602083870101525b50601f01601f19169290920160200192915050565b6060815260006200185a6060830186620017f5565b82810360208401526200186e8186620017f5565b91505060ff83166040830152949350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015620018d357620018d3620018a8565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156200191757600080fd5b81518015158114620013c957600080fd5b828152604060208201526000620019436040830184620017f5565b949350505050565b7f4d696e74286164647265737320746f6b656e2c6164647265737320746f2c756981527f6e7432353620616d6f756e742c737472696e6720747869642900000000000000602082015260390190565b6000600019821415620019b157620019b1620018a8565b5060010190565b602081526000620013c96020830184620017f5565b600181811c90821680620019e257607f821691505b6020821081141562001a0457634e487b7160e01b600052602260045260246000fd5b5091905056fe60c06040523480156200001157600080fd5b50336001600160a01b031663890357306040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200007b9190810190620002e6565b60ff8116608052815160009081906200009c90600190602087019062000173565b50508351620000b19190602086019062000173565b50503360a052505060405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000ee90600090620003a8565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f198184030181529190528051602090910120600655506200044c565b82805462000181906200036b565b90600052602060002090601f016020900481019282620001a55760008555620001f0565b82601f10620001c057805160ff1916838001178555620001f0565b82800160010185558215620001f0579182015b82811115620001f0578251825591602001919060010190620001d3565b50620001fe92915062000202565b5090565b5b80821115620001fe576000815560010162000203565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024157600080fd5b81516001600160401b03808211156200025e576200025e62000219565b604051601f8301601f19908116603f0116810190828211818310171562000289576200028962000219565b81604052838152602092508683858801011115620002a657600080fd5b600091505b83821015620002ca5785820183015181830184015290820190620002ab565b83821115620002dc5760008385830101525b9695505050505050565b600080600060608486031215620002fc57600080fd5b83516001600160401b03808211156200031457600080fd5b62000322878388016200022f565b945060208601519150808211156200033957600080fd5b5062000348868287016200022f565b925050604084015160ff811681146200036057600080fd5b809150509250925092565b600181811c908216806200038057607f821691505b60208210811415620003a257634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620003c557607f831692505b6020808410821415620003e657634e487b7160e01b86526022600452602486fd5b818015620003fd57600181146200040f576200043e565b60ff198616895284890196506200043e565b60008a81526020902060005b86811015620004365781548b8201529085019083016200041b565b505084890196505b509498975050505050505050565b60805160a051610bc66200048060003960008181610293015281816104f0015261056a015260006101ce0152610bc66000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806340c10f19116100a257806395d89b411161007157806395d89b4114610273578063a9059cbb1461027b578063c45a01551461028e578063d505accf146102cd578063dd62ed3e146102e057600080fd5b806340c10f191461020b57806342966c681461022057806370a08231146102335780637ecebe001461025357600080fd5b806323b872dd116100de57806323b872dd1461018f57806330adf81f146101a2578063313ce567146101c95780633644e5151461020257600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806320606b7014610168575b600080fd5b61011861030b565b6040516101259190610938565b60405180910390f35b61014161013c3660046109a9565b610399565b6040519015158152602001610125565b61015a60025481565b604051908152602001610125565b61015a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b61014161019d3660046109d3565b610405565b61015a7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6101f07f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610125565b61015a60065481565b61021e6102193660046109a9565b6104e5565b005b61021e61022e366004610a0f565b61055f565b61015a610241366004610a28565b60036020526000908152604090205481565b61015a610261366004610a28565b60056020526000908152604090205481565b6101186105d3565b6101416102893660046109a9565b6105e0565b6102b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610125565b61021e6102db366004610a4a565b610646565b61015a6102ee366004610abd565b600460209081526000928352604080842090915290825290205481565b6000805461031890610af0565b80601f016020809104026020016040519081016040528092919081815260200182805461034490610af0565b80156103915780601f1061036657610100808354040283529160200191610391565b820191906000526020600020905b81548152906001019060200180831161037457829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103f49086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146104615761043c8382610b41565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610489908490610b41565b90915550506001600160a01b0380851660008181526003602052604090819020805487019055519091871690600080516020610b71833981519152906104d29087815260200190565b60405180910390a3506001949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105515760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b61055b828261087c565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105c65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610548565b6105d033826108d6565b50565b6001805461031890610af0565b33600090815260036020526040812080548391908390610601908490610b41565b90915550506001600160a01b03831660008181526003602052604090819020805485019055513390600080516020610b71833981519152906103f49086815260200190565b428410156106805760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b6044820152606401610548565b6006546001600160a01b0388811660008181526005602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561079b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107d15750886001600160a01b0316816001600160a01b0316145b6108115760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b6044820152606401610548565b6001600160a01b0390811660009081526004602090815260408083208b8516808552908352928190208a905551898152919350918a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b806002600082825461088e9190610b58565b90915550506001600160a01b038216600081815260036020908152604080832080548601905551848152600080516020610b7183398151915291015b60405180910390a35050565b6001600160a01b038216600090815260036020526040812080548392906108fe908490610b41565b90915550506002805482900390556040518181526000906001600160a01b03841690600080516020610b71833981519152906020016108ca565b600060208083528351808285015260005b8181101561096557858101830151858201604001528201610949565b81811115610977576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b6109c58361098d565b946020939093013593505050565b6000806000606084860312156109e857600080fd5b6109f18461098d565b92506109ff6020850161098d565b9150604084013590509250925092565b600060208284031215610a2157600080fd5b5035919050565b600060208284031215610a3a57600080fd5b610a438261098d565b9392505050565b600080600080600080600060e0888a031215610a6557600080fd5b610a6e8861098d565b9650610a7c6020890161098d565b95506040880135945060608801359350608088013560ff81168114610aa057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610ad057600080fd5b610ad98361098d565b9150610ae76020840161098d565b90509250929050565b600181811c90821680610b0457607f821691505b60208210811415610b2557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610b5357610b53610b2b565b500390565b60008219821115610b6b57610b6b610b2b565b50019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd970baf35e6ee350dce926148c16dab64454197f76b517f1450206554d0a6c664736f6c634300080c0033a2646970667358221220b6078ee4ac9049f8143bd6ff4d091bba6f2a22825dddfdc2ebaeccdefec5e17664736f6c634300080c0033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000009e19b52caa8c86568b2d2b43e981caf4be1dd67e000000000000000000000000b87f548fe0cfd057605e6c59283c8bd436554006000000000000000000000000a998f18fb5fe798a8f85574362eb9cad9204b43e

Deployed Bytecode

0x6080604052600436106200012b5760003560e01c8063673199d111620000ad578063b07c411f116200006c578063b07c411f1462000367578063b918161114620003ac578063ddca3f4314620003e0578063eb12d61e14620003f8578063f76fc35e146200041d57600080fd5b8063673199d114620002ad57806369fe0e2d14620002d25780636db4e99b14620002f757806389035730146200031c5780638da5cb5b146200034557600080fd5b80632079fb9a11620000fa5780632079fb9a14620001dc5780632db78d93146200021a57806332aab8eb146200024b5780633644e515146200027057806351cff8d9146200028857600080fd5b80630e316ab7146200013057806313af4035146200015757806315f570dc146200017c57806320606b701462000193575b600080fd5b3480156200013d57600080fd5b50620001556200014f366004620013ab565b62000435565b005b3480156200016457600080fd5b506200015562000176366004620013ab565b6200067d565b620001556200018d36600462001491565b62000706565b348015620001a057600080fd5b50620001c97f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6040519081526020015b60405180910390f35b348015620001e957600080fd5b5062000201620001fb366004620014ee565b620008cf565b6040516001600160a01b039091168152602001620001d3565b3480156200022757600080fd5b50620001c962000239366004620013ab565b60096020526000908152604090205481565b3480156200025857600080fd5b50620001c96200026a36600462001508565b620008fa565b3480156200027d57600080fd5b50620001c960005481565b3480156200029557600080fd5b5062000155620002a7366004620013ab565b620009b8565b348015620002ba57600080fd5b5062000201620002cc3660046200158a565b62000a23565b348015620002df57600080fd5b5062000155620002f1366004620014ee565b62000b8a565b3480156200030457600080fd5b5062000155620003163660046200170c565b62000beb565b3480156200032957600080fd5b506200033462001009565b604051620001d39392919062001845565b3480156200035257600080fd5b5060055462000201906001600160a01b031681565b3480156200037457600080fd5b506200039b62000386366004620014ee565b600a6020526000908152604090205460ff1681565b6040519015158152602001620001d3565b348015620003b957600080fd5b506200039b620003cb366004620013ab565b60086020526000908152604090205460ff1681565b348015620003ed57600080fd5b50620001c960065481565b3480156200040557600080fd5b506200015562000417366004620013ab565b62001142565b3480156200042a57600080fd5b50620001c96200126e565b6005546001600160a01b031633146200046b5760405162461bcd60e51b8152600401620004629062001882565b60405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16620004c45760405162461bcd60e51b815260206004820152600c60248201526b1b9bdb8b595e1a5cdd195b9d60a21b604482015260640162000462565b6007546001600160a01b03821660009081526009602052604090205410620005245760405162461bcd60e51b8152602060048201526012602482015271696e646578206f7574206f662072616e676560701b604482015260640162000462565b6001600160a01b0381166000908152600960205260408120546007549091906200055190600190620018be565b9050808214620005e057600060078281548110620005735762000573620018d8565b600091825260209091200154600780546001600160a01b039092169250829185908110620005a557620005a5620018d8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559290911681526009909152604090208290555b6001600160a01b0383166000908152600860209081526040808320805460ff19169055600990915281205560078054806200061f576200061f620018ee565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b0385169133917f98d1ebbe00ae92a5de96a0f49742a8afa89f42363592bc2e7cfaaed68b45e7a69190a3505050565b6005546001600160a01b03163314620006aa5760405162461bcd60e51b8152600401620004629062001882565b6005546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b60015460ff1615620007475760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff191681179055600654341015620007975760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21032ba3432b960991b604482015260640162000462565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038416906323b872dd906064016020604051808303816000875af1158015620007eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000811919062001904565b50604051630852cd8d60e31b8152600481018390526001600160a01b038416906342966c6890602401600060405180830381600087803b1580156200085557600080fd5b505af11580156200086a573d6000803e3d6000fd5b5050505081336001600160a01b0316846001600160a01b03167f67a4f16c43f1ae602bc49450a4dee166bb3dc5d27807220f67113b799f1cdb5060065485604051620008b892919062001928565b60405180910390a450506001805460ff1916905550565b60078181548110620008e057600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546040516020016200090f906200194b565b60408051601f198184030181528282528051602091820120865187830120918401526001600160a01b03808a169284019290925290871660608301526080820186905260a082015260c001604051602081830303815290604052805190602001206040516020016200099892919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050949350505050565b6005546001600160a01b03163314620009e55760405162461bcd60e51b8152600401620004629062001882565b60405147906001600160a01b0383169082156108fc029083906000818181858888f1935050505015801562000a1e573d6000803e3d6000fd5b505050565b6005546000906001600160a01b0316331462000a535760405162461bcd60e51b8152600401620004629062001882565b60408051606081018252858152602080820186905260ff8516928201929092528551909160029162000a8b9183919089019062001298565b50602082810151805162000aa6926001850192019062001298565b50604091820151600291909101805460ff191660ff9092169190911790555162000ad99085908590859060200162001845565b6040516020818303038152906040528051906020012060405162000afd9062001327565b8190604051809103906000f590508015801562000b1e573d6000803e3d6000fd5b5090506002600062000b31828262001335565b62000b4160018301600062001335565b50600201805460ff191690556040516001600160a01b0382169033907fcafacc4a24deda55f94fc8bf5cb205b02aee745025f72472fe3e6e38e2a8b26690600090a39392505050565b6005546001600160a01b0316331462000bb75760405162461bcd60e51b8152600401620004629062001882565b6006546040518291907f5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f190600090a3600655565b60015460ff161562000c2c5760405162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015260640162000462565b6001805460ff19168117905560075483511462000c815760405162461bcd60e51b8152602060048201526012602482015271696e76616c6964207369676e61747572657360701b604482015260640162000462565b600062000c9188888888620008fa565b6000818152600a602052604090205490915060ff161562000cdd5760405162461bcd60e51b8152602060048201526005602482015264726575736560d81b604482015260640162000462565b6000818152600a60205260408120805460ff19166001179055845167ffffffffffffffff81111562000d135762000d13620013d0565b60405190808252806020026020018201604052801562000d3d578160200160208202803683370190505b50905060005b855181101562000f4157600060018488848151811062000d675762000d67620018d8565b602002602001015188858151811062000d845762000d84620018d8565b602002602001015188868151811062000da15762000da1620018d8565b60200260200101516040516000815260200160405260405162000de0949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801562000e03573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526008602052919091205490925060ff16905062000e6e5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b4b3b732b960911b604482015260640162000462565b60005b8281101562000efc57816001600160a01b031684828151811062000e995762000e99620018d8565b60200260200101516001600160a01b0316141562000ee75760405162461bcd60e51b815260206004820152600a602482015269191d5c1b1a58d85d195960b21b604482015260640162000462565b8062000ef3816200199a565b91505062000e71565b508083838151811062000f135762000f13620018d8565b6001600160a01b0390921660209283029190910190910152508062000f38816200199a565b91505062000d43565b506040516340c10f1960e01b81526001600160a01b038981166004830152602482018990528a16906340c10f1990604401600060405180830381600087803b15801562000f8d57600080fd5b505af115801562000fa2573d6000803e3d6000fd5b5050505086886001600160a01b03168a6001600160a01b03167fafe8c5a4c36942a61550534b714a0076ab46ef8ef23e361572aad8b7ca2ac27d8960405162000fec9190620019b8565b60405180910390a450506001805460ff1916905550505050505050565b6002805481906200101a90620019cd565b80601f01602080910402602001604051908101604052809291908181526020018280546200104890620019cd565b8015620010995780601f106200106d5761010080835404028352916020019162001099565b820191906000526020600020905b8154815290600101906020018083116200107b57829003601f168201915b505050505090806001018054620010b090620019cd565b80601f0160208091040260200160405190810160405280929190818152602001828054620010de90620019cd565b80156200112f5780601f1062001103576101008083540402835291602001916200112f565b820191906000526020600020905b8154815290600101906020018083116200111157829003601f168201915b5050506002909301549192505060ff1683565b6005546001600160a01b031633146200116f5760405162461bcd60e51b8152600401620004629062001882565b6001600160a01b03811660009081526008602052604090205460ff1615620011cb5760405162461bcd60e51b815260206004820152600e60248201526d616c72656164792065786973747360901b604482015260640162000462565b600780546001600160a01b03831660008181526009602090815260408083209490945560089052828120805460ff19166001908117909155845490810185559381527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890930180546001600160a01b031916821790559051909133917f12146497b3b826918ec47f0cac7272a09ed06b30c16c030e99ec48ff5dd60b479190a350565b6040516020016200127f906200194b565b6040516020818303038152906040528051906020012081565b828054620012a690620019cd565b90600052602060002090601f016020900481019282620012ca576000855562001315565b82601f10620012e557805160ff191683800117855562001315565b8280016001018555821562001315579182015b8281111562001315578251825591602001919060010190620012f8565b506200132392915062001377565b5090565b6110468062001a0b83390190565b5080546200134390620019cd565b6000825580601f1062001354575050565b601f01602090049060005260206000209081019062001374919062001377565b50565b5b8082111562001323576000815560010162001378565b80356001600160a01b0381168114620013a657600080fd5b919050565b600060208284031215620013be57600080fd5b620013c9826200138e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715620014125762001412620013d0565b604052919050565b600082601f8301126200142c57600080fd5b813567ffffffffffffffff811115620014495762001449620013d0565b6200145e601f8201601f1916602001620013e6565b8181528460208386010111156200147457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215620014a757600080fd5b620014b2846200138e565b925060208401359150604084013567ffffffffffffffff811115620014d657600080fd5b620014e4868287016200141a565b9150509250925092565b6000602082840312156200150157600080fd5b5035919050565b600080600080608085870312156200151f57600080fd5b6200152a856200138e565b93506200153a602086016200138e565b925060408501359150606085013567ffffffffffffffff8111156200155e57600080fd5b6200156c878288016200141a565b91505092959194509250565b803560ff81168114620013a657600080fd5b600080600060608486031215620015a057600080fd5b833567ffffffffffffffff80821115620015b957600080fd5b620015c7878388016200141a565b94506020860135915080821115620015de57600080fd5b50620015ed868287016200141a565b925050620015fe6040850162001578565b90509250925092565b600067ffffffffffffffff821115620016245762001624620013d0565b5060051b60200190565b600082601f8301126200164057600080fd5b8135602062001659620016538362001607565b620013e6565b82815260059290921b840181019181810190868411156200167957600080fd5b8286015b848110156200169f57620016918162001578565b83529183019183016200167d565b509695505050505050565b600082601f830112620016bc57600080fd5b81356020620016cf620016538362001607565b82815260059290921b84018101918181019086841115620016ef57600080fd5b8286015b848110156200169f5780358352918301918301620016f3565b600080600080600080600060e0888a0312156200172857600080fd5b62001733886200138e565b965062001743602089016200138e565b955060408801359450606088013567ffffffffffffffff808211156200176857600080fd5b620017768b838c016200141a565b955060808a01359150808211156200178d57600080fd5b6200179b8b838c016200162e565b945060a08a0135915080821115620017b257600080fd5b620017c08b838c01620016aa565b935060c08a0135915080821115620017d757600080fd5b50620017e68a828b01620016aa565b91505092959891949750929550565b6000815180845260005b818110156200181d57602081850181015186830182015201620017ff565b8181111562001830576000602083870101525b50601f01601f19169290920160200192915050565b6060815260006200185a6060830186620017f5565b82810360208401526200186e8186620017f5565b91505060ff83166040830152949350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082821015620018d357620018d3620018a8565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000602082840312156200191757600080fd5b81518015158114620013c957600080fd5b828152604060208201526000620019436040830184620017f5565b949350505050565b7f4d696e74286164647265737320746f6b656e2c6164647265737320746f2c756981527f6e7432353620616d6f756e742c737472696e6720747869642900000000000000602082015260390190565b6000600019821415620019b157620019b1620018a8565b5060010190565b602081526000620013c96020830184620017f5565b600181811c90821680620019e257607f821691505b6020821081141562001a0457634e487b7160e01b600052602260045260246000fd5b5091905056fe60c06040523480156200001157600080fd5b50336001600160a01b031663890357306040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000051573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200007b9190810190620002e6565b60ff8116608052815160009081906200009c90600190602087019062000173565b50508351620000b19190602086019062000173565b50503360a052505060405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620000ee90600090620003a8565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f198184030181529190528051602090910120600655506200044c565b82805462000181906200036b565b90600052602060002090601f016020900481019282620001a55760008555620001f0565b82601f10620001c057805160ff1916838001178555620001f0565b82800160010185558215620001f0579182015b82811115620001f0578251825591602001919060010190620001d3565b50620001fe92915062000202565b5090565b5b80821115620001fe576000815560010162000203565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200024157600080fd5b81516001600160401b03808211156200025e576200025e62000219565b604051601f8301601f19908116603f0116810190828211818310171562000289576200028962000219565b81604052838152602092508683858801011115620002a657600080fd5b600091505b83821015620002ca5785820183015181830184015290820190620002ab565b83821115620002dc5760008385830101525b9695505050505050565b600080600060608486031215620002fc57600080fd5b83516001600160401b03808211156200031457600080fd5b62000322878388016200022f565b945060208601519150808211156200033957600080fd5b5062000348868287016200022f565b925050604084015160ff811681146200036057600080fd5b809150509250925092565b600181811c908216806200038057607f821691505b60208210811415620003a257634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620003c557607f831692505b6020808410821415620003e657634e487b7160e01b86526022600452602486fd5b818015620003fd57600181146200040f576200043e565b60ff198616895284890196506200043e565b60008a81526020902060005b86811015620004365781548b8201529085019083016200041b565b505084890196505b509498975050505050505050565b60805160a051610bc66200048060003960008181610293015281816104f0015261056a015260006101ce0152610bc66000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806340c10f19116100a257806395d89b411161007157806395d89b4114610273578063a9059cbb1461027b578063c45a01551461028e578063d505accf146102cd578063dd62ed3e146102e057600080fd5b806340c10f191461020b57806342966c681461022057806370a08231146102335780637ecebe001461025357600080fd5b806323b872dd116100de57806323b872dd1461018f57806330adf81f146101a2578063313ce567146101c95780633644e5151461020257600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806320606b7014610168575b600080fd5b61011861030b565b6040516101259190610938565b60405180910390f35b61014161013c3660046109a9565b610399565b6040519015158152602001610125565b61015a60025481565b604051908152602001610125565b61015a7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b61014161019d3660046109d3565b610405565b61015a7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6101f07f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610125565b61015a60065481565b61021e6102193660046109a9565b6104e5565b005b61021e61022e366004610a0f565b61055f565b61015a610241366004610a28565b60036020526000908152604090205481565b61015a610261366004610a28565b60056020526000908152604090205481565b6101186105d3565b6101416102893660046109a9565b6105e0565b6102b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610125565b61021e6102db366004610a4a565b610646565b61015a6102ee366004610abd565b600460209081526000928352604080842090915290825290205481565b6000805461031890610af0565b80601f016020809104026020016040519081016040528092919081815260200182805461034490610af0565b80156103915780601f1061036657610100808354040283529160200191610391565b820191906000526020600020905b81548152906001019060200180831161037457829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103f49086815260200190565b60405180910390a350600192915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146104615761043c8382610b41565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b03851660009081526003602052604081208054859290610489908490610b41565b90915550506001600160a01b0380851660008181526003602052604090819020805487019055519091871690600080516020610b71833981519152906104d29087815260200190565b60405180910390a3506001949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105515760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b61055b828261087c565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105c65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610548565b6105d033826108d6565b50565b6001805461031890610af0565b33600090815260036020526040812080548391908390610601908490610b41565b90915550506001600160a01b03831660008181526003602052604090819020805485019055513390600080516020610b71833981519152906103f49086815260200190565b428410156106805760405162461bcd60e51b81526020600482015260076024820152661156141254915160ca1b6044820152606401610548565b6006546001600160a01b0388811660008181526005602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa15801561079b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107d15750886001600160a01b0316816001600160a01b0316145b6108115760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b6044820152606401610548565b6001600160a01b0390811660009081526004602090815260408083208b8516808552908352928190208a905551898152919350918a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b806002600082825461088e9190610b58565b90915550506001600160a01b038216600081815260036020908152604080832080548601905551848152600080516020610b7183398151915291015b60405180910390a35050565b6001600160a01b038216600090815260036020526040812080548392906108fe908490610b41565b90915550506002805482900390556040518181526000906001600160a01b03841690600080516020610b71833981519152906020016108ca565b600060208083528351808285015260005b8181101561096557858101830151858201604001528201610949565b81811115610977576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b6109c58361098d565b946020939093013593505050565b6000806000606084860312156109e857600080fd5b6109f18461098d565b92506109ff6020850161098d565b9150604084013590509250925092565b600060208284031215610a2157600080fd5b5035919050565b600060208284031215610a3a57600080fd5b610a438261098d565b9392505050565b600080600080600080600060e0888a031215610a6557600080fd5b610a6e8861098d565b9650610a7c6020890161098d565b95506040880135945060608801359350608088013560ff81168114610aa057600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610ad057600080fd5b610ad98361098d565b9150610ae76020840161098d565b90509250929050565b600181811c90821680610b0457607f821691505b60208210811415610b2557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610b5357610b53610b2b565b500390565b60008219821115610b6b57610b6b610b2b565b50019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd970baf35e6ee350dce926148c16dab64454197f76b517f1450206554d0a6c664736f6c634300080c0033a2646970667358221220b6078ee4ac9049f8143bd6ff4d091bba6f2a22825dddfdc2ebaeccdefec5e17664736f6c634300080c0033

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

000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000009e19b52caa8c86568b2d2b43e981caf4be1dd67e000000000000000000000000b87f548fe0cfd057605e6c59283c8bd436554006000000000000000000000000a998f18fb5fe798a8f85574362eb9cad9204b43e

-----Decoded View---------------
Arg [0] : _signers (address[]): 0x9e19b52caA8c86568b2d2B43E981CAF4bE1dD67E,0xb87f548Fe0CfD057605E6c59283c8BD436554006,0xa998f18Fb5FE798a8f85574362Eb9cAd9204b43E

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [2] : 0000000000000000000000009e19b52caa8c86568b2d2b43e981caf4be1dd67e
Arg [3] : 000000000000000000000000b87f548fe0cfd057605e6c59283c8bd436554006
Arg [4] : 000000000000000000000000a998f18fb5fe798a8f85574362eb9cad9204b43e


Deployed Bytecode Sourcemap

3891:5570:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8496:619;;;;;;;;;;-1:-1:-1;8496:619:0;;;;;:::i;:::-;;:::i;:::-;;7942:129;;;;;;;;;;-1:-1:-1;7942:129:0;;;;;:::i;:::-;;:::i;7444:335::-;;;;;;:::i;:::-;;:::i;3990:137::-;;;;;;;;;;;;4032:95;3990:137;;;;;1946:25:1;;;1934:2;1919:18;3990:137:0;;;;;;;;4528:24;;;;;;;;;;-1:-1:-1;4528:24:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2331:32:1;;;2313:51;;2301:2;2286:18;4528:24:0;2167:203:1;4609:43:0;;;;;;;;;;-1:-1:-1;4609:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;9123:335;;;;;;;;;;-1:-1:-1;9123:335:0;;;;;:::i;:::-;;:::i;4269:31::-;;;;;;;;;;;;;;;;7787:147;;;;;;;;;;-1:-1:-1;7787:147:0;;;;;:::i;:::-;;:::i;6160:381::-;;;;;;;;;;-1:-1:-1;6160:381:0;;;;;:::i;:::-;;:::i;8079:115::-;;;;;;;;;;-1:-1:-1;8079:115:0;;;;;:::i;:::-;;:::i;6549:887::-;;;;;;;;;;-1:-1:-1;6549:887:0;;;;;:::i;:::-;;:::i;4441:28::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;4476:20::-;;;;;;;;;;-1:-1:-1;4476:20:0;;;;-1:-1:-1;;;;;4476:20:0;;;4659:37;;;;;;;;;;-1:-1:-1;4659:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7933:14:1;;7926:22;7908:41;;7896:2;7881:18;4659:37:0;7768:187:1;4559:43:0;;;;;;;;;;-1:-1:-1;4559:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4503:18;;;;;;;;;;;;;;;;8202:286;;;;;;;;;;-1:-1:-1;8202:286:0;;;;;:::i;:::-;;:::i;4134:128::-;;;;;;;;;;;;;:::i;8496:619::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8573:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;8565:44;;;::::0;-1:-1:-1;;;8565:44:0;;8503:2:1;8565:44:0::1;::::0;::::1;8485:21:1::0;8542:2;8522:18;;;8515:30;-1:-1:-1;;;8561:18:1;;;8554:42;8613:18;;8565:44:0::1;8301:336:1::0;8565:44:0::1;8647:7;:14:::0;-1:-1:-1;;;;;8628:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:33:::1;8620:64;;;::::0;-1:-1:-1;;;8620:64:0;;8844:2:1;8620:64:0::1;::::0;::::1;8826:21:1::0;8883:2;8863:18;;;8856:30;-1:-1:-1;;;8902:18:1;;;8895:48;8960:18;;8620:64:0::1;8642:342:1::0;8620:64:0::1;-1:-1:-1::0;;;;;8713:16:0;::::1;8697:13;8713:16:::0;;;:7:::1;:16;::::0;;;;;8760:7:::1;:14:::0;8713:16;;8697:13;8760:18:::1;::::0;8777:1:::1;::::0;8760:18:::1;:::i;:::-;8740:38;;8804:9;8795:5;:18;8791:168;;8830:16;8849:7;8857:9;8849:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;8882:7:::1;:14:::0;;-1:-1:-1;;;;;8849:18:0;;::::1;::::0;-1:-1:-1;8849:18:0;;8890:5;;8882:14;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:25:::0;;-1:-1:-1;;;;;;8882:25:0::1;-1:-1:-1::0;;;;;8882:25:0;;::::1;;::::0;;8922:17;;;::::1;::::0;;:7:::1;:17:::0;;;;;;:25;;;8791:168:::1;-1:-1:-1::0;;;;;8978:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;;;8971:26;;-1:-1:-1;;8971:26:0::1;::::0;;9015:7:::1;:16:::0;;;;;9008:23;9042:7:::1;:13:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;9042:13:0;;;;;-1:-1:-1;;;;;;9042:13:0::1;::::0;;;;;;;;9073:34:::1;::::0;-1:-1:-1;;;;;9073:34:0;::::1;::::0;9087:10:::1;::::0;9073:34:::1;::::0;9042:13;9073:34:::1;8554:561;;8496:619:::0;:::o;7942:129::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;8024:5:::1;::::0;8011:27:::1;::::0;-1:-1:-1;;;;;8011:27:0;;::::1;::::0;8024:5:::1;::::0;8011:27:::1;::::0;8024:5:::1;::::0;8011:27:::1;8049:5;:14:::0;;-1:-1:-1;;;;;;8049:14:0::1;-1:-1:-1::0;;;;;8049:14:0;;;::::1;::::0;;;::::1;::::0;;7942:129::o;7444:335::-;5352:7;;;;5351:8;5343:30;;;;-1:-1:-1;;;5343:30:0;;9717:2:1;5343:30:0;;;9699:21:1;9756:1;9736:18;;;9729:29;-1:-1:-1;;;9774:18:1;;;9767:39;9823:18;;5343:30:0;9515:332:1;5343:30:0;5394:4;5384:14;;-1:-1:-1;;5384:14:0;;;;;7575:3:::1;::::0;7562:9:::1;:16;;7554:42;;;::::0;-1:-1:-1;;;7554:42:0;;10054:2:1;7554:42:0::1;::::0;::::1;10036:21:1::0;10093:2;10073:18;;;10066:30;-1:-1:-1;;;10112:18:1;;;10105:43;10165:18;;7554:42:0::1;9852:337:1::0;7554:42:0::1;7609:60;::::0;-1:-1:-1;;;7609:60:0;;7635:10:::1;7609:60;::::0;::::1;10434:34:1::0;7655:4:0::1;10484:18:1::0;;;10477:43;10536:18;;;10529:34;;;-1:-1:-1;;;;;7609:25:0;::::1;::::0;::::1;::::0;10369:18:1;;7609:60:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7680:25:0::1;::::0;-1:-1:-1;;;7680:25:0;;::::1;::::0;::::1;1946::1::0;;;-1:-1:-1;;;;;7680:17:0;::::1;::::0;::::1;::::0;1919:18:1;;7680:25:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7749:6;7737:10;-1:-1:-1::0;;;;;7723:48:0::1;7730:5;-1:-1:-1::0;;;;;7723:48:0::1;;7757:3;;7762:8;7723:48;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;5421:7:0;:15;;-1:-1:-1;;5421:15:0;;;-1:-1:-1;7444:335:0:o;4528:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4528:24:0;;-1:-1:-1;4528:24:0;:::o;9123:335::-;9235:7;9328:16;;4184:77;;;;;;;:::i;:::-;;;;-1:-1:-1;;4184:77:0;;;;;;;;;4174:88;;4184:77;4174:88;;;;9414:22;;;;;;9369:68;;;11757:25:1;-1:-1:-1;;;;;11856:15:1;;;11836:18;;;11829:43;;;;11908:15;;;11888:18;;;11881:43;11940:18;;;11933:34;;;11983:19;;;11976:35;11729:19;;9369:68:0;;;;;;;;;;;;9359:79;;;;;;9272:177;;;;;;;;-1:-1:-1;;;12280:27:1;;12332:1;12323:11;;12316:27;;;;12368:2;12359:12;;12352:28;12405:2;12396:12;;12022:392;9272:177:0;;;;;;;;;;;;;9262:188;;;;;;9255:195;;9123:335;;;;;;:::o;7787:147::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;7897:29:::1;::::0;7865:21:::1;::::0;-1:-1:-1;;;;;7897:20:0;::::1;::::0;:29;::::1;;;::::0;7865:21;;7847:15:::1;7897:29:::0;7847:15;7897:29;7865:21;7897:20;:29;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7836:98;7787:147:::0;:::o;6160:381::-;5506:5;;6267:13;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;6306:60:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;6293:73;;6306:60;;6293:10:::1;::::0;:73:::1;::::0;:10;;:73;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;6293:73:0::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;6293:73:0::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;6293:73:0::1;;::::0;;::::1;::::0;;;::::1;::::0;;6419:34;::::1;::::0;6430:4;;6436:6;;6444:8;;6419:34:::1;;;:::i;:::-;;;;;;;;;;;;;6409:45;;;;;;6393:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6377:81:0;-1:-1:-1;6476:10:0::1;;6469:17;6476:10:::0;;6469:17:::1;:::i;:::-;;;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;6469:17:0::1;;::::0;;-1:-1:-1;;6469:17:0::1;::::0;;6502:31:::1;::::0;-1:-1:-1;;;;;6502:31:0;::::1;::::0;6515:10:::1;::::0;6502:31:::1;::::0;6469:17:::1;::::0;6502:31:::1;6160:381:::0;;;;;:::o;8079:115::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;8155:3:::1;::::0;8144:21:::1;::::0;8160:4;;8155:3;8144:21:::1;::::0;;;::::1;8176:3;:10:::0;8079:115::o;6549:887::-;5352:7;;;;5351:8;5343:30;;;;-1:-1:-1;;;5343:30:0;;9717:2:1;5343:30:0;;;9699:21:1;9756:1;9736:18;;;9729:29;-1:-1:-1;;;9774:18:1;;;9767:39;9823:18;;5343:30:0;9515:332:1;5343:30:0;5394:4;5384:14;;-1:-1:-1;;5384:14:0;;;;;6737:7:::1;:14:::0;6725:8;;:26:::1;6717:57;;;::::0;-1:-1:-1;;;6717:57:0;;12621:2:1;6717:57:0::1;::::0;::::1;12603:21:1::0;12660:2;12640:18;;;12633:30;-1:-1:-1;;;12679:18:1;;;12672:48;12737:18;;6717:57:0::1;12419:342:1::0;6717:57:0::1;6787:14;6804:43;6823:5;6830:2;6834:6;6842:4;6804:18;:43::i;:::-;6867:12;::::0;;;:4:::1;:12;::::0;;;;;6787:60;;-1:-1:-1;6867:12:0::1;;6866:13;6858:31;;;::::0;-1:-1:-1;;;6858:31:0;;12968:2:1;6858:31:0::1;::::0;::::1;12950:21:1::0;13007:1;12987:18;;;12980:29;-1:-1:-1;;;13025:18:1;;;13018:35;13070:18;;6858:31:0::1;12766:328:1::0;6858:31:0::1;6900:12;::::0;;;:4:::1;:12;::::0;;;;:19;;-1:-1:-1;;6900:19:0::1;6915:4;6900:19;::::0;;6976:8;;6962:23:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;6962:23:0::1;;6932:53;;7001:9;6996:342;7020:1;:8;7016:1;:12;6996:342;;;7050:14;7067:35;7077:6;7085:1;7087;7085:4;;;;;;;;:::i;:::-;;;;;;;7091:1;7093;7091:4;;;;;;;;:::i;:::-;;;;;;;7097:1;7099;7097:4;;;;;;;;:::i;:::-;;;;;;;7067:35;;;;;;;;;;;;;;;;;13326:25:1::0;;;13399:4;13387:17;;;;13382:2;13367:18;;13360:45;13436:2;13421:18;;13414:34;13479:2;13464:18;;13457:34;13313:3;13298:19;;13099:398;7067:35:0::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7067:35:0::1;::::0;;-1:-1:-1;;7067:35:0;;-1:-1:-1;;;;;7125:18:0;::::1;;::::0;;;:10:::1;7067:35;7125:18:::0;;;;;;7067:35;;-1:-1:-1;7125:18:0::1;;::::0;-1:-1:-1;7117:45:0::1;;;::::0;-1:-1:-1;;;7117:45:0;;13704:2:1;7117:45:0::1;::::0;::::1;13686:21:1::0;13743:2;13723:18;;;13716:30;-1:-1:-1;;;13762:18:1;;;13755:44;13816:18;;7117:45:0::1;13502:338:1::0;7117:45:0::1;7182:9;7177:113;7201:1;7197;:5;7177:113;;;7253:6;-1:-1:-1::0;;;;;7236:23:0::1;:10;7247:1;7236:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;7236:23:0::1;;;7228:46;;;::::0;-1:-1:-1;;;7228:46:0;;14047:2:1;7228:46:0::1;::::0;::::1;14029:21:1::0;14086:2;14066:18;;;14059:30;-1:-1:-1;;;14105:18:1;;;14098:40;14155:18;;7228:46:0::1;13845:334:1::0;7228:46:0::1;7204:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7177:113;;;;7320:6;7304:10;7315:1;7304:13;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7304:22:0;;::::1;:13;::::0;;::::1;::::0;;;;;;;:22;-1:-1:-1;7030:3:0;::::1;::::0;::::1;:::i;:::-;;;;6996:342;;;-1:-1:-1::0;7350:29:0::1;::::0;-1:-1:-1;;;7350:29:0;;-1:-1:-1;;;;;14516:32:1;;;7350:29:0::1;::::0;::::1;14498:51:1::0;14565:18;;;14558:34;;;7350:17:0;::::1;::::0;::::1;::::0;14471:18:1;;7350:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7415:6;7411:2;-1:-1:-1::0;;;;;7397:31:0::1;7404:5;-1:-1:-1::0;;;;;7397:31:0::1;;7423:4;7397:31;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;5421:7:0;:15;;-1:-1:-1;;5421:15:0;;;-1:-1:-1;;;;;;;6549:887:0:o;4441:28::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4441:28:0;;;;;;;-1:-1:-1;;4441:28:0;;;:::o;8202:286::-;5506:5;;-1:-1:-1;;;;;5506:5:0;5492:10;:19;5484:44;;;;-1:-1:-1;;;5484:44:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8277:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;8276:20;8268:47;;;::::0;-1:-1:-1;;;8268:47:0;;15415:2:1;8268:47:0::1;::::0;::::1;15397:21:1::0;15454:2;15434:18;;;15427:30;-1:-1:-1;;;15473:18:1;;;15466:44;15527:18;;8268:47:0::1;15213:338:1::0;8268:47:0::1;8347:7;:14:::0;;-1:-1:-1;;;;;8328:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;;;:33;;;;8372:10:::1;:19:::0;;;;;:26;;-1:-1:-1;;8372:26:0::1;8394:4;8372:26:::0;;::::1;::::0;;;8409:21;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;8409:21:0::1;::::0;::::1;::::0;;8448:32;;8328:16;;8460:10:::1;::::0;8448:32:::1;::::0;8328:16;8448:32:::1;8202:286:::0;:::o;4134:128::-;4184:77;;;;;;;:::i;:::-;;;;;;;;;;;;;4174:88;;;;;;4134:128;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:127::-;444:10;439:3;435:20;432:1;425:31;475:4;472:1;465:15;499:4;496:1;489:15;515:275;586:2;580:9;651:2;632:13;;-1:-1:-1;;628:27:1;616:40;;686:18;671:34;;707:22;;;668:62;665:88;;;733:18;;:::i;:::-;769:2;762:22;515:275;;-1:-1:-1;515:275:1:o;795:531::-;838:5;891:3;884:4;876:6;872:17;868:27;858:55;;909:1;906;899:12;858:55;945:6;932:20;971:18;967:2;964:26;961:52;;;993:18;;:::i;:::-;1037:55;1080:2;1061:13;;-1:-1:-1;;1057:27:1;1086:4;1053:38;1037:55;:::i;:::-;1117:2;1108:7;1101:19;1163:3;1156:4;1151:2;1143:6;1139:15;1135:26;1132:35;1129:55;;;1180:1;1177;1170:12;1129:55;1245:2;1238:4;1230:6;1226:17;1219:4;1210:7;1206:18;1193:55;1293:1;1268:16;;;1286:4;1264:27;1257:38;;;;1272:7;795:531;-1:-1:-1;;;795:531:1:o;1331:464::-;1418:6;1426;1434;1487:2;1475:9;1466:7;1462:23;1458:32;1455:52;;;1503:1;1500;1493:12;1455:52;1526:29;1545:9;1526:29;:::i;:::-;1516:39;;1602:2;1591:9;1587:18;1574:32;1564:42;;1657:2;1646:9;1642:18;1629:32;1684:18;1676:6;1673:30;1670:50;;;1716:1;1713;1706:12;1670:50;1739;1781:7;1772:6;1761:9;1757:22;1739:50;:::i;:::-;1729:60;;;1331:464;;;;;:::o;1982:180::-;2041:6;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;-1:-1:-1;2133:23:1;;1982:180;-1:-1:-1;1982:180:1:o;2557:539::-;2653:6;2661;2669;2677;2730:3;2718:9;2709:7;2705:23;2701:33;2698:53;;;2747:1;2744;2737:12;2698:53;2770:29;2789:9;2770:29;:::i;:::-;2760:39;;2818:38;2852:2;2841:9;2837:18;2818:38;:::i;:::-;2808:48;;2903:2;2892:9;2888:18;2875:32;2865:42;;2958:2;2947:9;2943:18;2930:32;2985:18;2977:6;2974:30;2971:50;;;3017:1;3014;3007:12;2971:50;3040;3082:7;3073:6;3062:9;3058:22;3040:50;:::i;:::-;3030:60;;;2557:539;;;;;;;:::o;3101:156::-;3167:20;;3227:4;3216:16;;3206:27;;3196:55;;3247:1;3244;3237:12;3262:613;3357:6;3365;3373;3426:2;3414:9;3405:7;3401:23;3397:32;3394:52;;;3442:1;3439;3432:12;3394:52;3482:9;3469:23;3511:18;3552:2;3544:6;3541:14;3538:34;;;3568:1;3565;3558:12;3538:34;3591:50;3633:7;3624:6;3613:9;3609:22;3591:50;:::i;:::-;3581:60;;3694:2;3683:9;3679:18;3666:32;3650:48;;3723:2;3713:8;3710:16;3707:36;;;3739:1;3736;3729:12;3707:36;;3762:52;3806:7;3795:8;3784:9;3780:24;3762:52;:::i;:::-;3752:62;;;3833:36;3865:2;3854:9;3850:18;3833:36;:::i;:::-;3823:46;;3262:613;;;;;:::o;3880:181::-;3938:4;3971:18;3963:6;3960:30;3957:56;;;3993:18;;:::i;:::-;-1:-1:-1;4038:1:1;4034:14;4050:4;4030:25;;3880:181::o;4066:662::-;4118:5;4171:3;4164:4;4156:6;4152:17;4148:27;4138:55;;4189:1;4186;4179:12;4138:55;4225:6;4212:20;4251:4;4275:58;4291:41;4329:2;4291:41;:::i;:::-;4275:58;:::i;:::-;4367:15;;;4453:1;4449:10;;;;4437:23;;4433:32;;;4398:12;;;;4477:15;;;4474:35;;;4505:1;4502;4495:12;4474:35;4541:2;4533:6;4529:15;4553:146;4569:6;4564:3;4561:15;4553:146;;;4635:21;4652:3;4635:21;:::i;:::-;4623:34;;4677:12;;;;4586;;4553:146;;;-1:-1:-1;4717:5:1;4066:662;-1:-1:-1;;;;;;4066:662:1:o;4733:660::-;4787:5;4840:3;4833:4;4825:6;4821:17;4817:27;4807:55;;4858:1;4855;4848:12;4807:55;4894:6;4881:20;4920:4;4944:58;4960:41;4998:2;4960:41;:::i;4944:58::-;5036:15;;;5122:1;5118:10;;;;5106:23;;5102:32;;;5067:12;;;;5146:15;;;5143:35;;;5174:1;5171;5164:12;5143:35;5210:2;5202:6;5198:15;5222:142;5238:6;5233:3;5230:15;5222:142;;;5304:17;;5292:30;;5342:12;;;;5255;;5222:142;;5398:1237;5594:6;5602;5610;5618;5626;5634;5642;5695:3;5683:9;5674:7;5670:23;5666:33;5663:53;;;5712:1;5709;5702:12;5663:53;5735:29;5754:9;5735:29;:::i;:::-;5725:39;;5783:38;5817:2;5806:9;5802:18;5783:38;:::i;:::-;5773:48;;5868:2;5857:9;5853:18;5840:32;5830:42;;5923:2;5912:9;5908:18;5895:32;5946:18;5987:2;5979:6;5976:14;5973:34;;;6003:1;6000;5993:12;5973:34;6026:50;6068:7;6059:6;6048:9;6044:22;6026:50;:::i;:::-;6016:60;;6129:3;6118:9;6114:19;6101:33;6085:49;;6159:2;6149:8;6146:16;6143:36;;;6175:1;6172;6165:12;6143:36;6198:61;6251:7;6240:8;6229:9;6225:24;6198:61;:::i;:::-;6188:71;;6312:3;6301:9;6297:19;6284:33;6268:49;;6342:2;6332:8;6329:16;6326:36;;;6358:1;6355;6348:12;6326:36;6381:63;6436:7;6425:8;6414:9;6410:24;6381:63;:::i;:::-;6371:73;;6497:3;6486:9;6482:19;6469:33;6453:49;;6527:2;6517:8;6514:16;6511:36;;;6543:1;6540;6533:12;6511:36;;6566:63;6621:7;6610:8;6599:9;6595:24;6566:63;:::i;:::-;6556:73;;;5398:1237;;;;;;;;;;:::o;6640:472::-;6682:3;6720:5;6714:12;6747:6;6742:3;6735:19;6772:1;6782:162;6796:6;6793:1;6790:13;6782:162;;;6858:4;6914:13;;;6910:22;;6904:29;6886:11;;;6882:20;;6875:59;6811:12;6782:162;;;6962:6;6959:1;6956:13;6953:87;;;7028:1;7021:4;7012:6;7007:3;7003:16;6999:27;6992:38;6953:87;-1:-1:-1;7094:2:1;7073:15;-1:-1:-1;;7069:29:1;7060:39;;;;7101:4;7056:50;;6640:472;-1:-1:-1;;6640:472:1:o;7117:461::-;7338:2;7327:9;7320:21;7301:4;7364:45;7405:2;7394:9;7390:18;7382:6;7364:45;:::i;:::-;7457:9;7449:6;7445:22;7440:2;7429:9;7425:18;7418:50;7485:33;7511:6;7503;7485:33;:::i;:::-;7477:41;;;7566:4;7558:6;7554:17;7549:2;7538:9;7534:18;7527:45;7117:461;;;;;;:::o;7960:336::-;8162:2;8144:21;;;8201:2;8181:18;;;8174:30;-1:-1:-1;;;8235:2:1;8220:18;;8213:42;8287:2;8272:18;;7960:336::o;8989:127::-;9050:10;9045:3;9041:20;9038:1;9031:31;9081:4;9078:1;9071:15;9105:4;9102:1;9095:15;9121:125;9161:4;9189:1;9186;9183:8;9180:34;;;9194:18;;:::i;:::-;-1:-1:-1;9231:9:1;;9121:125::o;9251:127::-;9312:10;9307:3;9303:20;9300:1;9293:31;9343:4;9340:1;9333:15;9367:4;9364:1;9357:15;9383:127;9444:10;9439:3;9435:20;9432:1;9425:31;9475:4;9472:1;9465:15;9499:4;9496:1;9489:15;10574:277;10641:6;10694:2;10682:9;10673:7;10669:23;10665:32;10662:52;;;10710:1;10707;10700:12;10662:52;10742:9;10736:16;10795:5;10788:13;10781:21;10774:5;10771:32;10761:60;;10817:1;10814;10807:12;10856:291;11033:6;11022:9;11015:25;11076:2;11071;11060:9;11056:18;11049:30;10996:4;11096:45;11137:2;11126:9;11122:18;11114:6;11096:45;:::i;:::-;11088:53;10856:291;-1:-1:-1;;;;10856:291:1:o;11152:341::-;11366:34;11354:47;;11431:27;11426:2;11417:12;;11410:49;11484:2;11475:12;;11152:341::o;14184:135::-;14223:3;-1:-1:-1;;14244:17:1;;14241:43;;;14264:18;;:::i;:::-;-1:-1:-1;14311:1:1;14300:13;;14184:135::o;14603:220::-;14752:2;14741:9;14734:21;14715:4;14772:45;14813:2;14802:9;14798:18;14790:6;14772:45;:::i;14828:380::-;14907:1;14903:12;;;;14950;;;14971:61;;15025:4;15017:6;15013:17;15003:27;;14971:61;15078:2;15070:6;15067:14;15047:18;15044:38;15041:161;;;15124:10;15119:3;15115:20;15112:1;15105:31;15159:4;15156:1;15149:15;15187:4;15184:1;15177:15;15041:161;;14828:380;;;:::o

Swarm Source

ipfs://b6078ee4ac9049f8143bd6ff4d091bba6f2a22825dddfdc2ebaeccdefec5e176

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  ]
[ 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.