Contract 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984

Contract Overview

Balance:
0 Ether

Token:
Txn Hash
Block
From
To
Value
0x1db13f27061a3ea98d04fb78c85dab1439216676607a7410b4bcbd9f16fdc55146161542021-04-14 6:04:5646 mins ago0x89f02e7135e2c693b54814bf1a43a5fa86251589 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000940892951.9999
0xf4023465e6464adeb4678c9d2b32344764beff7c2f215508057533e1dfde7ddd46155122021-04-14 3:24:173 hrs 27 mins ago0x9db8beecd429202a1dcfa4da2083e8f7b063889f IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000940892951.9999
0x73acbaf4d9495e7eb4415b862add1d13b484e717a94965c2d4eafabe40f1ef0446148832021-04-14 0:46:576 hrs 4 mins ago0x69f298492b268a7de631e672917bb8b87b039089 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000844077791.9999
0x0873874feebe616880103f905486a7290d54519513caf13bb42a1473c03bb17e46147342021-04-14 0:09:416 hrs 41 mins ago0x69f298492b268a7de631e672917bb8b87b039089 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000940892951.9999
0xeaf4637e12f8ca31ebdc14c6c000e4e3bd3be710aa9d431c7fbca7d347e7d66446141622021-04-13 21:46:389 hrs 4 mins ago0x9db8beecd429202a1dcfa4da2083e8f7b063889f IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0057182100
0x464f57f62976302318896e189e20ef836d1745791fd5ab76fde4ce5a49277c2346135542021-04-13 19:14:3311 hrs 36 mins ago0xe2fab4559bc774165728ce0e7b8f3330b26d66dc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000940892951.9999
0x0e86a672ab695c01df92b558bb9dd7e8f21c8a5bee3ef943b3de8374ee5c440946135252021-04-13 19:07:1711 hrs 44 mins ago0xe2fab4559bc774165728ce0e7b8f3330b26d66dc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.000114382281.9999
0x78c1e8c47781490990f0358943e39d359c0d079031ed6742e365223644e6194e46135072021-04-13 19:02:4711 hrs 48 mins ago0xe2fab4559bc774165728ce0e7b8f3330b26d66dc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000802079891.9999
0x56908db756fde43ba849c848adc14c43546abdadd742b04d8d84e228465157ac46135022021-04-13 19:01:3211 hrs 49 mins ago0xe2fab4559bc774165728ce0e7b8f3330b26d66dc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0001144062791.9999
0xd5d7938876a31b7fabaa5a2c4afe08a4f55b02db059e33ba7a43a0e61ce85abc46134992021-04-13 19:00:4711 hrs 50 mins ago0xe2fab4559bc774165728ce0e7b8f3330b26d66dc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0001144062791.9999
0x16afd3078118d792873e8b8619598da31378e2acf4aa72e52f48222ed23081e246134942021-04-13 18:59:3211 hrs 51 mins ago0xe2fab4559bc774165728ce0e7b8f3330b26d66dc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0001144062791.9999
0x041e155bae0687f555ba2a174903a94a4eada781fbde7a851dfb043a1367e91946110542021-04-13 8:49:1022 hrs 2 mins ago0xf69cf9c86c20aee385e700b74c2bf316e585d852 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.00516274110
0x259e4c609199fafbf556285cdb54792b08bc1e49447add53ad90b33e1fe187a146110472021-04-13 8:47:2522 hrs 3 mins ago0xf69cf9c86c20aee385e700b74c2bf316e585d852 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.00251757110
0x8b6b2d2fb23edcf182b6cb27644f47bc634e139d103e700987b55999f050380c46110432021-04-13 8:46:2522 hrs 4 mins ago0xf69cf9c86c20aee385e700b74c2bf316e585d852 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.00251757110
0x35e9c7139b9693bb19491fbe67f15c857e79f56ff8f6b001c2d60c90139356ad46110212021-04-13 8:40:5522 hrs 10 mins ago0xf69cf9c86c20aee385e700b74c2bf316e585d852 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.002571093111
0x3305549bb3af187c55f75b627d49f8f558dd44a8cb9da89cbb85e61c0aff271246109052021-04-13 8:11:5322 hrs 39 mins ago0xa1eb0f1f494854a6087cfb079d9ca81101273bbc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0001425255
0xc21e465e8d20ba7f7b5cee1e47dd00e8b849d26287a999dbd9e072df12b3bf7a46108992021-04-13 8:10:2322 hrs 40 mins ago0xa1eb0f1f494854a6087cfb079d9ca81101273bbc IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0001914619291.99987392
0xa196afe53188f91d53263c9529be20c83c2486993a9317de48172abba8d8672346089452021-04-13 0:01:281 day 6 hrs ago0x80bcb012f86168e1168e61693d181a721da929c2 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0001143882
0xc6c36515ae03376b197272d2eb52a2fb7a307fec9c275e7cde2a436537160a1d46056552021-04-12 10:18:111 day 20 hrs ago0x79697689e16f831ba308afc79820c2a69dc45a39 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000470471
0x6adbdeece2a976462471d5c55bea16129a0051d3dac53a33109613e04512210146052922021-04-12 8:47:201 day 22 hrs ago0xcf7dc88f42aa279bd474bd150fa843e6511f87ff IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000470471
0xa97e0d45c027b56f93053ebeb21e97364c4fd907ccb653d4535a291a39a6a0c846044112021-04-12 5:06:582 days 1 hr ago0x71fdd16d7425ffa5c578542910e7888013c39f2c IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000470471
0xe4bff4f9539b4c69e2279b06e281bd067a32890e815caf88929bc88e8d318a2e46043132021-04-12 4:42:282 days 2 hrs ago0xcf7dc88f42aa279bd474bd150fa843e6511f87ff IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.0000899631
0x98850ca10d01a9118c703b1cc874233d6e45953d31e312fbf8d1177f9a59c9aa46022792021-04-11 20:13:482 days 10 hrs ago0xcf7dc88f42aa279bd474bd150fa843e6511f87ff IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.00003705651.3
0xe81d8cf4194607e98fd9e23950f498e315cd5b1d8708fb56a73f033c194a959f46022752021-04-11 20:12:482 days 10 hrs ago0xcf7dc88f42aa279bd474bd150fa843e6511f87ff IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether0.00012445811.3
0x4933e2a29f2f0d9f6ef8eaeb8b4ae8eea23b9956cfd7afc79ce4db32715ac06d46005512021-04-11 13:01:362 days 17 hrs ago0x1632589a334507440d55de872dc18d14f3a14a44 IN  0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840.001 Ether0.00004622.2
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe115eb5a34cc844bd30f53605ca7b34cca1475488c8579d65583c3a996c0524e46161602021-04-14 6:06:2644 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xe115eb5a34cc844bd30f53605ca7b34cca1475488c8579d65583c3a996c0524e46161602021-04-14 6:06:2644 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x47b2cae30da2088ca559033534a84e2d8f6d120a30434e08336106cc63df93f546161072021-04-14 5:53:1058 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x47b2cae30da2088ca559033534a84e2d8f6d120a30434e08336106cc63df93f546161072021-04-14 5:53:1058 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x1c982157277abe955a9f02a7f3f93b0c64e7b4075e7eea172b2b303fe4e37c6646155522021-04-14 3:34:173 hrs 17 mins ago 0x87caafb0cb8007268be0b5750c5fc92e691d5cc9 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x1c982157277abe955a9f02a7f3f93b0c64e7b4075e7eea172b2b303fe4e37c6646155522021-04-14 3:34:173 hrs 17 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xb12319cb910fa656184529721dd00fbaaeeb7f1ebe8905b081dc5963754f83cb46155422021-04-14 3:31:473 hrs 19 mins ago 0x69ee647677217948eeea293d1f490ba530a3643f 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xb12319cb910fa656184529721dd00fbaaeeb7f1ebe8905b081dc5963754f83cb46155422021-04-14 3:31:473 hrs 19 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x5e3802bb837f0523084275c835551acb364085a45b546c5ac98afa74f69c856546154412021-04-14 3:06:323 hrs 44 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x5e3802bb837f0523084275c835551acb364085a45b546c5ac98afa74f69c856546154412021-04-14 3:06:323 hrs 44 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xbcbf8a4b6efeb4a099ca4b2fb4dca4d40ffc59cd0d78ac2334e0ccf5f07f7ce046150322021-04-14 1:24:125 hrs 27 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xbcbf8a4b6efeb4a099ca4b2fb4dca4d40ffc59cd0d78ac2334e0ccf5f07f7ce046150322021-04-14 1:24:125 hrs 27 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xc194a6a2984aae5e5cf43255d903aaa6bb5e8e759fcd217c9c7fdb8d1437ca4846150202021-04-14 1:21:125 hrs 30 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xc194a6a2984aae5e5cf43255d903aaa6bb5e8e759fcd217c9c7fdb8d1437ca4846150202021-04-14 1:21:125 hrs 30 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x2e2234f1124c4e71b489e37a5ff1a70c4eb0a91ebf6f7169e4c5243db1b6bd5646148992021-04-14 0:50:576 hrs ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x2e2234f1124c4e71b489e37a5ff1a70c4eb0a91ebf6f7169e4c5243db1b6bd5646148992021-04-14 0:50:576 hrs ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x30bb6bcd2d65b2473518317c7bad83ca5ccb618667491db52f7a67f0313be02046147122021-04-14 0:04:116 hrs 47 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x30bb6bcd2d65b2473518317c7bad83ca5ccb618667491db52f7a67f0313be02046147122021-04-14 0:04:116 hrs 47 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x8469c17874cde4dce03647fa6a4b50beb90aa0d2d919c7e0c9dc0a9137b7ae4946140422021-04-13 21:16:379 hrs 34 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x8469c17874cde4dce03647fa6a4b50beb90aa0d2d919c7e0c9dc0a9137b7ae4946140422021-04-13 21:16:379 hrs 34 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xf776da7e56cf5f70225eb141a82afc4cc116a9d9e4993650f74bfb63b605588746140382021-04-13 21:15:379 hrs 35 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xf776da7e56cf5f70225eb141a82afc4cc116a9d9e4993650f74bfb63b605588746140382021-04-13 21:15:379 hrs 35 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x2b252cab9eed3393fdc789d377f6b779638faccbc4dde23da011ac2d3459e1b946140332021-04-13 21:14:229 hrs 37 mins ago 0x28cee28a7c4b4022ac92685c07d2f33ab1a0e122 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0x2b252cab9eed3393fdc789d377f6b779638faccbc4dde23da011ac2d3459e1b946140332021-04-13 21:14:229 hrs 37 mins ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
0xdec0b7353ea1d5b701b5d4f7f07466bb3d53c805bd1889786acce92ca81c5ce246139592021-04-13 20:55:519 hrs 55 mins ago 0x133946489d23c0d2e2a9b8f045057a5f0d4ca08b 0x1f9840a85d5af5bf1d1762f925bdaddc4201f9840 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Uni

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *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 Uni {
    /// @notice EIP-20 token name for this token
    string public constant name = "Uniswap";

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

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

    /// @notice Total number of tokens in circulation
    uint public totalSupply = 1_000_000_000e18; // 1 billion Uni

    /// @notice Address which may mint new tokens
    address public minter;

    /// @notice The timestamp after which minting may occur
    uint public mintingAllowedAfter;

    /// @notice Minimum time between mints
    uint32 public constant minimumTimeBetweenMints = 1 days * 365;

    /// @notice Cap on the percentage of totalSupply that can be minted at each mint
    uint8 public constant mintCap = 2;

    /// @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;

    /// @notice An event thats emitted when the minter address is changed
    event MinterChanged(address minter, address newMinter);

    /// @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 Uni token
     * @param account The initial account to grant all the tokens
     * @param minter_ The account with minting ability
     * @param mintingAllowedAfter_ The timestamp after which minting may occur
     */
    constructor(address account, address minter_, uint mintingAllowedAfter_) public {
        require(mintingAllowedAfter_ >= block.timestamp, "Uni::constructor: minting can only begin after deployment");

        balances[account] = uint96(totalSupply);
        emit Transfer(address(0), account, totalSupply);
        minter = minter_;
        emit MinterChanged(address(0), minter);
        mintingAllowedAfter = mintingAllowedAfter_;
    }

    /**
     * @notice Change the minter address
     * @param minter_ The address of the new minter
     */
    function setMinter(address minter_) external {
        require(msg.sender == minter, "Uni::setMinter: only the minter can change the minter address");
        emit MinterChanged(minter, minter_);
        minter = minter_;
    }

    /**
     * @notice Mint new tokens
     * @param dst The address of the destination account
     * @param rawAmount The number of tokens to be minted
     */
    function mint(address dst, uint rawAmount) external {
        require(msg.sender == minter, "Uni::mint: only the minter can mint");
        require(block.timestamp >= mintingAllowedAfter, "Uni::mint: minting not allowed yet");
        require(dst != address(0), "Uni::mint: cannot transfer to the zero address");

        // record the mint
        mintingAllowedAfter = SafeMath.add(block.timestamp, minimumTimeBetweenMints);

        // mint the amount
        uint96 amount = safe96(rawAmount, "Uni::mint: amount exceeds 96 bits");
        require(amount <= SafeMath.div(SafeMath.mul(totalSupply, mintCap), 100), "Uni::mint: exceeded mint cap");
        totalSupply = safe96(SafeMath.add(totalSupply, amount), "Uni::mint: totalSupply exceeds 96 bits");

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

        // move delegates
        _moveDelegates(address(0), delegates[dst], 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, "Uni::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, "Uni::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), "Uni::permit: invalid signature");
        require(signatory == owner, "Uni::permit: unauthorized");
        require(now <= deadline, "Uni::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, "Uni::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, "Uni::approve: amount exceeds 96 bits");

        if (spender != src && spenderAllowance != uint96(-1)) {
            uint96 newAllowance = sub96(spenderAllowance, amount, "Uni::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), "Uni::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "Uni::delegateBySig: invalid nonce");
        require(now <= expiry, "Uni::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, "Uni::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), "Uni::_transferTokens: cannot transfer from the zero address");
        require(dst != address(0), "Uni::_transferTokens: cannot transfer to the zero address");

        balances[src] = sub96(balances[src], amount, "Uni::_transferTokens: transfer amount exceeds balance");
        balances[dst] = add96(balances[dst], amount, "Uni::_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, "Uni::_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, "Uni::_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, "Uni::_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;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"minter_","type":"address"},{"internalType":"uint256","name":"mintingAllowedAfter_","type":"uint256"}],"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":false,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"address","name":"newMinter","type":"address"}],"name":"MinterChanged","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":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":"minimumTimeBetweenMints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintCap","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingAllowedAfter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":false,"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMinter","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"}]

60806040526b033b2e3c9fd0803ce80000006000553480156200002157600080fd5b506040516200341338038062003413833981016040819052620000449162000171565b42811015620000705760405162461bcd60e51b8152600401620000679062000273565b60405180910390fd5b600080546001600160a01b0385168083526004602052604080842080546001600160601b0319166001600160601b0390941693909317909255825491519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000de919062000285565b60405180910390a3600180546001600160a01b0319166001600160a01b0384811691909117918290556040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6926200013d926000929116906200024d565b60405180910390a160025550620002ec9050565b80516200015e81620002c7565b92915050565b80516200015e81620002e1565b6000806000606084860312156200018757600080fd5b600062000195868662000151565b9350506020620001a88682870162000151565b9250506040620001bb8682870162000164565b9150509250925092565b620001d081620002b3565b82525050565b620001d0816200029e565b6000620001f060398362000295565b7f556e693a3a636f6e7374727563746f723a206d696e74696e672063616e206f6e81527f6c7920626567696e206166746572206465706c6f796d656e7400000000000000602082015260400192915050565b620001d081620002b0565b604081016200025d8285620001c5565b6200026c6020830184620001d6565b9392505050565b602080825281016200015e81620001e1565b602081016200015e828462000242565b90815260200190565b60006001600160a01b0382166200015e565b90565b60006200015e8260006200015e826200029e565b620002d2816200029e565b8114620002de57600080fd5b50565b620002d281620002b0565b61311780620002fc6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636fcfff45116100f9578063b4b5ea5711610097578063dd62ed3e11610071578063dd62ed3e1461036b578063e7a324dc1461037e578063f1127ed814610386578063fca3b5aa146103a7576101b9565b8063b4b5ea5714610332578063c3cda52014610345578063d505accf14610358576101b9565b8063782d6fe1116100d3578063782d6fe1146102e45780637ecebe001461030457806395d89b4114610317578063a9059cbb1461031f576101b9565b80636fcfff45146102b657806370a08231146102c957806376c71ca1146102dc576101b9565b806330adf81f1161016657806340c10f191161014057806340c10f1914610266578063587cde1e1461027b5780635c11d62f1461028e5780635c19a95c146102a3576101b9565b806330adf81f1461024157806330b36cef14610249578063313ce56714610251576101b9565b806318160ddd1161019757806318160ddd1461021157806320606b701461022657806323b872dd1461022e576101b9565b806306fdde03146101be57806307546172146101dc578063095ea7b3146101f1575b600080fd5b6101c66103ba565b6040516101d39190612c72565b60405180910390f35b6101e46103f3565b6040516101d39190612b45565b6102046101ff3660046122aa565b61040f565b6040516101d39190612b6e565b610219610534565b6040516101d39190612b7c565b61021961053a565b61020461023c3660046121c1565b610551565b6102196106f5565b610219610701565b610259610707565b6040516101d39190612dac565b6102796102743660046122aa565b61070c565b005b6101e4610289366004612161565b6109fc565b610296610a24565b6040516101d39190612d83565b6102796102b1366004612161565b610a2c565b6102966102c4366004612161565b610a39565b6102196102d7366004612161565b610a51565b610259610a87565b6102f76102f23660046122aa565b610a8c565b6040516101d39190612dc8565b610219610312366004612161565b610d6e565b6101c6610d80565b61020461032d3660046122aa565b610db9565b6102f7610340366004612161565b610df5565b6102796103533660046122da565b610ea3565b61027961036636600461220e565b611128565b610219610379366004612187565b61155d565b6102196115a3565b610399610394366004612361565b6115af565b6040516101d3929190612d91565b6102796103b5366004612161565b6115ea565b6040518060400160405280600781526020017f556e69737761700000000000000000000000000000000000000000000000000081525081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561046157507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610486565b61048383604051806060016040528060248152602001613082602491396116d6565b90505b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891680855292529182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610520908590612dba565b60405180910390a360019150505b92915050565b60005481565b60405161054690612b2f565b604051809103902081565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602090815260408083203380855290835281842054825160608101909352602480845291936bffffffffffffffffffffffff9091169285926105bb9288929190613082908301396116d6565b90508673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561060757506bffffffffffffffffffffffff82811614155b156106db57600061063183836040518060600160405280603c8152602001612f02603c9139611728565b73ffffffffffffffffffffffffffffffffffffffff8981166000818152600360209081526040808320948a16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff86161790555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106d1908590612dba565b60405180910390a3505b6106e687878361178b565b600193505050505b9392505050565b60405161054690612b24565b60025481565b601281565b60015473ffffffffffffffffffffffffffffffffffffffff163314610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d13565b60405180910390fd5b6002544210156107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cd3565b73ffffffffffffffffffffffffffffffffffffffff82166107ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cc3565b6107fd426301e133806119f2565b600281905550600061082782604051806060016040528060218152602001613061602191396116d6565b905061084361083c600054600260ff16611a31565b6064611a85565b816bffffffffffffffffffffffff16111561088a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d03565b6108c56108a7600054836bffffffffffffffffffffffff166119f2565b604051806060016040528060268152602001612f3e602691396116d6565b6bffffffffffffffffffffffff908116600090815573ffffffffffffffffffffffffffffffffffffffff85168152600460209081526040918290205482516060810190935260248084526109299491909116928592909190612ede90830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff841660008181526004602052604080822080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff959095169490941790935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109bd908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408120546109f7921683611b22565b505050565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6301e1338081565b610a363382611d69565b50565b60076020526000908152604090205463ffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600460205260409020546bffffffffffffffffffffffff1690565b600281565b6000438210610ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cb3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604090205463ffffffff1680610b0257600091505061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860181168552925290912054168310610bda5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9490940163ffffffff168352929052205464010000000090046bffffffffffffffffffffffff16905061052e565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832083805290915290205463ffffffff16831015610c2257600091505061052e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8163ffffffff168163ffffffff161115610d1657600282820363ffffffff16048103610c7261211e565b5073ffffffffffffffffffffffffffffffffffffffff8716600090815260066020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff169181019190915290871415610cf15760200151945061052e9350505050565b805163ffffffff16871115610d0857819350610d0f565b6001820392505b5050610c48565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b60086020526000908152604090205481565b6040518060400160405280600381526020017f554e49000000000000000000000000000000000000000000000000000000000081525081565b600080610dde8360405180606001604052806025815260200161303c602591396116d6565b9050610deb33858361178b565b5060019392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205463ffffffff1680610e2d5760006106ee565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff169392505050565b6000604051610eb190612b2f565b60408051918290038220828201909152600782527f556e6973776170000000000000000000000000000000000000000000000000006020909201919091527f99c45e8ee5dde061ced9c812089094fbd28a020e7e37f2851198887e5ca64985610f18611e1d565b30604051602001610f2c9493929190612c22565b6040516020818303038152906040528051906020012090506000604051610f5290612b3a565b604051908190038120610f6d918a908a908a90602001612be4565b60405160208183030381529060405280519060200120905060008282604051602001610f9a929190612af3565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610fd79493929190612c57565b6020604051602081039080840390855afa158015610ff9573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ca3565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080546001810190915589146110d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d33565b87421115611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c83565b61111b818b611d69565b505050505b505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86141561117957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61119e565b61119b86604051806060016040528060238152602001612f99602391396116d6565b90505b60006040516111ac90612b2f565b60408051918290038220828201909152600782527f556e6973776170000000000000000000000000000000000000000000000000006020909201919091527f99c45e8ee5dde061ced9c812089094fbd28a020e7e37f2851198887e5ca64985611213611e1d565b306040516020016112279493929190612c22565b604051602081830303815290604052805190602001209050600060405161124d90612b24565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff8d1660009081526008602090815292902080546001810190915561129c9391928e928e928e9290918e9101612b8a565b604051602081830303815290604052805190602001209050600082826040516020016112c9929190612af3565b6040516020818303038152906040528051906020012090506000600182898989604051600081526020016040526040516113069493929190612c57565b6020604051602081039080840390855afa158015611328573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d63565b8b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d73565b8842111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d53565b84600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115479190612dba565b60405180910390a3505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526003602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b60405161054690612b3a565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b60015473ffffffffffffffffffffffffffffffffffffffff16331461163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d23565b6001546040517f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6916116879173ffffffffffffffffffffffffffffffffffffffff909116908490612b53565b60405180910390a1600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000816c010000000000000000000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b509192915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166117d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612d43565b73ffffffffffffffffffffffffffffffffffffffff8216611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612ce3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020908152604091829020548251606081019093526035808452611882936bffffffffffffffffffffffff9092169285929190612f6490830139611728565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff96871617905592861682529082902054825160608101909352602f80845261191494919091169285929091906130a690830139611ac7565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ab908590612dba565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff8084166000908152600560205260408082205485841683529120546109f792918216911683611b22565b6000828201838110156106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612c93565b600082611a405750600061052e565b82820282848281611a4d57fe5b04146106ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612cf3565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e21565b6000838301826bffffffffffffffffffffffff8087169083161015611b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6c57506000816bffffffffffffffffffffffff16115b156109f75773ffffffffffffffffffffffffffffffffffffffff831615611c6f5773ffffffffffffffffffffffffffffffffffffffff831660009081526007602052604081205463ffffffff169081611bc6576000611c36565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611c5d828560405180606001604052806027815260200161301560279139611728565b9050611c6b86848484611e72565b5050505b73ffffffffffffffffffffffffffffffffffffffff8216156109f75773ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604081205463ffffffff169081611cc4576000611d34565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff860163ffffffff16845290915290205464010000000090046bffffffffffffffffffffffff165b90506000611d5b8285604051806060016040528060268152602001612fbc60269139611ac7565b905061112085848484611e72565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260056020818152604080842080546004845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611e17828483611b22565b50505050565b4690565b60008183611e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b506000838581611e6857fe5b0495945050505050565b6000611e9643604051806060016040528060338152602001612fe2603391396120dc565b905060008463ffffffff16118015611f0a575073ffffffffffffffffffffffffffffffffffffffff8516600090815260066020908152604080832063ffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8901811685529252909120548282169116145b15611fa95773ffffffffffffffffffffffffffffffffffffffff851660009081526006602090815260408083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff880163ffffffff168452909152902080547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff166401000000006bffffffffffffffffffffffff851602179055612085565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000818152600683528781208c871682528352878120965187549451909516640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff9587167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000958616179590951694909417909555938252600790935292909220805460018801909316929091169190911790555b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516120cd929190612dd6565b60405180910390a25050505050565b6000816401000000008410611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d9190612c72565b604080518082019091526000808252602082015290565b803561052e81612eae565b803561052e81612ec2565b803561052e81612ecb565b803561052e81612ed4565b60006020828403121561217357600080fd5b600061217f8484612135565b949350505050565b6000806040838503121561219a57600080fd5b60006121a68585612135565b92505060206121b785828601612135565b9150509250929050565b6000806000606084860312156121d657600080fd5b60006121e28686612135565b93505060206121f386828701612135565b925050604061220486828701612140565b9150509250925092565b600080600080600080600060e0888a03121561222957600080fd5b60006122358a8a612135565b97505060206122468a828b01612135565b96505060406122578a828b01612140565b95505060606122688a828b01612140565b94505060806122798a828b01612156565b93505060a061228a8a828b01612140565b92505060c061229b8a828b01612140565b91505092959891949750929550565b600080604083850312156122bd57600080fd5b60006122c98585612135565b92505060206121b785828601612140565b60008060008060008060c087890312156122f357600080fd5b60006122ff8989612135565b965050602061231089828a01612140565b955050604061232189828a01612140565b945050606061233289828a01612156565b935050608061234389828a01612140565b92505060a061235489828a01612140565b9150509295509295509295565b6000806040838503121561237457600080fd5b60006123808585612135565b92505060206121b78582860161214b565b61239a81612e03565b82525050565b61239a81612e0e565b61239a81612e13565b61239a6123be82612e13565b612e13565b60006123ce82612df1565b6123d88185612df5565b93506123e8818560208601612e5a565b6123f181612e86565b9093019392505050565b6000612408602583612df5565b7f556e693a3a64656c656761746542795369673a207369676e617475726520657881527f7069726564000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612467600283612dfe565b7f1901000000000000000000000000000000000000000000000000000000000000815260020192915050565b60006124a0601b83612df5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006124d9602583612df5565b7f556e693a3a64656c656761746542795369673a20696e76616c6964207369676e81527f6174757265000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612538602683612df5565b7f556e693a3a6765745072696f72566f7465733a206e6f7420796574206465746581527f726d696e65640000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612597602e83612df5565b7f556e693a3a6d696e743a2063616e6e6f74207472616e7366657220746f20746881527f65207a65726f2061646472657373000000000000000000000000000000000000602082015260400192915050565b60006125f6605283612dfe565b7f5065726d69742861646472657373206f776e65722c616464726573732073706581527f6e6465722c75696e743235362076616c75652c75696e74323536206e6f6e636560208201527f2c75696e7432353620646561646c696e65290000000000000000000000000000604082015260520192915050565b600061267b602283612df5565b7f556e693a3a6d696e743a206d696e74696e67206e6f7420616c6c6f776564207981527f6574000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006126da604383612dfe565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201527f6374290000000000000000000000000000000000000000000000000000000000604082015260430192915050565b600061275f603983612df5565b7f556e693a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e7366657220746f20746865207a65726f206164647265737300000000000000602082015260400192915050565b60006127be602183612df5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061281d601c83612df5565b7f556e693a3a6d696e743a206578636565646564206d696e742063617000000000815260200192915050565b6000612856602383612df5565b7f556e693a3a6d696e743a206f6e6c7920746865206d696e7465722063616e206d81527f696e740000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006128b5603d83612df5565b7f556e693a3a7365744d696e7465723a206f6e6c7920746865206d696e7465722081527f63616e206368616e676520746865206d696e7465722061646472657373000000602082015260400192915050565b6000612914602183612df5565b7f556e693a3a64656c656761746542795369673a20696e76616c6964206e6f6e6381527f6500000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000612973603b83612df5565b7f556e693a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726181527f6e736665722066726f6d20746865207a65726f20616464726573730000000000602082015260400192915050565b60006129d2601e83612df5565b7f556e693a3a7065726d69743a207369676e617475726520657870697265640000815260200192915050565b6000612a0b603a83612dfe565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6000612a6a601e83612df5565b7f556e693a3a7065726d69743a20696e76616c6964207369676e61747572650000815260200192915050565b6000612aa3601983612df5565b7f556e693a3a7065726d69743a20756e617574686f72697a656400000000000000815260200192915050565b61239a81612e2f565b61239a81612e38565b61239a81612e4f565b61239a81612e3e565b6000612afe8261245a565b9150612b0a82856123b2565b602082019150612b1a82846123b2565b5060200192915050565b600061052e826125e9565b600061052e826126cd565b600061052e826129fe565b6020810161052e8284612391565b60408101612b618285612391565b6106ee6020830184612391565b6020810161052e82846123a0565b6020810161052e82846123a9565b60c08101612b9882896123a9565b612ba56020830188612391565b612bb26040830187612391565b612bbf60608301866123a9565b612bcc60808301856123a9565b612bd960a08301846123a9565b979650505050505050565b60808101612bf282876123a9565b612bff6020830186612391565b612c0c60408301856123a9565b612c1960608301846123a9565b95945050505050565b60808101612c3082876123a9565b612c3d60208301866123a9565b612c4a60408301856123a9565b612c196060830184612391565b60808101612c6582876123a9565b612bff6020830186612ad8565b602080825281016106ee81846123c3565b6020808252810161052e816123fb565b6020808252810161052e81612493565b6020808252810161052e816124cc565b6020808252810161052e8161252b565b6020808252810161052e8161258a565b6020808252810161052e8161266e565b6020808252810161052e81612752565b6020808252810161052e816127b1565b6020808252810161052e81612810565b6020808252810161052e81612849565b6020808252810161052e816128a8565b6020808252810161052e81612907565b6020808252810161052e81612966565b6020808252810161052e816129c5565b6020808252810161052e81612a5d565b6020808252810161052e81612a96565b6020810161052e8284612acf565b60408101612d9f8285612acf565b6106ee6020830184612aea565b6020810161052e8284612ad8565b6020810161052e8284612ae1565b6020810161052e8284612aea565b60408101612de48285612ae1565b6106ee6020830184612ae1565b5190565b90815260200190565b919050565b600061052e82612e16565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b60ff1690565b6bffffffffffffffffffffffff1690565b600061052e82612e3e565b60005b83811015612e75578181015183820152602001612e5d565b83811115611e175750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b612eb781612e03565b8114610a3657600080fd5b612eb781612e13565b612eb781612e2f565b612eb781612e3856fe556e693a3a6d696e743a207472616e7366657220616d6f756e74206f766572666c6f7773556e693a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365556e693a3a6d696e743a20746f74616c537570706c7920657863656564732039362062697473556e693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365556e693a3a7065726d69743a20616d6f756e7420657863656564732039362062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773556e693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773556e693a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473556e693a3a6d696e743a20616d6f756e7420657863656564732039362062697473556e693a3a617070726f76653a20616d6f756e7420657863656564732039362062697473556e693a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773a365627a7a7231582068d42e51eae03f461fed8d2db904ba521e900521e0a2199b4a57d733502ad3da6c6578706572696d656e74616cf564736f6c6343000510004000000000000000000000000041653c7d61609d856f29355e404f310ec4142cfb00000000000000000000000041653c7d61609d856f29355e404f310ec4142cfb0000000000000000000000000000000000000000000000000000000065920080

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

00000000000000000000000041653c7d61609d856f29355e404f310ec4142cfb00000000000000000000000041653c7d61609d856f29355e404f310ec4142cfb0000000000000000000000000000000000000000000000000000000065920080

-----Decoded View---------------
Arg [0] : account (address): 0x41653c7d61609d856f29355e404f310ec4142cfb
Arg [1] : minter_ (address): 0x41653c7d61609d856f29355e404f310ec4142cfb
Arg [2] : mintingAllowedAfter_ (uint256): 1704067200

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000041653c7d61609d856f29355e404f310ec4142cfb
Arg [1] : 00000000000000000000000041653c7d61609d856f29355e404f310ec4142cfb
Arg [2] : 0000000000000000000000000000000000000000000000000000000065920080


Deployed ByteCode Sourcemap

6635:17152:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6635:17152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6705:39;;;:::i;:::-;;;;;;;;;;;;;;;;7123:21;;;:::i;:::-;;;;;;;;13043:418;;;;;;;;;:::i;:::-;;;;;;;;7004:42;;;:::i;:::-;;;;;;;;8352:122;;;:::i;16123:670::-;;;;;;;;;:::i;8775:137::-;;;:::i;7214:31::-;;;:::i;6905:35::-;;;:::i;:::-;;;;;;;;11067:1058;;;;;;;;;:::i;:::-;;7802:45;;;;;;;;;:::i;7298:61::-;;;:::i;:::-;;;;;;;;16941:102;;;;;;;;;:::i;8230:49::-;;;;;;;;;:::i;15204:108::-;;;;;;;;;:::i;7454:33::-;;;:::i;19117:1217::-;;;;;;;;;:::i;:::-;;;;;;;;8993:39;;;;;;;;;:::i;6805:37::-;;;:::i;15576:237::-;;;;;;;;;:::i;18464:222::-;;;;;;;;;:::i;17477:786::-;;;;;;;;;:::i;13951:1050::-;;;;;;;;;:::i;12429:136::-;;;;;;;;;:::i;8568:117::-;;;:::i;8091:70::-;;;;;;;;;:::i;:::-;;;;;;;;;10661:231;;;;;;;;;:::i;6705:39::-;;;;;;;;;;;;;;;;;;;:::o;7123:21::-;;;;;;:::o;13043:418::-;13111:4;13128:13;13174:2;13156:9;:21;13152:172;;;-1:-1:-1;13210:2:0;13152:172;;;13255:57;13262:9;13255:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;13246:66;;13152:172;13347:10;13336:22;;;;:10;:22;;;;;;;;;:31;;;;;;;;;;;:40;;;;;;;;;;13394:37;;13336:31;;13347:10;13394:37;;;;13336:40;;13394:37;;;;;;;;;;13449:4;13442:11;;;13043:418;;;;;:::o;7004:42::-;;;;:::o;8352:122::-;8394:80;;;;;;;;;;;;;;8352:122;:::o;16123:670::-;16287:15;;;16205:4;16287:15;;;:10;:15;;;;;;;;16240:10;16287:24;;;;;;;;;;16338:57;;;;;;;;;;;;16240:10;;16287:24;;;;;16205:4;;16338:57;;16345:9;;16338:57;;;;;;;:6;:57::i;:::-;16322:73;;16423:3;16412:14;;:7;:14;;;;:48;;;;-1:-1:-1;16430:30:0;;;;;;16412:48;16408:310;;;16477:19;16499:95;16505:16;16523:6;16499:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;16609:15;;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;;:39;;;;;;;;;;16670:36;16609:39;;-1:-1:-1;16609:24:0;;16670:36;;;;16609:39;;16670:36;;;;;;;;;;16408:310;;16730:33;16746:3;16751;16756:6;16730:15;:33::i;:::-;16781:4;16774:11;;;;;16123:670;;;;;;:::o;8775:137::-;8817:95;;;;;;7214:31;;;;:::o;6905:35::-;6938:2;6905:35;:::o;11067:1058::-;11152:6;;;;11138:10;:20;11130:68;;;;;;;;;;;;;;;;;;;;;;11236:19;;11217:15;:38;;11209:85;;;;;;;;;;;;;;11313:17;;;11305:76;;;;;;;;;;;;;;11444:54;11457:15;7347:12;11444;:54::i;:::-;11422:19;:76;;;;11539:13;11555:54;11562:9;11555:54;;;;;;;;;;;;;;;;;:6;:54::i;:::-;11539:70;;11638:53;11651:34;11664:11;;7486:1;11651:34;;:12;:34::i;:::-;11687:3;11638:12;:53::i;:::-;11628:6;:63;;;;11620:104;;;;;;;;;;;;;;11749:83;11756:33;11769:11;;11782:6;11756:33;;:12;:33::i;:::-;11749:83;;;;;;;;;;;;;;;;;:6;:83::i;:::-;11735:97;;;;:11;:97;;;11916:13;;;;;:8;:13;;;;;;;;;;11910:68;;;;;;;;;;;;;;11916:13;;;;;11931:6;;11910:68;;;;;;;;:5;:68::i;:::-;11894:13;;;;;;;:8;:13;;;;;;:84;;;;;;;;;;;;;;;;11994:33;;11894:13;;;11994:33;;;;12020:6;;11994:33;;;;;;;;;;12094:14;;;;12090:1;12094:14;;;:9;:14;;;;;;12067:50;;12094:14;12110:6;12067:14;:50::i;:::-;11067:1058;;;:::o;7802:45::-;;;;;;;;;;;;;;;:::o;7298:61::-;7347:12;7298:61;:::o;16941:102::-;17003:32;17013:10;17025:9;17003;:32::i;:::-;16941:102;:::o;8230:49::-;;;;;;;;;;;;;;;:::o;15204:108::-;15287:17;;15263:4;15287:17;;;:8;:17;;;;;;;;;15204:108::o;7454:33::-;7486:1;7454:33;:::o;19117:1217::-;19196:6;19237:12;19223:11;:26;19215:77;;;;;;;;;;;;;;19327:23;;;19305:19;19327:23;;;:14;:23;;;;;;;;19365:17;19361:58;;19406:1;19399:8;;;;;19361:58;19479:20;;;;;;;:11;:20;;;;;;;;:38;19500:16;;;19479:38;;;;;;;;;:48;;:63;-1:-1:-1;19475:147:0;;19566:20;;;;;;;:11;:20;;;;;;;;19587:16;;;;;19566:38;;;;;;;;:44;;;;;;;-1:-1:-1;19559:51:0;;19475:147;19683:20;;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;19679:88:0;;;19754:1;19747:8;;;;;19679:88;19779:12;19821:16;;;19848:428;19863:5;19855:13;;:5;:13;;;19848:428;;;19927:1;19910:13;;;19909:19;;;19901:27;;19970:20;;:::i;:::-;-1:-1:-1;19993:20:0;;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;19970:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20040:27;;20036:229;;;20095:8;;;;-1:-1:-1;20088:15:0;;-1:-1:-1;;;;20088:15:0;20036:229;20129:12;;:26;;;-1:-1:-1;20125:140:0;;;20184:6;20176:14;;20125:140;;;20248:1;20239:6;:10;20231:18;;20125:140;19848:428;;;;;-1:-1:-1;20293:20:0;;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;;;;;-1:-1:-1;;19117:1217:0;;;;:::o;8993:39::-;;;;;;;;;;;;;:::o;6805:37::-;;;;;;;;;;;;;;;;;;;:::o;15576:237::-;15641:4;15658:13;15674:58;15681:9;15674:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;15658:74;;15743:40;15759:10;15771:3;15776:6;15743:15;:40::i;:::-;-1:-1:-1;15801:4:0;;15576:237;-1:-1:-1;;;15576:237:0:o;18464:222::-;18570:23;;;18529:6;18570:23;;;:14;:23;;;;;;;;18611:16;:67;;18677:1;18611:67;;;18630:20;;;;;;;:11;:20;;;;;;;;18651:16;;;18630:38;;;;;;;;;:44;;;;;;18604:74;18464:222;-1:-1:-1;;;18464:222:0:o;17477:786::-;17593:23;8394:80;;;;;;;;;;;;;;;;17673:4;;;;;;;;;;;;;;;;;;17657:22;17681:12;:10;:12::i;:::-;17703:4;17629:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17629:80:0;;;17619:91;;;;;;17593:117;;17721:18;8614:71;;;;;;;;;;;;;;;17752:57;;17784:9;;17795:5;;17802:6;;17752:57;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17752:57:0;;;17742:68;;;;;;17721:89;;17821:14;17877:15;17894:10;17848:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17848:57:0;;;17838:68;;;;;;17821:85;;17917:17;17937:26;17947:6;17955:1;17958;17961;17937:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17937:26:0;;;;;;-1:-1:-1;;17982:23:0;;;17974:73;;;;;;;;;;;;;;18075:17;;;;;;;:6;:17;;;;;:19;;;;;;;;18066:28;;18058:74;;;;;;;;;;;;;;18158:6;18151:3;:13;;18143:63;;;;;;;;;;;;;;18224:31;18234:9;18245;18224;:31::i;:::-;18217:38;;;;17477:786;;;;;;;:::o;13951:1050::-;14081:13;14127:2;14109:9;:21;14105:171;;;-1:-1:-1;14163:2:0;14105:171;;;14208:56;14215:9;14208:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;14199:65;;14105:171;14288:23;8394:80;;;;;;;;;;;;;;;;14368:4;;;;;;;;;;;;;;;;;;14352:22;14376:12;:10;:12::i;:::-;14398:4;14324:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14324:80:0;;;14314:91;;;;;;14288:117;;14416:18;8817:95;;;;;;;;;;;;;;;;14502:13;;;;;;;:6;:13;;;;;;;:15;;;;;;;;14447:81;;8817:95;;14475:5;;14482:7;;14491:9;;14502:15;;14519:8;;14447:81;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14447:81:0;;;14437:92;;;;;;14416:113;;14540:14;14596:15;14613:10;14567:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14567:57:0;;;14557:68;;;;;;14540:85;;14636:17;14656:26;14666:6;14674:1;14677;14680;14656:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14656:26:0;;;;;;-1:-1:-1;;14701:23:0;;;14693:66;;;;;;;;;;;;;;14791:5;14778:18;;:9;:18;;;14770:56;;;;;;;;;;;;;;14852:8;14845:3;:15;;14837:58;;;;;;;;;;;;;;14937:6;14908:10;:17;14919:5;14908:17;;;;;;;;;;;;;;;:26;14926:7;14908:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14977:7;14961:32;;14970:5;14961:32;;;14986:6;14961:32;;;;;;;;;;;;;;;13951:1050;;;;;;;;;;;;:::o;12429:136::-;12529:19;;;;12505:4;12529:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;;;;12429:136::o;8568:117::-;8614:71;;;;;;8091:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10661:231::-;10739:6;;;;10725:10;:20;10717:94;;;;;;;;;;;;;;10841:6;;10827:30;;;;;;10841:6;;;;;10849:7;;10827:30;;;;;;;;;;10868:6;:16;;;;;;;;;;;;;;;10661:231::o;23093:161::-;23168:6;23206:12;23199:5;23195:9;;23187:32;;;;;;;;;;;;;;;-1:-1:-1;23244:1:0;;23093:161;-1:-1:-1;;23093:161:0:o;23458:165::-;23544:6;23576:1;23571:6;;:1;:6;;;;23579:12;23563:29;;;;;;;;;;;;;;;;-1:-1:-1;;;23610:5:0;;;23458:165::o;20725:610::-;20819:17;;;20811:89;;;;;;;;;;;;;;20919:17;;;20911:87;;;;;;;;;;;;;;21033:13;;;;;;;:8;:13;;;;;;;;;;21027:85;;;;;;;;;;;;;;21033:13;;;;;21048:6;;21027:85;;;;;;;:5;:85::i;:::-;21011:13;;;;;;;;:8;:13;;;;;;;;:101;;;;;;;;;;;21145:13;;;;;;;;;;21139:79;;;;;;;;;;;;;;21145:13;;;;;21160:6;;21139:79;;;;;;;;:5;:79::i;:::-;21123:13;;;;;;;;:8;:13;;;;;;;:95;;;;;;;;;;;;;;;;21234:26;;;;;;;;;;21253:6;;21234:26;;;;;;;;;;21288:14;;;;;;;;:9;:14;;;;;;;21304;;;;;;;;21273:54;;21288:14;;;;21304;21320:6;21273:14;:54::i;1021:181::-;1079:7;1111:5;;;1135:6;;;;1127:46;;;;;;;;;;;;;2775:471;2833:7;3078:6;3074:47;;-1:-1:-1;3108:1:0;3101:8;;3074:47;3145:5;;;3149:1;3145;:5;:1;3169:5;;;;;:10;3161:56;;;;;;;;;;;;;4433:132;4491:7;4518:39;4522:1;4525;4518:39;;;;;;;;;;;;;;;;;:3;:39::i;23262:188::-;23348:6;23378:5;;;23410:12;23402:6;;;;;;;;;23394:29;;;;;;;;;;;;;;;-1:-1:-1;23441:1:0;23262:188;-1:-1:-1;;;;23262:188:0:o;21343:937::-;21448:6;21438:16;;:6;:16;;;;:30;;;;;21467:1;21458:6;:10;;;21438:30;21434:839;;;21489:20;;;;21485:381;;21549:22;;;21530:16;21549:22;;;:14;:22;;;;;;;;;21609:13;:60;;21668:1;21609:60;;;21625:19;;;;;;;:11;:19;;;;;;;;21645:13;;;21625:34;;;;;;;;;:40;;;;;;21609:60;21590:79;;21688:16;21707:67;21713:9;21724:6;21707:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;21688:86;;21793:57;21810:6;21818:9;21829;21840;21793:16;:57::i;:::-;21485:381;;;;21886:20;;;;21882:380;;21946:22;;;21927:16;21946:22;;;:14;:22;;;;;;;;;22006:13;:60;;22065:1;22006:60;;;22022:19;;;;;;;:11;:19;;;;;;;;22042:13;;;22022:34;;;;;;;;;:40;;;;;;22006:60;21987:79;;22085:16;22104:66;22110:9;22121:6;22104:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;22085:85;;22189:57;22206:6;22214:9;22225;22236;22189:16;:57::i;20342:375::-;20445:20;;;;20419:23;20445:20;;;:9;:20;;;;;;;;;;20502:8;:19;;;;;;20532:20;;;;:32;;;;;;;;;;;20582:54;;20445:20;;;;;20502:19;;;;;20532:32;;20445:20;;;20582:54;;20419:23;20582:54;20649:60;20664:15;20681:9;20692:16;20649:14;:60::i;:::-;20342:375;;;;:::o;23631:153::-;23741:9;23631:153;:::o;5053:345::-;5139:7;5241:12;5234:5;5226:28;;;;;;;;;;;;;;;;5265:9;5281:1;5277;:5;;;;;;;5053:345;-1:-1:-1;;;;;5053:345:0:o;22288:628::-;22406:18;22427:75;22434:12;22427:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;22406:96;;22532:1;22517:12;:16;;;:85;;;;-1:-1:-1;22537:22:0;;;;;;;:11;:22;;;;;;;;:65;22560:16;;;22537:40;;;;;;;;;:50;:65;;;:50;;:65;22517:85;22513:329;;;22617:22;;;;;;;:11;:22;;;;;;;;22640:16;;;22617:40;;;;;;;;;:57;;;;;;;;;;;;22513:329;;;22742:33;;;;;;;;;;;;;;;;;;;;;;;;;22703:22;;;-1:-1:-1;22703:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22788:25;;;:14;:25;;;;;;;:44;;22703:72;22816:16;;22788:44;;;;;;;;;;;;;22513:329;22878:9;22857:51;;;22889:8;22899;22857:51;;;;;;;;;;;;;;;;22288:628;;;;;:::o;22924:161::-;22999:6;23037:12;23030:5;23026:9;;23018:32;;;;;;;;;;;;;;6635:17152;;;;;;;;;;-1:-1:-1;6635:17152:0;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:130;209:20;;234:33;209:20;234:33;;416:128;482:20;;507:32;482:20;507:32;;551:126;616:20;;641:31;616:20;641:31;;684:241;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;881:9;856:53;;;846:63;750:175;-1:-1;;;;750:175;932:366;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1146:9;1121:53;;;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;;;1219:63;;1190:98;1015:283;;;;;;1305:491;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1536:9;1511:53;;;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;;;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;;;1717:63;;1688:98;1405:391;;;;;;1803:991;;;;;;;;2007:3;1995:9;1986:7;1982:23;1978:33;1975:2;;;2024:1;2021;2014:12;1975:2;2059:1;2076:53;2121:7;2101:9;2076:53;;;2066:63;;2038:97;2166:2;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;;;2174:63;;2145:98;2274:2;2292:53;2337:7;2328:6;2317:9;2313:22;2292:53;;;2282:63;;2253:98;2382:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;;;2390:63;;2361:98;2490:3;2509:51;2552:7;2543:6;2532:9;2528:22;2509:51;;;2499:61;;2469:97;2597:3;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;;;2606:63;;2576:99;2706:3;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;;;2715:63;;2685:99;1969:825;;;;;;;;;;;2801:366;;;2922:2;2910:9;2901:7;2897:23;2893:32;2890:2;;;2938:1;2935;2928:12;2890:2;2973:1;2990:53;3035:7;3015:9;2990:53;;;2980:63;;2952:97;3080:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;;3174:865;;;;;;;3361:3;3349:9;3340:7;3336:23;3332:33;3329:2;;;3378:1;3375;3368:12;3329:2;3413:1;3430:53;3475:7;3455:9;3430:53;;;3420:63;;3392:97;3520:2;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;;;3528:63;;3499:98;3628:2;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;;;3636:63;;3607:98;3736:2;3754:51;3797:7;3788:6;3777:9;3773:22;3754:51;;;3744:61;;3715:96;3842:3;3861:53;3906:7;3897:6;3886:9;3882:22;3861:53;;;3851:63;;3821:99;3951:3;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;;;3960:63;;3930:99;3323:716;;;;;;;;;4046:364;;;4166:2;4154:9;4145:7;4141:23;4137:32;4134:2;;;4182:1;4179;4172:12;4134:2;4217:1;4234:53;4279:7;4259:9;4234:53;;;4224:63;;4196:97;4324:2;4342:52;4386:7;4377:6;4366:9;4362:22;4342:52;;4417:113;4500:24;4518:5;4500:24;;;4495:3;4488:37;4482:48;;;4537:104;4614:21;4629:5;4614:21;;4648:113;4731:24;4749:5;4731:24;;4768:152;4869:45;4889:24;4907:5;4889:24;;;4869:45;;4927:347;;5039:39;5072:5;5039:39;;;5090:71;5154:6;5149:3;5090:71;;;5083:78;;5166:52;5211:6;5206:3;5199:4;5192:5;5188:16;5166:52;;;5239:29;5261:6;5239:29;;;5230:39;;;;5019:255;-1:-1;;;5019:255;5628:374;;5788:67;5852:2;5847:3;5788:67;;;5888:34;5868:55;;5957:7;5952:2;5943:12;;5936:29;5993:2;5984:12;;5774:228;-1:-1;;5774:228;6011:398;;6189:84;6271:1;6266:3;6189:84;;;6306:66;6286:87;;6401:1;6392:11;;6175:234;-1:-1;;6175:234;6418:327;;6578:67;6642:2;6637:3;6578:67;;;6678:29;6658:50;;6736:2;6727:12;;6564:181;-1:-1;;6564:181;6754:374;;6914:67;6978:2;6973:3;6914:67;;;7014:34;6994:55;;7083:7;7078:2;7069:12;;7062:29;7119:2;7110:12;;6900:228;-1:-1;;6900:228;7137:375;;7297:67;7361:2;7356:3;7297:67;;;7397:34;7377:55;;7466:8;7461:2;7452:12;;7445:30;7503:2;7494:12;;7283:229;-1:-1;;7283:229;7521:383;;7681:67;7745:2;7740:3;7681:67;;;7781:34;7761:55;;7850:16;7845:2;7836:12;;7829:38;7895:2;7886:12;;7667:237;-1:-1;;7667:237;7913:492;;8091:85;8173:2;8168:3;8091:85;;;8209:34;8189:55;;8278:34;8273:2;8264:12;;8257:56;8347:20;8342:2;8333:12;;8326:42;8396:2;8387:12;;8077:328;-1:-1;;8077:328;8414:371;;8574:67;8638:2;8633:3;8574:67;;;8674:34;8654:55;;8743:4;8738:2;8729:12;;8722:26;8776:2;8767:12;;8560:225;-1:-1;;8560:225;8794:477;;8972:85;9054:2;9049:3;8972:85;;;9090:34;9070:55;;9159:34;9154:2;9145:12;;9138:56;9228:5;9223:2;9214:12;;9207:27;9262:2;9253:12;;8958:313;-1:-1;;8958:313;9280:394;;9440:67;9504:2;9499:3;9440:67;;;9540:34;9520:55;;9609:27;9604:2;9595:12;;9588:49;9665:2;9656:12;;9426:248;-1:-1;;9426:248;9683:370;;9843:67;9907:2;9902:3;9843:67;;;9943:34;9923:55;;10012:3;10007:2;9998:12;;9991:25;10044:2;10035:12;;9829:224;-1:-1;;9829:224;10062:328;;10222:67;10286:2;10281:3;10222:67;;;10322:30;10302:51;;10381:2;10372:12;;10208:182;-1:-1;;10208:182;10399:372;;10559:67;10623:2;10618:3;10559:67;;;10659:34;10639:55;;10728:5;10723:2;10714:12;;10707:27;10762:2;10753:12;;10545:226;-1:-1;;10545:226;10780:398;;10940:67;11004:2;10999:3;10940:67;;;11040:34;11020:55;;11109:31;11104:2;11095:12;;11088:53;11169:2;11160:12;;10926:252;-1:-1;;10926:252;11187:370;;11347:67;11411:2;11406:3;11347:67;;;11447:34;11427:55;;11516:3;11511:2;11502:12;;11495:25;11548:2;11539:12;;11333:224;-1:-1;;11333:224;11566:396;;11726:67;11790:2;11785:3;11726:67;;;11826:34;11806:55;;11895:29;11890:2;11881:12;;11874:51;11953:2;11944:12;;11712:250;-1:-1;;11712:250;11971:330;;12131:67;12195:2;12190:3;12131:67;;;12231:32;12211:53;;12292:2;12283:12;;12117:184;-1:-1;;12117:184;12310:431;;12488:85;12570:2;12565:3;12488:85;;;12606:34;12586:55;;12675:28;12670:2;12661:12;;12654:50;12732:2;12723:12;;12474:267;-1:-1;;12474:267;12750:330;;12910:67;12974:2;12969:3;12910:67;;;13010:32;12990:53;;13071:2;13062:12;;12896:184;-1:-1;;12896:184;13089:325;;13249:67;13313:2;13308:3;13249:67;;;13349:27;13329:48;;13405:2;13396:12;;13235:179;-1:-1;;13235:179;13542:110;13623:23;13640:5;13623:23;;13659:107;13738:22;13754:5;13738:22;;13773:124;13855:36;13885:5;13855:36;;13904:110;13985:23;14002:5;13985:23;;14021:650;;14276:148;14420:3;14276:148;;;14269:155;;14435:75;14506:3;14497:6;14435:75;;;14532:2;14527:3;14523:12;14516:19;;14546:75;14617:3;14608:6;14546:75;;;-1:-1;14643:2;14634:12;;14257:414;-1:-1;;14257:414;14678:372;;14877:148;15021:3;14877:148;;15057:372;;15256:148;15400:3;15256:148;;15436:372;;15635:148;15779:3;15635:148;;15815:213;15933:2;15918:18;;15947:71;15922:9;15991:6;15947:71;;16035:324;16181:2;16166:18;;16195:71;16170:9;16239:6;16195:71;;;16277:72;16345:2;16334:9;16330:18;16321:6;16277:72;;16366:201;16478:2;16463:18;;16492:65;16467:9;16530:6;16492:65;;16574:213;16692:2;16677:18;;16706:71;16681:9;16750:6;16706:71;;16794:771;17052:3;17037:19;;17067:71;17041:9;17111:6;17067:71;;;17149:72;17217:2;17206:9;17202:18;17193:6;17149:72;;;17232;17300:2;17289:9;17285:18;17276:6;17232:72;;;17315;17383:2;17372:9;17368:18;17359:6;17315:72;;;17398:73;17466:3;17455:9;17451:19;17442:6;17398:73;;;17482;17550:3;17539:9;17535:19;17526:6;17482:73;;;17023:542;;;;;;;;;;17572:547;17774:3;17759:19;;17789:71;17763:9;17833:6;17789:71;;;17871:72;17939:2;17928:9;17924:18;17915:6;17871:72;;;17954;18022:2;18011:9;18007:18;17998:6;17954:72;;;18037;18105:2;18094:9;18090:18;18081:6;18037:72;;;17745:374;;;;;;;;18126:547;18328:3;18313:19;;18343:71;18317:9;18387:6;18343:71;;;18425:72;18493:2;18482:9;18478:18;18469:6;18425:72;;;18508;18576:2;18565:9;18561:18;18552:6;18508:72;;;18591;18659:2;18648:9;18644:18;18635:6;18591:72;;18680:539;18878:3;18863:19;;18893:71;18867:9;18937:6;18893:71;;;18975:68;19039:2;19028:9;19024:18;19015:6;18975:68;;19226:293;19360:2;19374:47;;;19345:18;;19435:74;19345:18;19495:6;19435:74;;19834:407;20025:2;20039:47;;;20010:18;;20100:131;20010:18;20100:131;;20248:407;20439:2;20453:47;;;20424:18;;20514:131;20424:18;20514:131;;20662:407;20853:2;20867:47;;;20838:18;;20928:131;20838:18;20928:131;;21076:407;21267:2;21281:47;;;21252:18;;21342:131;21252:18;21342:131;;21490:407;21681:2;21695:47;;;21666:18;;21756:131;21666:18;21756:131;;21904:407;22095:2;22109:47;;;22080:18;;22170:131;22080:18;22170:131;;22318:407;22509:2;22523:47;;;22494:18;;22584:131;22494:18;22584:131;;22732:407;22923:2;22937:47;;;22908:18;;22998:131;22908:18;22998:131;;23146:407;23337:2;23351:47;;;23322:18;;23412:131;23322:18;23412:131;;23560:407;23751:2;23765:47;;;23736:18;;23826:131;23736:18;23826:131;;23974:407;24165:2;24179:47;;;24150:18;;24240:131;24150:18;24240:131;;24388:407;24579:2;24593:47;;;24564:18;;24654:131;24564:18;24654:131;;24802:407;24993:2;25007:47;;;24978:18;;25068:131;24978:18;25068:131;;25216:407;25407:2;25421:47;;;25392:18;;25482:131;25392:18;25482:131;;25630:407;25821:2;25835:47;;;25806:18;;25896:131;25806:18;25896:131;;26044:407;26235:2;26249:47;;;26220:18;;26310:131;26220:18;26310:131;;26678:209;26794:2;26779:18;;26808:69;26783:9;26850:6;26808:69;;26894:316;27036:2;27021:18;;27050:69;27025:9;27092:6;27050:69;;;27130:70;27196:2;27185:9;27181:18;27172:6;27130:70;;27217:205;27331:2;27316:18;;27345:67;27320:9;27385:6;27345:67;;27429:211;27546:2;27531:18;;27560:70;27535:9;27603:6;27560:70;;27647:209;27763:2;27748:18;;27777:69;27752:9;27819:6;27777:69;;27863:320;28007:2;27992:18;;28021:70;27996:9;28064:6;28021:70;;;28102:71;28169:2;28158:9;28154:18;28145:6;28102:71;;28190:118;28274:12;;28245:63;28445:163;28548:19;;;28597:4;28588:14;;28541:67;28617:145;28753:3;28731:31;-1:-1;28731:31;28770:91;;28832:24;28850:5;28832:24;;28868:85;28934:13;28927:21;;28910:43;28960:72;29022:5;29005:27;29039:121;29112:42;29101:54;;29084:76;29246:88;29318:10;29307:22;;29290:44;29341:81;29412:4;29401:16;;29384:38;29429:104;29501:26;29490:38;;29473:60;29540:106;;29618:23;29635:5;29618:23;;29654:268;29719:1;29726:101;29740:6;29737:1;29734:13;29726:101;;;29807:11;;;29801:18;29788:11;;;29781:39;29762:2;29755:10;29726:101;;;29842:6;29839:1;29836:13;29833:2;;;-1:-1;;29907:1;29889:16;;29882:27;29703:219;30011:97;30099:2;30079:14;30095:7;30075:28;;30059:49;30116:117;30185:24;30203:5;30185:24;;;30178:5;30175:35;30165:2;;30224:1;30221;30214:12;30240:117;30309:24;30327:5;30309:24;;30488:115;30556:23;30573:5;30556:23;;30610:113;30677:22;30693:5;30677:22;

Swarm Source

bzzr://68d42e51eae03f461fed8d2db904ba521e900521e0a2199b4a57d733502ad3da
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading