Contract 0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a814 3

Contract Overview

Balance:
0 MATIC
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0d17bd6e63c7fa3e2cbda53ccaa57155e03993829c2379aa7fcd1ae639d34516Pay Native275562722022-08-10 10:01:21109 days 4 hrs ago0x4a3755eb99ae8b22aafb8f16f0c51cf68eb60b85 IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.003139734435.2
0x669dc6c69cc0596a7f068d347ba8b021067145144572568cf3ff94c779737001Pay Native275310072022-08-08 15:21:21110 days 23 hrs ago0xb8349ebbd41278faf1620d213415cf2bad53066b IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.0045717106 63.4
0x09af460d14fc84cea3dd610510d700ec4185e75d24931c9ad84d6be2d692913ePay Native275309532022-08-08 15:12:21110 days 23 hrs ago0xb8349ebbd41278faf1620d213415cf2bad53066b IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.0037646198 42.2
0x9f42f1ef681cd6977bbae18871ed88a3d86a8a5ff89e253ce7a0bc29225df132Pay Native274969562022-08-06 10:34:35113 days 4 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.002696876637.4
0x30ec3a721f47e8db40fb886e63b957352a368cc4d79b68d4e9913ee082476828Pay Native274879962022-08-05 20:51:08113 days 18 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.004469370950.1
0x0b7c676cc561aea0803e9a5620e33e0f4678b958c9c7eee0d3c796b9df538facPay Native274847142022-08-05 15:28:47113 days 23 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.00454286763
0xb4947f3f4ed8f9c627d3008f9c65bbad3086b3e7320f3375034177606594500fPay Native274845042022-08-05 15:07:59113 days 23 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.003785722552.5
0xbe456376a766f586f5c866aef00992a0607e262d172dfd8edd01541add1bc58cPay Native274832812022-08-05 13:07:40114 days 1 hr ago0x3d495da0807558b2d09cdb6f7a55c35417819c11 IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.003479151 39
0x793b531782dff14274e94dcea6d439c5bc1a79b7764466faf48e01261d44405fDelete I Driss274827962022-08-05 12:21:36114 days 2 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.0011284550
0x7caee784d9959c4b5fe36d3a4b20aedae6a81d87cacd6e330c3bfdc578dc41cfPay Native274745662022-08-04 19:23:33114 days 19 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.002509393234.8
0x3f0d19012eec0a31830e9e5c579991ac1e7a91c59391cbea908b7123fd927fcdPay Native274741352022-08-04 18:38:16114 days 20 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.002567080435.6
0x0db2c2d732dd5b25e64503a9312c3e1b025d1554b101d00436b8876e1de6fd84Pay Native274717712022-08-04 14:27:39115 days 24 mins ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.003180006944.1
0xd1c70a3e9e995af9dfad3c73407c6d8e22a69e69c3bef9d9168f442ff0539046Pay Native274714332022-08-04 13:51:44115 days 1 hr ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.006253550970.1
0x4f840851b059dbf6be178732a0af127d0ec2342394507ca6e1ace8d314467694Pay Native274713872022-08-04 13:47:53115 days 1 hr ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.0041904563151.1
0x51d4d0e3c0c710d1617799d1873d63909a0a7df7c9d2f889628ea427be45a7ccPay Native274713092022-08-04 13:37:12115 days 1 hr ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.001214705443.8
0x2c6127800be2968b25f50740275ebbf475ed3ca5bf7bd2e63d3c56fccb24df9cPay Native274712592022-08-04 13:31:51115 days 1 hr ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.001195292343.1
0x32934674b4078d8e7da09a7b8926690d49f4e44077dc427cbe935064c07fe774Pay Native274699852022-08-04 11:18:41115 days 3 hrs ago0xfde56bd0cec42821eea1b944f7e6836bf04adfcf IN  0x2eccb53ca2d4ef91a79213fddf3f8c2332c2a8140 MATIC0.004246348447.6
0xe2254003ba10d2a0cbe8d49a509ae65a0432c7ed2a24e36b60c16a62d028bd2e0x60806040273714572022-07-28 12:54:06122 days 1 hr ago0x43e60554cd689edf5487e7ef9487ed796cf4879e IN  Create: payments0 MATIC0.00582688252 2.500000009
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
payments

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-08-04
*/

