Contract 0x831753DD7087CaC61aB5644b308642cc1c33Dc13 7

 
Token migration announcement. Quickswap token contract has migrated to a new address.

Contract Overview

QuickSwap: Old QUICK Token
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6729bec4860332b03c5480fb9b88003c519a4ad9e99ab97f81a824f67a0504a2Transfer316926252022-08-09 10:46:0711 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242568815360.14003456
0xbec7c55d20b3c15c4cd822a12ee86f863404ba4cbc0e38164ed4bce69a8cc00cTransfer316925992022-08-09 10:44:5512 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242568714660.140009584
0x478de06eab8a78cba3376954950a73963b4160358b11807bc48e39c08bd876a2Transfer316925942022-08-09 10:44:3512 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242568704960.140007184
0xd35ab93178b92a2816eb6b767a1983840e809ebbed87e8654ea943770b09d65dTransfer316925902022-08-09 10:44:1913 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00258137614764.000003652
0x261ed33a926be0615fd5288c8f99ef088721e54b69dd9f8afa6faf6d6ae9c45bTransfer316925892022-08-09 10:44:1513 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00258295100264.020002036
0x6085f5bed407ffe09566f63e9292366374cff8bd57e2d9308f2dc7197ddb47dfTransfer316925872022-08-09 10:44:0713 mins agoMEXC.com IN  QuickSwap: Old QUICK Token0 MATIC0.00199713805349.515001075
0x2dd778947637e231fde9070f7940dc43e7c57127261f13a036a280a2ef15fd22Transfer316925872022-08-09 10:44:0713 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00258295097764.020001434
0x9b7bdf7cb4ad504de24ca501b40ec3b8eddcc19f733b2375137fdc0e29aa0eb7Transfer316925862022-08-09 10:44:0313 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00258295096764.02000118
0x9069231bbfe8d23c4639f035b2c1d7199366b8371c79f38c6a6600fd58a801ecTransfer316925842022-08-09 10:43:5513 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00258218274364.02000157
0x3d08f5ff279a5c389b9247c36080aaec235ec0a7ccb730476bc31ab27a9a9519Transfer316925582022-08-09 10:42:1115 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000860.000000204
0x076d6327a791e08611965ceb62267134fc7c43cd6a6a1859adcdbbcf96c9c273Transfer316925452022-08-09 10:41:1916 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000260.000000064
0x46df460ab4920fe6f8209b586c0e9ed06a70e1704b414c492e651f9bc7243b45Transfer316925112022-08-09 10:40:0317 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000260.000000064
0x06c429741b9807da62920b80924b6c1440ab612712ca37dfcd81ccfbf1445c8eTransfer316924952022-08-09 10:39:3117 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000360.000000088
0x4118d5e82d8bfae007dec2387abb23e13de167cd228f8bbe7a05e4b2e9641b38Transfer316924792022-08-09 10:38:5518 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000460.000000104
0x3f7fbb1d4de4651155707e5610041ddb3645e27ae6c250eb75e95ed8cdfe31d0Transfer316924552022-08-09 10:38:0719 mins ago0x64301a9b71acbfadc72e4f3405069b74494c57b1 IN  QuickSwap: Old QUICK Token0 MATIC0.00631642110
0xcebd5a1a10af71293c71ef040d81d6d786b810bc17c8639f55fe845dd590fe17Transfer316923952022-08-09 10:36:0321 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000260.000000072
0x26982aaa9f697c915f3d2f948c91ca26662acc56a5462ff2b3dc00b74500b72eTransfer316923412022-08-09 10:34:1123 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004005460.000001354
0xa4eaf165cada335539f005685b0f21770d307f970cbf1aa3c7774f95f0814bb5Transfer316923232022-08-09 10:33:3523 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.0034575216960.199911032
0xb327d97c2f2e5a28a7fe8050c97e79699ff7bfd098d056e77ffaea92db05864bTransfer316922332022-08-09 10:30:3126 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000460.000000106
0xb90f4336f07eb80d68658b64494863453b69f2d1ec5412389a1eb49969b46e91Approve316921762022-08-09 10:28:3328 mins ago0xc4e89757646b62bb2e610f4a7b61f5967e457ec7 IN  QuickSwap: Old QUICK Token0 MATIC0.00353032575
0x4a783d145e8889ea30bb8d90cec1e3486cfad81df55b2ae2624b46f0c1e5de67Transfer316921752022-08-09 10:28:3128 mins ago0xe7804c37c13166ff0b37f5ae0bb07a3aebb6e245 IN  QuickSwap: Old QUICK Token0 MATIC0.00242004000360.00000008
0x3504725ca88b1f57509bcf20bd7c14d03844528878819c721199be41f151d8aaApprove316921672022-08-09 10:28:1529 mins ago0xf889783c4698045878e388502b5f1dd3871fcd9e IN  QuickSwap: Old QUICK Token0 MATIC0.001674503756 35.574000049
0x7bd00ece6c8242aae78b5111d40241616c5cf46215bd5bbb4799dd0efbd0081bTransfer316919292022-08-09 10:20:0337 mins ago0x0a6c0233022bef928a39634b071e8e6dc8f96415 IN  QuickSwap: Old QUICK Token0 MATIC0.00106602002230.000000635
0x5a0e274db82c126fe60ec874e3aa58eb4292fdcc94b11eb1bdeea728d920291eApprove316917392022-08-09 10:13:3143 mins ago0x65f96dcd5251366dc3ac7d124069d2b3b638fb13 IN  QuickSwap: Old QUICK Token0 MATIC0.001417204535 30.216936424
0xed11de9c37166a45af6f41fa3095f4b1d5aec9d3b205ec8753a954e4a930beddTransfer316917102022-08-09 10:12:2945 mins ago0x78426f16612cfe6c245b4382b621580a15a6b921 IN  QuickSwap: Old QUICK Token0 MATIC0.001579020018 30.000000343
[ Download CSV Export 

OVERVIEW

Token migration announcement. Quickswap contract has migrated to 0xB5C064F955D8e7F38fE0460C556a72987494eE17.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x14f65d3df671ad6e7c12fa1235b1c04dc6275d921fbca2c75a46838bf0709fbd254661412022-03-01 18:16:33160 days 16 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.751555068773273495 MATIC
0x84c12ccdd1dd5fc7e373c3df855e830e6666c5af0fcaa94c318323e4f0b057b0173133872021-07-27 6:14:55378 days 4 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.751555068773273495 MATIC
0x7a4951610367b9ecc9287fea04d3cc3ef3b1580e2e27c8f36e97547333272da2172158552021-07-24 11:18:09380 days 23 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0x21a7df4d83e159eb98fb41ab882e58f4de28fd30915f9da725d92e07b988ee10172128362021-07-24 9:18:05381 days 1 hr ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0x7491edf3c0c9cef09a54a8108b1835e82b55bd111bbfe8bc4e1129aa33b18415172126932021-07-24 9:11:57381 days 1 hr ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0x80ad723457bfe610d036b020f390a797c4410c2accc490cfab0546a12053c119172125412021-07-24 9:06:41381 days 1 hr ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0xee92f0354857b1ffae946d0abaa8bd7d947351df2390f95ef9761f49aec864e8172122682021-07-24 8:55:11381 days 2 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0x400cfa41fd98b323350c18ad6a9b98d7bb0bfefb65c347cee5e6b1fc4501ce6a172120912021-07-24 8:49:05381 days 2 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0x899a8d7794be63fc81fcd8027da86888905c4811ddecb0839b6de5d5c10ad90e168060902021-07-13 5:42:45392 days 5 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.671826714536302114 MATIC
0xf23d220b1ade99bd520c1f12c636aed2ba17d48ecea721dcd188d59a05e39e21167095352021-07-10 14:07:14394 days 20 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.556497490996899788 MATIC
0x9aa4a9ca66020b29be018cbce2f5c70c2610cb3013ad0d28edb40192f23e199f167094632021-07-10 14:03:26394 days 20 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.556497490996899788 MATIC
0x09bb01d76ff6df154338832cb5ac594dd854ca5df67892023da7f0e15b3f8188166515132021-07-08 21:17:24396 days 13 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.535072329387678601 MATIC
0x15a1ae937d7b9ebe5d548d76765e742caca6bfae16532fa32ca22397c509495f166395022021-07-08 11:58:56396 days 22 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.535072329387678601 MATIC
0xb84d9a1a457865b1f3eca2a370ff8367d46ca40477594434168326a9a43b006c166381682021-07-08 10:53:52397 days 3 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.484805701957123366 MATIC
0x9ba56d6debcbfe68cad37fc150639b048d8f24865395721c662535394cf34e82166376392021-07-08 10:26:47397 days 30 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.458472921416062911 MATIC
0x5f3dedc1b8dc1164a50245c6c19862c6e20c8ba4b66e848ebe6fb20bf2f8da74166376082021-07-08 10:25:25397 days 32 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.43124905539431771 MATIC
0x105e970fa12e142d6faebfd28f9e1f8d5f508346091a40d431b160cc32da9969166375962021-07-08 10:25:01397 days 32 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.43124905539431771 MATIC
0xf7e04571508916f473b8e48129a8dca8be1b881a4d3c29f194aa98d95499cb1a166375962021-07-08 10:25:01397 days 32 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.43124905539431771 MATIC
0x80f7660d9f1bb7e6ba0bb02722b46d83b448227d549e3034758f9ec111d98696166375962021-07-08 10:25:01397 days 32 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.43124905539431771 MATIC
0xae0c028e5c886da9ee67a8c6c898823fc233042b0e12556738d1835f426fdc3c166375952021-07-08 10:24:59397 days 32 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.43124905539431771 MATIC
0x85c0a0052e914e7eaded1d77a824d9475180cbb738cd502bf8621f9e3ef0945a166375362021-07-08 10:22:57397 days 34 mins ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.302744479289364129 MATIC
0x905574eb94303b826e52aa97f44687d7fa6b61faafbdba265263fababa05e085166279322021-07-08 4:35:44397 days 6 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.264917207086557844 MATIC
0xd79a7d05438150dcf4715a112b8a5a5672bce57e230ce2311ddb8211cc5a5f29166279172021-07-08 4:35:14397 days 6 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.264917207086557844 MATIC
0x63494987a13c23234761a994b8895cc178fe57b9b85217dac16fc4835c195caa166265562021-07-08 3:46:16397 days 7 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.191767815461683424 MATIC
0x26461a084c9d3355ae5f0875a53cf17125b97555f9872bf1c60487d925c549c5166253872021-07-08 3:01:50397 days 7 hrs ago 0xdbdabf15e4d8a8a1690197c4ee9dfacda85b4d30 QuickSwap: Old QUICK Token23.191767815461683424 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Quick

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-05-18
*/

/**
 *Submitted for verification at Etherscan.io on 2020-09-16
*/

/**
 *Submitted for verification at Etherscan.io on 2020-09-15
*/

pragma solidity ^0.5.16;
pragma experimental ABIEncoderV2;

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol
// Subject to the MIT license.

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @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, string memory errorMessage) internal pure returns (uint256) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, errorMessage);

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts 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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Quick {
    /// @notice EIP-20 token name for this token
    string public constant name = "Quickswap";

    /// @notice EIP-20 token symbol for this token
    string public constant symbol = "QUICK";

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    /// @notice Total number of tokens in circulation
    uint public totalSupply = 0; // QUICK

    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    /// @notice Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice The EIP-712 typehash for the permit struct used by the contract
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    address public gateway;

    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /**
     * @notice Construct a new Quick token
     * @param gateway_ The gateway contract address
     */
    constructor(address gateway_) public {

        gateway = gateway_;
    }

    /**
     * @notice called when token is deposited on root chain
     * @dev Should be callable only by ChildChainManager
     * Should handle deposit by minting the required amount for user
     * Make sure minting is done only by this function
     * @param user user address for whom deposit is being done
     * @param depositData abi encoded amount
     */
    function deposit(address user, bytes calldata depositData)
        external
    {
        require(msg.sender == gateway,  "Invalid access");
        uint256 rawAmount = abi.decode(depositData, (uint256));
        uint96 amount = safe96(rawAmount, "Quick::deposit: amount exceeds 96 bits");

        _mint(user, amount);
    }

    /**
     * @notice called when user wants to withdraw tokens back to root chain
     * @dev Should burn user's tokens. This transaction will be verified when exiting on root chain
     * @param rawAmount amount of tokens to withdraw
     */
    function withdraw(uint256 rawAmount) external {
        uint96 amount = safe96(rawAmount, "Quick::withdraw: amount exceeds 96 bits");
        _burn(msg.sender, amount);
    }

    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `account`
     * @param account The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address account, address spender) external view returns (uint) {
        return allowances[account][spender];
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `src`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * @param spender The address of the account which may transfer tokens
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint rawAmount) external returns (bool) {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Quick::approve: amount exceeds 96 bits");
        }

        allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /**
     * @notice Triggers an approval from owner to spends
     * @param owner The address to approve from
     * @param spender The address to be approved
     * @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
     * @param deadline The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        uint96 amount;
        if (rawAmount == uint(-1)) {
            amount = uint96(-1);
        } else {
            amount = safe96(rawAmount, "Quick::permit: amount exceeds 96 bits");
        }

        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Quick::permit: invalid signature");
        require(signatory == owner, "Quick::permit: unauthorized");
        require(now <= deadline, "Quick::permit: signature expired");

        allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);
    }

    /**
     * @notice Get the number of tokens held by the `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) external view returns (uint) {
        return balances[account];
    }

    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `dst`
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address dst, uint rawAmount) external returns (bool) {
        uint96 amount = safe96(rawAmount, "Quick::transfer: amount exceeds 96 bits");
        _transferTokens(msg.sender, dst, amount);
        return true;
    }

    /**
     * @notice Transfer `amount` tokens from `src` to `dst`
     * @param src The address of the source account
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address src, address dst, uint rawAmount) external returns (bool) {
        address spender = msg.sender;
        uint96 spenderAllowance = allowances[src][spender];
        uint96 amount = safe96(rawAmount, "Quick::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "Quick::transferFrom: transfer amount exceeds spender allowance");
            allowances[src][spender] = newAllowance;

            emit Approval(src, spender, newAllowance);
        }

        _transferTokens(src, dst, amount);
        return true;
    }

    /**
     * @notice Delegate votes from `msg.sender` to `delegatee`
     * @param delegatee The address to delegate votes to
     */
    function delegate(address delegatee) public {
        return _delegate(msg.sender, delegatee);
    }

    /**
     * @notice Delegates votes from signatory to `delegatee`
     * @param delegatee The address to delegate votes to
     * @param nonce The contract state required to match the signature
     * @param expiry The time at which to expire the signature
     * @param v The recovery byte of the signature
     * @param r Half of the ECDSA signature pair
     * @param s Half of the ECDSA signature pair
     */
    function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public {
        bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this)));
        bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "Quick::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "Quick::delegateBySig: invalid nonce");
        require(now <= expiry, "Quick::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    /**
     * @notice Gets the current votes balance for `account`
     * @param account The address to get votes balance
     * @return The number of current votes for `account`
     */
    function getCurrentVotes(address account) external view returns (uint96) {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    /**
     * @notice Determine the prior number of votes for an account as of a block number
     * @dev Block number must be a finalized block or else this function will revert to prevent misinformation.
     * @param account The address of the account to check
     * @param blockNumber The block number to get the vote balance at
     * @return The number of votes the account had as of the given block
     */
    function getPriorVotes(address account, uint blockNumber) public view returns (uint96) {
        require(blockNumber < block.number, "Quick::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee) internal {
        address currentDelegate = delegates[delegator];
        uint96 delegatorBalance = balances[delegator];
        delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _transferTokens(address src, address dst, uint96 amount) internal {
        require(src != address(0), "Quick::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "Quick::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "Quick::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "Quick::_transferTokens: transfer amount overflows");
        emit Transfer(src, dst, amount);

        _moveDelegates(delegates[src], delegates[dst], amount);
    }

    function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint96 srcRepNew = sub96(srcRepOld, amount, "Quick::_moveVotes: vote amount underflows");
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint96 dstRepNew = add96(dstRepOld, amount, "Quick::_moveVotes: vote amount overflows");
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal {
      uint32 blockNumber = safe32(block.number, "Quick::_writeCheckpoint: block number exceeds 32 bits");

      if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
          checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
      } else {
          checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
          numCheckpoints[delegatee] = nCheckpoints + 1;
      }

      emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function safe96(uint n, string memory errorMessage) internal pure returns (uint96) {
        require(n < 2**96, errorMessage);
        return uint96(n);
    }

    function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        uint96 c = a + b;
        require(c >= a, errorMessage);
        return c;
    }

    function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) {
        require(b <= a, errorMessage);
        return a - b;
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }

    function _mint(address dst, uint rawAmount) internal {
        require(dst != address(0), "Quick::mint: cannot transfer to the zero address");

        // mint the amount
        uint96 amount = safe96(rawAmount, "Quick::mint: amount exceeds 96 bits");
        totalSupply = safe96(SafeMath.add(totalSupply, amount), "Quick::mint: totalSupply exceeds 96 bits");

        // transfer the amount to the recipient
        balances[dst] = add96(balances[dst], amount, "Quick::mint: transfer amount overflows");
        emit Transfer(address(0), dst, amount);

    }

    function _burn(address account, uint96 amount) internal {
        require(account != address(0), "Quick:: burn from the zero address");

        balances[account] = sub96(balances[account], amount, "Quick:: burn amount exceeds balance");
        totalSupply = sub96(safe96(totalSupply, "Quick:: totalSupply exceeds 96 bits"), amount, "Quick:: burn amount exceeds total supply");
        emit Transfer(account, address(0), amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"gateway_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gateway","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052600080553480156200001557600080fd5b506040516200280b3803806200280b833981016040819052620000389162000071565b600780546001600160a01b0319166001600160a01b0392909216919091179055620000c6565b80516200006b81620000ac565b92915050565b6000602082840312156200008457600080fd5b60006200009284846200005e565b949350505050565b60006001600160a01b0382166200006b565b620000b7816200009a565b8114620000c357600080fd5b50565b61273580620000d66000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063c3cda5201161007c578063c3cda520146102cc578063cf2c52cb146102df578063d505accf146102f2578063dd62ed3e14610305578063e7a324dc14610318578063f1127ed81461032057610158565b806370a0823114610258578063782d6fe11461026b5780637ecebe001461028b57806395d89b411461029e578063a9059cbb146102a6578063b4b5ea57146102b957610158565b80632e1a7d4d116101155780632e1a7d4d146101e057806330adf81f146101f5578063313ce567146101fd578063587cde1e146102125780635c19a95c146102255780636fcfff451461023857610158565b806306fdde031461015d578063095ea7b31461017b578063116191b61461019b57806318160ddd146101b057806320606b70146101c557806323b872dd146101cd575b600080fd5b610165610341565b604051610172919061221d565b60405180910390f35b61018e610189366004611a41565b610366565b6040516101729190612119565b6101a3610425565b604051610172919061210b565b6101b8610434565b6040516101729190612127565b6101b861043a565b61018e6101db366004611902565b610451565b6101f36101ee366004611b28565b61059a565b005b6101b86105ce565b6102056105da565b6040516101729190612327565b6101a36102203660046118a2565b6105df565b6101f36102333660046118a2565b6105fa565b61024b6102463660046118a2565b610607565b60405161017291906122fe565b6101b86102663660046118a2565b61061f565b61027e610279366004611a41565b610643565b6040516101729190612343565b6101b86102993660046118a2565b61085a565b61016561086c565b61018e6102b4366004611a41565b61088d565b61027e6102c73660046118a2565b6108c9565b6101f36102da366004611a71565b610939565b6101f36102ed3660046119eb565b610b24565b6101f361030036600461194f565b610b9e565b6101b86103133660046118c8565b610e8b565b6101b8610ebf565b61033361032e366004611af8565b610ecb565b60405161017292919061230c565b604051806040016040528060098152602001680517569636b737761760bc1b81525081565b60008060001983141561037c57506000196103a1565b61039e836040518060600160405280602681526020016124cc60269139610f00565b90505b3360008181526001602090815260408083206001600160a01b03891680855292529182902080546001600160601b0319166001600160601b03861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610411908590612335565b60405180910390a360019150505b92915050565b6007546001600160a01b031681565b60005481565b604051610446906120f5565b604051809103902081565b6001600160a01b03831660009081526001602090815260408083203380855290835281842054825160608101909352602680845291936001600160601b039091169285926104a992889291906124cc90830139610f00565b9050866001600160a01b0316836001600160a01b0316141580156104d657506001600160601b0382811614155b1561058057600061050083836040518060600160405280603e815260200161259e603e9139610f2f565b6001600160a01b038981166000818152600160209081526040808320948a16808452949091529081902080546001600160601b0319166001600160601b0386161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610576908590612335565b60405180910390a3505b61058b878783610f6e565b600193505050505b9392505050565b60006105be8260405180606001604052806027815260200161245160279139610f00565b90506105ca3382611119565b5050565b604051610446906120ea565b601281565b6003602052600090815260409020546001600160a01b031681565b610604338261126e565b50565b60056020526000908152604090205463ffffffff1681565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b600043821061066d5760405162461bcd60e51b81526004016106649061229e565b60405180910390fd5b6001600160a01b03831660009081526005602052604090205463ffffffff168061069b57600091505061041f565b6001600160a01b038416600090815260046020908152604080832063ffffffff600019860181168552925290912054168310610717576001600160a01b03841660009081526004602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b0316905061041f565b6001600160a01b038416600090815260046020908152604080832083805290915290205463ffffffff1683101561075257600091505061041f565b600060001982015b8163ffffffff168163ffffffff16111561081557600282820363ffffffff16048103610784611816565b506001600160a01b038716600090815260046020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b031691810191909152908714156107f05760200151945061041f9350505050565b805163ffffffff168711156108075781935061080e565b6001820392505b505061075a565b506001600160a01b038516600090815260046020908152604080832063ffffffff909416835292905220546001600160601b03600160201b9091041691505092915050565b60066020526000908152604090205481565b60405180604001604052806005815260200164515549434b60d81b81525081565b6000806108b28360405180606001604052806027815260200161257760279139610f00565b90506108bf338583610f6e565b5060019392505050565b6001600160a01b03811660009081526005602052604081205463ffffffff16806108f4576000610593565b6001600160a01b0383166000908152600460209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03169392505050565b6000604051610947906120f5565b6040805191829003822082820190915260098252680517569636b737761760bc1b6020909201919091527f84356cec62b4776fab815ae779598e1a4af2765a01721362a1125b8fe66ddb3c61099a6112f8565b306040516020016109ae94939291906121cd565b60405160208183030381529060405280519060200120905060006040516109d490612100565b6040519081900381206109ef918a908a908a9060200161218f565b60405160208183030381529060405280519060200120905060008282604051602001610a1c9291906120b9565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610a599493929190612202565b6020604051602081039080840390855afa158015610a7b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610aae5760405162461bcd60e51b81526004016106649061224e565b6001600160a01b03811660009081526006602052604090208054600181019091558914610aed5760405162461bcd60e51b81526004016106649061226e565b87421115610b0d5760405162461bcd60e51b81526004016106649061228e565b610b17818b61126e565b505050505b505050505050565b6007546001600160a01b03163314610b4e5760405162461bcd60e51b8152600401610664906122ce565b6000610b5c82840184611b28565b90506000610b82826040518060600160405280602681526020016126cd60269139610f00565b9050610b9785826001600160601b03166112fc565b5050505050565b6000600019861415610bb35750600019610bd8565b610bd58660405180606001604052806025815260200161267160259139610f00565b90505b6000604051610be6906120f5565b6040805191829003822082820190915260098252680517569636b737761760bc1b6020909201919091527f84356cec62b4776fab815ae779598e1a4af2765a01721362a1125b8fe66ddb3c610c396112f8565b30604051602001610c4d94939291906121cd565b6040516020818303038152906040528051906020012090506000604051610c73906120ea565b604080519182900382206001600160a01b038d16600090815260066020908152929020805460018101909155610cb59391928e928e928e9290918e9101612135565b60405160208183030381529060405280519060200120905060008282604051602001610ce29291906120b9565b604051602081830303815290604052805190602001209050600060018289898960405160008152602001604052604051610d1f9493929190612202565b6020604051602081039080840390855afa158015610d41573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610d745760405162461bcd60e51b8152600401610664906122be565b8b6001600160a01b0316816001600160a01b031614610da55760405162461bcd60e51b81526004016106649061227e565b88421115610dc55760405162461bcd60e51b81526004016106649061225e565b84600160008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610e759190612335565b60405180910390a3505050505050505050505050565b6001600160a01b0391821660009081526001602090815260408083209390941682529190915220546001600160601b031690565b60405161044690612100565b600460209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b600081600160601b8410610f275760405162461bcd60e51b8152600401610664919061221d565b509192915050565b6000836001600160601b0316836001600160601b031611158290610f665760405162461bcd60e51b8152600401610664919061221d565b505050900390565b6001600160a01b038316610f945760405162461bcd60e51b8152600401610664906122ae565b6001600160a01b038216610fba5760405162461bcd60e51b8152600401610664906122de565b6001600160a01b038316600090815260026020908152604091829020548251606081019093526037808452611005936001600160601b03909216928592919061269690830139610f2f565b6001600160a01b03848116600090815260026020908152604080832080546001600160601b0319166001600160601b0396871617905592861682529082902054825160608101909352603180845261106d949190911692859290919061247890830139611447565b6001600160a01b038381166000818152600260205260409081902080546001600160601b0319166001600160601b0395909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110da908590612335565b60405180910390a36001600160a01b0380841660009081526003602052604080822054858416835291205461111492918216911683611483565b505050565b6001600160a01b03821661113f5760405162461bcd60e51b8152600401610664906122ee565b6001600160a01b03821660009081526002602090815260409182902054825160608101909352602380845261118a936001600160601b03909216928592919061264e90830139610f2f565b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055506112196111fa60005460405180606001604052806023815260200161262b60239139610f00565b8260405180606001604052806028815260200161252760289139610f2f565b6001600160601b031660009081556040516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611262908590612335565b60405180910390a35050565b6001600160a01b03808316600081815260036020818152604080842080546002845282862054949093528787166001600160a01b031984168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46112f2828483611483565b50505050565b4690565b6001600160a01b0382166113225760405162461bcd60e51b81526004016106649061222e565b6000611346826040518060600160405280602381526020016124a960239139610f00565b905061137e611360600054836001600160601b0316611615565b60405180606001604052806028815260200161254f60289139610f00565b6001600160601b0390811660009081556001600160a01b0385168152600260209081526040918290205482516060810190935260268084526113d0949190911692859290919061260590830139611447565b6001600160a01b03841660008181526002602052604080822080546001600160601b0319166001600160601b03959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143a908590612335565b60405180910390a3505050565b6000838301826001600160601b03808716908316101561147a5760405162461bcd60e51b8152600401610664919061221d565b50949350505050565b816001600160a01b0316836001600160a01b0316141580156114ae57506000816001600160601b0316115b15611114576001600160a01b03831615611566576001600160a01b03831660009081526005602052604081205463ffffffff1690816114ee57600061152d565b6001600160a01b0385166000908152600460209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061155482856040518060600160405280602981526020016125dc60299139610f2f565b90506115628684848461163a565b5050505b6001600160a01b03821615611114576001600160a01b03821660009081526005602052604081205463ffffffff1690816115a15760006115e0565b6001600160a01b0384166000908152600460209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b90506000611607828560405180606001604052806028815260200161242960289139611447565b9050610b1c8584848461163a565b6000828201838110156105935760405162461bcd60e51b81526004016106649061223e565b600061165e436040518060600160405280603581526020016124f2603591396117ef565b905060008463ffffffff161180156116a757506001600160a01b038516600090815260046020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611706576001600160a01b0385166000908152600460209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b038516021790556117a5565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152600483528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252600590935292909220805460018801909316929091169190911790555b846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516117e0929190612351565b60405180910390a25050505050565b600081600160201b8410610f275760405162461bcd60e51b8152600401610664919061221d565b604080518082019091526000808252602082015290565b803561041f816123f9565b803561041f8161240d565b60008083601f84011261185557600080fd5b50813567ffffffffffffffff81111561186d57600080fd5b60208301915083600182028301111561188557600080fd5b9250929050565b803561041f81612416565b803561041f8161241f565b6000602082840312156118b457600080fd5b60006118c0848461182d565b949350505050565b600080604083850312156118db57600080fd5b60006118e7858561182d565b92505060206118f88582860161182d565b9150509250929050565b60008060006060848603121561191757600080fd5b6000611923868661182d565b93505060206119348682870161182d565b925050604061194586828701611838565b9150509250925092565b600080600080600080600060e0888a03121561196a57600080fd5b60006119768a8a61182d565b97505060206119878a828b0161182d565b96505060406119988a828b01611838565b95505060606119a98a828b01611838565b94505060806119ba8a828b01611897565b93505060a06119cb8a828b01611838565b92505060c06119dc8a828b01611838565b91505092959891949750929550565b600080600060408486031215611a0057600080fd5b6000611a0c868661182d565b935050602084013567ffffffffffffffff811115611a2957600080fd5b611a3586828701611843565b92509250509250925092565b60008060408385031215611a5457600080fd5b6000611a60858561182d565b92505060206118f885828601611838565b60008060008060008060c08789031215611a8a57600080fd5b6000611a96898961182d565b9650506020611aa789828a01611838565b9550506040611ab889828a01611838565b9450506060611ac989828a01611897565b9350506080611ada89828a01611838565b92505060a0611aeb89828a01611838565b9150509295509295509295565b60008060408385031215611b0b57600080fd5b6000611b17858561182d565b92505060206118f88582860161188c565b600060208284031215611b3a57600080fd5b60006118c08484611838565b611b4f8161237e565b82525050565b611b4f81612389565b611b4f8161238e565b611b4f611b738261238e565b61238e565b6000611b838261236c565b611b8d8185612370565b9350611b9d8185602086016123c3565b611ba6816123ef565b9093019392505050565b6000611bbd603083612370565b7f517569636b3a3a6d696e743a2063616e6e6f74207472616e7366657220746f2081526f746865207a65726f206164647265737360801b602082015260400192915050565b6000611c0f600283612379565b61190160f01b815260020192915050565b6000611c2d601b83612370565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611c66602783612370565b7f517569636b3a3a64656c656761746542795369673a20696e76616c6964207369815266676e617475726560c81b602082015260400192915050565b6000611caf602083612370565b7f517569636b3a3a7065726d69743a207369676e61747572652065787069726564815260200192915050565b6000611ce8602383612370565b7f517569636b3a3a64656c656761746542795369673a20696e76616c6964206e6f8152626e636560e81b602082015260400192915050565b6000611d2d601b83612370565b7f517569636b3a3a7065726d69743a20756e617574686f72697a65640000000000815260200192915050565b6000611d66602783612370565b7f517569636b3a3a64656c656761746542795369673a207369676e617475726520815266195e1c1a5c995960ca1b602082015260400192915050565b6000611daf605283612379565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63656020820152712c75696e7432353620646561646c696e652960701b604082015260520192915050565b6000611e29602883612370565b7f517569636b3a3a6765745072696f72566f7465733a206e6f74207965742064658152671d195c9b5a5b995960c21b602082015260400192915050565b6000611e73604383612379565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000611ede603d83612370565b7f517569636b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207481527f72616e736665722066726f6d20746865207a65726f2061646472657373000000602082015260400192915050565b6000611f3d602083612370565b7f517569636b3a3a7065726d69743a20696e76616c6964207369676e6174757265815260200192915050565b6000611f76600e83612370565b6d496e76616c69642061636365737360901b815260200192915050565b6000611fa0603b83612370565b7f517569636b3a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207481527f72616e7366657220746f20746865207a65726f20616464726573730000000000602082015260400192915050565b6000611fff602283612370565b7f517569636b3a3a206275726e2066726f6d20746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000612043603a83612379565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b611b4f8161239d565b611b4f816123a6565b611b4f816123b8565b611b4f816123ac565b60006120c482611c02565b91506120d08285611b67565b6020820191506120e08284611b67565b5060200192915050565b600061041f82611da2565b600061041f82611e66565b600061041f82612036565b6020810161041f8284611b46565b6020810161041f8284611b55565b6020810161041f8284611b5e565b60c081016121438289611b5e565b6121506020830188611b46565b61215d6040830187611b46565b61216a6060830186611b5e565b6121776080830185611b5e565b61218460a0830184611b5e565b979650505050505050565b6080810161219d8287611b5e565b6121aa6020830186611b46565b6121b76040830185611b5e565b6121c46060830184611b5e565b95945050505050565b608081016121db8287611b5e565b6121e86020830186611b5e565b6121f56040830185611b5e565b6121c46060830184611b46565b608081016122108287611b5e565b6121aa602083018661209e565b602080825281016105938184611b78565b6020808252810161041f81611bb0565b6020808252810161041f81611c20565b6020808252810161041f81611c59565b6020808252810161041f81611ca2565b6020808252810161041f81611cdb565b6020808252810161041f81611d20565b6020808252810161041f81611d59565b6020808252810161041f81611e1c565b6020808252810161041f81611ed1565b6020808252810161041f81611f30565b6020808252810161041f81611f69565b6020808252810161041f81611f93565b6020808252810161041f81611ff2565b6020810161041f8284612095565b6040810161231a8285612095565b61059360208301846120b0565b6020810161041f828461209e565b6020810161041f82846120a7565b6020810161041f82846120b0565b6040810161235f82856120a7565b61059360208301846120a7565b5190565b90815260200190565b919050565b600061041f82612391565b151590565b90565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061041f826123ac565b60005b838110156123de5781810151838201526020016123c6565b838111156112f25750506000910152565b601f01601f191690565b6124028161237e565b811461060457600080fd5b6124028161238e565b6124028161239d565b612402816123a656fe517569636b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773517569636b3a3a77697468647261773a20616d6f756e7420657863656564732039362062697473517569636b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773517569636b3a3a6d696e743a20616d6f756e7420657863656564732039362062697473517569636b3a3a617070726f76653a20616d6f756e7420657863656564732039362062697473517569636b3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473517569636b3a3a206275726e20616d6f756e74206578636565647320746f74616c20737570706c79517569636b3a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473517569636b3a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473517569636b3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365517569636b3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773517569636b3a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f7773517569636b3a3a20746f74616c537570706c7920657863656564732039362062697473517569636b3a3a206275726e20616d6f756e7420657863656564732062616c616e6365517569636b3a3a7065726d69743a20616d6f756e7420657863656564732039362062697473517569636b3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365517569636b3a3a6465706f7369743a20616d6f756e7420657863656564732039362062697473a365627a7a723158206fbb73905322d6fe560a494811880e9c468720793c15cc30d295d7985b1dab676c6578706572696d656e74616cf564736f6c63430005110040000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa

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

000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa

-----Decoded View---------------
Arg [0] : gateway_ (address): 0xa6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa


Deployed ByteCode Sourcemap

6777:16717:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6777:16717:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6849:41;;;:::i;:::-;;;;;;;;;;;;;;;;11682:420;;;;;;;;;:::i;:::-;;;;;;;;8742:22;;;:::i;:::-;;;;;;;;7152:27;;;:::i;:::-;;;;;;;;8053:122;;;:::i;14774:674::-;;;;;;;;;:::i;10587:177::-;;;;;;;;;:::i;:::-;;8476:137;;;:::i;7053:35::-;;;:::i;:::-;;;;;;;;7503:45;;;;;;;;;:::i;15596:102::-;;;;;;;;;:::i;7931:49::-;;;;;;;;;:::i;:::-;;;;;;;;13853:108;;;;;;;;;:::i;17778:1219::-;;;;;;;;;:::i;:::-;;;;;;;;8694:39;;;;;;;;;:::i;6951:::-;;;:::i;14225:239::-;;;;;;;;;:::i;17125:222::-;;;;;;;;;:::i;16132:792::-;;;;;;;;;:::i;9996:333::-;;;;;;;;;:::i;12592:1058::-;;;;;;;;;:::i;11068:136::-;;;;;;;;;:::i;8269:117::-;;;:::i;7792:70::-;;;;;;;;;:::i;:::-;;;;;;;;;6849:41;;;;;;;;;;;;;;-1:-1:-1;;;6849:41:0;;;;:::o;11682:420::-;11750:4;11767:13;-1:-1:-1;;11795:9:0;:21;11791:174;;;-1:-1:-1;;;11791:174:0;;;11894:59;11901:9;11894:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;11885:68;;11791:174;11988:10;11977:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;11977:31:0;;;;;;;;;;;:40;;-1:-1:-1;;;;;;11977:40:0;-1:-1:-1;;;;;11977:40:0;;;;;12035:37;;11977:31;;11988:10;12035:37;;;;11977:40;;12035:37;;;;;;;;;;12090:4;12083:11;;;11682:420;;;;;:::o;8742:22::-;;;-1:-1:-1;;;;;8742:22:0;;:::o;7152:27::-;;;;:::o;8053:122::-;8095:80;;;;;;;;;;;;;;8053:122;:::o;14774:674::-;-1:-1:-1;;;;;14938:15:0;;14856:4;14938:15;;;:10;:15;;;;;;;;14891:10;14938:24;;;;;;;;;;14989:59;;;;;;;;;;;;14891:10;;-1:-1:-1;;;;;14938:24:0;;;;14856:4;;14989:59;;14996:9;;14989:59;;;;;;;:6;:59::i;:::-;14973:75;;15076:3;-1:-1:-1;;;;;15065:14:0;:7;-1:-1:-1;;;;;15065:14:0;;;:48;;;;-1:-1:-1;;;;;;15083:30:0;;;;;15065:48;15061:312;;;15130:19;15152:97;15158:16;15176:6;15152:97;;;;;;;;;;;;;;;;;:5;:97::i;:::-;-1:-1:-1;;;;;15264:15:0;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;;:39;;-1:-1:-1;;;;;;15264:39:0;-1:-1:-1;;;;;15264:39:0;;;;;15325:36;15264:39;;-1:-1:-1;15264:24:0;;15325:36;;;;15264:39;;15325:36;;;;;;;;;;15061:312;;15385:33;15401:3;15406;15411:6;15385:15;:33::i;:::-;15436:4;15429:11;;;;;14774:674;;;;;;:::o;10587:177::-;10644:13;10660:60;10667:9;10660:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;10644:76;;10731:25;10737:10;10749:6;10731:5;:25::i;:::-;10587:177;;:::o;8476:137::-;8518:95;;;;;;7053:35;7086:2;7053:35;:::o;7503:45::-;;;;;;;;;;;;-1:-1:-1;;;;;7503:45:0;;:::o;15596:102::-;15658:32;15668:10;15680:9;15658;:32::i;:::-;15596:102;:::o;7931:49::-;;;;;;;;;;;;;;;:::o;13853:108::-;-1:-1:-1;;;;;13936:17:0;13912:4;13936:17;;;:8;:17;;;;;;-1:-1:-1;;;;;13936:17:0;;13853:108::o;17778:1219::-;17857:6;17898:12;17884:11;:26;17876:79;;;;-1:-1:-1;;;17876:79:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17990:23:0;;17968:19;17990:23;;;:14;:23;;;;;;;;18028:17;18024:58;;18069:1;18062:8;;;;;18024:58;-1:-1:-1;;;;;18142:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;18163:16:0;;18142:38;;;;;;;;;:48;;:63;-1:-1:-1;18138:147:0;;-1:-1:-1;;;;;18229:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;18250:16:0;;;;18229:38;;;;;;;;:44;-1:-1:-1;;;18229:44:0;;-1:-1:-1;;;;;18229:44:0;;-1:-1:-1;18222:51:0;;18138:147;-1:-1:-1;;;;;18346:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;18342:88:0;;;18417:1;18410:8;;;;;18342:88;18442:12;-1:-1:-1;;18484:16:0;;18511:428;18526:5;18518:13;;:5;:13;;;18511:428;;;18590:1;18573:13;;;18572:19;;;18564:27;;18633:20;;:::i;:::-;-1:-1:-1;;;;;;18656:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;18633:51;;;;;;;;;;;;;;;-1:-1:-1;;;18633:51:0;;;-1:-1:-1;;;;;18633:51:0;;;;;;;;;18703:27;;18699:229;;;18758:8;;;;-1:-1:-1;18751:15:0;;-1:-1:-1;;;;18751:15:0;18699:229;18792:12;;:26;;;-1:-1:-1;18788:140:0;;;18847:6;18839:14;;18788:140;;;18911:1;18902:6;:10;18894:18;;18788:140;18511:428;;;;;-1:-1:-1;;;;;;18956:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;-1:-1:-1;;;;;;;;18956:33:0;;;;;-1:-1:-1;;17778:1219:0;;;;:::o;8694:39::-;;;;;;;;;;;;;:::o;6951:::-;;;;;;;;;;;;;;-1:-1:-1;;;6951:39:0;;;;:::o;14225:239::-;14290:4;14307:13;14323:60;14330:9;14323:60;;;;;;;;;;;;;;;;;:6;:60::i;:::-;14307:76;;14394:40;14410:10;14422:3;14427:6;14394:15;:40::i;:::-;-1:-1:-1;14452:4:0;;14225:239;-1:-1:-1;;;14225:239:0:o;17125:222::-;-1:-1:-1;;;;;17231:23:0;;17190:6;17231:23;;;:14;:23;;;;;;;;17272:16;:67;;17338:1;17272:67;;;-1:-1:-1;;;;;17291:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;17312:16:0;;17291:38;;;;;;;;;:44;-1:-1:-1;;;17291:44:0;;-1:-1:-1;;;;;17291:44:0;17265:74;17125:222;-1:-1:-1;;;17125:222:0:o;16132:792::-;16248:23;8095:80;;;;;;;;;;;;;;;;16328:4;;;;;;;;;-1:-1:-1;;;16328:4:0;;;;;;;;16312:22;16336:12;:10;:12::i;:::-;16358:4;16284:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16284:80:0;;;16274:91;;;;;;16248:117;;16376:18;8315:71;;;;;;;;;;;;;;;16407:57;;16439:9;;16450:5;;16457:6;;16407:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16407:57:0;;;16397:68;;;;;;16376:89;;16476:14;16532:15;16549:10;16503:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16503:57:0;;;16493:68;;;;;;16476:85;;16572:17;16592:26;16602:6;16610:1;16613;16616;16592:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16592:26:0;;-1:-1:-1;;16592:26:0;;;-1:-1:-1;;;;;;;16637:23:0;;16629:75;;;;-1:-1:-1;;;16629:75:0;;;;;;;;;-1:-1:-1;;;;;16732:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;16723:28;;16715:76;;;;-1:-1:-1;;;16715:76:0;;;;;;;;;16817:6;16810:3;:13;;16802:65;;;;-1:-1:-1;;;16802:65:0;;;;;;;;;16885:31;16895:9;16906;16885;:31::i;:::-;16878:38;;;;16132:792;;;;;;;:::o;9996:333::-;10111:7;;-1:-1:-1;;;;;10111:7:0;10097:10;:21;10089:49;;;;-1:-1:-1;;;10089:49:0;;;;;;;;;10149:17;10169:34;;;;10180:11;10169:34;;;10149:54;;10214:13;10230:59;10237:9;10230:59;;;;;;;;;;;;;;;;;:6;:59::i;:::-;10214:75;;10302:19;10308:4;10314:6;-1:-1:-1;;;;;10302:19:0;:5;:19::i;:::-;9996:333;;;;;:::o;12592:1058::-;12722:13;-1:-1:-1;;12750:9:0;:21;12746:173;;;-1:-1:-1;;;12746:173:0;;;12849:58;12856:9;12849:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;12840:67;;12746:173;12931:23;8095:80;;;;;;;;;;;;;;;;13011:4;;;;;;;;;-1:-1:-1;;;13011:4:0;;;;;;;;12995:22;13019:12;:10;:12::i;:::-;13041:4;12967:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12967:80:0;;;12957:91;;;;;;12931:117;;13059:18;8518:95;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13145:13:0;;;;;;:6;:13;;;;;;;:15;;;;;;;;13090:81;;8518:95;;13118:5;;13125:7;;13134:9;;13145:15;;13162:8;;13090:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13090:81:0;;;13080:92;;;;;;13059:113;;13183:14;13239:15;13256:10;13210:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13210:57:0;;;13200:68;;;;;;13183:85;;13279:17;13299:26;13309:6;13317:1;13320;13323;13299:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13299:26:0;;-1:-1:-1;;13299:26:0;;;-1:-1:-1;;;;;;;13344:23:0;;13336:68;;;;-1:-1:-1;;;13336:68:0;;;;;;;;;13436:5;-1:-1:-1;;;;;13423:18:0;:9;-1:-1:-1;;;;;13423:18:0;;13415:58;;;;-1:-1:-1;;;13415:58:0;;;;;;;;;13499:8;13492:3;:15;;13484:60;;;;-1:-1:-1;;;13484:60:0;;;;;;;;;13586:6;13557:10;:17;13568:5;-1:-1:-1;;;;;13557:17:0;-1:-1:-1;;;;;13557:17:0;;;;;;;;;;;;:26;13575:7;-1:-1:-1;;;;;13557:26:0;-1:-1:-1;;;;;13557:26:0;;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;13557:35:0;;;;;-1:-1:-1;;;;;13557:35:0;;;;;;13626:7;-1:-1:-1;;;;;13610:32:0;13619:5;-1:-1:-1;;;;;13610:32:0;;13635:6;13610:32;;;;;;;;;;;;;;;12592:1058;;;;;;;;;;;;:::o;11068:136::-;-1:-1:-1;;;;;11168:19:0;;;11144:4;11168:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;-1:-1:-1;;;;;11168:28:0;;11068:136::o;8269:117::-;8315:71;;;;;;7792:70;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7792:70:0;;-1:-1:-1;;;;;7792:70:0;;:::o;21770:161::-;21845:6;21883:12;-1:-1:-1;;;21872:9:0;;21864:32;;;;-1:-1:-1;;;21864:32:0;;;;;;;;;;-1:-1:-1;21921:1:0;;21770:161;-1:-1:-1;;21770:161:0:o;22135:165::-;22221:6;22253:1;-1:-1:-1;;;;;22248:6:0;:1;-1:-1:-1;;;;;22248:6:0;;;22256:12;22240:29;;;;;-1:-1:-1;;;22240:29:0;;;;;;;;;;-1:-1:-1;;;22287:5:0;;;22135:165::o;19388:618::-;-1:-1:-1;;;;;19482:17:0;;19474:91;;;;-1:-1:-1;;;19474:91:0;;;;;;;;;-1:-1:-1;;;;;19584:17:0;;19576:89;;;;-1:-1:-1;;;19576:89:0;;;;;;;;;-1:-1:-1;;;;;19700:13:0;;;;;;:8;:13;;;;;;;;;;19694:87;;;;;;;;;;;;;;-1:-1:-1;;;;;19700:13:0;;;;19715:6;;19694:87;;;;;;;:5;:87::i;:::-;-1:-1:-1;;;;;19678:13:0;;;;;;;:8;:13;;;;;;;;:103;;-1:-1:-1;;;;;;19678:103:0;-1:-1:-1;;;;;19678:103:0;;;;;;19814:13;;;;;;;;;;19808:81;;;;;;;;;;;;;;19814:13;;;;;19829:6;;19808:81;;;;;;;;:5;:81::i;:::-;-1:-1:-1;;;;;19792:13:0;;;;;;;:8;:13;;;;;;;:97;;-1:-1:-1;;;;;;19792:97:0;-1:-1:-1;;;;;19792:97:0;;;;;;;;;;;19905:26;;;;;;;;;;19924:6;;19905:26;;;;;;;;;;-1:-1:-1;;;;;19959:14:0;;;;;;;:9;:14;;;;;;;19975;;;;;;;;19944:54;;19959:14;;;;19975;19991:6;19944:14;:54::i;:::-;19388:618;;;:::o;23049:442::-;-1:-1:-1;;;;;23124:21:0;;23116:68;;;;-1:-1:-1;;;23116:68:0;;;;;;;;;-1:-1:-1;;;;;23223:17:0;;;;;;:8;:17;;;;;;;;;;23217:71;;;;;;;;;;;;;;-1:-1:-1;;;;;23223:17:0;;;;23242:6;;23217:71;;;;;;;:5;:71::i;:::-;23197:8;:17;23206:7;-1:-1:-1;;;;;23197:17:0;-1:-1:-1;;;;;23197:17:0;;;;;;;;;;;;;:91;;;;;-1:-1:-1;;;;;23197:91:0;;;;;-1:-1:-1;;;;;23197:91:0;;;;;;23313:117;23319:58;23326:11;;23319:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;23379:6;23313:117;;;;;;;;;;;;;;;;;:5;:117::i;:::-;-1:-1:-1;;;;;23299:131:0;:11;:131;;;23446:37;;-1:-1:-1;;;;;23446:37:0;;;;;;;23476:6;;23446:37;;;;;;;;;;23049:442;;:::o;19005:375::-;-1:-1:-1;;;;;19108:20:0;;;19082:23;19108:20;;;:9;:20;;;;;;;;;;19165:8;:19;;;;;;19195:20;;;;:32;;;-1:-1:-1;;;;;;19195:32:0;;;;;;;19245:54;;19108:20;;;;;-1:-1:-1;;;;;19165:19:0;;;;19195:32;;19108:20;;;19245:54;;19082:23;19245:54;19312:60;19327:15;19344:9;19355:16;19312:14;:60::i;:::-;19005:375;;;;:::o;22308:153::-;22418:9;22308:153;:::o;22469:572::-;-1:-1:-1;;;;;22541:17:0;;22533:78;;;;-1:-1:-1;;;22533:78:0;;;;;;;;;22652:13;22668:56;22675:9;22668:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;22652:72;;22749:85;22756:33;22769:11;;22782:6;-1:-1:-1;;;;;22756:33:0;:12;:33::i;:::-;22749:85;;;;;;;;;;;;;;;;;:6;:85::i;:::-;-1:-1:-1;;;;;22735:99:0;;;:11;:99;;;-1:-1:-1;;;;;22918:13:0;;;;:8;:13;;;;;;;;;;22912:70;;;;;;;;;;;;;;22918:13;;;;;22933:6;;22912:70;;;;;;;;:5;:70::i;:::-;-1:-1:-1;;;;;22896:13:0;;;;;;:8;:13;;;;;;:86;;-1:-1:-1;;;;;;22896:86:0;-1:-1:-1;;;;;22896:86:0;;;;;;;;;;;22998:33;;22896:13;;;22998:33;;;;23024:6;;22998:33;;;;;;;;;;22469:572;;;:::o;21939:188::-;22025:6;22055:5;;;22087:12;-1:-1:-1;;;;;22079:6:0;;;;;;;;22071:29;;;;-1:-1:-1;;;22071:29:0;;;;;;;;;;-1:-1:-1;22118:1:0;21939:188;-1:-1:-1;;;;21939:188:0:o;20014:941::-;20119:6;-1:-1:-1;;;;;20109:16:0;:6;-1:-1:-1;;;;;20109:16:0;;;:30;;;;;20138:1;20129:6;-1:-1:-1;;;;;20129:10:0;;20109:30;20105:843;;;-1:-1:-1;;;;;20160:20:0;;;20156:383;;-1:-1:-1;;;;;20220:22:0;;20201:16;20220:22;;;:14;:22;;;;;;;;;20280:13;:60;;20339:1;20280:60;;;-1:-1:-1;;;;;20296:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;20316:13:0;;20296:34;;;;;;;;;:40;-1:-1:-1;;;20296:40:0;;-1:-1:-1;;;;;20296:40:0;20280:60;20261:79;;20359:16;20378:69;20384:9;20395:6;20378:69;;;;;;;;;;;;;;;;;:5;:69::i;:::-;20359:88;;20466:57;20483:6;20491:9;20502;20513;20466:16;:57::i;:::-;20156:383;;;;-1:-1:-1;;;;;20559:20:0;;;20555:382;;-1:-1:-1;;;;;20619:22:0;;20600:16;20619:22;;;:14;:22;;;;;;;;;20679:13;:60;;20738:1;20679:60;;;-1:-1:-1;;;;;20695:19:0;;;;;;:11;:19;;;;;;;;-1:-1:-1;;20715:13:0;;20695:34;;;;;;;;;:40;-1:-1:-1;;;20695:40:0;;-1:-1:-1;;;;;20695:40:0;20679:60;20660:79;;20758:16;20777:68;20783:9;20794:6;20777:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;20758:87;;20864:57;20881:6;20889:9;20900;20911;20864:16;:57::i;1163:181::-;1221:7;1253:5;;;1277:6;;;;1269:46;;;;-1:-1:-1;;;1269:46:0;;;;;;;;20963:630;21081:18;21102:77;21109:12;21102:77;;;;;;;;;;;;;;;;;:6;:77::i;:::-;21081:98;;21209:1;21194:12;:16;;;:85;;;;-1:-1:-1;;;;;;21214:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;21237:16:0;;21214:40;;;;;;;;;:50;:65;;;:50;;:65;21194:85;21190:329;;;-1:-1:-1;;;;;21294:22:0;;;;;;:11;:22;;;;;;;;-1:-1:-1;;21317:16:0;;21294:40;;;;;;;;;:57;;-1:-1:-1;;21294:57:0;-1:-1:-1;;;;;;;;21294:57:0;;;;;;21190:329;;;21419:33;;;;;;;;;;;;;;-1:-1:-1;;;;;21419:33:0;;;;;;;;;;-1:-1:-1;;;;;21380:22:0;;-1:-1:-1;21380:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;-1:-1:-1;;;21380:72:0;-1:-1:-1;;21380:72:0;;;-1:-1:-1;;21380:72:0;;;;;;;;;;;;;;;21465:25;;;:14;:25;;;;;;;:44;;21380:72;21493:16;;21465:44;;;;;;;;;;;;;21190:329;21555:9;-1:-1:-1;;;;;21534:51:0;;21566:8;21576;21534:51;;;;;;;;;;;;;;;;20963:630;;;;;:::o;21601:161::-;21676:6;21714:12;-1:-1:-1;;;21703:9:0;;21695:32;;;;-1:-1:-1;;;21695:32:0;;;;;;;;;6777:16717;;;;;;;;;;-1:-1:-1;6777:16717:0;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;293:336;;;407:3;400:4;392:6;388:17;384:27;374:2;;425:1;422;415:12;374:2;-1:-1;445:20;;485:18;474:30;;471:2;;;517:1;514;507:12;471:2;551:4;543:6;539:17;527:29;;602:3;594:4;586:6;582:17;572:8;568:32;565:41;562:2;;;619:1;616;609:12;562:2;367:262;;;;;;774:128;840:20;;865:32;840:20;865:32;;909:126;974:20;;999:31;974:20;999:31;;1042:241;;1146:2;1134:9;1125:7;1121:23;1117:32;1114:2;;;1162:1;1159;1152:12;1114:2;1197:1;1214:53;1259:7;1239:9;1214:53;;;1204:63;1108:175;-1:-1;;;;1108:175;1290:366;;;1411:2;1399:9;1390:7;1386:23;1382:32;1379:2;;;1427:1;1424;1417:12;1379:2;1462:1;1479:53;1524:7;1504:9;1479:53;;;1469:63;;1441:97;1569:2;1587:53;1632:7;1623:6;1612:9;1608:22;1587:53;;;1577:63;;1548:98;1373:283;;;;;;1663:491;;;;1801:2;1789:9;1780:7;1776:23;1772:32;1769:2;;;1817:1;1814;1807:12;1769:2;1852:1;1869:53;1914:7;1894:9;1869:53;;;1859:63;;1831:97;1959:2;1977:53;2022:7;2013:6;2002:9;1998:22;1977:53;;;1967:63;;1938:98;2067:2;2085:53;2130:7;2121:6;2110:9;2106:22;2085:53;;;2075:63;;2046:98;1763:391;;;;;;2161:991;;;;;;;;2365:3;2353:9;2344:7;2340:23;2336:33;2333:2;;;2382:1;2379;2372:12;2333:2;2417:1;2434:53;2479:7;2459:9;2434:53;;;2424:63;;2396:97;2524:2;2542:53;2587:7;2578:6;2567:9;2563:22;2542:53;;;2532:63;;2503:98;2632:2;2650:53;2695:7;2686:6;2675:9;2671:22;2650:53;;;2640:63;;2611:98;2740:2;2758:53;2803:7;2794:6;2783:9;2779:22;2758:53;;;2748:63;;2719:98;2848:3;2867:51;2910:7;2901:6;2890:9;2886:22;2867:51;;;2857:61;;2827:97;2955:3;2974:53;3019:7;3010:6;2999:9;2995:22;2974:53;;;2964:63;;2934:99;3064:3;3083:53;3128:7;3119:6;3108:9;3104:22;3083:53;;;3073:63;;3043:99;2327:825;;;;;;;;;;;3159:490;;;;3299:2;3287:9;3278:7;3274:23;3270:32;3267:2;;;3315:1;3312;3305:12;3267:2;3350:1;3367:53;3412:7;3392:9;3367:53;;;3357:63;;3329:97;3485:2;3474:9;3470:18;3457:32;3509:18;3501:6;3498:30;3495:2;;;3541:1;3538;3531:12;3495:2;3569:64;3625:7;3616:6;3605:9;3601:22;3569:64;;;3559:74;;;;3436:203;3261:388;;;;;;3656:366;;;3777:2;3765:9;3756:7;3752:23;3748:32;3745:2;;;3793:1;3790;3783:12;3745:2;3828:1;3845:53;3890:7;3870:9;3845:53;;;3835:63;;3807:97;3935:2;3953:53;3998:7;3989:6;3978:9;3974:22;3953:53;;4029:865;;;;;;;4216:3;4204:9;4195:7;4191:23;4187:33;4184:2;;;4233:1;4230;4223:12;4184:2;4268:1;4285:53;4330:7;4310:9;4285:53;;;4275:63;;4247:97;4375:2;4393:53;4438:7;4429:6;4418:9;4414:22;4393:53;;;4383:63;;4354:98;4483:2;4501:53;4546:7;4537:6;4526:9;4522:22;4501:53;;;4491:63;;4462:98;4591:2;4609:51;4652:7;4643:6;4632:9;4628:22;4609:51;;;4599:61;;4570:96;4697:3;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;;;4706:63;;4676:99;4806:3;4825:53;4870:7;4861:6;4850:9;4846:22;4825:53;;;4815:63;;4785:99;4178:716;;;;;;;;;4901:364;;;5021:2;5009:9;5000:7;4996:23;4992:32;4989:2;;;5037:1;5034;5027:12;4989:2;5072:1;5089:53;5134:7;5114:9;5089:53;;;5079:63;;5051:97;5179:2;5197:52;5241:7;5232:6;5221:9;5217:22;5197:52;;5272:241;;5376:2;5364:9;5355:7;5351:23;5347:32;5344:2;;;5392:1;5389;5382:12;5344:2;5427:1;5444:53;5489:7;5469:9;5444:53;;5520:113;5603:24;5621:5;5603:24;;;5598:3;5591:37;5585:48;;;5640:104;5717:21;5732:5;5717:21;;5751:113;5834:24;5852:5;5834:24;;5871:152;5972:45;5992:24;6010:5;5992:24;;;5972:45;;6030:347;;6142:39;6175:5;6142:39;;;6193:71;6257:6;6252:3;6193:71;;;6186:78;;6269:52;6314:6;6309:3;6302:4;6295:5;6291:16;6269:52;;;6342:29;6364:6;6342:29;;;6333:39;;;;6122:255;-1:-1;;;6122:255;6731:385;;6891:67;6955:2;6950:3;6891:67;;;6991:34;6971:55;;-1:-1;;;7055:2;7046:12;;7039:40;7107:2;7098:12;;6877:239;-1:-1;;6877:239;7125:398;;7303:84;7385:1;7380:3;7303:84;;;-1:-1;;;7400:87;;7515:1;7506:11;;7289:234;-1:-1;;7289:234;7532:327;;7692:67;7756:2;7751:3;7692:67;;;7792:29;7772:50;;7850:2;7841:12;;7678:181;-1:-1;;7678:181;7868:376;;8028:67;8092:2;8087:3;8028:67;;;8128:34;8108:55;;-1:-1;;;8192:2;8183:12;;8176:31;8235:2;8226:12;;8014:230;-1:-1;;8014:230;8253:332;;8413:67;8477:2;8472:3;8413:67;;;8513:34;8493:55;;8576:2;8567:12;;8399:186;-1:-1;;8399:186;8594:372;;8754:67;8818:2;8813:3;8754:67;;;8854:34;8834:55;;-1:-1;;;8918:2;8909:12;;8902:27;8957:2;8948:12;;8740:226;-1:-1;;8740:226;8975:327;;9135:67;9199:2;9194:3;9135:67;;;9235:29;9215:50;;9293:2;9284:12;;9121:181;-1:-1;;9121:181;9311:376;;9471:67;9535:2;9530:3;9471:67;;;9571:34;9551:55;;-1:-1;;;9635:2;9626:12;;9619:31;9678:2;9669:12;;9457:230;-1:-1;;9457:230;9696:492;;9874:85;9956:2;9951:3;9874:85;;;9992:34;9972:55;;10061:34;10056:2;10047:12;;10040:56;-1:-1;;;10125:2;10116:12;;10109:42;10179:2;10170:12;;9860:328;-1:-1;;9860:328;10197:377;;10357:67;10421:2;10416:3;10357:67;;;10457:34;10437:55;;-1:-1;;;10521:2;10512:12;;10505:32;10565:2;10556:12;;10343:231;-1:-1;;10343:231;10583:477;;10761:85;10843:2;10838:3;10761:85;;;10879:34;10859:55;;10948:34;10943:2;10934:12;;10927:56;-1:-1;;;11012:2;11003:12;;10996:27;11051:2;11042:12;;10747:313;-1:-1;;10747:313;11069:398;;11229:67;11293:2;11288:3;11229:67;;;11329:34;11309:55;;11398:31;11393:2;11384:12;;11377:53;11458:2;11449:12;;11215:252;-1:-1;;11215:252;11476:332;;11636:67;11700:2;11695:3;11636:67;;;11736:34;11716:55;;11799:2;11790:12;;11622:186;-1:-1;;11622:186;11817:314;;11977:67;12041:2;12036:3;11977:67;;;-1:-1;;;12057:37;;12122:2;12113:12;;11963:168;-1:-1;;11963:168;12140:396;;12300:67;12364:2;12359:3;12300:67;;;12400:34;12380:55;;12469:29;12464:2;12455:12;;12448:51;12527:2;12518:12;;12286:250;-1:-1;;12286:250;12545:371;;12705:67;12769:2;12764:3;12705:67;;;12805:34;12785:55;;-1:-1;;;12869:2;12860:12;;12853:26;12907:2;12898:12;;12691:225;-1:-1;;12691:225;12925:431;;13103:85;13185:2;13180:3;13103:85;;;13221:34;13201:55;;13290:28;13285:2;13276:12;;13269:50;13347:2;13338:12;;13089:267;-1:-1;;13089:267;13484:110;13565:23;13582:5;13565:23;;13601:107;13680:22;13696:5;13680:22;;13715:124;13797:36;13827:5;13797:36;;13846:110;13927:23;13944:5;13927:23;;13963:650;;14218:148;14362:3;14218:148;;;14211:155;;14377:75;14448:3;14439:6;14377:75;;;14474:2;14469:3;14465:12;14458:19;;14488:75;14559:3;14550:6;14488:75;;;-1:-1;14585:2;14576:12;;14199:414;-1:-1;;14199:414;14620:372;;14819:148;14963:3;14819:148;;14999:372;;15198:148;15342:3;15198:148;;15378:372;;15577:148;15721:3;15577:148;;15757:213;15875:2;15860:18;;15889:71;15864:9;15933:6;15889:71;;15977:201;16089:2;16074:18;;16103:65;16078:9;16141:6;16103:65;;16185:213;16303:2;16288:18;;16317:71;16292:9;16361:6;16317:71;;16405:771;16663:3;16648:19;;16678:71;16652:9;16722:6;16678:71;;;16760:72;16828:2;16817:9;16813:18;16804:6;16760:72;;;16843;16911:2;16900:9;16896:18;16887:6;16843:72;;;16926;16994:2;16983:9;16979:18;16970:6;16926:72;;;17009:73;17077:3;17066:9;17062:19;17053:6;17009:73;;;17093;17161:3;17150:9;17146:19;17137:6;17093:73;;;16634:542;;;;;;;;;;17183:547;17385:3;17370:19;;17400:71;17374:9;17444:6;17400:71;;;17482:72;17550:2;17539:9;17535:18;17526:6;17482:72;;;17565;17633:2;17622:9;17618:18;17609:6;17565:72;;;17648;17716:2;17705:9;17701:18;17692:6;17648:72;;;17356:374;;;;;;;;17737:547;17939:3;17924:19;;17954:71;17928:9;17998:6;17954:71;;;18036:72;18104:2;18093:9;18089:18;18080:6;18036:72;;;18119;18187:2;18176:9;18172:18;18163:6;18119:72;;;18202;18270:2;18259:9;18255:18;18246:6;18202:72;;18291:539;18489:3;18474:19;;18504:71;18478:9;18548:6;18504:71;;;18586:68;18650:2;18639:9;18635:18;18626:6;18586:68;;18837:293;18971:2;18985:47;;;18956:18;;19046:74;18956:18;19106:6;19046:74;;19445:407;19636:2;19650:47;;;19621:18;;19711:131;19621:18;19711:131;;19859:407;20050:2;20064:47;;;20035:18;;20125:131;20035:18;20125:131;;20273:407;20464:2;20478:47;;;20449:18;;20539:131;20449:18;20539:131;;20687:407;20878:2;20892:47;;;20863:18;;20953:131;20863:18;20953:131;;21101:407;21292:2;21306:47;;;21277:18;;21367:131;21277:18;21367:131;;21515:407;21706:2;21720:47;;;21691:18;;21781:131;21691:18;21781:131;;21929:407;22120:2;22134:47;;;22105:18;;22195:131;22105:18;22195:131;;22343:407;22534:2;22548:47;;;22519:18;;22609:131;22519:18;22609:131;;22757:407;22948:2;22962:47;;;22933:18;;23023:131;22933:18;23023:131;;23171:407;23362:2;23376:47;;;23347:18;;23437:131;23347:18;23437:131;;23585:407;23776:2;23790:47;;;23761:18;;23851:131;23761:18;23851:131;;23999:407;24190:2;24204:47;;;24175:18;;24265:131;24175:18;24265:131;;24413:407;24604:2;24618:47;;;24589:18;;24679:131;24589:18;24679:131;;25047:209;25163:2;25148:18;;25177:69;25152:9;25219:6;25177:69;;25263:316;25405:2;25390:18;;25419:69;25394:9;25461:6;25419:69;;;25499:70;25565:2;25554:9;25550:18;25541:6;25499:70;;25586:205;25700:2;25685:18;;25714:67;25689:9;25754:6;25714:67;;25798:211;25915:2;25900:18;;25929:70;25904:9;25972:6;25929:70;;26016:209;26132:2;26117:18;;26146:69;26121:9;26188:6;26146:69;;26232:320;26376:2;26361:18;;26390:70;26365:9;26433:6;26390:70;;;26471:71;26538:2;26527:9;26523:18;26514:6;26471:71;;26559:118;26643:12;;26614:63;26814:163;26917:19;;;26966:4;26957:14;;26910:67;26986:145;27122:3;27100:31;-1:-1;27100:31;27139:91;;27201:24;27219:5;27201:24;;27237:85;27303:13;27296:21;;27279:43;27329:72;27391:5;27374:27;27408:121;-1:-1;;;;;27470:54;;27453:76;27615:88;27687:10;27676:22;;27659:44;27710:81;27781:4;27770:16;;27753:38;27798:104;-1:-1;;;;;27859:38;;27842:60;27909:106;;27987:23;28004:5;27987:23;;28023:268;28088:1;28095:101;28109:6;28106:1;28103:13;28095:101;;;28176:11;;;28170:18;28157:11;;;28150:39;28131:2;28124:10;28095:101;;;28211:6;28208:1;28205:13;28202:2;;;-1:-1;;28276:1;28258:16;;28251:27;28072:219;28380:97;28468:2;28448:14;-1:-1;;28444:28;;28428:49;28485:117;28554:24;28572:5;28554:24;;;28547:5;28544:35;28534:2;;28593:1;28590;28583:12;28609:117;28678:24;28696:5;28678:24;;28857:115;28925:23;28942:5;28925:23;;28979:113;29046:22;29062:5;29046:22;

Swarm Source

bzzr://6fbb73905322d6fe560a494811880e9c468720793c15cc30d295d7985b1dab67
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.