Contract 0x3CD6D7F5fF977bf8069548eA1F9441b061162b42 5

 

Contract Overview

DODO: Multisig Wallet
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x40e2a09539b58e7381e5b1a6af0e0db2e4b896683d7bdbd40034bb82f944e6e3Execute Transact...359331682022-11-22 16:51:2017 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.014290007756 146.313573228
0x47d69aff89179638d334705c1fe457d85227d94bd9a8c32ac7076f1277ae9a5eExecute Transact...359331642022-11-22 16:51:1217 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.015203882334 146.313573228
0x74fd641f2b59bb06bcebb679b643e98d3a21dd4581bef3387f90fb136b6fd733Confirm Transact...359331522022-11-22 16:50:4817 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.015175497501 146.313573228
0xe0252ce3eb4a94d68240153333f996e3dcde66872c3614797069fbf7adbd8b81Confirm Transact...359331492022-11-22 16:50:4217 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.015175497501 146.313573228
0xdd71cd1c1612dc6096164b937875fd4646035720010d60eb37ce71302522166bSubmit Transacti...359146022022-11-22 6:04:0217 days 13 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.005668500169 30.000000896
0xb7e6de6cb3b5cf50bc710677c0a234c9e639cb83c4260d5a23a574ba40ce552aSubmit Transacti...359145802022-11-22 6:03:1817 days 13 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.005668500264 30.000001399
0x7177c24f4a805d5becf664a028b8507cf1b80d443d6eb413574b805784512615Execute Transact...357570702022-11-18 10:23:1721 days 9 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.003548988468 34.98160201
0xa2af47be3ef6d031b484c2bdbf523fbd88d15a77998e9b05dd42083e3714d9e8Confirm Transact...357570612022-11-18 10:22:4121 days 9 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.003493706168 34.455035733
0x24a0edb180da416756b3d0495efb620e3ade3de8b8ad6b3a361605304b7bf557Submit Transacti...357568072022-11-18 10:13:4521 days 9 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.005230784242 31.397641284
0x710bc2cc3dd0ee628be3452e1ef522ef124ce6f24abacf35cbc0b1a4f6edcc0eExecute Transact...347840632022-10-25 13:53:2345 days 6 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.028289839179 333.555459412
0xdeeb941f31ffe7f2ec9db4df2fb45fc9da28b6908a21c1beedc91d6cc18ff004Execute Transact...347840552022-10-25 13:53:0745 days 6 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.028289839179 333.555459412
0x7e34eab5802b110bcb0d4997622a5527a978b38f0bb7dc6bdd347171d3dc8b97Confirm Transact...347840402022-10-25 13:52:3745 days 6 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.032406914214 333.555459412
0x9b126dd91211a018b8572c1a23dd40659fbf797f4af08812e00298418d9c8c4cConfirm Transact...347840362022-10-25 13:52:2945 days 6 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.032406914214 333.555459412
0x51742d5fe75e207bd5381232cf8ddb0a51a7988955eb1f9feb9f1327f97c4e7cSubmit Transacti...347839922022-10-25 13:50:5745 days 6 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.059130001347 485.260819255
0x7e3c46f3a2198e8d70dd22def7b47a54b39cc4908ab51ea5339042db3dfe3765Submit Transacti...347836202022-10-25 13:38:1345 days 6 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.058661110659 481.412784851
0x4e52bda9ba748b585d108fac46124bcc8a65077fb83e441bf0f5f576d36f1e21Execute Transact...346452452022-10-22 4:28:1448 days 15 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.011367079616 123.603579846
0x4bc082d2958d1e605cdbe90772b55b33db43eeec43696caa4b6dacc4083c8076Confirm Transact...346452302022-10-22 4:27:4448 days 15 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.012820039698 123.603579846
0x3d96a7516c9d29f42903cb09bd28a847547ea026ef550e6ba5c295fa7743dcf5Submit Transacti...346420142022-10-22 2:37:0848 days 17 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.02514849515 133.05378102
0x35cd4c3faa545ff96d9eb937f4d0f25f652581b965287ddbe27041e6f245ec2eRevoke Confirmat...345403112022-10-19 14:49:1051 days 5 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.005913018804 211.118923331
0x73aababcb64c8340a78d87fcab802e32bb6d342fe9323a481e788483698a93eaSubmit Transacti...345338782022-10-19 10:52:0551 days 9 hrs ago0x36fff5b6168f6c7b38b1226eaf49408eba1ab148 IN  DODO: Multisig Wallet0 MATIC0.033192885544 199.253752084
0xc4feb7e3b1df77a0d7b0b408fb40017169b4c81b52ebd39ea974e3dfeafe9fe2Execute Transact...341332862022-10-09 16:25:4061 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.002938080001 30.000000012
0x103f8e27e23dd4a3ea1e6ae93b2d5b0cf07fc4e2b7ed4db355eda04542df2951Execute Transact...341332472022-10-09 16:24:1861 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.002531010001 30.000000012
0xfd32b11651074b3cbf507edead377015dd9a2a300525fbfc7e3cf608a892c406Execute Transact...341332432022-10-09 16:24:1061 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.002543070001 30.000000012
0x80f853c38f238b33c0ea406d235238472ff8185bc5e9c03817f1f9f289b546ddConfirm Transact...341332352022-10-09 16:23:5461 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.002914680001 30.000000012
0x5a0f89ab6314764aa3268b0390226bed4a65aa75a74637d82946ec7ec948f939Confirm Transact...341332322022-10-09 16:23:4861 days 3 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: Multisig Wallet0 MATIC0.003041970001 30.000000012
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSigWalletWithTimelock

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at polygonscan.com on 2021-06-11
*/

/**
 *Submitted for verification at hecoinfo.com on 2021-02-24
*/

pragma solidity 0.5.8;

contract MultiSigWalletWithTimelock {

    uint256 constant public MAX_OWNER_COUNT = 50;
    uint256 public lockSeconds = 0;

    event Confirmation(address indexed sender, uint256 indexed transactionId);
    event Revocation(address indexed sender, uint256 indexed transactionId);
    event Submission(uint256 indexed transactionId);
    event Execution(uint256 indexed transactionId);
    event ExecutionFailure(uint256 indexed transactionId);
    event Deposit(address indexed sender, uint256 value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint256 required);
    event UnlockTimeSet(uint256 indexed transactionId, uint256 confirmationTime);
    event LockSecondsChange(uint256 lockSeconds);

    mapping (uint256 => Transaction) public transactions;
    mapping (uint256 => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    mapping (uint256 => uint256) public unlockTimes;

    address[] public owners;
    uint256 public required;
    uint256 public transactionCount;

    struct Transaction {
        address destination;
        uint256 value;
        bytes data;
        bool executed;
    }

    struct EmergencyCall {
        bytes32 selector;
        uint256 paramsBytesCount;
    }

    // Functions bypass the time lock process
    EmergencyCall[] public emergencyCalls;

    modifier onlyWallet() {
        if (msg.sender != address(this))
            revert("ONLY_WALLET_ERROR");
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            revert("OWNER_DOES_NOT_EXIST_ERROR");
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            revert("OWNER_EXISTS_ERROR");
        _;
    }

    modifier transactionExists(uint256 transactionId) {
        if (transactions[transactionId].destination == address(0))
            revert("TRANSACTION_EXISTS_ERROR");
        _;
    }

    modifier confirmed(uint256 transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            revert("CONFIRMED_ERROR");
        _;
    }

    modifier notConfirmed(uint256 transactionId, address owner) {
        if (confirmations[transactionId][owner])
            revert("NOT_CONFIRMED_ERROR");
        _;
    }

    modifier notExecuted(uint256 transactionId) {
        if (transactions[transactionId].executed)
            revert("NOT_EXECUTED_ERROR");
        _;
    }

    modifier notNull(address _address) {
        if (_address == address(0))
            revert("NOT_NULL_ERROR");
        _;
    }

    modifier validRequirement(uint256 ownerCount, uint256 _required) {
        if (ownerCount > MAX_OWNER_COUNT || _required > ownerCount || _required == 0 || ownerCount == 0)
            revert("VALID_REQUIREMENT_ERROR");
        _;
    }

    /** @dev Fallback function allows to deposit ether. */
    function() external payable {
        if (msg.value > 0) {
            emit Deposit(msg.sender, msg.value);
        }
    }

    /** @dev Contract constructor sets initial owners and required number of confirmations.
      * @param _owners List of initial owners.
      * @param _required Number of required confirmations.
      */
    constructor(address[] memory _owners, uint256 _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint256 i = 0; i < _owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == address(0)) {
                revert("OWNER_ERROR");
            }

            isOwner[_owners[i]] = true;
        }

        owners = _owners;
        required = _required;

        // initialzie Emergency calls
        emergencyCalls.push(
            EmergencyCall({
                selector: keccak256(abi.encodePacked("setMarketBorrowUsability(uint16,bool)")),
                paramsBytesCount: 64
            })
        );
    }

    function getEmergencyCallsCount()
        external
        view
        returns (uint256 count)
    {
        return emergencyCalls.length;
    }

    /** @dev Allows to add a new owner. Transaction has to be sent by wallet.
      * @param owner Address of new owner.
      */
    function addOwner(address owner)
        external
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        emit OwnerAddition(owner);
    }

    /** @dev Allows to remove an owner. Transaction has to be sent by wallet.
      * @param owner Address of owner.
      */
    function removeOwner(address owner)
        external
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint256 i = 0; i < owners.length - 1; i++) {
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        }

        owners.length -= 1;

        if (required > owners.length) {
            changeRequirement(owners.length);
        }

        emit OwnerRemoval(owner);
    }

    /** @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
      * @param owner Address of owner to be replaced.
      * @param owner Address of new owner.
      */
    function replaceOwner(address owner, address newOwner)
        external
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint256 i = 0; i < owners.length; i++) {
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        }

        isOwner[owner] = false;
        isOwner[newOwner] = true;
        emit OwnerRemoval(owner);
        emit OwnerAddition(newOwner);
    }

    /** @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
      * @param _required Number of required confirmations.
      */
    function changeRequirement(uint256 _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        emit RequirementChange(_required);
    }

    /** @dev Changes the duration of the time lock for transactions.
      * @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds.
      */
    function changeLockSeconds(uint256 _lockSeconds)
        external
        onlyWallet
    {
        lockSeconds = _lockSeconds;
        emit LockSecondsChange(_lockSeconds);
    }

    /** @dev Allows an owner to submit and confirm a transaction.
      * @param destination Transaction target address.
      * @param value Transaction ether value.
      * @param data Transaction data payload.
      * @return Returns transaction ID.
      */
    function submitTransaction(address destination, uint256 value, bytes calldata data)
        external
        ownerExists(msg.sender)
        notNull(destination)
        returns (uint256 transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        emit Submission(transactionId);
        confirmTransaction(transactionId);
    }

    /** @dev Allows an owner to confirm a transaction.
      * @param transactionId Transaction ID.
      */
    function confirmTransaction(uint256 transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        emit Confirmation(msg.sender, transactionId);

        if (isConfirmed(transactionId) && unlockTimes[transactionId] == 0 && !isEmergencyCall(transactionId)) {
            uint256 unlockTime = block.timestamp + lockSeconds;
            unlockTimes[transactionId] = unlockTime;
            emit UnlockTimeSet(transactionId, unlockTime);
        }
    }

    function isEmergencyCall(uint256 transactionId)
        internal
        view
        returns (bool)
    {
        bytes memory data = transactions[transactionId].data;

        for (uint256 i = 0; i < emergencyCalls.length; i++) {
            EmergencyCall memory emergencyCall = emergencyCalls[i];

            if (
                data.length == emergencyCall.paramsBytesCount + 4 &&
                data.length >= 4 &&
                emergencyCall.selector[0] == data[0] &&
                emergencyCall.selector[1] == data[1] &&
                emergencyCall.selector[2] == data[2] &&
                emergencyCall.selector[3] == data[3]
            ) {
                return true;
            }
        }

        return false;
    }

    /** @dev Allows an owner to revoke a confirmation for a transaction.
      * @param transactionId Transaction ID.
      */
    function revokeConfirmation(uint256 transactionId)
        external
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        emit Revocation(msg.sender, transactionId);
    }

    /** @dev Allows anyone to execute a confirmed transaction.
      * @param transactionId Transaction ID.
      */
    function executeTransaction(uint256 transactionId)
        external
        ownerExists(msg.sender)
        notExecuted(transactionId)
    {
        require(
            block.timestamp >= unlockTimes[transactionId],
            "TRANSACTION_NEED_TO_UNLOCK"
        );

        if (isConfirmed(transactionId)) {
            Transaction storage transaction = transactions[transactionId];
            transaction.executed = true;
            (bool success, ) = transaction.destination.call.value(transaction.value)(transaction.data);
            if (success)
                emit Execution(transactionId);
            else {
                emit ExecutionFailure(transactionId);
                transaction.executed = false;
            }
        }
    }

    /** @dev Returns the confirmation status of a transaction.
      * @param transactionId Transaction ID.
      * @return Confirmation status.
      */
    function isConfirmed(uint256 transactionId)
        public
        view
        returns (bool)
    {
        uint256 count = 0;

        for (uint256 i = 0; i < owners.length; i++) {
            if (confirmations[transactionId][owners[i]]) {
                count += 1;
            }

            if (count >= required) {
                return true;
            }
        }

        return false;
    }

    /* Web3 call functions */

    /** @dev Returns number of confirmations of a transaction.
      * @param transactionId Transaction ID.
      * @return Number of confirmations.
      */
    function getConfirmationCount(uint256 transactionId)
        external
        view
        returns (uint256 count)
    {
        for (uint256 i = 0; i < owners.length; i++) {
            if (confirmations[transactionId][owners[i]]) {
                count += 1;
            }
        }
    }

    /** @dev Returns total number of transactions after filers are applied.
      * @param pending Include pending transactions.
      * @param executed Include executed transactions.
      * @return Total number of transactions after filters are applied.
      */
    function getTransactionCount(bool pending, bool executed)
        external
        view
        returns (uint256 count)
    {
        for (uint256 i = 0; i < transactionCount; i++) {
            if (pending && !transactions[i].executed || executed && transactions[i].executed) {
                count += 1;
            }
        }
    }

    /** @dev Returns list of owners.
      * @return List of owner addresses.
      */
    function getOwners()
        external
        view
        returns (address[] memory)
    {
        return owners;
    }

    /** @dev Returns array with owner addresses, which confirmed transaction.
      * @param transactionId Transaction ID.
      * @return Returns array of owner addresses.
      */
    function getConfirmations(uint256 transactionId)
        external
        view
        returns (address[] memory _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint256 count = 0;
        uint256 i;

        for (i = 0; i < owners.length; i++) {
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        }

        _confirmations = new address[](count);

        for (i = 0; i < count; i++) {
            _confirmations[i] = confirmationsTemp[i];
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"unlockTimes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"emergencyCalls","outputs":[{"name":"selector","type":"bytes32"},{"name":"paramsBytesCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_lockSeconds","type":"uint256"}],"name":"changeLockSeconds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockSeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getEmergencyCallsCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"},{"indexed":false,"name":"confirmationTime","type":"uint256"}],"name":"UnlockTimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"lockSeconds","type":"uint256"}],"name":"LockSecondsChange","type":"event"}]

6080604052600080553480156200001557600080fd5b50604051620022b9380380620022b9833981018060405260408110156200003b57600080fd5b8101908080516401000000008111156200005457600080fd5b820160208101848111156200006857600080fd5b81518560208202830111640100000000821117156200008657600080fd5b505060209091015181519193509150816032821180620000a557508181115b80620000af575080155b80620000b9575081155b156200012657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604482015290519081900360640190fd5b60005b84518110156200025857600360008683815181106200014457fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16806200019d575060006001600160a01b03168582815181106200018a57fe5b60200260200101516001600160a01b0316145b156200020a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f574e45525f4552524f52000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600360008784815181106200021d57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000129565b5083516200026e906005906020870190620002e2565b506006839055604080518082019091526008908060608101806025620022948239604080518083036005018152602590920181528151602092830120845292810192909252508254600180820185556000948552938290208351600290920201908155910151910155506200037692505050565b8280548282559060005260206000209081019282156200033a579160200282015b828111156200033a57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000303565b50620003489291506200034c565b5090565b6200037391905b80821115620003485780546001600160a01b031916815560010162000353565b90565b611f0e80620003866000396000f3fe6080604052600436106101665760003560e01c80639ace38c2116100d1578063c01a8c841161008a578063d74f8edd11610064578063d74f8edd146106ad578063dc8452cd146106c2578063e20056e6146106d7578063ee22610b1461071257610166565b8063c01a8c84146105dc578063c0af022714610606578063c64274741461061b57610166565b80639ace38c21461042c578063a0e67e2b146104f9578063b5dc40c31461055e578063b77bf60014610588578063ba51a6df1461059d578063bfa6fddb146105c757610166565b80637065cb48116101235780637065cb481461030e57806376ac947a14610341578063784547a71461036b57806386384afc146103955780638b51d13f146103d85780638c22d5d31461040257610166565b8063025e7c27146101a5578063173825d9146101eb57806320ea8d861461021e5780632f54bf6e146102485780633411c81c1461028f57806354741525146102c8575b34156101a35760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b005b3480156101b157600080fd5b506101cf600480360360208110156101c857600080fd5b503561073c565b604080516001600160a01b039092168252519081900360200190f35b3480156101f757600080fd5b506101a36004803603602081101561020e57600080fd5b50356001600160a01b0316610763565b34801561022a57600080fd5b506101a36004803603602081101561024157600080fd5b503561094a565b34801561025457600080fd5b5061027b6004803603602081101561026b57600080fd5b50356001600160a01b0316610ac7565b604080519115158252519081900360200190f35b34801561029b57600080fd5b5061027b600480360360408110156102b257600080fd5b50803590602001356001600160a01b0316610adc565b3480156102d457600080fd5b506102fc600480360360408110156102eb57600080fd5b508035151590602001351515610afc565b60408051918252519081900360200190f35b34801561031a57600080fd5b506101a36004803603602081101561033157600080fd5b50356001600160a01b0316610b68565b34801561034d57600080fd5b506102fc6004803603602081101561036457600080fd5b5035610d8d565b34801561037757600080fd5b5061027b6004803603602081101561038e57600080fd5b5035610d9f565b3480156103a157600080fd5b506103bf600480360360208110156103b857600080fd5b5035610e29565b6040805192835260208301919091528051918290030190f35b3480156103e457600080fd5b506102fc600480360360208110156103fb57600080fd5b5035610e54565b34801561040e57600080fd5b506101a36004803603602081101561042557600080fd5b5035610ec3565b34801561043857600080fd5b506104566004803603602081101561044f57600080fd5b5035610f4c565b60405180856001600160a01b03166001600160a01b031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b838110156104bb5781810151838201526020016104a3565b50505050905090810190601f1680156104e85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561050557600080fd5b5061050e611008565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561054a578181015183820152602001610532565b505050509050019250505060405180910390f35b34801561056a57600080fd5b5061050e6004803603602081101561058157600080fd5b503561106b565b34801561059457600080fd5b506102fc6111e2565b3480156105a957600080fd5b506101a3600480360360208110156105c057600080fd5b50356111e8565b3480156105d357600080fd5b506102fc6112ec565b3480156105e857600080fd5b506101a3600480360360208110156105ff57600080fd5b50356112f2565b34801561061257600080fd5b506102fc611509565b34801561062757600080fd5b506102fc6004803603606081101561063e57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561066e57600080fd5b82018360208201111561068057600080fd5b803590602001918460018302840111640100000000831117156106a257600080fd5b50909250905061150f565b3480156106b957600080fd5b506102fc6116d1565b3480156106ce57600080fd5b506102fc6116d6565b3480156106e357600080fd5b506101a3600480360360408110156106fa57600080fd5b506001600160a01b03813581169160200135166116dc565b34801561071e57600080fd5b506101a36004803603602081101561073557600080fd5b503561191f565b6005818154811061074957fe5b6000918252602090912001546001600160a01b0316905081565b3330146107b15760408051600160e51b62461bcd0281526020600482015260116024820152600160791b7027a7262cafaba0a62622aa2fa2a92927a902604482015290519081900360640190fd5b6001600160a01b038116600090815260036020526040902054819060ff166108115760408051600160e51b62461bcd0281526020600482015260126024820152600080516020611ec3833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600360205260408120805460ff191690555b600554600019018110156108e557826001600160a01b03166005828154811061085757fe5b6000918252602090912001546001600160a01b031614156108dd5760058054600019810190811061088457fe5b600091825260209091200154600580546001600160a01b0390921691839081106108aa57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506108e5565b600101610832565b506005805460001901906108f99082611def565b50600554600654111561091257600554610912906111e8565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526003602052604090205460ff1661099f5760408051600160e51b62461bcd0281526020600482015260126024820152600080516020611ec3833981519152604482015290519081900360640190fd5b60008281526002602090815260408083203380855292529091205483919060ff16610a145760408051600160e51b62461bcd02815260206004820152600f60248201527f434f4e4649524d45445f4552524f520000000000000000000000000000000000604482015290519081900360640190fd5b600084815260016020526040902060030154849060ff1615610a785760408051600160e51b62461bcd0281526020600482015260126024820152600160711b712727aa2fa2ac22a1aaaa22a22fa2a92927a902604482015290519081900360640190fd5b6000858152600260209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60036020526000908152604090205460ff1681565b600260209081526000928352604080842090915290825290205460ff1681565b6000805b600754811015610b6157838015610b29575060008181526001602052604090206003015460ff16155b80610b4d5750828015610b4d575060008181526001602052604090206003015460ff165b15610b59576001820191505b600101610b00565b5092915050565b333014610bb65760408051600160e51b62461bcd0281526020600482015260116024820152600160791b7027a7262cafaba0a62622aa2fa2a92927a902604482015290519081900360640190fd5b6001600160a01b038116600090815260036020526040902054819060ff1615610c295760408051600160e51b62461bcd02815260206004820152601a60248201527f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000604482015290519081900360640190fd5b816001600160a01b038116610c7c5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d2727aa2fa72aa6262fa2a92927a902604482015290519081900360640190fd5b6005805490506001016006546032821180610c9657508181115b80610c9f575080155b80610ca8575081155b15610cfd5760408051600160e51b62461bcd02815260206004820152601760248201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604482015290519081900360640190fd5b6001600160a01b038516600081815260036020526040808220805460ff1916600190811790915560058054918201815583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b60046020526000908152604090205481565b600080805b600554811015610e1d5760008481526002602052604081206005805491929184908110610dcd57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610e01576001820191505b6006548210610e1557600192505050610e24565b600101610da4565b5060009150505b919050565b60088181548110610e3657fe5b60009182526020909120600290910201805460019091015490915082565b6000805b600554811015610ebd5760008381526002602052604081206005805491929184908110610e8157fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610eb5576001820191505b600101610e58565b50919050565b333014610f115760408051600160e51b62461bcd0281526020600482015260116024820152600160791b7027a7262cafaba0a62622aa2fa2a92927a902604482015290519081900360640190fd5b60008190556040805182815290517f884d6758bafbcb4b5e2e0393178ca1f3da3dd380a54ce05ab60aa59756db9dc19181900360200190a150565b6001602081815260009283526040928390208054818401546002808401805488516101009882161598909802600019011691909104601f81018690048602870186019097528686526001600160a01b039092169590949293830182828015610ff55780601f10610fca57610100808354040283529160200191610ff5565b820191906000526020600020905b815481529060010190602001808311610fd857829003601f168201915b5050506003909301549192505060ff1684565b6060600580548060200260200160405190810160405280929190818152602001828054801561106057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611042575b505050505090505b90565b60608060058054905060405190808252806020026020018201604052801561109d578160200160208202803883390190505b5090506000805b60055481101561116057600085815260026020526040812060058054919291849081106110cd57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615611158576005818154811061110757fe5b9060005260206000200160009054906101000a90046001600160a01b031683838151811061113157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b6001016110a4565b8160405190808252806020026020018201604052801561118a578160200160208202803883390190505b509350600090505b818110156111da578281815181106111a657fe5b60200260200101518482815181106111ba57fe5b6001600160a01b0390921660209283029190910190910152600101611192565b505050919050565b60075481565b3330146112365760408051600160e51b62461bcd0281526020600482015260116024820152600160791b7027a7262cafaba0a62622aa2fa2a92927a902604482015290519081900360640190fd5b60055481603282118061124857508181115b80611251575080155b8061125a575081155b156112af5760408051600160e51b62461bcd02815260206004820152601760248201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604482015290519081900360640190fd5b60068390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b60005481565b3360008181526003602052604090205460ff166113475760408051600160e51b62461bcd0281526020600482015260126024820152600080516020611ec3833981519152604482015290519081900360640190fd5b60008281526001602052604090205482906001600160a01b03166113b55760408051600160e51b62461bcd02815260206004820152601860248201527f5452414e53414354494f4e5f4558495354535f4552524f520000000000000000604482015290519081900360640190fd5b60008381526002602090815260408083203380855292529091205484919060ff161561142b5760408051600160e51b62461bcd02815260206004820152601360248201527f4e4f545f434f4e4649524d45445f4552524f5200000000000000000000000000604482015290519081900360640190fd5b6000858152600260209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361147f85610d9f565b80156114975750600085815260046020526040902054155b80156114a957506114a785611ba4565b155b15611502576000805486825260046020908152604092839020429092019182905582518281529251919288927f280af6a3ba059a74f0e894262aa07f2c4d0de1e231882263c0d7dcda111b1a44929181900390910190a2505b5050505050565b60085490565b3360008181526003602052604081205490919060ff166115675760408051600160e51b62461bcd0281526020600482015260126024820152600080516020611ec3833981519152604482015290519081900360640190fd5b856001600160a01b0381166115ba5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d2727aa2fa72aa6262fa2a92927a902604482015290519081900360640190fd5b60075492506040518060800160405280886001600160a01b0316815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060209182018190528581526001808352604091829020845181546001600160a01b0319166001600160a01b039091161781558484015191810191909155908301518051919261166e92600285019290910190611e13565b50606091909101516003909101805460ff191691151591909117905560078054600101905560405183907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a26116c7836112f2565b5050949350505050565b603281565b60065481565b33301461172a5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b7027a7262cafaba0a62622aa2fa2a92927a902604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054829060ff1661178a5760408051600160e51b62461bcd0281526020600482015260126024820152600080516020611ec3833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054829060ff16156117fd5760408051600160e51b62461bcd02815260206004820152601a60248201527f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000604482015290519081900360640190fd5b60005b60055481101561188557846001600160a01b03166005828154811061182157fe5b6000918252602090912001546001600160a01b0316141561187d57836005828154811061184a57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611885565b600101611800565b506001600160a01b03808516600081815260036020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526003602052604090205460ff166119745760408051600160e51b62461bcd0281526020600482015260126024820152600080516020611ec3833981519152604482015290519081900360640190fd5b600082815260016020526040902060030154829060ff16156119d85760408051600160e51b62461bcd0281526020600482015260126024820152600160711b712727aa2fa2ac22a1aaaa22a22fa2a92927a902604482015290519081900360640190fd5b600083815260046020526040902054421015611a3e5760408051600160e51b62461bcd02815260206004820152601a60248201527f5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b000000000000604482015290519081900360640190fd5b611a4783610d9f565b15611b9f57600083815260016020819052604080832060038101805460ff1916841790558054818401549251600280840180549497966001600160a01b039094169594909383928592600019928116156101000292909201909116048015611ae65780601f10611ac4576101008083540402835291820191611ae6565b820191906000526020600020905b815481529060010190602001808311611ad2575b505091505060006040518083038185875af1925050503d8060008114611b28576040519150601f19603f3d011682016040523d82523d6000602084013e611b2d565b606091505b505090508015611b675760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611502565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a250600301805460ff191690555b505050565b60008181526001602081815260408084206002908101805483519581161561010002600019011691909104601f810184900484028501840190925281845260609392909190830182828015611c3a5780601f10611c0f57610100808354040283529160200191611c3a565b820191906000526020600020905b815481529060010190602001808311611c1d57829003601f168201915b50939450600093505050505b600854811015610e1d57611c58611e91565b60088281548110611c6557fe5b906000526020600020906002020160405180604001604052908160008201548152602001600182015481525050905080602001516004018351148015611cad57506004835110155b8015611cf7575082600081518110611cc157fe5b602001015160f81c60f81b6001600160f81b0319168160000151600060208110611ce757fe5b1a60f81b6001600160f81b031916145b8015611d41575082600181518110611d0b57fe5b602001015160f81c60f81b6001600160f81b0319168160000151600160208110611d3157fe5b1a60f81b6001600160f81b031916145b8015611d8b575082600281518110611d5557fe5b602001015160f81c60f81b6001600160f81b0319168160000151600260208110611d7b57fe5b1a60f81b6001600160f81b031916145b8015611dd5575082600381518110611d9f57fe5b602001015160f81c60f81b6001600160f81b0319168160000151600360208110611dc557fe5b1a60f81b6001600160f81b031916145b15611de65760019350505050610e24565b50600101611c46565b815481835581811115611b9f57600083815260209020611b9f918101908301611ea8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e5457805160ff1916838001178555611e81565b82800160010185558215611e81579182015b82811115611e81578251825591602001919060010190611e66565b50611e8d929150611ea8565b5090565b604080518082019091526000808252602082015290565b61106891905b80821115611e8d5760008155600101611eae56fe4f574e45525f4558495354535f4552524f520000000000000000000000000000a165627a7a72305820ca612dedca3c568f604ee16cff703385bb52215f9dd3b83ecfe5a989f7ca14a200297365744d61726b6574426f72726f7755736162696c6974792875696e7431362c626f6f6c290000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000002a3210a158a396b34a56ac941c4a3d1c24d3e5a70000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a200000000000000000000000003d2162bc484426182c74c8c8fbf0a5a899c7107

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

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000002a3210a158a396b34a56ac941c4a3d1c24d3e5a70000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a200000000000000000000000003d2162bc484426182c74c8c8fbf0a5a899c7107

-----Decoded View---------------
Arg [0] : _owners (address[]): 0x2a3210a158a396b34a56ac941c4a3d1c24d3e5a7,0x9c59990ec0177d87ed7d60a56f584e6b06c639a2,0x03d2162bc484426182c74c8c8fbf0a5a899c7107
Arg [1] : _required (uint256): 1

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [3] : 0000000000000000000000002a3210a158a396b34a56ac941c4a3d1c24d3e5a7
Arg [4] : 0000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2
Arg [5] : 00000000000000000000000003d2162bc484426182c74c8c8fbf0a5a899c7107


Deployed ByteCode Sourcemap

97:13340:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3188:9;:13;3184:81;;3223:30;;;3243:9;3223:30;;;;3231:10;;3223:30;;;;;;;;;;3184:81;97:13340;1133:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1133:23:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1133:23:0;;:::i;:::-;;;;-1:-1:-1;;;;;1133:23:0;;;;;;;;;;;;;;4917:521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4917:521:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4917:521:0;-1:-1:-1;;;;;4917:521:0;;:::i;9446:309::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9446:309:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9446:309:0;;:::i;1030:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1030:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1030:40:0;-1:-1:-1;;;;;1030:40:0;;:::i;:::-;;;;;;;;;;;;;;;;;;956:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;956:67:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;956:67:0;;;;;;-1:-1:-1;;;;;956:67:0;;:::i;12025:346::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12025:346:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12025:346:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4486:294;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4486:294:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4486:294:0;-1:-1:-1;;;;;4486:294:0;;:::i;1077:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1077:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1077:47:0;;:::i;10822:421::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10822:421:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10822:421:0;;:::i;1513:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1513:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1513:37:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11446:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11446:301:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11446:301:0;;:::i;6769:184::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6769:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6769:184:0;;:::i;897:52::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;897:52:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;897:52:0;;:::i;:::-;;;;;-1:-1:-1;;;;;897:52:0;-1:-1:-1;;;;;897:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;897:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12469:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12469:126:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12469:126:0;;;;;;;;;;;;;;;;;12789:645;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12789:645:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12789:645:0;;:::i;1193:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:31:0;;;:::i;6335:222::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6335:222:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6335:222:0;;:::i;193:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;193:30:0;;;:::i;7914:622::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7914:622:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7914:622:0;;:::i;4194:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4194:151:0;;;:::i;7229:565::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7229:565:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;7229:565:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7229:565:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7229:565:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;7229:565:0;;-1:-1:-1;7229:565:0;-1:-1:-1;7229:565:0;:::i;142:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;142:44:0;;;:::i;1163:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1163:23:0;;;:::i;5652:498::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5652:498:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5652:498:0;;;;;;;;;;:::i;9883:773::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9883:773:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9883:773:0;;:::i;1133:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1133:23:0;;-1:-1:-1;1133:23:0;:::o;4917:521::-;1596:10;1618:4;1596:27;1592:73;;1638:27;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;;;1592:73;-1:-1:-1;;;;;1895:14:0;;;;;;:7;:14;;;;;;5012:5;;1895:14;;1890:62;;1924:28;;;-1:-1:-1;;;;;1924:28:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1924:28:0;;;;;;;;;;;;;;1890:62;-1:-1:-1;;;;;5035:14:0;;5052:5;5035:14;;;:7;:14;;;;;:22;;-1:-1:-1;;5035:22:0;;;5068:194;5092:6;:13;-1:-1:-1;;5092:17:0;5088:21;;5068:194;;;5148:5;-1:-1:-1;;;;;5135:18:0;:6;5142:1;5135:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5135:9:0;:18;5131:120;;;5186:6;5193:13;;-1:-1:-1;;5193:17:0;;;5186:25;;;;;;;;;;;;;;;;5174:6;:9;;-1:-1:-1;;;;;5186:25:0;;;;5181:1;;5174:9;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;5174:37:0;;;;;-1:-1:-1;;;;;5174:37:0;;;;;;5230:5;;5131:120;5111:3;;5068:194;;;-1:-1:-1;5274:6:0;:18;;-1:-1:-1;;5274:18:0;;;;;;:::i;:::-;-1:-1:-1;5320:6:0;:13;5309:8;;:24;5305:89;;;5368:6;:13;5350:32;;:17;:32::i;:::-;5411:19;;-1:-1:-1;;;;;5411:19:0;;;;;;;;1676:1;4917:521;:::o;9446:309::-;9536:10;1895:14;;;;:7;:14;;;;;;;;1890:62;;1924:28;;;-1:-1:-1;;;;;1924:28:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1924:28:0;;;;;;;;;;;;;;1890:62;2248:28;;;;:13;:28;;;;;;;;9582:10;2248:35;;;;;;;;;9567:13;;9582:10;2248:35;;2243:80;;2298:25;;;-1:-1:-1;;;;;2298:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:80;2592:27;;;;:12;:27;;;;;:36;;;9615:13;;2592:36;;2588:83;;;2643:28;;;-1:-1:-1;;;;;2643:28:0;;;;;;;;;;;;-1:-1:-1;;;;;2643:28:0;;;;;;;;;;;;;;2588:83;9689:5;9646:28;;;:13;:28;;;;;;;;9675:10;9646:40;;;;;;;;:48;;-1:-1:-1;;9646:48:0;;;9710:37;9660:13;;9710:37;;;2334:1;1963;;9446:309;;:::o;1030:40::-;;;;;;;;;;;;;;;:::o;956:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12025:346::-;12133:13;;12164:200;12188:16;;12184:1;:20;12164:200;;;12230:7;:36;;;;-1:-1:-1;12242:15:0;;;;:12;:15;;;;;:24;;;;;12241:25;12230:36;:76;;;;12270:8;:36;;;;-1:-1:-1;12282:15:0;;;;:12;:15;;;;;:24;;;;;12270:36;12226:127;;;12336:1;12327:10;;;;12226:127;12206:3;;12164:200;;;;12025:346;;;;:::o;4486:294::-;1596:10;1618:4;1596:27;1592:73;;1638:27;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;;;1592:73;-1:-1:-1;;;;;1750:14:0;;;;;;:7;:14;;;;;;4584:5;;1750:14;;1746:69;;;1779:36;;;-1:-1:-1;;;;;1779:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1746:69;4608:5;-1:-1:-1;;;;;2749:22:0;;2745:65;;2786:24;;;-1:-1:-1;;;;;2786:24:0;;;;;;;;;;;;-1:-1:-1;;;;;2786:24:0;;;;;;;;;;;;;;2745:65;4641:6;:13;;;;4657:1;4641:17;4660:8;;184:2;2918:10;:28;:54;;;;2962:10;2950:9;:22;2918:54;:72;;;-1:-1:-1;2976:14:0;;2918:72;:91;;;-1:-1:-1;2994:15:0;;2918:91;2914:143;;;3024:33;;;-1:-1:-1;;;;;3024:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2914:143;-1:-1:-1;;;;;4686:14:0;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;4686:21:0;4703:4;4686:21;;;;;;4718:6;27:10:-1;;23:18;;;45:23;;4718:18:0;;;;;;-1:-1:-1;;;;;;4718:18:0;;;;;4752:20;;;4686:14;4752:20;2821:1;;1826;1676;4486:294;:::o;1077:47::-;;;;;;;;;;;;;:::o;10822:421::-;10914:4;;;10966:245;10990:6;:13;10986:17;;10966:245;;;11029:28;;;;:13;:28;;;;;11058:6;:9;;11029:28;;;11065:1;;11058:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11058:9:0;11029:39;;;;;;;;;;;;;;;11025:90;;;11098:1;11089:10;;;;11025:90;11144:8;;11135:5;:17;11131:69;;11180:4;11173:11;;;;;;11131:69;11005:3;;10966:245;;;;11230:5;11223:12;;;10822:421;;;;:::o;1513:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1513:37:0;:::o;11446:301::-;11549:13;;11580:160;11604:6;:13;11600:17;;11580:160;;;11643:28;;;;:13;:28;;;;;11672:6;:9;;11643:28;;;11679:1;;11672:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11672:9:0;11643:39;;;;;;;;;;;;;;;11639:90;;;11712:1;11703:10;;;;11639:90;11619:3;;11580:160;;;;11446:301;;;:::o;6769:184::-;1596:10;1618:4;1596:27;1592:73;;1638:27;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;;;1592:73;6872:11;:26;;;6914:31;;;;;;;;;;;;;;;;;6769:184;:::o;897:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;897:52:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;897:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;897:52:0;;;;;;;-1:-1:-1;;897:52:0;;;:::o;12469:126::-;12540:16;12581:6;12574:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12574:13:0;;;;;;;;;;;;;;;;;;;;;;;12469:126;;:::o;12789:645::-;12888:31;12937:34;12988:6;:13;;;;12974:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12974:28:0;-1:-1:-1;12937:65:0;-1:-1:-1;13013:13:0;;13063:207;13079:6;:13;13075:17;;13063:207;;;13118:28;;;;:13;:28;;;;;13147:6;:9;;13118:28;;;13154:1;;13147:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13147:9:0;13118:39;;;;;;;;;;;;;;;13114:145;;;13205:6;13212:1;13205:9;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13205:9:0;13178:17;13196:5;13178:24;;;;;;;;;;;;;:36;-1:-1:-1;;;;;13178:36:0;;;-1:-1:-1;;;;;13178:36:0;;;;;13242:1;13233:10;;;;13114:145;13094:3;;13063:207;;;13313:5;13299:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13299:20:0;;13282:37;;13341:1;13337:5;;13332:95;13348:5;13344:1;:9;13332:95;;;13395:17;13413:1;13395:20;;;;;;;;;;;;;;13375:14;13390:1;13375:17;;;;;;;;-1:-1:-1;;;;;13375:40:0;;;:17;;;;;;;;;;;:40;13355:3;;13332:95;;;12789:645;;;;;;:::o;1193:31::-;;;;:::o;6335:222::-;1596:10;1618:4;1596:27;1592:73;;1638:27;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;;;1592:73;6443:6;:13;6458:9;184:2;2918:28;;;:54;;;2962:10;2950:9;:22;2918:54;:72;;;-1:-1:-1;2976:14:0;;2918:72;:91;;;-1:-1:-1;2994:15:0;;2918:91;2914:143;;;3024:33;;;-1:-1:-1;;;;;3024:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2914:143;6485:8;:20;;;6521:28;;;;;;;;;;;;;;;;;1676:1;;6335:222;:::o;193:30::-;;;;:::o;7914:622::-;8002:10;1895:14;;;;:7;:14;;;;;;;;1890:62;;1924:28;;;-1:-1:-1;;;;;1924:28:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1924:28:0;;;;;;;;;;;;;;1890:62;2096:1;2045:27;;;:12;:27;;;;;:39;8041:13;;-1:-1:-1;;;;;2045:39:0;2041:106;;2113:34;;;-1:-1:-1;;;;;2113:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2041:106;2426:28;;;;:13;:28;;;;;;;;8093:10;2426:35;;;;;;;;;8078:13;;8093:10;2426:35;;2422:83;;;2476:29;;;-1:-1:-1;;;;;2476:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2422:83;8121:28;;;;:13;:28;;;;;;;;8150:10;8121:40;;;;;;;;:47;;-1:-1:-1;;8121:47:0;8164:4;8121:47;;;8184:39;8135:13;;8184:39;;;8240:26;8252:13;8240:11;:26::i;:::-;:61;;;;-1:-1:-1;8270:26:0;;;;:11;:26;;;;;;:31;8240:61;:96;;;;;8306:30;8322:13;8306:15;:30::i;:::-;8305:31;8240:96;8236:293;;;8353:18;8392:11;;8418:26;;;:11;:26;;;;;;;;;8374:15;:29;;;8418:39;;;;8477:40;;;;;;;8374:29;;8430:13;;8477:40;;;;;;;;;;;8236:293;;2158:1;;1963;7914:622;;:::o;4194:151::-;4316:14;:21;4194:151;:::o;7229:565::-;7352:10;7412:21;1895:14;;;:7;:14;;;;;;7412:21;;7352:10;1895:14;;1890:62;;1924:28;;;-1:-1:-1;;;;;1924:28:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1924:28:0;;;;;;;;;;;;;;1890:62;7381:11;-1:-1:-1;;;;;2749:22:0;;2745:65;;2786:24;;;-1:-1:-1;;;;;2786:24:0;;;;;;;;;;;;-1:-1:-1;;;;;2786:24:0;;;;;;;;;;;;;;2745:65;7467:16;;7451:32;;7524:145;;;;;;;;7564:11;-1:-1:-1;;;;;7524:145:0;;;;;7597:5;7524:145;;;;7623:4;;7524:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;7524:145:0;;;-1:-1:-1;;;7524:145:0;;;;;;;7494:27;;;7524:145;7494:27;;;;;;;;:175;;;;-1:-1:-1;;;;;;7494:175:0;-1:-1:-1;;;;;7494:175:0;;;;;;;;;;;;;;;;;;;;;;;:27;;:175;;;;;;;;;;;:::i;:::-;-1:-1:-1;7494:175:0;;;;;;;;;;;;-1:-1:-1;;7494:175:0;;;;;;;;;;7680:16;:21;;-1:-1:-1;7680:21:0;;;7717:25;;7728:13;;7717:25;;-1:-1:-1;;7717:25:0;7753:33;7772:13;7753:18;:33::i;:::-;1963:1;7229:565;;;;;;;:::o;142:44::-;184:2;142:44;:::o;1163:23::-;;;;:::o;5652:498::-;1596:10;1618:4;1596:27;1592:73;;1638:27;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;-1:-1:-1;;;;;1638:27:0;;;;;;;;;;;;;;1592:73;-1:-1:-1;;;;;1895:14:0;;;;;;:7;:14;;;;;;5766:5;;1895:14;;1890:62;;1924:28;;;-1:-1:-1;;;;;1924:28:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1924:28:0;;;;;;;;;;;;;;1890:62;-1:-1:-1;;;;;1750:14:0;;;;;;:7;:14;;;;;;5800:8;;1750:14;;1746:69;;;1779:36;;;-1:-1:-1;;;;;1779:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1746:69;5831:9;5826:173;5850:6;:13;5846:17;;5826:173;;;5902:5;-1:-1:-1;;;;;5889:18:0;:6;5896:1;5889:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5889:9:0;:18;5885:103;;;5940:8;5928:6;5935:1;5928:9;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1;;;;;5928:20:0;;;;;-1:-1:-1;;;;;5928:20:0;;;;;;5967:5;;5885:103;5865:3;;5826:173;;;-1:-1:-1;;;;;;6011:14:0;;;6028:5;6011:14;;;:7;:14;;;;;;:22;;-1:-1:-1;;6011:22:0;;;;;;6044:17;;;;;;;;:24;;;;;6011:22;6044:24;;;;6084:19;;6011:14;;6084:19;;;6119:23;;-1:-1:-1;;;;;6119:23:0;;;;;;;;1963:1;1676;5652:498;;:::o;9883:773::-;9973:10;1895:14;;;;:7;:14;;;;;;;;1890:62;;1924:28;;;-1:-1:-1;;;;;1924:28:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1924:28:0;;;;;;;;;;;;;;1890:62;2592:27;;;;:12;:27;;;;;:36;;;10006:13;;2592:36;;2588:83;;;2643:28;;;-1:-1:-1;;;;;2643:28:0;;;;;;;;;;;;-1:-1:-1;;;;;2643:28:0;;;;;;;;;;;;;;2588:83;10078:26;;;;:11;:26;;;;;;10059:15;:45;;10037:121;;;;;-1:-1:-1;;;;;10037:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10175:26;10187:13;10175:11;:26::i;:::-;10171:478;;;10218:31;10252:27;;;:12;:27;;;;;;;;10294:20;;;:27;;-1:-1:-1;;10294:27:0;;;;;10355:23;;10390:17;;;;10355:71;;10409:16;;;;10355:71;;10252:27;;10218:31;-1:-1:-1;;;;;10355:23:0;;;;10390:17;10409:16;;10355:71;;10409:16;;-1:-1:-1;;10355:71:0;;;;10294:27;10355:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10336:90:0;;;10445:7;10441:197;;;10476:24;;10486:13;;10476:24;;;;;10441:197;;;10544:31;;10561:13;;10544:31;;;;;-1:-1:-1;10594:20:0;;:28;;-1:-1:-1;;10594:28:0;;;10171:478;1963:1;9883:773;;:::o;8544:764::-;8642:4;8684:27;;;:12;:27;;;;;;;;:32;;;;8664:52;;;;;;;;;;-1:-1:-1;;8664:52:0;;;;;;;;;;;;;;;;;;;;;;;;:17;;:52;8684:32;;8664:52;;;8684:32;8664:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8664:52:0;;-1:-1:-1;8734:9:0;;-1:-1:-1;;;;8729:547:0;8753:14;:21;8749:25;;8729:547;;;8796:34;;:::i;:::-;8833:14;8848:1;8833:17;;;;;;;;;;;;;;;;;;8796:54;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:13;:30;;;8937:1;8904:34;8889:4;:11;:49;:86;;;;;8974:1;8959:4;:11;:16;;8889:86;:143;;;;;9025:4;9030:1;9025:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8996:36:0;;:13;:22;;;9019:1;8996:25;;;;;;;;;;-1:-1:-1;;;;;8996:36:0;;;8889:143;:200;;;;;9082:4;9087:1;9082:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9053:36:0;;:13;:22;;;9076:1;9053:25;;;;;;;;;;-1:-1:-1;;;;;9053:36:0;;;8889:200;:257;;;;;9139:4;9144:1;9139:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9110:36:0;;:13;:22;;;9133:1;9110:25;;;;;;;;;;-1:-1:-1;;;;;9110:36:0;;;8889:257;:314;;;;;9196:4;9201:1;9196:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:36:0;;:13;:22;;;9190:1;9167:25;;;;;;;;;;-1:-1:-1;;;;;9167:36:0;;;8889:314;8867:398;;;9245:4;9238:11;;;;;;;8867:398;-1:-1:-1;8776:3:0;;8729:547;;97:13340;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;97:13340:0;;;-1:-1:-1;97:13340:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;97:13340:0;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://ca612dedca3c568f604ee16cff703385bb52215f9dd3b83ecfe5a989f7ca14a2
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.