/**
 *Submitted for verification at polygonscan.com on 2022-06-06
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.1; 
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract payments {

    using SafeMath for uint256;
    mapping(string => uint256) percent;
    mapping(address => bool) private admins;
    address public contractOwner = msg.sender; 
    mapping(bytes32 => address) public receipts;
    mapping(bytes32 => uint256) public amounts;
    mapping(address => uint256) public balanceOf; 
    mapping(string => address) public delegate;
    mapping(string => bytes32) public IDrissHashes;

    constructor() {
        delegate["IDriss"] = contractOwner;
        percent["IDriss"] = 100;
    }

    event PaymentDone(address indexed payer, uint256 amount, bytes32 paymentId_hash, string indexed IDrissHash, uint256 date);
    event AdminAdded(address indexed admin);
    event AdminDeleted(address indexed admin);
    event DelegateAdded(string delegateHandle, address indexed delegateAddress);
    event DelegateDeleted(string delegateHandle, address indexed delegateAddress);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function addAdmin(address adminAddress) external {
        require(msg.sender == contractOwner, "Only contractOwner can add admins.");
        admins[adminAddress] = true;
        emit AdminAdded(adminAddress);
    }

    function deleteAdmin(address adminAddress) external {
        require(msg.sender == contractOwner, "Only contractOwner can delete admins.");
        admins[adminAddress] = false;
        emit AdminDeleted(adminAddress);
    }

    function addDelegateException(address delegateAddress, string memory delegateHandle, uint256 percentage) external {
        require(msg.sender == contractOwner, "Only contractOwner can add special delegate partner.");
        require(delegate[delegateHandle] == address(0), "Delegate handle exists.");
        require(delegateAddress != address(0), "Ownable: delegateAddress is the zero address.");
        delegate[delegateHandle] = delegateAddress;
        percent[delegateHandle] = percentage;
        emit DelegateAdded(delegateHandle, delegateAddress);
    }

    // Anyone can create a delegate link for anyone
    function addDelegate(address delegateAddress, string memory delegateHandle) external {
        require(delegate[delegateHandle] == address(0), "Delegate handle exists.");
        require(delegateAddress != address(0), "Ownable: delegateAddress is the zero address.");
        delegate[delegateHandle] = delegateAddress;
        percent[delegateHandle] = 20;
        emit DelegateAdded(delegateHandle, delegateAddress);
    }

    // Delete the delegation link if needed.
    function deleteDelegate(string memory delegateHandle) external {
        require(msg.sender == delegate[delegateHandle], "Only delegate can delete delegation link.");
        address deletedDelegate = delegate[delegateHandle];
        delete delegate[delegateHandle];
        delete percent[delegateHandle];
        emit DelegateDeleted(delegateHandle, deletedDelegate);
    }

    // Payment function distributing the payment into two balances.
    function payNative(bytes32 paymentId_hash, string memory IDrissHash, string memory delegateHandle) external payable {
        require(receipts[paymentId_hash] == address(0), "Already paid this receipt.");
        receipts[paymentId_hash] = msg.sender;
        amounts[paymentId_hash] = msg.value;
        IDrissHashes[IDrissHash] = paymentId_hash;
        if (delegate[delegateHandle] != address(0)) {
            balanceOf[contractOwner] += msg.value.sub((msg.value.mul(percent[delegateHandle])).div(100));
            balanceOf[delegate[delegateHandle]] += (msg.value.mul(percent[delegateHandle])).div(100);
        } else {
            balanceOf[contractOwner] += msg.value;
        }
        emit PaymentDone(receipts[paymentId_hash], amounts[paymentId_hash], paymentId_hash, IDrissHash, block.timestamp);
    }

    // Anyone can withraw funds to any participating delegate
    function withdraw(uint256 amount, string memory delegateHandle) external returns (bytes memory) {
        require(amount <= balanceOf[delegate[delegateHandle]]);
        balanceOf[delegate[delegateHandle]] -= amount;
        (bool sent, bytes memory data) = delegate[delegateHandle].call{value: amount, gas: 40000}("");
        require(sent, "Failed to  withdraw");
        return data;
    }

    // commit payment hash creation
    function hashReceipt(string memory receiptId, address paymAddr) public pure returns (bytes32) {
        require(paymAddr != address(0), "Payment address cannot be null address.");
        return keccak256(abi.encode(receiptId, paymAddr));
    }

    // reveal payment hash
    function verifyReceipt(string memory receiptId, address paymAddr) public view returns (bool) {
        require(paymAddr != address(0), "Payment address cannot be null address.");
        require(receipts[hashReceipt(receiptId, paymAddr)] == paymAddr);
        return true;
    }

    // Transfer contract ownership
    function transferContractOwnership(address newOwner) public payable {
        require(msg.sender == contractOwner, "Only contractOwner can change ownership of contract.");
        require(newOwner != address(0), "Ownable: new contractOwner is the zero address.");
        _transferOwnership(newOwner);
    }

    // Helper function
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = contractOwner;
        // transfer balance of old owner to new owner
        uint256 ownerAmount = balanceOf[oldOwner];
        // delete balance of old owner
        balanceOf[oldOwner] = 0;
        contractOwner = newOwner;
        // set new owner
        delegate["IDriss"] = newOwner;
        // set balance of new owner
        balanceOf[newOwner] = ownerAmount;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"AdminDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"delegateHandle","type":"string"},{"indexed":true,"internalType":"address","name":"delegateAddress","type":"address"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"delegateHandle","type":"string"},{"indexed":true,"internalType":"address","name":"delegateAddress","type":"address"}],"name":"DelegateDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"paymentId_hash","type":"bytes32"},{"indexed":true,"internalType":"string","name":"IDrissHash","type":"string"},{"indexed":false,"internalType":"uint256","name":"date","type":"uint256"}],"name":"PaymentDone","type":"event"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"IDrissHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegateAddress","type":"address"},{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"addDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegateAddress","type":"address"},{"internalType":"string","name":"delegateHandle","type":"string"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"addDelegateException","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"amounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"delegate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"deleteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"deleteDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"receiptId","type":"string"},{"internalType":"address","name":"paymAddr","type":"address"}],"name":"hashReceipt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"paymentId_hash","type":"bytes32"},{"internalType":"string","name":"IDrissHash","type":"string"},{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"payNative","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"receipts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferContractOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"receiptId","type":"string"},{"internalType":"address","name":"paymAddr","type":"address"}],"name":"verifyReceipt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"withdraw","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"}]

608060405233600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005257600080fd5b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006604051620000869062000123565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646000604051620000e49062000123565b9081526020016040518091039020819055506200016e565b60006200010b6006836200013a565b9150620001188262000145565b600682019050919050565b60006200013082620000fc565b9150819050919050565b600081905092915050565b7f4944726973730000000000000000000000000000000000000000000000000000600082015250565b61280f806200017e6000396000f3fe6080604052600436106100f35760003560e01c8063923c85d51161008a578063ca7b620511610059578063ca7b620514610342578063ce606ee01461036b578063dc048cf214610396578063ef6cf04d146103d3576100f3565b8063923c85d5146102835780639ddb511a146102ac578063a843c51f146102e9578063c8662d9514610305576100f3565b806356dcb58d116100c657806356dcb58d146101b7578063658b626e146101e0578063704802751461021d57806370a0823114610246576100f3565b8063064cdcdc146100f85780630960d7791461013557806327e1f7df14610151578063464e49271461017a575b600080fd5b34801561010457600080fd5b5061011f600480360381019061011a9190611b12565b610410565b60405161012c9190611f18565b60405180910390f35b61014f600480360381019061014a9190611a93565b61043e565b005b34801561015d57600080fd5b5061017860048036038101906101739190611986565b6108b4565b005b34801561018657600080fd5b506101a1600480360381019061019c9190611b53565b6109e2565b6040516101ae9190611f18565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906119af565b610a84565b005b3480156101ec57600080fd5b5061020760048036038101906102029190611b53565b610c74565b6040516102149190611efd565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190611986565b610d63565b005b34801561025257600080fd5b5061026d60048036038101906102689190611986565b610e90565b60405161027a9190612107565b60405180910390f35b34801561028f57600080fd5b506102aa60048036038101906102a59190611b12565b610ea8565b005b3480156102b857600080fd5b506102d360048036038101906102ce9190611b12565b61104c565b6040516102e09190611ee2565b60405180910390f35b61030360048036038101906102fe9190611986565b611095565b005b34801561031157600080fd5b5061032c60048036038101906103279190611a6a565b6111a1565b6040516103399190612107565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190611a03565b6111b9565b005b34801561037757600080fd5b50610380611439565b60405161038d9190611ee2565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190611ba7565b61145f565b6040516103ca9190611f33565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190611a6a565b61167b565b6040516104079190611ee2565b60405180910390f35b6007818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600073ffffffffffffffffffffffffffffffffffffffff166003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d790611fa7565b60405180910390fd5b336003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460046000858152602001908152602001600020819055508260078360405161055b9190611ea1565b908152602001604051809103902081905550600073ffffffffffffffffffffffffffffffffffffffff166006826040516105959190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107885761063561062660646106186000856040516105fa9190611ea1565b908152602001604051809103902054346116ae90919063ffffffff16565b6116c490919063ffffffff16565b346116da90919063ffffffff16565b60056000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106a591906121fd565b925050819055506106f060646106e26000846040516106c49190611ea1565b908152602001604051809103902054346116ae90919063ffffffff16565b6116c490919063ffffffff16565b600560006006846040516107049190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461077c91906121fd565b92505081905550610801565b3460056000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107f991906121fd565b925050819055505b8160405161080f9190611ea1565b60405180910390206003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2686fa1c4fa7eb7d1d1bf7209fb9691d4182302db1c43b4d15db644665421912600460008781526020019081526020016000205486426040516108a793929190612122565b60405180910390a3505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90611fe7565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f989ddfce057dad219e0ae16f691b121bb0e348f0d8ae0ad400b4d5ac8d616c8b60405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a906120e7565b60405180910390fd5b8282604051602001610a66929190611f77565b60405160208183030381529060405280519060200120905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600682604051610aac9190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2890611fc7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b98906120c7565b60405180910390fd5b81600682604051610bb29190611ea1565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600082604051610c109190611ea1565b9081526020016040518091039020819055508173ffffffffffffffffffffffffffffffffffffffff167f7725d75decde45f52c5f59ef6bcb3c1129181396cff579819d367a32256b6cf582604051610c689190611f55565b60405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906120e7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660036000610d0a86866109e2565b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5957600080fd5b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea906120a7565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b60056020528060005260406000206000915090505481565b600681604051610eb89190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612047565b60405180910390fd5b6000600682604051610f669190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600682604051610fa79190611ea1565b908152602001604051809103902060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600082604051610fe89190611ea1565b9081526020016040518091039020600090558073ffffffffffffffffffffffffffffffffffffffff167fe58813483134131f95838d689a35b4bb93e7ce7c108fa88f82aacb6440436469836040516110409190611f55565b60405180910390a25050565b6006818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612087565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90612007565b60405180910390fd5b61119e816116f0565b50565b60046020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090612067565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166006836040516112719190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90611fc7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d906120c7565b60405180910390fd5b826006836040516113779190611ea1565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000836040516113d49190611ea1565b9081526020016040518091039020819055508273ffffffffffffffffffffffffffffffffffffffff167f7725d75decde45f52c5f59ef6bcb3c1129181396cff579819d367a32256b6cf58360405161142c9190611f55565b60405180910390a2505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600560006006846040516114759190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311156114eb57600080fd5b82600560006006856040516115009190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461157891906122de565b925050819055506000806006846040516115929190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685619c40906040516115e890611ecd565b600060405180830381858888f193505050503d8060008114611626576040519150601f19603f3d011682016040523d82523d6000602084013e61162b565b606091505b509150915081611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612027565b60405180910390fd5b809250505092915050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081836116bc9190612284565b905092915050565b600081836116d29190612253565b905092915050565b600081836116e891906122de565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260066040516117f090611eb8565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60006118f26118ed8461217e565b612159565b90508281526020810184848401111561190a57600080fd5b611915848285612364565b509392505050565b60008135905061192c81612794565b92915050565b600081359050611941816127ab565b92915050565b600082601f83011261195857600080fd5b81356119688482602086016118df565b91505092915050565b600081359050611980816127c2565b92915050565b60006020828403121561199857600080fd5b60006119a68482850161191d565b91505092915050565b600080604083850312156119c257600080fd5b60006119d08582860161191d565b925050602083013567ffffffffffffffff8111156119ed57600080fd5b6119f985828601611947565b9150509250929050565b600080600060608486031215611a1857600080fd5b6000611a268682870161191d565b935050602084013567ffffffffffffffff811115611a4357600080fd5b611a4f86828701611947565b9250506040611a6086828701611971565b9150509250925092565b600060208284031215611a7c57600080fd5b6000611a8a84828501611932565b91505092915050565b600080600060608486031215611aa857600080fd5b6000611ab686828701611932565b935050602084013567ffffffffffffffff811115611ad357600080fd5b611adf86828701611947565b925050604084013567ffffffffffffffff811115611afc57600080fd5b611b0886828701611947565b9150509250925092565b600060208284031215611b2457600080fd5b600082013567ffffffffffffffff811115611b3e57600080fd5b611b4a84828501611947565b91505092915050565b60008060408385031215611b6657600080fd5b600083013567ffffffffffffffff811115611b8057600080fd5b611b8c85828601611947565b9250506020611b9d8582860161191d565b9150509250929050565b60008060408385031215611bba57600080fd5b6000611bc885828601611971565b925050602083013567ffffffffffffffff811115611be557600080fd5b611bf185828601611947565b9150509250929050565b611c0481612312565b82525050565b611c1381612324565b82525050565b611c2281612330565b82525050565b6000611c33826121af565b611c3d81856121c5565b9350611c4d818560208601612373565b611c5681612464565b840191505092915050565b6000611c6c826121ba565b611c7681856121e1565b9350611c86818560208601612373565b611c8f81612464565b840191505092915050565b6000611ca5826121ba565b611caf81856121f2565b9350611cbf818560208601612373565b80840191505092915050565b6000611cd8601a836121e1565b9150611ce382612475565b602082019050919050565b6000611cfb6017836121e1565b9150611d068261249e565b602082019050919050565b6000611d1e6025836121e1565b9150611d29826124c7565b604082019050919050565b6000611d416006836121f2565b9150611d4c82612516565b600682019050919050565b6000611d64602f836121e1565b9150611d6f8261253f565b604082019050919050565b6000611d876013836121e1565b9150611d928261258e565b602082019050919050565b6000611daa6029836121e1565b9150611db5826125b7565b604082019050919050565b6000611dcd6034836121e1565b9150611dd882612606565b604082019050919050565b6000611df06034836121e1565b9150611dfb82612655565b604082019050919050565b6000611e136022836121e1565b9150611e1e826126a4565b604082019050919050565b6000611e36602d836121e1565b9150611e41826126f3565b604082019050919050565b6000611e596000836121d6565b9150611e6482612742565b600082019050919050565b6000611e7c6027836121e1565b9150611e8782612745565b604082019050919050565b611e9b8161235a565b82525050565b6000611ead8284611c9a565b915081905092915050565b6000611ec382611d34565b9150819050919050565b6000611ed882611e4c565b9150819050919050565b6000602082019050611ef76000830184611bfb565b92915050565b6000602082019050611f126000830184611c0a565b92915050565b6000602082019050611f2d6000830184611c19565b92915050565b60006020820190508181036000830152611f4d8184611c28565b905092915050565b60006020820190508181036000830152611f6f8184611c61565b905092915050565b60006040820190508181036000830152611f918185611c61565b9050611fa06020830184611bfb565b9392505050565b60006020820190508181036000830152611fc081611ccb565b9050919050565b60006020820190508181036000830152611fe081611cee565b9050919050565b6000602082019050818103600083015261200081611d11565b9050919050565b6000602082019050818103600083015261202081611d57565b9050919050565b6000602082019050818103600083015261204081611d7a565b9050919050565b6000602082019050818103600083015261206081611d9d565b9050919050565b6000602082019050818103600083015261208081611dc0565b9050919050565b600060208201905081810360008301526120a081611de3565b9050919050565b600060208201905081810360008301526120c081611e06565b9050919050565b600060208201905081810360008301526120e081611e29565b9050919050565b6000602082019050818103600083015261210081611e6f565b9050919050565b600060208201905061211c6000830184611e92565b92915050565b60006060820190506121376000830186611e92565b6121446020830185611c19565b6121516040830184611e92565b949350505050565b6000612163612174565b905061216f82826123a6565b919050565b6000604051905090565b600067ffffffffffffffff82111561219957612198612435565b5b6121a282612464565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006122088261235a565b91506122138361235a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612248576122476123d7565b5b828201905092915050565b600061225e8261235a565b91506122698361235a565b92508261227957612278612406565b5b828204905092915050565b600061228f8261235a565b915061229a8361235a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122d3576122d26123d7565b5b828202905092915050565b60006122e98261235a565b91506122f48361235a565b925082821015612307576123066123d7565b5b828203905092915050565b600061231d8261233a565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612391578082015181840152602081019050612376565b838111156123a0576000848401525b50505050565b6123af82612464565b810181811067ffffffffffffffff821117156123ce576123cd612435565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f416c72656164792070616964207468697320726563656970742e000000000000600082015250565b7f44656c65676174652068616e646c65206578697374732e000000000000000000600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2064656c65746520616460008201527f6d696e732e000000000000000000000000000000000000000000000000000000602082015250565b7f4944726973730000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e657720636f6e74726163744f776e657220697320746860008201527f65207a65726f20616464726573732e0000000000000000000000000000000000602082015250565b7f4661696c656420746f2020776974686472617700000000000000000000000000600082015250565b7f4f6e6c792064656c65676174652063616e2064656c6574652064656c6567617460008201527f696f6e206c696e6b2e0000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2061646420737065636960008201527f616c2064656c656761746520706172746e65722e000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206368616e6765206f7760008201527f6e657273686970206f6620636f6e74726163742e000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206164642061646d696e60008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2064656c656761746541646472657373206973207468652060008201527f7a65726f20616464726573732e00000000000000000000000000000000000000602082015250565b50565b7f5061796d656e7420616464726573732063616e6e6f74206265206e756c6c206160008201527f6464726573732e00000000000000000000000000000000000000000000000000602082015250565b61279d81612312565b81146127a857600080fd5b50565b6127b481612330565b81146127bf57600080fd5b50565b6127cb8161235a565b81146127d657600080fd5b5056fea26469706673582212205a372bf14748525310b69d4d3fda3fb9f16733b263ac75315a3508d0328d60fc64736f6c63430008010033

Deployed ByteCode Sourcemap

6648:5908:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7044:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9727:827;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7916:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11068:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8784:430;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11351:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7688:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6943:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9268:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6995:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11677:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6894:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8153:570;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6795:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10625:398;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6844:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9727:827::-;9898:1;9862:38;;:8;:24;9871:14;9862:24;;;;;;;;;;;;;;;;;;;;;:38;;;9854:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9969:10;9942:8;:24;9951:14;9942:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;10016:9;9990:7;:23;9998:14;9990:23;;;;;;;;;;;:35;;;;10063:14;10036:12;10049:10;10036:24;;;;;;:::i;:::-;;;;;;;;;;;;;:41;;;;10128:1;10092:38;;:8;10101:14;10092:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:38;;;10088:336;;10175:64;10189:49;10234:3;10190:38;10204:7;10212:14;10204:23;;;;;;:::i;:::-;;;;;;;;;;;;;;10190:9;:13;;:38;;;;:::i;:::-;10189:44;;:49;;;;:::i;:::-;10175:9;:13;;:64;;;;:::i;:::-;10147:9;:24;10157:13;;;;;;;;;;;10147:24;;;;;;;;;;;;;;;;:92;;;;;;;:::i;:::-;;;;;;;;10293:49;10338:3;10294:38;10308:7;10316:14;10308:23;;;;;;:::i;:::-;;;;;;;;;;;;;;10294:9;:13;;:38;;;;:::i;:::-;10293:44;;:49;;;;:::i;:::-;10254:9;:35;10264:8;10273:14;10264:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10254:35;;;;;;;;;;;;;;;;:88;;;;;;;:::i;:::-;;;;;;;;10088:336;;;10403:9;10375;:24;10385:13;;;;;;;;;;;10375:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;10088:336;10518:10;10439:107;;;;;;:::i;:::-;;;;;;;;10451:8;:24;10460:14;10451:24;;;;;;;;;;;;;;;;;;;;;10439:107;;;10477:7;:23;10485:14;10477:23;;;;;;;;;;;;10502:14;10530:15;10439:107;;;;;;;;:::i;:::-;;;;;;;;9727:827;;;:::o;7916:229::-;8001:13;;;;;;;;;;;7987:27;;:10;:27;;;7979:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8090:5;8067:6;:20;8074:12;8067:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;8124:12;8111:26;;;;;;;;;;;;7916:229;:::o;11068:247::-;11153:7;11201:1;11181:22;;:8;:22;;;;11173:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11286:9;11297:8;11275:31;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11265:42;;;;;;11258:49;;11068:247;;;;:::o;8784:430::-;8924:1;8888:38;;:8;8897:14;8888:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:38;;;8880:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9000:1;8973:29;;:15;:29;;;;8965:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9090:15;9063:8;9072:14;9063:24;;;;;;:::i;:::-;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;9142:2;9116:7;9124:14;9116:23;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;;;9190:15;9160:46;;;9174:14;9160:46;;;;;;:::i;:::-;;;;;;;;8784:430;;:::o;11351:282::-;11438:4;11483:1;11463:22;;:8;:22;;;;11455:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11594:8;11548:54;;:8;:42;11557:32;11569:9;11580:8;11557:11;:32::i;:::-;11548:42;;;;;;;;;;;;;;;;;;;;;:54;;;11540:63;;;;;;11621:4;11614:11;;11351:282;;;;:::o;7688:220::-;7770:13;;;;;;;;;;;7756:27;;:10;:27;;;7748:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7856:4;7833:6;:20;7840:12;7833:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7887:12;7876:24;;;;;;;;;;;;7688:220;:::o;6943:44::-;;;;;;;;;;;;;;;;;:::o;9268:382::-;9364:8;9373:14;9364:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9350:38;;:10;:38;;;9342:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;9445:23;9471:8;9480:14;9471:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9445:50;;9513:8;9522:14;9513:24;;;;;;:::i;:::-;;;;;;;;;;;;;;9506:31;;;;;;;;;;;9555:7;9563:14;9555:23;;;;;;:::i;:::-;;;;;;;;;;;;;9548:30;;;9626:15;9594:48;;;9610:14;9594:48;;;;;;:::i;:::-;;;;;;;;9268:382;;:::o;6995:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11677:311::-;11778:13;;;;;;;;;;;11764:27;;:10;:27;;;11756:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;11887:1;11867:22;;:8;:22;;;;11859:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;11952:28;11971:8;11952:18;:28::i;:::-;11677:311;:::o;6894:42::-;;;;;;;;;;;;;;;;;:::o;8153:570::-;8300:13;;;;;;;;;;;8286:27;;:10;:27;;;8278:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;8425:1;8389:38;;:8;8398:14;8389:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:38;;;8381:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8501:1;8474:29;;:15;:29;;;;8466:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8591:15;8564:8;8573:14;8564:24;;;;;;:::i;:::-;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;8643:10;8617:7;8625:14;8617:23;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;;;8699:15;8669:46;;;8683:14;8669:46;;;;;;:::i;:::-;;;;;;;;8153:570;;;:::o;6795:41::-;;;;;;;;;;;;;:::o;10625:398::-;10707:12;10750:9;:35;10760:8;10769:14;10760:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10750:35;;;;;;;;;;;;;;;;10740:6;:45;;10732:54;;;;;;10836:6;10797:9;:35;10807:8;10816:14;10807:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10797:35;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;10854:9;10865:17;10886:8;10895:14;10886:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:29;;10923:6;10936:5;10886:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10853:93;;;;10965:4;10957:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;11011:4;11004:11;;;;10625:398;;;;:::o;6844:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3221:98::-;3279:7;3310:1;3306;:5;;;;:::i;:::-;3299:12;;3221:98;;;;:::o;3620:::-;3678:7;3709:1;3705;:5;;;;:::i;:::-;3698:12;;3620:98;;;;:::o;2864:::-;2922:7;2953:1;2949;:5;;;;:::i;:::-;2942:12;;2864:98;;;;:::o;12020:533::-;12094:16;12113:13;;;;;;;;;;;12094:32;;12192:19;12214:9;:19;12224:8;12214:19;;;;;;;;;;;;;;;;12192:41;;12306:1;12284:9;:19;12294:8;12284:19;;;;;;;;;;;;;;;:23;;;;12334:8;12318:13;;:24;;;;;;;;;;;;;;;;;;12400:8;12379;:18;;;;;:::i;:::-;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12478:11;12456:9;:19;12466:8;12456:19;;;;;;;;;;;;;;;:33;;;;12536:8;12505:40;;12526:8;12505:40;;;;;;;;;;;;12020:533;;;:::o;7:345:1:-;;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:2;;;292:1;289;282:12;251:2;305:41;339:6;334:3;329;305:41;:::i;:::-;91:261;;;;;;:::o;358:139::-;;442:6;429:20;420:29;;458:33;485:5;458:33;:::i;:::-;410:87;;;;:::o;503:139::-;;587:6;574:20;565:29;;603:33;630:5;603:33;:::i;:::-;555:87;;;;:::o;662:273::-;;767:3;760:4;752:6;748:17;744:27;734:2;;785:1;782;775:12;734:2;825:6;812:20;850:79;925:3;917:6;910:4;902:6;898:17;850:79;:::i;:::-;841:88;;724:211;;;;;:::o;941:139::-;;1025:6;1012:20;1003:29;;1041:33;1068:5;1041:33;:::i;:::-;993:87;;;;:::o;1086:262::-;;1194:2;1182:9;1173:7;1169:23;1165:32;1162:2;;;1210:1;1207;1200:12;1162:2;1253:1;1278:53;1323:7;1314:6;1303:9;1299:22;1278:53;:::i;:::-;1268:63;;1224:117;1152:196;;;;:::o;1354:520::-;;;1489:2;1477:9;1468:7;1464:23;1460:32;1457:2;;;1505:1;1502;1495:12;1457:2;1548:1;1573:53;1618:7;1609:6;1598:9;1594:22;1573:53;:::i;:::-;1563:63;;1519:117;1703:2;1692:9;1688:18;1675:32;1734:18;1726:6;1723:30;1720:2;;;1766:1;1763;1756:12;1720:2;1794:63;1849:7;1840:6;1829:9;1825:22;1794:63;:::i;:::-;1784:73;;1646:221;1447:427;;;;;:::o;1880:665::-;;;;2032:2;2020:9;2011:7;2007:23;2003:32;2000:2;;;2048:1;2045;2038:12;2000:2;2091:1;2116:53;2161:7;2152:6;2141:9;2137:22;2116:53;:::i;:::-;2106:63;;2062:117;2246:2;2235:9;2231:18;2218:32;2277:18;2269:6;2266:30;2263:2;;;2309:1;2306;2299:12;2263:2;2337:63;2392:7;2383:6;2372:9;2368:22;2337:63;:::i;:::-;2327:73;;2189:221;2449:2;2475:53;2520:7;2511:6;2500:9;2496:22;2475:53;:::i;:::-;2465:63;;2420:118;1990:555;;;;;:::o;2551:262::-;;2659:2;2647:9;2638:7;2634:23;2630:32;2627:2;;;2675:1;2672;2665:12;2627:2;2718:1;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2689:117;2617:196;;;;:::o;2819:778::-;;;;2981:2;2969:9;2960:7;2956:23;2952:32;2949:2;;;2997:1;2994;2987:12;2949:2;3040:1;3065:53;3110:7;3101:6;3090:9;3086:22;3065:53;:::i;:::-;3055:63;;3011:117;3195:2;3184:9;3180:18;3167:32;3226:18;3218:6;3215:30;3212:2;;;3258:1;3255;3248:12;3212:2;3286:63;3341:7;3332:6;3321:9;3317:22;3286:63;:::i;:::-;3276:73;;3138:221;3426:2;3415:9;3411:18;3398:32;3457:18;3449:6;3446:30;3443:2;;;3489:1;3486;3479:12;3443:2;3517:63;3572:7;3563:6;3552:9;3548:22;3517:63;:::i;:::-;3507:73;;3369:221;2939:658;;;;;:::o;3603:375::-;;3721:2;3709:9;3700:7;3696:23;3692:32;3689:2;;;3737:1;3734;3727:12;3689:2;3808:1;3797:9;3793:17;3780:31;3838:18;3830:6;3827:30;3824:2;;;3870:1;3867;3860:12;3824:2;3898:63;3953:7;3944:6;3933:9;3929:22;3898:63;:::i;:::-;3888:73;;3751:220;3679:299;;;;:::o;3984:520::-;;;4119:2;4107:9;4098:7;4094:23;4090:32;4087:2;;;4135:1;4132;4125:12;4087:2;4206:1;4195:9;4191:17;4178:31;4236:18;4228:6;4225:30;4222:2;;;4268:1;4265;4258:12;4222:2;4296:63;4351:7;4342:6;4331:9;4327:22;4296:63;:::i;:::-;4286:73;;4149:220;4408:2;4434:53;4479:7;4470:6;4459:9;4455:22;4434:53;:::i;:::-;4424:63;;4379:118;4077:427;;;;;:::o;4510:520::-;;;4645:2;4633:9;4624:7;4620:23;4616:32;4613:2;;;4661:1;4658;4651:12;4613:2;4704:1;4729:53;4774:7;4765:6;4754:9;4750:22;4729:53;:::i;:::-;4719:63;;4675:117;4859:2;4848:9;4844:18;4831:32;4890:18;4882:6;4879:30;4876:2;;;4922:1;4919;4912:12;4876:2;4950:63;5005:7;4996:6;4985:9;4981:22;4950:63;:::i;:::-;4940:73;;4802:221;4603:427;;;;;:::o;5036:118::-;5123:24;5141:5;5123:24;:::i;:::-;5118:3;5111:37;5101:53;;:::o;5160:109::-;5241:21;5256:5;5241:21;:::i;:::-;5236:3;5229:34;5219:50;;:::o;5275:118::-;5362:24;5380:5;5362:24;:::i;:::-;5357:3;5350:37;5340:53;;:::o;5399:360::-;;5513:38;5545:5;5513:38;:::i;:::-;5567:70;5630:6;5625:3;5567:70;:::i;:::-;5560:77;;5646:52;5691:6;5686:3;5679:4;5672:5;5668:16;5646:52;:::i;:::-;5723:29;5745:6;5723:29;:::i;:::-;5718:3;5714:39;5707:46;;5489:270;;;;;:::o;5765:364::-;;5881:39;5914:5;5881:39;:::i;:::-;5936:71;6000:6;5995:3;5936:71;:::i;:::-;5929:78;;6016:52;6061:6;6056:3;6049:4;6042:5;6038:16;6016:52;:::i;:::-;6093:29;6115:6;6093:29;:::i;:::-;6088:3;6084:39;6077:46;;5857:272;;;;;:::o;6135:377::-;;6269:39;6302:5;6269:39;:::i;:::-;6324:89;6406:6;6401:3;6324:89;:::i;:::-;6317:96;;6422:52;6467:6;6462:3;6455:4;6448:5;6444:16;6422:52;:::i;:::-;6499:6;6494:3;6490:16;6483:23;;6245:267;;;;;:::o;6518:366::-;;6681:67;6745:2;6740:3;6681:67;:::i;:::-;6674:74;;6757:93;6846:3;6757:93;:::i;:::-;6875:2;6870:3;6866:12;6859:19;;6664:220;;;:::o;6890:366::-;;7053:67;7117:2;7112:3;7053:67;:::i;:::-;7046:74;;7129:93;7218:3;7129:93;:::i;:::-;7247:2;7242:3;7238:12;7231:19;;7036:220;;;:::o;7262:366::-;;7425:67;7489:2;7484:3;7425:67;:::i;:::-;7418:74;;7501:93;7590:3;7501:93;:::i;:::-;7619:2;7614:3;7610:12;7603:19;;7408:220;;;:::o;7634:400::-;;7815:84;7897:1;7892:3;7815:84;:::i;:::-;7808:91;;7908:93;7997:3;7908:93;:::i;:::-;8026:1;8021:3;8017:11;8010:18;;7798:236;;;:::o;8040:366::-;;8203:67;8267:2;8262:3;8203:67;:::i;:::-;8196:74;;8279:93;8368:3;8279:93;:::i;:::-;8397:2;8392:3;8388:12;8381:19;;8186:220;;;:::o;8412:366::-;;8575:67;8639:2;8634:3;8575:67;:::i;:::-;8568:74;;8651:93;8740:3;8651:93;:::i;:::-;8769:2;8764:3;8760:12;8753:19;;8558:220;;;:::o;8784:366::-;;8947:67;9011:2;9006:3;8947:67;:::i;:::-;8940:74;;9023:93;9112:3;9023:93;:::i;:::-;9141:2;9136:3;9132:12;9125:19;;8930:220;;;:::o;9156:366::-;;9319:67;9383:2;9378:3;9319:67;:::i;:::-;9312:74;;9395:93;9484:3;9395:93;:::i;:::-;9513:2;9508:3;9504:12;9497:19;;9302:220;;;:::o;9528:366::-;;9691:67;9755:2;9750:3;9691:67;:::i;:::-;9684:74;;9767:93;9856:3;9767:93;:::i;:::-;9885:2;9880:3;9876:12;9869:19;;9674:220;;;:::o;9900:366::-;;10063:67;10127:2;10122:3;10063:67;:::i;:::-;10056:74;;10139:93;10228:3;10139:93;:::i;:::-;10257:2;10252:3;10248:12;10241:19;;10046:220;;;:::o;10272:366::-;;10435:67;10499:2;10494:3;10435:67;:::i;:::-;10428:74;;10511:93;10600:3;10511:93;:::i;:::-;10629:2;10624:3;10620:12;10613:19;;10418:220;;;:::o;10644:398::-;;10824:83;10905:1;10900:3;10824:83;:::i;:::-;10817:90;;10916:93;11005:3;10916:93;:::i;:::-;11034:1;11029:3;11025:11;11018:18;;10807:235;;;:::o;11048:366::-;;11211:67;11275:2;11270:3;11211:67;:::i;:::-;11204:74;;11287:93;11376:3;11287:93;:::i;:::-;11405:2;11400:3;11396:12;11389:19;;11194:220;;;:::o;11420:118::-;11507:24;11525:5;11507:24;:::i;:::-;11502:3;11495:37;11485:53;;:::o;11544:275::-;;11698:95;11789:3;11780:6;11698:95;:::i;:::-;11691:102;;11810:3;11803:10;;11680:139;;;;:::o;11825:381::-;;12032:148;12176:3;12032:148;:::i;:::-;12025:155;;12197:3;12190:10;;12014:192;;;:::o;12212:379::-;;12418:147;12561:3;12418:147;:::i;:::-;12411:154;;12582:3;12575:10;;12400:191;;;:::o;12597:222::-;;12728:2;12717:9;12713:18;12705:26;;12741:71;12809:1;12798:9;12794:17;12785:6;12741:71;:::i;:::-;12695:124;;;;:::o;12825:210::-;;12950:2;12939:9;12935:18;12927:26;;12963:65;13025:1;13014:9;13010:17;13001:6;12963:65;:::i;:::-;12917:118;;;;:::o;13041:222::-;;13172:2;13161:9;13157:18;13149:26;;13185:71;13253:1;13242:9;13238:17;13229:6;13185:71;:::i;:::-;13139:124;;;;:::o;13269:309::-;;13418:2;13407:9;13403:18;13395:26;;13467:9;13461:4;13457:20;13453:1;13442:9;13438:17;13431:47;13495:76;13566:4;13557:6;13495:76;:::i;:::-;13487:84;;13385:193;;;;:::o;13584:313::-;;13735:2;13724:9;13720:18;13712:26;;13784:9;13778:4;13774:20;13770:1;13759:9;13755:17;13748:47;13812:78;13885:4;13876:6;13812:78;:::i;:::-;13804:86;;13702:195;;;;:::o;13903:423::-;;14082:2;14071:9;14067:18;14059:26;;14131:9;14125:4;14121:20;14117:1;14106:9;14102:17;14095:47;14159:78;14232:4;14223:6;14159:78;:::i;:::-;14151:86;;14247:72;14315:2;14304:9;14300:18;14291:6;14247:72;:::i;:::-;14049:277;;;;;:::o;14332:419::-;;14536:2;14525:9;14521:18;14513:26;;14585:9;14579:4;14575:20;14571:1;14560:9;14556:17;14549:47;14613:131;14739:4;14613:131;:::i;:::-;14605:139;;14503:248;;;:::o;14757:419::-;;14961:2;14950:9;14946:18;14938:26;;15010:9;15004:4;15000:20;14996:1;14985:9;14981:17;14974:47;15038:131;15164:4;15038:131;:::i;:::-;15030:139;;14928:248;;;:::o;15182:419::-;;15386:2;15375:9;15371:18;15363:26;;15435:9;15429:4;15425:20;15421:1;15410:9;15406:17;15399:47;15463:131;15589:4;15463:131;:::i;:::-;15455:139;;15353:248;;;:::o;15607:419::-;;15811:2;15800:9;15796:18;15788:26;;15860:9;15854:4;15850:20;15846:1;15835:9;15831:17;15824:47;15888:131;16014:4;15888:131;:::i;:::-;15880:139;;15778:248;;;:::o;16032:419::-;;16236:2;16225:9;16221:18;16213:26;;16285:9;16279:4;16275:20;16271:1;16260:9;16256:17;16249:47;16313:131;16439:4;16313:131;:::i;:::-;16305:139;;16203:248;;;:::o;16457:419::-;;16661:2;16650:9;16646:18;16638:26;;16710:9;16704:4;16700:20;16696:1;16685:9;16681:17;16674:47;16738:131;16864:4;16738:131;:::i;:::-;16730:139;;16628:248;;;:::o;16882:419::-;;17086:2;17075:9;17071:18;17063:26;;17135:9;17129:4;17125:20;17121:1;17110:9;17106:17;17099:47;17163:131;17289:4;17163:131;:::i;:::-;17155:139;;17053:248;;;:::o;17307:419::-;;17511:2;17500:9;17496:18;17488:26;;17560:9;17554:4;17550:20;17546:1;17535:9;17531:17;17524:47;17588:131;17714:4;17588:131;:::i;:::-;17580:139;;17478:248;;;:::o;17732:419::-;;17936:2;17925:9;17921:18;17913:26;;17985:9;17979:4;17975:20;17971:1;17960:9;17956:17;17949:47;18013:131;18139:4;18013:131;:::i;:::-;18005:139;;17903:248;;;:::o;18157:419::-;;18361:2;18350:9;18346:18;18338:26;;18410:9;18404:4;18400:20;18396:1;18385:9;18381:17;18374:47;18438:131;18564:4;18438:131;:::i;:::-;18430:139;;18328:248;;;:::o;18582:419::-;;18786:2;18775:9;18771:18;18763:26;;18835:9;18829:4;18825:20;18821:1;18810:9;18806:17;18799:47;18863:131;18989:4;18863:131;:::i;:::-;18855:139;;18753:248;;;:::o;19007:222::-;;19138:2;19127:9;19123:18;19115:26;;19151:71;19219:1;19208:9;19204:17;19195:6;19151:71;:::i;:::-;19105:124;;;;:::o;19235:442::-;;19422:2;19411:9;19407:18;19399:26;;19435:71;19503:1;19492:9;19488:17;19479:6;19435:71;:::i;:::-;19516:72;19584:2;19573:9;19569:18;19560:6;19516:72;:::i;:::-;19598;19666:2;19655:9;19651:18;19642:6;19598:72;:::i;:::-;19389:288;;;;;;:::o;19683:129::-;;19744:20;;:::i;:::-;19734:30;;19773:33;19801:4;19793:6;19773:33;:::i;:::-;19724:88;;;:::o;19818:75::-;;19884:2;19878:9;19868:19;;19858:35;:::o;19899:308::-;;20051:18;20043:6;20040:30;20037:2;;;20073:18;;:::i;:::-;20037:2;20111:29;20133:6;20111:29;:::i;:::-;20103:37;;20195:4;20189;20185:15;20177:23;;19966:241;;;:::o;20213:98::-;;20298:5;20292:12;20282:22;;20271:40;;;:::o;20317:99::-;;20403:5;20397:12;20387:22;;20376:40;;;:::o;20422:168::-;;20539:6;20534:3;20527:19;20579:4;20574:3;20570:14;20555:29;;20517:73;;;;:::o;20596:147::-;;20734:3;20719:18;;20709:34;;;;:::o;20749:169::-;;20867:6;20862:3;20855:19;20907:4;20902:3;20898:14;20883:29;;20845:73;;;;:::o;20924:148::-;;21063:3;21048:18;;21038:34;;;;:::o;21078:305::-;;21137:20;21155:1;21137:20;:::i;:::-;21132:25;;21171:20;21189:1;21171:20;:::i;:::-;21166:25;;21325:1;21257:66;21253:74;21250:1;21247:81;21244:2;;;21331:18;;:::i;:::-;21244:2;21375:1;21372;21368:9;21361:16;;21122:261;;;;:::o;21389:185::-;;21446:20;21464:1;21446:20;:::i;:::-;21441:25;;21480:20;21498:1;21480:20;:::i;:::-;21475:25;;21519:1;21509:2;;21524:18;;:::i;:::-;21509:2;21566:1;21563;21559:9;21554:14;;21431:143;;;;:::o;21580:348::-;;21643:20;21661:1;21643:20;:::i;:::-;21638:25;;21677:20;21695:1;21677:20;:::i;:::-;21672:25;;21865:1;21797:66;21793:74;21790:1;21787:81;21782:1;21775:9;21768:17;21764:105;21761:2;;;21872:18;;:::i;:::-;21761:2;21920:1;21917;21913:9;21902:20;;21628:300;;;;:::o;21934:191::-;;21994:20;22012:1;21994:20;:::i;:::-;21989:25;;22028:20;22046:1;22028:20;:::i;:::-;22023:25;;22067:1;22064;22061:8;22058:2;;;22072:18;;:::i;:::-;22058:2;22117:1;22114;22110:9;22102:17;;21979:146;;;;:::o;22131:96::-;;22197:24;22215:5;22197:24;:::i;:::-;22186:35;;22176:51;;;:::o;22233:90::-;;22310:5;22303:13;22296:21;22285:32;;22275:48;;;:::o;22329:77::-;;22395:5;22384:16;;22374:32;;;:::o;22412:126::-;;22489:42;22482:5;22478:54;22467:65;;22457:81;;;:::o;22544:77::-;;22610:5;22599:16;;22589:32;;;:::o;22627:154::-;22711:6;22706:3;22701;22688:30;22773:1;22764:6;22759:3;22755:16;22748:27;22678:103;;;:::o;22787:307::-;22855:1;22865:113;22879:6;22876:1;22873:13;22865:113;;;22964:1;22959:3;22955:11;22949:18;22945:1;22940:3;22936:11;22929:39;22901:2;22898:1;22894:10;22889:15;;22865:113;;;22996:6;22993:1;22990:13;22987:2;;;23076:1;23067:6;23062:3;23058:16;23051:27;22987:2;22836:258;;;;:::o;23100:281::-;23183:27;23205:4;23183:27;:::i;:::-;23175:6;23171:40;23313:6;23301:10;23298:22;23277:18;23265:10;23262:34;23259:62;23256:2;;;23324:18;;:::i;:::-;23256:2;23364:10;23360:2;23353:22;23143:238;;;:::o;23387:180::-;23435:77;23432:1;23425:88;23532:4;23529:1;23522:15;23556:4;23553:1;23546:15;23573:180;23621:77;23618:1;23611:88;23718:4;23715:1;23708:15;23742:4;23739:1;23732:15;23759:180;23807:77;23804:1;23797:88;23904:4;23901:1;23894:15;23928:4;23925:1;23918:15;23945:102;;24037:2;24033:7;24028:2;24021:5;24017:14;24013:28;24003:38;;23993:54;;;:::o;24053:176::-;24193:28;24189:1;24181:6;24177:14;24170:52;24159:70;:::o;24235:173::-;24375:25;24371:1;24363:6;24359:14;24352:49;24341:67;:::o;24414:224::-;24554:34;24550:1;24542:6;24538:14;24531:58;24623:7;24618:2;24610:6;24606:15;24599:32;24520:118;:::o;24644:156::-;24784:8;24780:1;24772:6;24768:14;24761:32;24750:50;:::o;24806:234::-;24946:34;24942:1;24934:6;24930:14;24923:58;25015:17;25010:2;25002:6;24998:15;24991:42;24912:128;:::o;25046:169::-;25186:21;25182:1;25174:6;25170:14;25163:45;25152:63;:::o;25221:228::-;25361:34;25357:1;25349:6;25345:14;25338:58;25430:11;25425:2;25417:6;25413:15;25406:36;25327:122;:::o;25455:239::-;25595:34;25591:1;25583:6;25579:14;25572:58;25664:22;25659:2;25651:6;25647:15;25640:47;25561:133;:::o;25700:239::-;25840:34;25836:1;25828:6;25824:14;25817:58;25909:22;25904:2;25896:6;25892:15;25885:47;25806:133;:::o;25945:221::-;26085:34;26081:1;26073:6;26069:14;26062:58;26154:4;26149:2;26141:6;26137:15;26130:29;26051:115;:::o;26172:232::-;26312:34;26308:1;26300:6;26296:14;26289:58;26381:15;26376:2;26368:6;26364:15;26357:40;26278:126;:::o;26410:114::-;26516:8;:::o;26530:226::-;26670:34;26666:1;26658:6;26654:14;26647:58;26739:9;26734:2;26726:6;26722:15;26715:34;26636:120;:::o;26762:122::-;26835:24;26853:5;26835:24;:::i;:::-;26828:5;26825:35;26815:2;;26874:1;26871;26864:12;26815:2;26805:79;:::o;26890:122::-;26963:24;26981:5;26963:24;:::i;:::-;26956:5;26953:35;26943:2;;27002:1;26999;26992:12;26943:2;26933:79;:::o;27018:122::-;27091:24;27109:5;27091:24;:::i;:::-;27084:5;27081:35;27071:2;;27130:1;27127;27120:12;27071:2;27061:79;:::o

Swarm Source

ipfs://5a372bf14748525310b69d4d3fda3fb9f16733b263ac75315a3508d0328d60fc
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading