Contract 0xeD24FC36d5Ee211Ea25A80239Fb8C4Cfd80f12Ee 5

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa9af3fe224a27a96c3f85af59a25252ee4d63d60de1369df605bd71c54c07559Transfer132564802021-10-15 20:54:081 min ago0xb02c2fe5a5a0bfaf62871db87df6f95e1cb6ae04 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0x9c2a236e2fd2935b5fd8791e1cca3c986c1da85078eac9c7b000eef9cbf86bbcTransfer132564752021-10-15 20:53:532 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x7ef85a240ba878998912734fabdacda6b18ad89151af6e52495e0bd0f7e23c2dTransfer132564292021-10-15 20:51:354 mins ago0x32a41b19c5e34d2ad1546cf77443b581022f1237 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0xc79c7fcd86e412ec7d12e62127e9bb43283736cd36104b267c6b96c984e0ede5Transfer132564222021-10-15 20:51:144 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x48c768248496b92f74dc114014bebe192703b0677422c5cc660e79990b8217e6Transfer132562882021-10-15 20:44:3211 mins ago0xf9a23247a0a3b866850410e02cdb1b6b7c0fdfc1 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0x5cfb0e69da1ea57d941cbae6a2eba80f1bcff92354bcbd3c5321ce6ce7246ceaTransfer132562772021-10-15 20:43:5912 mins ago0xecf9fa63b0be890855fb392b084ba93b6475f143 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0xabd68e6b0062c3ad74b8997bbc9d506db07d08606196ec93084f2bc60764f25eTransfer132562722021-10-15 20:43:4412 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x44a6f3890a5e1af5f01bbd6e9e4ee19595726bf0bab2103a89a004ea4ca2ee95Transfer132562312021-10-15 20:41:4114 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x35b20585f98f55d064f318ab7d0c389e008ea0b79365529676bbaa371cd07545Transfer132562232021-10-15 20:41:1714 mins ago0x3eb6cce7557dec3c821259f9703d64de2311948b IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0xe21900afa2d24fdad14cf0a23ad0214828f6a8459f1ead7fedef2d9fb3058e00Transfer132562172021-10-15 20:40:5915 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x1cf03ca74d4fe288ba9b7997d1aebaf600b92b02f326ae22e5cac5aff3c97fb6Transfer132560662021-10-15 20:33:2622 mins ago0x0560b514df9ab2f96a23d2bea624495bedb29fa9 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0x84bfde8b143422bddfbc3c02b6ab3f0efa2c43b1890fb13eef2accbffe08337fTransfer132560622021-10-15 20:33:1422 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x93035f57ce2dcce2d3673c3811d9f009866d5749a055fe756420e88be16e9d81Transfer132560212021-10-15 20:31:1124 mins ago0x4c659a9b6b9e3b45b643747fa56165c71683d6b2 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0xffa20b07ea2ee60106924b309868d7b63877f636839e95ab7952182a4c1fc4a6Transfer132560152021-10-15 20:30:5325 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0xe2910b4be480f55b6f1c105edf09f926066befe125f37de39a233a9c81e66454Transfer132559602021-10-15 20:28:0827 mins ago0x1fe098861b05a8b0737a490a765af00e805cc680 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00055351
0xa8c88ffecd265a7ce7f4120ed78b0e384cad040c36f2256592809c3640474febTransfer132558762021-10-15 20:23:5632 mins ago0x8dbc17d6c2dea54d7cd50ef17f25e99a5c8f3267 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0x1f6263b5691b8bf095dd83dc3f0bc999daaa8f8761a595363b4355e45e2809ecTransfer132558722021-10-15 20:23:4432 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x82f0fe1360267f0225f08077fad6c5582cb3ee4b085e059a240453b7451febeeTransfer132558222021-10-15 20:21:1434 mins ago0x78511e670461b531e30fcfd59b4bc4fd3243dc41 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0xf49c61bab31e5c9750d2aa668f9570e88cb65695fa551155174fae95f5d3bde6Transfer132558162021-10-15 20:20:5635 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x646cf9de9b77665fc6fbda3b7f156f858f41d14328011fd13208d94d4399d910Transfer132557912021-10-15 20:19:4136 mins ago0xd378b7307ada34abaecc74c1540bd5aa635fbb1b IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0x23ab3bcd67f0b5e0435d3a8e33d9f13e844d82d4e3c7f18e3b4d2af98f332e3bTransfer132557502021-10-15 20:17:3838 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x6106c3f9c894c0bdaec9f67edba18b039f300e171275851694ef4f792190a9a5Transfer132557282021-10-15 20:16:3239 mins ago0x1fe098861b05a8b0737a490a765af00e805cc680 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00055351
0x81c91fa8f1e094d92fa5bac253de560bcc7a55bb968080b5c4ad21878864a881Transfer132556802021-10-15 20:14:0841 mins ago0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.000996318
0x9897f03adfb9651e6fe153653b09348f16f723643b41a2ee377b43cd62078b7eTransfer132556112021-10-15 20:10:4145 mins ago0xd378b7307ada34abaecc74c1540bd5aa635fbb1b IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00025351
0xd0a8bf359b2a1c3ecc1243de02d07b943f0f1cc69bf7a46656d223be5b637ff8Transfer132555752021-10-15 20:08:5347 mins ago0x1fe098861b05a8b0737a490a765af00e805cc680 IN  0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB0.00055351
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8a24b8eb5d954f99dfaeef9278efbe67202f9faa2ad626206bca47e4e1def77c132554002021-10-15 20:00:0855 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x8a24b8eb5d954f99dfaeef9278efbe67202f9faa2ad626206bca47e4e1def77c132554002021-10-15 20:00:0855 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x8a24b8eb5d954f99dfaeef9278efbe67202f9faa2ad626206bca47e4e1def77c132554002021-10-15 20:00:0855 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0xdb3f5ebec05c51f909f4497808122ff5a785194455b5e7e37485594ea9854928132553502021-10-15 19:57:3858 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0xdb3f5ebec05c51f909f4497808122ff5a785194455b5e7e37485594ea9854928132553502021-10-15 19:57:3858 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0xdb3f5ebec05c51f909f4497808122ff5a785194455b5e7e37485594ea9854928132553502021-10-15 19:57:3858 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x4bbfbe117e7d4630c68f6295e85ed8666abfd2717b824c0ccbea99cd84f78c47132552902021-10-15 19:54:381 hr 1 min ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x4bbfbe117e7d4630c68f6295e85ed8666abfd2717b824c0ccbea99cd84f78c47132552902021-10-15 19:54:381 hr 1 min ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x4bbfbe117e7d4630c68f6295e85ed8666abfd2717b824c0ccbea99cd84f78c47132552902021-10-15 19:54:381 hr 1 min ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0xca90df4cd0f63035ebdcc99dae7b269c7de676e2675a5de94a930ea3606a4a67132552582021-10-15 19:53:021 hr 3 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0xca90df4cd0f63035ebdcc99dae7b269c7de676e2675a5de94a930ea3606a4a67132552582021-10-15 19:53:021 hr 3 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0xca90df4cd0f63035ebdcc99dae7b269c7de676e2675a5de94a930ea3606a4a67132552582021-10-15 19:53:021 hr 3 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x2aaebff609b9bbbb4c85bde082b0a0b2793ccf69d39b3cfda1e99226102217fb132552242021-10-15 19:51:201 hr 4 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x2aaebff609b9bbbb4c85bde082b0a0b2793ccf69d39b3cfda1e99226102217fb132552242021-10-15 19:51:201 hr 4 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x2aaebff609b9bbbb4c85bde082b0a0b2793ccf69d39b3cfda1e99226102217fb132552242021-10-15 19:51:201 hr 4 mins ago 0xee3af083b4e592be379e688d0d5f89a4de914834 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x098a7252005f623cfa513d0e49d4771dff8c46b17934f99e58e1ac84ff9b8fcb132548152021-10-15 19:30:531 hr 25 mins ago 0x311d1aca5a6303b02c34b78c415c495490e8240a 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x098a7252005f623cfa513d0e49d4771dff8c46b17934f99e58e1ac84ff9b8fcb132548152021-10-15 19:30:531 hr 25 mins ago 0x311d1aca5a6303b02c34b78c415c495490e8240a 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x098a7252005f623cfa513d0e49d4771dff8c46b17934f99e58e1ac84ff9b8fcb132548152021-10-15 19:30:531 hr 25 mins ago 0x311d1aca5a6303b02c34b78c415c495490e8240a 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x9055f7f6622495fda77f9b481146880110df06628ebb1a91927ab7d89271f3b1132547782021-10-15 19:29:021 hr 27 mins ago 0xecb3a8276980c10a8cfb178144deccc1fa9ad7c1 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x9055f7f6622495fda77f9b481146880110df06628ebb1a91927ab7d89271f3b1132547782021-10-15 19:29:021 hr 27 mins ago 0xecb3a8276980c10a8cfb178144deccc1fa9ad7c1 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x932964077343a9b776dc62ff46deb1136c23ed1a87b55d756069e838e3fcd104132547462021-10-15 19:27:261 hr 28 mins ago 0xecb3a8276980c10a8cfb178144deccc1fa9ad7c1 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x932964077343a9b776dc62ff46deb1136c23ed1a87b55d756069e838e3fcd104132547462021-10-15 19:27:261 hr 28 mins ago 0xecb3a8276980c10a8cfb178144deccc1fa9ad7c1 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x43038716f6543f4e38ab77096d3b5f6b4e915b7e28ea44e4086b0061f532adad132546912021-10-15 19:24:411 hr 31 mins ago 0xecb3a8276980c10a8cfb178144deccc1fa9ad7c1 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x43038716f6543f4e38ab77096d3b5f6b4e915b7e28ea44e4086b0061f532adad132546912021-10-15 19:24:411 hr 31 mins ago 0x4adf9d6de81e200d438ade75cdafd176b394c9e8 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
0x43038716f6543f4e38ab77096d3b5f6b4e915b7e28ea44e4086b0061f532adad132546912021-10-15 19:24:411 hr 31 mins ago 0x4adf9d6de81e200d438ade75cdafd176b394c9e8 0xed24fc36d5ee211ea25a80239fb8c4cfd80f12ee0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BUSDImplementation

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2020-09-02
*/

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

// File: contracts/zeppelin/SafeMath.sol

pragma solidity 0.4.24;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    /**
    * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two numbers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }
}

// File: contracts/BUSDImplementation.sol

pragma solidity 0.4.24;
pragma experimental "v0.5.0";



/**
 * @title BUSDImplementation
 * @dev this contract is a Pausable ERC20 token with Burn and Mint
 * controlled by a central SupplyController. By implementing BUSDImplementation
 * this contract also includes external methods for setting
 * a new implementation contract for the Proxy.
 * NOTE: The storage defined here will actually be held in the Proxy
 * contract and all calls to this contract should be made through
 * the proxy, including admin actions done as owner or supplyController.
 * Any call to transfer against this contract should fail
 * with insufficient funds since no tokens will be issued there.
 */
contract BUSDImplementation {

    /**
     * MATH
     */

    using SafeMath for uint256;

    /**
     * DATA
     */

    // INITIALIZATION DATA
    bool private initialized = false;

    // ERC20 BASIC DATA
    mapping(address => uint256) internal balances;
    uint256 internal totalSupply_;
    string public constant name = "Binance USD"; // solium-disable-line
    string public constant symbol = "BUSD"; // solium-disable-line uppercase
    uint8 public constant decimals = 18; // solium-disable-line uppercase

    // ERC20 DATA
    mapping(address => mapping(address => uint256)) internal allowed;

    // OWNER DATA
    address public owner;
    address public proposedOwner;

    // PAUSABILITY DATA
    bool public paused = false;

    // ASSET PROTECTION DATA
    address public assetProtectionRole;
    mapping(address => bool) internal frozen;

    // SUPPLY CONTROL DATA
    address public supplyController;

    // DELEGATED TRANSFER DATA
    address public betaDelegateWhitelister;
    mapping(address => bool) internal betaDelegateWhitelist;
    mapping(address => uint256) internal nextSeqs;
    // EIP191 header for EIP712 prefix
    string constant internal EIP191_HEADER = "\x19\x01";
    // Hash of the EIP712 Domain Separator Schema
    bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(
        "EIP712Domain(string name,address verifyingContract)"
    );
    bytes32 constant internal EIP712_DELEGATED_TRANSFER_SCHEMA_HASH = keccak256(
        "BetaDelegatedTransfer(address to,uint256 value,uint256 fee,uint256 seq,uint256 deadline)"
    );
    // Hash of the EIP712 Domain Separator data
    // solhint-disable-next-line var-name-mixedcase
    bytes32 public EIP712_DOMAIN_HASH;

    /**
     * EVENTS
     */

    // ERC20 BASIC EVENTS
    event Transfer(address indexed from, address indexed to, uint256 value);

    // ERC20 EVENTS
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    // OWNABLE EVENTS
    event OwnershipTransferProposed(
        address indexed currentOwner,
        address indexed proposedOwner
    );
    event OwnershipTransferDisregarded(
        address indexed oldProposedOwner
    );
    event OwnershipTransferred(
        address indexed oldOwner,
        address indexed newOwner
    );

    // PAUSABLE EVENTS
    event Pause();
    event Unpause();

    // ASSET PROTECTION EVENTS
    event AddressFrozen(address indexed addr);
    event AddressUnfrozen(address indexed addr);
    event FrozenAddressWiped(address indexed addr);
    event AssetProtectionRoleSet (
        address indexed oldAssetProtectionRole,
        address indexed newAssetProtectionRole
    );

    // SUPPLY CONTROL EVENTS
    event SupplyIncreased(address indexed to, uint256 value);
    event SupplyDecreased(address indexed from, uint256 value);
    event SupplyControllerSet(
        address indexed oldSupplyController,
        address indexed newSupplyController
    );

    // DELEGATED TRANSFER EVENTS
    event BetaDelegatedTransfer(
        address indexed from, address indexed to, uint256 value, uint256 seq, uint256 fee
    );
    event BetaDelegateWhitelisterSet(
        address indexed oldWhitelister,
        address indexed newWhitelister
    );
    event BetaDelegateWhitelisted(address indexed newDelegate);
    event BetaDelegateUnwhitelisted(address indexed oldDelegate);

    /**
     * FUNCTIONALITY
     */

    // INITIALIZATION FUNCTIONALITY

    /**
     * @dev sets 0 initials tokens, the owner, and the supplyController.
     * this serves as the constructor for the proxy but compiles to the
     * memory model of the Implementation contract.
     */
    function initialize() public {
        require(!initialized, "already initialized");
        owner = msg.sender;
        proposedOwner = address(0);
        assetProtectionRole = address(0);
        totalSupply_ = 0;
        supplyController = msg.sender;
        initialized = true;
    }

    /**
     * The constructor is used here to ensure that the implementation
     * contract is initialized. An uncontrolled implementation
     * contract might lead to misleading state
     * for users who accidentally interact with it.
     */
    constructor() public {
        initialize();
        pause();
        // Added in V2
        initializeDomainSeparator();
    }

    /**
     * @dev To be called when upgrading the contract using upgradeAndCall to add delegated transfers
     */
    function initializeDomainSeparator() public {
        // hash the name context with the contract address
        EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(// solium-disable-line
                EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,
                keccak256(bytes(name)),
                bytes32(address(this))
            ));
    }

    // ERC20 BASIC FUNCTIONALITY
    /**
    * @dev Returns the address of the current owner.
    */
    function getOwner() public view returns (address) {
      return owner;
    }
  
    /**
    * @dev Total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return totalSupply_;
    }

    /**
    * @dev Transfer token to a specified address from msg.sender
    * Note: the use of Safemath ensures that _value is nonnegative.
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        require(_to != address(0), "cannot transfer to address zero");
        require(!frozen[_to] && !frozen[msg.sender], "address frozen");
        require(_value <= balances[msg.sender], "insufficient funds");

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _addr The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _addr) public view returns (uint256) {
        return balances[_addr];
    }

    // ERC20 FUNCTIONALITY

    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
    public
    whenNotPaused
    returns (bool)
    {
        require(_to != address(0), "cannot transfer to address zero");
        require(!frozen[_to] && !frozen[_from] && !frozen[msg.sender], "address frozen");
        require(_value <= balances[_from], "insufficient funds");
        require(_value <= allowed[_from][msg.sender], "insufficient allowance");

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(!frozen[_spender] && !frozen[msg.sender], "address frozen");
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(
        address _owner,
        address _spender
    )
    public
    view
    returns (uint256)
    {
        return allowed[_owner][_spender];
    }

    // OWNER FUNCTIONALITY

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "onlyOwner");
        _;
    }

    /**
     * @dev Allows the current owner to begin transferring control of the contract to a proposedOwner
     * @param _proposedOwner The address to transfer ownership to.
     */
    function proposeOwner(address _proposedOwner) public onlyOwner {
        require(_proposedOwner != address(0), "cannot transfer ownership to address zero");
        require(msg.sender != _proposedOwner, "caller already is owner");
        proposedOwner = _proposedOwner;
        emit OwnershipTransferProposed(owner, proposedOwner);
    }

    /**
     * @dev Allows the current owner or proposed owner to cancel transferring control of the contract to a proposedOwner
     */
    function disregardProposeOwner() public {
        require(msg.sender == proposedOwner || msg.sender == owner, "only proposedOwner or owner");
        require(proposedOwner != address(0), "can only disregard a proposed owner that was previously set");
        address _oldProposedOwner = proposedOwner;
        proposedOwner = address(0);
        emit OwnershipTransferDisregarded(_oldProposedOwner);
    }

    /**
     * @dev Allows the proposed owner to complete transferring control of the contract to the proposedOwner.
     */
    function claimOwnership() public {
        require(msg.sender == proposedOwner, "onlyProposedOwner");
        address _oldOwner = owner;
        owner = proposedOwner;
        proposedOwner = address(0);
        emit OwnershipTransferred(_oldOwner, owner);
    }

    /**
     * @dev Reclaim all BUSD at the contract address.
     * This sends the BUSD tokens that this contract add holding to the owner.
     * Note: this is not affected by freeze constraints.
     */
    function reclaimBUSD() external onlyOwner {
        uint256 _balance = balances[this];
        balances[this] = 0;
        balances[owner] = balances[owner].add(_balance);
        emit Transfer(this, owner, _balance);
    }

    // PAUSABILITY FUNCTIONALITY

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused, "whenNotPaused");
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyOwner {
        require(!paused, "already paused");
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyOwner {
        require(paused, "already unpaused");
        paused = false;
        emit Unpause();
    }

    // ASSET PROTECTION FUNCTIONALITY

    /**
     * @dev Sets a new asset Protection role address.
     * @param _newAssetProtectionRole The new address allowed to freeze/unfreeze addresses and seize their tokens.
     */
    function setAssetProtectionRole(address _newAssetProtectionRole) public {
        require(msg.sender == assetProtectionRole || msg.sender == owner, "only assetProtectionRole or Owner");
        emit AssetProtectionRoleSet(assetProtectionRole, _newAssetProtectionRole);
        assetProtectionRole = _newAssetProtectionRole;
    }

    modifier onlyAssetProtectionRole() {
        require(msg.sender == assetProtectionRole, "onlyAssetProtectionRole");
        _;
    }

    /**
     * @dev Freezes an address balance from being transferred.
     * @param _addr The new address to freeze.
     */
    function freeze(address _addr) public onlyAssetProtectionRole {
        require(!frozen[_addr], "address already frozen");
        frozen[_addr] = true;
        emit AddressFrozen(_addr);
    }

    /**
     * @dev Unfreezes an address balance allowing transfer.
     * @param _addr The new address to unfreeze.
     */
    function unfreeze(address _addr) public onlyAssetProtectionRole {
        require(frozen[_addr], "address already unfrozen");
        frozen[_addr] = false;
        emit AddressUnfrozen(_addr);
    }

    /**
     * @dev Wipes the balance of a frozen address, burning the tokens
     * and setting the approval to zero.
     * @param _addr The new frozen address to wipe.
     */
    function wipeFrozenAddress(address _addr) public onlyAssetProtectionRole {
        require(frozen[_addr], "address is not frozen");
        uint256 _balance = balances[_addr];
        balances[_addr] = 0;
        totalSupply_ = totalSupply_.sub(_balance);
        emit FrozenAddressWiped(_addr);
        emit SupplyDecreased(_addr, _balance);
        emit Transfer(_addr, address(0), _balance);
    }

    /**
    * @dev Gets whether the address is currently frozen.
    * @param _addr The address to check if frozen.
    * @return A bool representing whether the given address is frozen.
    */
    function isFrozen(address _addr) public view returns (bool) {
        return frozen[_addr];
    }

    // SUPPLY CONTROL FUNCTIONALITY

    /**
     * @dev Sets a new supply controller address.
     * @param _newSupplyController The address allowed to burn/mint tokens to control supply.
     */
    function setSupplyController(address _newSupplyController) public {
        require(msg.sender == supplyController || msg.sender == owner, "only SupplyController or Owner");
        require(_newSupplyController != address(0), "cannot set supply controller to address zero");
        emit SupplyControllerSet(supplyController, _newSupplyController);
        supplyController = _newSupplyController;
    }

    modifier onlySupplyController() {
        require(msg.sender == supplyController, "onlySupplyController");
        _;
    }

    /**
     * @dev Increases the total supply by minting the specified number of tokens to the supply controller account.
     * @param _value The number of tokens to add.
     * @return A boolean that indicates if the operation was successful.
     */
    function increaseSupply(uint256 _value) public onlySupplyController returns (bool success) {
        totalSupply_ = totalSupply_.add(_value);
        balances[supplyController] = balances[supplyController].add(_value);
        emit SupplyIncreased(supplyController, _value);
        emit Transfer(address(0), supplyController, _value);
        return true;
    }

    /**
     * @dev Decreases the total supply by burning the specified number of tokens from the supply controller account.
     * @param _value The number of tokens to remove.
     * @return A boolean that indicates if the operation was successful.
     */
    function decreaseSupply(uint256 _value) public onlySupplyController returns (bool success) {
        require(_value <= balances[supplyController], "not enough supply");
        balances[supplyController] = balances[supplyController].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit SupplyDecreased(supplyController, _value);
        emit Transfer(supplyController, address(0), _value);
        return true;
    }

    // DELEGATED TRANSFER FUNCTIONALITY

    /**
     * @dev returns the next seq for a target address.
     * The transactor must submit nextSeqOf(transactor) in the next transaction for it to be valid.
     * Note: that the seq context is specific to this smart contract.
     * @param target The target address.
     * @return the seq.
     */
    //
    function nextSeqOf(address target) public view returns (uint256) {
        return nextSeqs[target];
    }

    /**
     * @dev Performs a transfer on behalf of the from address, identified by its signature on the delegatedTransfer msg.
     * Splits a signature byte array into r,s,v for convenience.
     * @param sig the signature of the delgatedTransfer msg.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     * @param fee an optional ERC20 fee paid to the executor of betaDelegatedTransfer by the from address.
     * @param seq a sequencing number included by the from address specific to this contract to protect from replays.
     * @param deadline a block number after which the pre-signed transaction has expired.
     * @return A boolean that indicates if the operation was successful.
     */
    function betaDelegatedTransfer(
        bytes sig, address to, uint256 value, uint256 fee, uint256 seq, uint256 deadline
    ) public returns (bool) {
        require(sig.length == 65, "signature should have length 65");
        bytes32 r;
        bytes32 s;
        uint8 v;
        assembly {
            r := mload(add(sig, 32))
            s := mload(add(sig, 64))
            v := byte(0, mload(add(sig, 96)))
        }
        require(_betaDelegatedTransfer(r, s, v, to, value, fee, seq, deadline), "failed transfer");
        return true;
    }

    /**
     * @dev Performs a transfer on behalf of the from address, identified by its signature on the betaDelegatedTransfer msg.
     * Note: both the delegate and transactor sign in the fees. The transactor, however,
     * has no control over the gas price, and therefore no control over the transaction time.
     * Beta prefix chosen to avoid a name clash with an emerging standard in ERC865 or elsewhere.
     * Internal to the contract - see betaDelegatedTransfer and betaDelegatedTransferBatch.
     * @param r the r signature of the delgatedTransfer msg.
     * @param s the s signature of the delgatedTransfer msg.
     * @param v the v signature of the delgatedTransfer msg.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     * @param fee an optional ERC20 fee paid to the delegate of betaDelegatedTransfer by the from address.
     * @param seq a sequencing number included by the from address specific to this contract to protect from replays.
     * @param deadline a block number after which the pre-signed transaction has expired.
     * @return A boolean that indicates if the operation was successful.
     */
    function _betaDelegatedTransfer(
        bytes32 r, bytes32 s, uint8 v, address to, uint256 value, uint256 fee, uint256 seq, uint256 deadline
    ) internal whenNotPaused returns (bool) {
        require(betaDelegateWhitelist[msg.sender], "Beta feature only accepts whitelisted delegates");
        require(value > 0 || fee > 0, "cannot transfer zero tokens with zero fee");
        require(block.number <= deadline, "transaction expired");
        // prevent sig malleability from ecrecover()
        require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "signature incorrect");
        require(v == 27 || v == 28, "signature incorrect");

        // EIP712 scheme: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md
        bytes32 delegatedTransferHash = keccak256(abi.encodePacked(// solium-disable-line
                EIP712_DELEGATED_TRANSFER_SCHEMA_HASH, bytes32(to), value, fee, seq, deadline
            ));
        bytes32 hash = keccak256(abi.encodePacked(EIP191_HEADER, EIP712_DOMAIN_HASH, delegatedTransferHash));
        address _from = ecrecover(hash, v, r, s);

        require(_from != address(0), "error determining from address from signature");
        require(to != address(0), "canno use address zero");
        require(!frozen[to] && !frozen[_from] && !frozen[msg.sender], "address frozen");
        require(value.add(fee) <= balances[_from], "insufficent fund");
        require(nextSeqs[_from] == seq, "incorrect seq");

        nextSeqs[_from] = nextSeqs[_from].add(1);
        balances[_from] = balances[_from].sub(value.add(fee));

        if (fee != 0) {
            balances[msg.sender] = balances[msg.sender].add(fee);
            emit Transfer(_from, msg.sender, fee);
        }

        balances[to] = balances[to].add(value);
        emit Transfer(_from, to, value);

        emit BetaDelegatedTransfer(_from, to, value, seq, fee);
        return true;
    }

    /**
     * @dev Performs an atomic batch of transfers on behalf of the from addresses, identified by their signatures.
     * Lack of nested array support in arguments requires all arguments to be passed as equal size arrays where
     * delegated transfer number i is the combination of all arguments at index i
     * @param r the r signatures of the delgatedTransfer msg.
     * @param s the s signatures of the delgatedTransfer msg.
     * @param v the v signatures of the delgatedTransfer msg.
     * @param to The addresses to transfer to.
     * @param value The amounts to be transferred.
     * @param fee optional ERC20 fees paid to the delegate of betaDelegatedTransfer by the from address.
     * @param seq sequencing numbers included by the from address specific to this contract to protect from replays.
     * @param deadline block numbers after which the pre-signed transactions have expired.
     * @return A boolean that indicates if the operation was successful.
     */
    function betaDelegatedTransferBatch(
        bytes32[] r, bytes32[] s, uint8[] v, address[] to, uint256[] value, uint256[] fee, uint256[] seq, uint256[] deadline
    ) public returns (bool) {
        require(r.length == s.length && r.length == v.length && r.length == to.length && r.length == value.length, "length mismatch");
        require(r.length == fee.length && r.length == seq.length && r.length == deadline.length, "length mismatch");

        for (uint i = 0; i < r.length; i++) {
            require(
                _betaDelegatedTransfer(r[i], s[i], v[i], to[i], value[i], fee[i], seq[i], deadline[i]),
                "failed transfer"
            );
        }
        return true;
    }

    /**
    * @dev Gets whether the address is currently whitelisted for betaDelegateTransfer.
    * @param _addr The address to check if whitelisted.
    * @return A bool representing whether the given address is whitelisted.
    */
    function isWhitelistedBetaDelegate(address _addr) public view returns (bool) {
        return betaDelegateWhitelist[_addr];
    }

    /**
     * @dev Sets a new betaDelegate whitelister.
     * @param _newWhitelister The address allowed to whitelist betaDelegates.
     */
    function setBetaDelegateWhitelister(address _newWhitelister) public {
        require(msg.sender == betaDelegateWhitelister || msg.sender == owner, "only Whitelister or Owner");
        betaDelegateWhitelister = _newWhitelister;
        emit BetaDelegateWhitelisterSet(betaDelegateWhitelister, _newWhitelister);
    }

    modifier onlyBetaDelegateWhitelister() {
        require(msg.sender == betaDelegateWhitelister, "onlyBetaDelegateWhitelister");
        _;
    }

    /**
     * @dev Whitelists an address to allow calling BetaDelegatedTransfer.
     * @param _addr The new address to whitelist.
     */
    function whitelistBetaDelegate(address _addr) public onlyBetaDelegateWhitelister {
        require(!betaDelegateWhitelist[_addr], "delegate already whitelisted");
        betaDelegateWhitelist[_addr] = true;
        emit BetaDelegateWhitelisted(_addr);
    }

    /**
     * @dev Unwhitelists an address to disallow calling BetaDelegatedTransfer.
     * @param _addr The new address to whitelist.
     */
    function unwhitelistBetaDelegate(address _addr) public onlyBetaDelegateWhitelister {
        require(betaDelegateWhitelist[_addr], "delegate not whitelisted");
        betaDelegateWhitelist[_addr] = false;
        emit BetaDelegateUnwhitelisted(_addr);
    }
}

Contract ABI

[{"constant":false,"inputs":[],"name":"disregardProposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assetProtectionRole","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"},{"name":"v","type":"uint8[]"},{"name":"to","type":"address[]"},{"name":"value","type":"uint256[]"},{"name":"fee","type":"uint256[]"},{"name":"seq","type":"uint256[]"},{"name":"deadline","type":"uint256[]"}],"name":"betaDelegatedTransferBatch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sig","type":"bytes"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"seq","type":"uint256"},{"name":"deadline","type":"uint256"}],"name":"betaDelegatedTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initializeDomainSeparator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newSupplyController","type":"address"}],"name":"setSupplyController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"target","type":"address"}],"name":"nextSeqOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAssetProtectionRole","type":"address"}],"name":"setAssetProtectionRole","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newWhitelister","type":"address"}],"name":"setBetaDelegateWhitelister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"decreaseSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isWhitelistedBetaDelegate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"whitelistBetaDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"proposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"increaseSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"betaDelegateWhitelister","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"unwhitelistBetaDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"wipeFrozenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EIP712_DOMAIN_HASH","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isFrozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supplyController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimBUSD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentOwner","type":"address"},{"indexed":true,"name":"proposedOwner","type":"address"}],"name":"OwnershipTransferProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldProposedOwner","type":"address"}],"name":"OwnershipTransferDisregarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"AddressFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"AddressUnfrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"FrozenAddressWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAssetProtectionRole","type":"address"},{"indexed":true,"name":"newAssetProtectionRole","type":"address"}],"name":"AssetProtectionRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SupplyIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SupplyDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldSupplyController","type":"address"},{"indexed":true,"name":"newSupplyController","type":"address"}],"name":"SupplyControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"seq","type":"uint256"},{"indexed":false,"name":"fee","type":"uint256"}],"name":"BetaDelegatedTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldWhitelister","type":"address"},{"indexed":true,"name":"newWhitelister","type":"address"}],"name":"BetaDelegateWhitelisterSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newDelegate","type":"address"}],"name":"BetaDelegateWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldDelegate","type":"address"}],"name":"BetaDelegateUnwhitelisted","type":"event"}]

60806040526000805460ff191690556005805460a060020a60ff02191690553480156200002b57600080fd5b506200003f6401000000006200006b810204565b6200005264010000000062000124810204565b620000656401000000006200027b810204565b620003ed565b60005460ff1615620000de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a031991821681179092556005805482169055600680548216905560006002819055600880549092169092179055805460ff19166001179055565b600454600160a060020a031633146200019e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c794f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60055474010000000000000000000000000000000000000000900460ff16156200022957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6005805460a060020a60ff021916740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e7472616374290000000000000000000000000060208083019190915282519182900360330182208284018452600b8084527f42696e616e63652055534400000000000000000000000000000000000000000092840192835293519093909182918083835b60208310620003355780518252601f19909201916020918201910162000314565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b60208310620003bc5780518252601f1990920191602091820191016200039b565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505050565b61338f80620003fd6000396000f3006080604052600436106101ed5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303acb44881146101f257806306fdde0314610209578063095ea7b3146102935780630a91b601146102cb57806318160ddd146102fc5780631b6705611461032357806321ab11f71461050757806323b872dd146105805780632ff79161146105aa578063313ce567146105bf5780633f4ba83a146105ea57806345c8b1a6146105ff5780634e71e0c81461062057806352875bc3146106355780635c975abb1461065657806370a082311461066b5780638129fc1c1461068c5780638456cb59146106a1578063893d20e8146106b657806389f72c21146106cb5780638ceed9cb146106ec5780638d1fdf2f1461070d5780638da5cb5b1461072e57806395d89b411461074357806397d60d561461075857806398e52f9a14610779578063a7d87ed014610791578063a9059cbb146107b2578063ac69275c146107d6578063b5ed298a146107f7578063b921e16314610818578063c4f62fee14610830578063d153b60c14610845578063d990c6181461085a578063dd62ed3e1461087b578063e2f72f03146108a2578063e306f779146108c3578063e5839836146108d8578063e7ba1012146108f9578063ebc93aaf1461090e575b600080fd5b3480156101fe57600080fd5b50610207610923565b005b34801561021557600080fd5b5061021e610a74565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029f57600080fd5b506102b7600160a060020a0360043516602435610aab565b604080519115158252519081900360200190f35b3480156102d757600080fd5b506102e0610be2565b60408051600160a060020a039092168252519081900360200190f35b34801561030857600080fd5b50610311610bf1565b60408051918252519081900360200190f35b34801561032f57600080fd5b50604080516020600480358082013583810280860185019096528085526102b795369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bf79650505050505050565b34801561051357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102b794369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050602083013592604081013592506060810135915060800135610e34565b34801561058c57600080fd5b506102b7600160a060020a0360043581169060243516604435610f10565b3480156105b657600080fd5b5061020761124b565b3480156105cb57600080fd5b506105d46113b9565b6040805160ff9092168252519081900360200190f35b3480156105f657600080fd5b506102076113be565b34801561060b57600080fd5b50610207600160a060020a03600435166114ba565b34801561062c57600080fd5b506102076115d7565b34801561064157600080fd5b50610207600160a060020a036004351661169d565b34801561066257600080fd5b506102b76117f8565b34801561067757600080fd5b50610311600160a060020a0360043516611808565b34801561069857600080fd5b50610207611823565b3480156106ad57600080fd5b506102076118c4565b3480156106c257600080fd5b506102e06119c5565b3480156106d757600080fd5b50610311600160a060020a03600435166119d4565b3480156106f857600080fd5b50610207600160a060020a03600435166119ef565b34801561071957600080fd5b50610207600160a060020a0360043516611aea565b34801561073a57600080fd5b506102e0611c09565b34801561074f57600080fd5b5061021e611c18565b34801561076457600080fd5b50610207600160a060020a0360043516611c4f565b34801561078557600080fd5b506102b7600435611d18565b34801561079d57600080fd5b506102b7600160a060020a0360043516611ec7565b3480156107be57600080fd5b506102b7600160a060020a0360043516602435611ee5565b3480156107e257600080fd5b50610207600160a060020a036004351661211a565b34801561080357600080fd5b50610207600160a060020a0360043516612239565b34801561082457600080fd5b506102b76004356123c7565b34801561083c57600080fd5b506102e0612502565b34801561085157600080fd5b506102e0612511565b34801561086657600080fd5b50610207600160a060020a0360043516612520565b34801561088757600080fd5b50610311600160a060020a036004358116906024351661263d565b3480156108ae57600080fd5b50610207600160a060020a0360043516612668565b3480156108cf57600080fd5b50610311612819565b3480156108e457600080fd5b506102b7600160a060020a036004351661281f565b34801561090557600080fd5b506102e061283d565b34801561091a57600080fd5b5061020761284c565b600554600090600160a060020a03163314806109495750600454600160a060020a031633145b151561099f576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c792070726f706f7365644f776e6572206f72206f776e65720000000000604482015290519081900360640190fd5b600554600160a060020a03161515610a27576040805160e560020a62461bcd02815260206004820152603b60248201527f63616e206f6e6c792064697372656761726420612070726f706f736564206f7760448201527f6e65722074686174207761732070726576696f75736c79207365740000000000606482015290519081900360840190fd5b5060058054600160a060020a03198116909155604051600160a060020a039091169081907f24f4590b0077912a4db89e7430de7986175c27bede1b47ee039e3b421c2e798e90600090a250565b60408051808201909152600b81527f42696e616e636520555344000000000000000000000000000000000000000000602082015281565b60055460009060a060020a900460ff1615610afe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613304833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015610b3757503360009081526007602052604090205460ff16155b1515610b7b576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132e4833981519152604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600654600160a060020a031681565b60025490565b60008088518a51148015610c0c575087518a51145b8015610c19575086518a51145b8015610c26575085518a51145b1515610c7c576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b84518a51148015610c8e575083518a51145b8015610c9b575082518a51145b1515610cf1576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b5060005b8951811015610e2457610dc68a82815181101515610d0f57fe5b906020019060200201518a83815181101515610d2757fe5b906020019060200201518a84815181101515610d3f57fe5b906020019060200201518a85815181101515610d5757fe5b906020019060200201518a86815181101515610d6f57fe5b906020019060200201518a87815181101515610d8757fe5b906020019060200201518a88815181101515610d9f57fe5b906020019060200201518a89815181101515610db757fe5b90602001906020020151612926565b1515610e1c576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b600101610cf5565b5060019998505050505050505050565b60008060008089516041141515610e95576040805160e560020a62461bcd02815260206004820152601f60248201527f7369676e61747572652073686f756c642068617665206c656e67746820363500604482015290519081900360640190fd5b50505060208701516040880151606089015160001a610eba8383838c8c8c8c8c612926565b1515610e24576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b60055460009060a060020a900460ff1615610f63576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613304833981519152604482015290519081900360640190fd5b600160a060020a0383161515610fc3576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff161580156110055750600160a060020a03841660009081526007602052604090205460ff16155b801561102157503360009081526007602052604090205460ff16155b1515611065576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132e4833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600160205260409020548211156110d5576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600360209081526040808320338452909152902054821115611150576040805160e560020a62461bcd02815260206004820152601660248201527f696e73756666696369656e7420616c6c6f77616e636500000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020526040902054611179908363ffffffff6132b316565b600160a060020a0380861660009081526001602052604080822093909355908516815220546111ae908363ffffffff6132ca16565b600160a060020a0380851660009081526001602090815260408083209490945591871681526003825282812033825290915220546111f2908363ffffffff6132b316565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020613324833981519152929181900390910190a35060019392505050565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e7472616374290000000000000000000000000060208083019190915282519182900360330182208284018452600b8084527f42696e616e63652055534400000000000000000000000000000000000000000092840192835293519093909182918083835b602083106113035780518252601f1990920191602091820191016112e4565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b602083106113885780518252601f199092019160209182019101611369565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505050565b601281565b600454600160a060020a0316331461140e576040805160e560020a62461bcd0281526020600482015260096024820152600080516020613344833981519152604482015290519081900360640190fd5b60055460a060020a900460ff161515611471576040805160e560020a62461bcd02815260206004820152601060248201527f616c726561647920756e70617573656400000000000000000000000000000000604482015290519081900360640190fd5b6005805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600654600160a060020a0316331461151c576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526007602052604090205460ff16151561158e576040805160e560020a62461bcd02815260206004820152601860248201527f6164647265737320616c726561647920756e66726f7a656e0000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260076020526040808220805460ff19169055517fc3776b472ebf54114339eec9e4dc924e7ce307a97f5c1ee72b6d474e6e5e8b7c9190a250565b600554600090600160a060020a0316331461163c576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c7950726f706f7365644f776e6572000000000000000000000000000000604482015290519081900360640190fd5b506004805460058054600160a060020a0319808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600854600160a060020a03163314806116c05750600454600160a060020a031633145b1515611716576040805160e560020a62461bcd02815260206004820152601e60248201527f6f6e6c7920537570706c79436f6e74726f6c6c6572206f72204f776e65720000604482015290519081900360640190fd5b600160a060020a038116151561179c576040805160e560020a62461bcd02815260206004820152602c60248201527f63616e6e6f742073657420737570706c7920636f6e74726f6c6c657220746f2060448201527f61646472657373207a65726f0000000000000000000000000000000000000000606482015290519081900360840190fd5b600854604051600160a060020a038084169216907f40d53b0b666e4424f29d55244e7e171a1dc332acc11d04ed4abd884629d8cc9790600090a360088054600160a060020a031916600160a060020a0392909216919091179055565b60055460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60005460ff161561187e576040805160e560020a62461bcd02815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a031991821681179092556005805482169055600680548216905560006002819055600880549092169092179055805460ff19166001179055565b600454600160a060020a03163314611914576040805160e560020a62461bcd0281526020600482015260096024820152600080516020613344833981519152604482015290519081900360640190fd5b60055460a060020a900460ff1615611976576040805160e560020a62461bcd02815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6005805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600454600160a060020a031690565b600160a060020a03166000908152600b602052604090205490565b600654600160a060020a0316331480611a125750600454600160a060020a031633145b1515611a8e576040805160e560020a62461bcd02815260206004820152602160248201527f6f6e6c7920617373657450726f74656374696f6e526f6c65206f72204f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654604051600160a060020a038084169216907fd0c36a0ac0fe0d375386bd568fa2947a2dae7523a0a0cfdab20b7532a105bd1b90600090a360068054600160a060020a031916600160a060020a0392909216919091179055565b600654600160a060020a03163314611b4c576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526007602052604090205460ff1615611bbd576040805160e560020a62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792066726f7a656e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260076020526040808220805460ff19166001179055517f90811a8edd3b3c17eeaefffc17f639cc69145d41a359c9843994dc25382036909190a250565b600454600160a060020a031681565b60408051808201909152600481527f4255534400000000000000000000000000000000000000000000000000000000602082015281565b600954600160a060020a0316331480611c725750600454600160a060020a031633145b1515611cc8576040805160e560020a62461bcd02815260206004820152601960248201527f6f6e6c792057686974656c6973746572206f72204f776e657200000000000000604482015290519081900360640190fd5b60098054600160a060020a031916600160a060020a0383811691821792839055604051919216907f54e20b07412504aee4d17519747ae2f01b9924f7f30059793fe5576c4220a0c390600090a350565b600854600090600160a060020a03163314611d7d576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600854600160a060020a0316600090815260016020526040902054821115611def576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420656e6f75676820737570706c79000000000000000000000000000000604482015290519081900360640190fd5b600854600160a060020a0316600090815260016020526040902054611e1a908363ffffffff6132b316565b600854600160a060020a0316600090815260016020526040902055600254611e48908363ffffffff6132b316565b600255600854604080518481529051600160a060020a03909216917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a639181900360200190a2600854604080518481529051600092600160a060020a031691600080516020613324833981519152919081900360200190a3506001919050565b600160a060020a03166000908152600a602052604090205460ff1690565b60055460009060a060020a900460ff1615611f38576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613304833981519152604482015290519081900360640190fd5b600160a060020a0383161515611f98576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015611fd157503360009081526007602052604090205460ff16155b1515612015576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132e4833981519152604482015290519081900360640190fd5b3360009081526001602052604090205482111561207c576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b3360009081526001602052604090205461209c908363ffffffff6132b316565b3360009081526001602052604080822092909255600160a060020a038516815220546120ce908363ffffffff6132ca16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233926000805160206133248339815191529281900390910190a350600192915050565b600954600160a060020a0316331461217c576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff16156121ed576040805160e560020a62461bcd02815260206004820152601c60248201527f64656c656761746520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19166001179055517f8a22e0d8ecb02260464e9a55b7d82b17482735ae1f765de59dee573dfec5b36d9190a250565b600454600160a060020a03163314612289576040805160e560020a62461bcd0281526020600482015260096024820152600080516020613344833981519152604482015290519081900360640190fd5b600160a060020a038116151561230f576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572206f776e65727368697020746f2061646460448201527f72657373207a65726f0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a0382161415612370576040805160e560020a62461bcd02815260206004820152601760248201527f63616c6c657220616c7265616479206973206f776e6572000000000000000000604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a038381169190911791829055600454604051928216929116907ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c090600090a350565b600854600090600160a060020a0316331461242c576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b60025461243f908363ffffffff6132ca16565b600255600854600160a060020a031660009081526001602052604090205461246d908363ffffffff6132ca16565b60088054600160a060020a03908116600090815260016020908152604091829020949094559154825186815292519116927ff5c174d57843e57fea3c649fdde37f015ef08750759cbee88060390566a98797928290030190a2600854604080518481529051600160a060020a0390921691600091600080516020613324833981519152919081900360200190a3506001919050565b600954600160a060020a031681565b600554600160a060020a031681565b600954600160a060020a03163314612582576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1615156125f4576040805160e560020a62461bcd02815260206004820152601860248201527f64656c6567617465206e6f742077686974656c69737465640000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19169055517f12acb305bec2ecc1e4568decc9c8e0423749ceb6ae249eaef4ef375ec174a49c9190a250565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600654600090600160a060020a031633146126cd576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526007602052604090205460ff16151561273f576040805160e560020a62461bcd02815260206004820152601560248201527f61646472657373206973206e6f742066726f7a656e0000000000000000000000604482015290519081900360640190fd5b50600160a060020a03811660009081526001602052604081208054919055600254612770908263ffffffff6132b316565b600255604051600160a060020a038316907ffc5960f1c5a5d2b60f031bf534af053b1bf7d9881989afaeb8b1d164db23aede90600090a2604080518281529051600160a060020a038416917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a63919081900360200190a2604080518281529051600091600160a060020a038516916000805160206133248339815191529181900360200190a35050565b600c5481565b600160a060020a031660009081526007602052604090205460ff1690565b600854600160a060020a031681565b600454600090600160a060020a0316331461289f576040805160e560020a62461bcd0281526020600482015260096024820152600080516020613344833981519152604482015290519081900360640190fd5b5030600090815260016020526040808220805490839055600454600160a060020a031683529120546128d7908263ffffffff6132ca16565b60048054600160a060020a03908116600090815260016020908152604091829020949094559154825185815292519116923092600080516020613324833981519152929081900390910190a350565b60055460009081908190819060a060020a900460ff161561297f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613304833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515612a0e576040805160e560020a62461bcd02815260206004820152602f60248201527f426574612066656174757265206f6e6c7920616363657074732077686974656c60448201527f69737465642064656c6567617465730000000000000000000000000000000000606482015290519081900360840190fd5b6000881180612a1d5750600087115b1515612a99576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572207a65726f20746f6b656e73207769746860448201527f207a65726f206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b43851015612af1576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e73616374696f6e206578706972656400000000000000000000000000604482015290519081900360640190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08b1115612b69576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b8960ff16601b1480612b7e57508960ff16601c145b1515612bd4576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b604080517f4265746144656c6567617465645472616e73666572286164647265737320746f81527f2c75696e743235362076616c75652c75696e74323536206665652c75696e74326020808301919091527f3536207365712c75696e7432353620646561646c696e6529000000000000000082840152825191829003605801822082820152600160a060020a038c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920192839052815191929182918401908083835b60208310612cc45780518252601f199092019160209182019101612ca5565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828501855260028084527f1901000000000000000000000000000000000000000000000000000000000000848401908152600c549651929b509397509495508994910192508291908083835b60208310612d565780518252601f199092019160209182019101612d37565b51815160209384036101000a6000190180199092169116179052920194855250838101929092525060408051808403830181529281019081905282519293509182918401908083835b60208310612dbe5780518252601f199092019160209182019101612d9f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091506001828b8e8e604051600081526020016040526040518085600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019450505050506020604051602081039080840390855afa158015612e62573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a0381161515612ef5576040805160e560020a62461bcd02815260206004820152602d60248201527f6572726f722064657465726d696e696e672066726f6d2061646472657373206660448201527f726f6d207369676e617475726500000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0389161515612f55576040805160e560020a62461bcd02815260206004820152601660248201527f63616e6e6f207573652061646472657373207a65726f00000000000000000000604482015290519081900360640190fd5b600160a060020a03891660009081526007602052604090205460ff16158015612f975750600160a060020a03811660009081526007602052604090205460ff16155b8015612fb357503360009081526007602052604090205460ff16155b1515612ff7576040805160e560020a62461bcd02815260206004820152600e60248201526000805160206132e4833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054613020898963ffffffff6132ca16565b1115613076576040805160e560020a62461bcd02815260206004820152601060248201527f696e737566666963656e742066756e6400000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b602052604090205486146130e5576040805160e560020a62461bcd02815260206004820152600d60248201527f696e636f72726563742073657100000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b602052604090205461310f90600163ffffffff6132ca16565b600160a060020a0382166000908152600b602052604090205561316061313b898963ffffffff6132ca16565b600160a060020a0383166000908152600160205260409020549063ffffffff6132b316565b600160a060020a03821660009081526001602052604090205586156131e3573360009081526001602052604090205461319f908863ffffffff6132ca16565b336000818152600160209081526040918290209390935580518a815290519192600160a060020a038516926000805160206133248339815191529281900390910190a35b600160a060020a03891660009081526001602052604090205461320c908963ffffffff6132ca16565b600160a060020a03808b166000818152600160209081526040918290209490945580518c8152905191939285169260008051602061332483398151915292918290030190a360408051898152602081018890528082018990529051600160a060020a03808c1692908416917fe526c2818be85606ab8e0ea3f317c198ef15baabbb4430bcf2d836eed3c7769b9181900360600190a35060019b9a5050505050505050505050565b600080838311156132c357600080fd5b5050900390565b6000828201838110156132dc57600080fd5b93925050505600616464726573732066726f7a656e0000000000000000000000000000000000007768656e4e6f7450617573656400000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6f6e6c794f776e65720000000000000000000000000000000000000000000000a165627a7a72305820a77cbe90d6afb8bae9d00e304892d0c613e2678c1f936947ac5fc6560a8bebe60029

Deployed ByteCode Sourcemap

1505:24798:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11377:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11377:411:0;;;;;;1825:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1825:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1825:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9655:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9655:298:0;-1:-1:-1;;;;;9655:298:0;;;;;;;;;;;;;;;;;;;;;;;;;2318:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2318:34:0;;;;;;;;-1:-1:-1;;;;;2318:34:0;;;;;;;;;;;;;;6777:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6777:91:0;;;;;;;;;;;;;;;;;;;;23744:714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;;23744:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23744:714:0;;;;-1:-1:-1;23744:714:0;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;;;;;;;;-1:-1:-1;23744:714:0;;-1:-1:-1;23744:714:0;;-1:-1:-1;;;;;;;23744:714:0;18983:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18983:565:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18983:565:0;;-1:-1:-1;;;;;;;18983:565:0;;;;-1:-1:-1;;;18983:565:0;;;;;;;;;;-1:-1:-1;18983:565:0;;;;;-1:-1:-1;18983:565:0;;;;;8276:730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8276:730:0;-1:-1:-1;;;;;8276:730:0;;;;;;;;;;;;6166:344;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6166:344:0;;;;1976:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1976:35:0;;;;;;;;;;;;;;;;;;;;;;;13199:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13199:140:0;;;;14525:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14525:203:0;-1:-1:-1;;;;;14525:203:0;;;;;11924:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11924:268:0;;;;15845:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15845:408:0;-1:-1:-1;;;;;15845:408:0;;;;;2253:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2253:26:0;;;;7844:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7844:105:0;-1:-1:-1;;;;;7844:105:0;;;;;5347:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5347:297:0;;;;12970:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12970:134:0;;;;6623:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6623:79:0;;;;18111:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18111:107:0;-1:-1:-1;;;;;18111:107:0;;;;;13577:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13577:333:0;-1:-1:-1;;;;;13577:333:0;;;;;14191:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14191:197:0;-1:-1:-1;;;;;14191:197:0;;;;;2164:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2164:20:0;;;;1898:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1898:38:0;;;;24991:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24991:321:0;-1:-1:-1;;;;;24991:321:0;;;;;17294:445;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17294:445:0;;;;;24705:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24705:131:0;-1:-1:-1;;;;;24705:131:0;;;;;7125:499;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7125:499:0;-1:-1:-1;;;;;7125:499:0;;;;;;;25619:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25619:262:0;-1:-1:-1;;;;;25619:262:0;;;;;10886:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10886:343:0;-1:-1:-1;;;;;10886:343:0;;;;;16654:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16654:368:0;;;;;2508:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2508:38:0;;;;2191:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2191:28:0;;;;26038:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26038:262:0;-1:-1:-1;;;;;26038:262:0;;;;;10294:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10294:179:0;-1:-1:-1;;;;;10294:179:0;;;;;;;;;;14920:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14920:408:0;-1:-1:-1;;;;;14920:408:0;;;;;3259:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3259:33:0;;;;15535:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15535:99:0;-1:-1:-1;;;;;15535:99:0;;;;;2436:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2436:31:0;;;;12411:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12411:228:0;;;;11377:411;11450:13;;11639:25;;-1:-1:-1;;;;;11450:13:0;11436:10;:27;;:50;;-1:-1:-1;11481:5:0;;-1:-1:-1;;;;;11481:5:0;11467:10;:19;11436:50;11428:90;;;;;;;-1:-1:-1;;;;;11428:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11537:13;;-1:-1:-1;;;;;11537:13:0;:27;;11529:99;;;;;-1:-1:-1;;;;;11529:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11667:13:0;;;-1:-1:-1;;;;;;11691:26:0;;;;;11733:47;;-1:-1:-1;;;;;11667:13:0;;;;;;11733:47;;11667:13;;11733:47;11377:411;:::o;1825:43::-;;;;;;;;;;;;;;;;;;;:::o;9655:298::-;12834:6;;9736:4;;-1:-1:-1;;;12834:6:0;;;;12833:7;12825:33;;;;;-1:-1:-1;;;;;12825:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12825:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9762:16:0;;;;;;:6;:16;;;;;;;;9761:17;:40;;;;-1:-1:-1;9790:10:0;9783:18;;;;:6;:18;;;;;;;;9782:19;9761:40;9753:67;;;;;;;-1:-1:-1;;;;;9753:67:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9753:67:0;;;;;;;;;;;;;;;9839:10;9831:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9831:29:0;;;;;;;;;;;;:38;;;9885;;;;;;;9831:29;;9839:10;9885:38;;;;;;;;;;;-1:-1:-1;9941:4:0;9655:298;;;;:::o;2318:34::-;;;-1:-1:-1;;;;;2318:34:0;;:::o;6777:91::-;6848:12;;6777:91;:::o;23744:714::-;23930:4;24208:6;23967:1;:8;23955:1;:8;:20;:44;;;;;23991:1;:8;23979:1;:8;:20;23955:44;:69;;;;;24015:2;:9;24003:1;:8;:21;23955:69;:97;;;;;24040:5;:12;24028:1;:8;:24;23955:97;23947:125;;;;;;;-1:-1:-1;;;;;23947:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24103:3;:10;24091:1;:8;:22;:48;;;;;24129:3;:10;24117:1;:8;:22;24091:48;:79;;;;;24155:8;:15;24143:1;:8;:27;24091:79;24083:107;;;;;;;-1:-1:-1;;;;;24083:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24217:1:0;24203:226;24224:1;:8;24220:1;:12;24203:226;;;24280:86;24303:1;24305;24303:4;;;;;;;;;;;;;;;;;;24309:1;24311;24309:4;;;;;;;;;;;;;;;;;;24315:1;24317;24315:4;;;;;;;;;;;;;;;;;;24321:2;24324:1;24321:5;;;;;;;;;;;;;;;;;;24328;24334:1;24328:8;;;;;;;;;;;;;;;;;;24338:3;24342:1;24338:6;;;;;;;;;;;;;;;;;;24346:3;24350:1;24346:6;;;;;;;;;;;;;;;;;;24354:8;24363:1;24354:11;;;;;;;;;;;;;;;;;;24280:22;:86::i;:::-;24254:163;;;;;;;-1:-1:-1;;;;;24254:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24234:3;;24203:226;;;-1:-1:-1;24446:4:0;;23744:714;-1:-1:-1;;;;;;;;;23744:714:0:o;18983:565::-;19128:4;19216:9;19236;19256:7;19153:3;:10;19167:2;19153:16;19145:60;;;;;;;-1:-1:-1;;;;;19145:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;19318:2:0;19309:12;;19303:19;19356:2;19347:12;;19341:19;19402:2;19393:12;;19387:19;19384:1;19379:28;19436:62;19303:19;19341;19379:28;19468:2;19472:5;19479:3;19484;19489:8;19436:22;:62::i;:::-;19428:90;;;;;;;-1:-1:-1;;;;;19428:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8276:730;12834:6;;8421:4;;-1:-1:-1;;;12834:6:0;;;;12833:7;12825:33;;;;;-1:-1:-1;;;;;12825:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12825:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8451:17:0;;;;8443:61;;;;;-1:-1:-1;;;;;8443:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8524:11:0;;;;;;:6;:11;;;;;;;;8523:12;:30;;;;-1:-1:-1;;;;;;8540:13:0;;;;;;:6;:13;;;;;;;;8539:14;8523:30;:53;;;;-1:-1:-1;8565:10:0;8558:18;;;;:6;:18;;;;;;;;8557:19;8523:53;8515:80;;;;;;;-1:-1:-1;;;;;8515:80:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8515:80:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8624:15:0;;;;;;:8;:15;;;;;;8614:25;;;8606:56;;;;;-1:-1:-1;;;;;8606:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8691:14:0;;;;;;:7;:14;;;;;;;;8706:10;8691:26;;;;;;;;8681:36;;;8673:71;;;;;-1:-1:-1;;;;;8673:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8775:15:0;;;;;;:8;:15;;;;;;:27;;8795:6;8775:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;8757:15:0;;;;;;;:8;:15;;;;;;:45;;;;8829:13;;;;;;;:25;;8847:6;8829:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;8813:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;8894:14;;;;;:7;:14;;;;;8909:10;8894:26;;;;;;;:38;;8925:6;8894:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;8865:14:0;;;;;;;:7;:14;;;;;;;;8880:10;8865:26;;;;;;;;:67;;;;8948:28;;;;;;;;;;;8865:14;;-1:-1:-1;;;;;;;;;;;8948:28:0;;;;;;;;;;-1:-1:-1;8994:4:0;8276:730;;;;;:::o;6166:344::-;2880:80;;;;;;;;;;;;;;;;;;;;;;;;;6439:4;;;;;;;;;;;;;;;;6423:22;;2880:80;;6423:22;;;;6439:4;6423:22;6439:4;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6423:22:0;;;;;;;;;;;;6312:189;;;;;;;;;;;;;;6480:4;6312:189;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;6312:189:0;;;;;;;;6302:200;;6312:189;;;;-1:-1:-1;6312:189:0;;-1:-1:-1;6302:200:0;;;;;-1:-1:-1;6302:200:0;6312:189;6302:200;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;6302:200:0;;;;;;;;;;6281:18;:221;-1:-1:-1;;;6166:344:0:o;1976:35::-;2009:2;1976:35;:::o;13199:140::-;10650:5;;-1:-1:-1;;;;;10650:5:0;10636:10;:19;10628:41;;;;;-1:-1:-1;;;;;10628:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10628:41:0;;;;;;;;;;;;;;;13254:6;;-1:-1:-1;;;13254:6:0;;;;13246:35;;;;;;;-1:-1:-1;;;;;13246:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13292:6;:14;;-1:-1:-1;;13292:14:0;;;13322:9;;;;13301:5;;13322:9;13199:140::o;14525:203::-;13986:19;;-1:-1:-1;;;;;13986:19:0;13972:10;:33;13964:69;;;;;-1:-1:-1;;;;;13964:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14608:13:0;;;;;;:6;:13;;;;;;;;14600:50;;;;;;;-1:-1:-1;;;;;14600:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14661:13:0;;14677:5;14661:13;;;:6;:13;;;;;;:21;;-1:-1:-1;;14661:21:0;;;14698:22;;;14677:5;14698:22;14525:203;:::o;11924:268::-;11990:13;;12036:17;;-1:-1:-1;;;;;11990:13:0;11976:10;:27;11968:57;;;;;-1:-1:-1;;;;;11968:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12056:5:0;;;12080:13;;;-1:-1:-1;;;;;;12072:21:0;;;-1:-1:-1;;;;;12080:13:0;;;12072:21;;;;;;;;12104:26;;;;;12146:38;;12056:5;;;;12178;;12056;;12146:38;;12056:5;;12146:38;11924:268;:::o;15845:408::-;15944:16;;-1:-1:-1;;;;;15944:16:0;15930:10;:30;;:53;;-1:-1:-1;15978:5:0;;-1:-1:-1;;;;;15978:5:0;15964:10;:19;15930:53;15922:96;;;;;;;-1:-1:-1;;;;;15922:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16037:34:0;;;;16029:91;;;;;-1:-1:-1;;;;;16029:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16156:16;;16136:59;;-1:-1:-1;;;;;16136:59:0;;;;16156:16;;16136:59;;16156:16;;16136:59;16206:16;:39;;-1:-1:-1;;;;;;16206:39:0;-1:-1:-1;;;;;16206:39:0;;;;;;;;;;15845:408::o;2253:26::-;;;-1:-1:-1;;;2253:26:0;;;;;:::o;7844:105::-;-1:-1:-1;;;;;7926:15:0;7899:7;7926:15;;;:8;:15;;;;;;;7844:105::o;5347:297::-;5396:11;;;;5395:12;5387:44;;;;;-1:-1:-1;;;;;5387:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:5;:18;;5450:10;-1:-1:-1;;;;;;5442:18:0;;;;;;;;5471:13;:26;;;;;;5508:19;:32;;;;;;-1:-1:-1;5551:12:0;:16;;;5578;:29;;;;;;;;;;5618:18;;-1:-1:-1;;5618:18:0;-1:-1:-1;5618:18:0;;;5347:297::o;12970:134::-;10650:5;;-1:-1:-1;;;;;10650:5:0;10636:10;:19;10628:41;;;;;-1:-1:-1;;;;;10628:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10628:41:0;;;;;;;;;;;;;;;13024:6;;-1:-1:-1;;;13024:6:0;;;;13023:7;13015:34;;;;;-1:-1:-1;;;;;13015:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13060:6;:13;;-1:-1:-1;;13060:13:0;-1:-1:-1;;;13060:13:0;;;13089:7;;;;13060:13;;13089:7;12970:134::o;6623:79::-;6689:5;;-1:-1:-1;;;;;6689:5:0;6623:79;:::o;18111:107::-;-1:-1:-1;;;;;18194:16:0;18167:7;18194:16;;;:8;:16;;;;;;;18111:107::o;13577:333::-;13682:19;;-1:-1:-1;;;;;13682:19:0;13668:10;:33;;:56;;-1:-1:-1;13719:5:0;;-1:-1:-1;;;;;13719:5:0;13705:10;:19;13668:56;13660:102;;;;;;;-1:-1:-1;;;;;13660:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13801:19;;13778:68;;-1:-1:-1;;;;;13778:68:0;;;;13801:19;;13778:68;;13801:19;;13778:68;13857:19;:45;;-1:-1:-1;;;;;;13857:45:0;-1:-1:-1;;;;;13857:45:0;;;;;;;;;;13577:333::o;14191:197::-;13986:19;;-1:-1:-1;;;;;13986:19:0;13972:10;:33;13964:69;;;;;-1:-1:-1;;;;;13964:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14273:13:0;;;;;;:6;:13;;;;;;;;14272:14;14264:49;;;;;-1:-1:-1;;;;;14264:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14324:13:0;;;;;;:6;:13;;;;;;:20;;-1:-1:-1;;14324:20:0;14340:4;14324:20;;;14360;;;14324:13;14360:20;14191:197;:::o;2164:20::-;;;-1:-1:-1;;;;;2164:20:0;;:::o;1898:38::-;;;;;;;;;;;;;;;;;;;:::o;24991:321::-;25092:23;;-1:-1:-1;;;;;25092:23:0;25078:10;:37;;:60;;-1:-1:-1;25133:5:0;;-1:-1:-1;;;;;25133:5:0;25119:10;:19;25078:60;25070:98;;;;;;;-1:-1:-1;;;;;25070:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;25179:23;:41;;-1:-1:-1;;;;;;25179:41:0;-1:-1:-1;;;;;25179:41:0;;;;;;;;;;25236:68;;25179:41;;25263:23;;25236:68;;-1:-1:-1;;25236:68:0;24991:321;:::o;17294:445::-;16326:16;;17371:12;;-1:-1:-1;;;;;16326:16:0;16312:10;:30;16304:63;;;;;-1:-1:-1;;;;;16304:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17423:16;;-1:-1:-1;;;;;17423:16:0;17414:26;;;;:8;:26;;;;;;17404:36;;;17396:66;;;;;-1:-1:-1;;;;;17396:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17511:16;;-1:-1:-1;;;;;17511:16:0;17502:26;;;;:8;:26;;;;;;:38;;17533:6;17502:38;:30;:38;:::i;:::-;17482:16;;-1:-1:-1;;;;;17482:16:0;17473:26;;;;:8;:26;;;;;:67;17566:12;;:24;;17583:6;17566:24;:16;:24;:::i;:::-;17551:12;:39;17622:16;;17606:41;;;;;;;;-1:-1:-1;;;;;17622:16:0;;;;17606:41;;;;;;;;;17672:16;;17663:46;;;;;;;;17698:1;;-1:-1:-1;;;;;17672:16:0;;-1:-1:-1;;;;;;;;;;;17663:46:0;;;;;;;;;-1:-1:-1;17727:4:0;17294:445;;;:::o;24705:131::-;-1:-1:-1;;;;;24800:28:0;24776:4;24800:28;;;:21;:28;;;;;;;;;24705:131::o;7125:499::-;12834:6;;7202:4;;-1:-1:-1;;;12834:6:0;;;;12833:7;12825:33;;;;;-1:-1:-1;;;;;12825:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12825:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7227:17:0;;;;7219:61;;;;;-1:-1:-1;;;;;7219:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7300:11:0;;;;;;:6;:11;;;;;;;;7299:12;:35;;;;-1:-1:-1;7323:10:0;7316:18;;;;:6;:18;;;;;;;;7315:19;7299:35;7291:62;;;;;;;-1:-1:-1;;;;;7291:62:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7291:62:0;;;;;;;;;;;;;;;7391:10;7382:20;;;;:8;:20;;;;;;7372:30;;;7364:61;;;;;-1:-1:-1;;;;;7364:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:10;7461:20;;;;:8;:20;;;;;;:32;;7486:6;7461:32;:24;:32;:::i;:::-;7447:10;7438:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;7520:13:0;;;;;;:25;;7538:6;7520:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;7504:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;7561:33;;;;;;;7504:13;;7570:10;;-1:-1:-1;;;;;;;;;;;7561:33:0;;;;;;;;;-1:-1:-1;7612:4:0;7125:499;;;;:::o;25619:262::-;25392:23;;-1:-1:-1;;;;;25392:23:0;25378:10;:37;25370:77;;;;;-1:-1:-1;;;;;25370:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25720:28:0;;;;;;:21;:28;;;;;;;;25719:29;25711:70;;;;;-1:-1:-1;;;;;25711:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25792:28:0;;;;;;:21;:28;;;;;;:35;;-1:-1:-1;;25792:35:0;25823:4;25792:35;;;25843:30;;;25792:28;25843:30;25619:262;:::o;10886:343::-;10650:5;;-1:-1:-1;;;;;10650:5:0;10636:10;:19;10628:41;;;;;-1:-1:-1;;;;;10628:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10628:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10968:28:0;;;;10960:82;;;;;-1:-1:-1;;;;;10960:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11061:10;-1:-1:-1;;;;;11061:28:0;;;;11053:64;;;;;-1:-1:-1;;;;;11053:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11128:13;:30;;-1:-1:-1;;;;;;11128:30:0;-1:-1:-1;;;;;11128:30:0;;;;;;;;;;;11200:5;;11174:47;;11207:13;;;;11200:5;;;11174:47;;-1:-1:-1;;11174:47:0;10886:343;:::o;16654:368::-;16326:16;;16731:12;;-1:-1:-1;;;;;16326:16:0;16312:10;:30;16304:63;;;;;-1:-1:-1;;;;;16304:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16771:12;;:24;;16788:6;16771:24;:16;:24;:::i;:::-;16756:12;:39;16844:16;;-1:-1:-1;;;;;16844:16:0;16835:26;;;;:8;:26;;;;;;:38;;16866:6;16835:38;:30;:38;:::i;:::-;16815:16;;;-1:-1:-1;;;;;16815:16:0;;;16806:26;;;;:8;:26;;;;;;;;;:67;;;;16905:16;;16889:41;;;;;;;16905:16;;;16889:41;;;;;;;;16967:16;;16946:46;;;;;;;;-1:-1:-1;;;;;16967:16:0;;;;;;-1:-1:-1;;;;;;;;;;;16946:46:0;;;;;;;;;-1:-1:-1;17010:4:0;16654:368;;;:::o;2508:38::-;;;-1:-1:-1;;;;;2508:38:0;;:::o;2191:28::-;;;-1:-1:-1;;;;;2191:28:0;;:::o;26038:262::-;25392:23;;-1:-1:-1;;;;;25392:23:0;25378:10;:37;25370:77;;;;;-1:-1:-1;;;;;25370:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26140:28:0;;;;;;:21;:28;;;;;;;;26132:65;;;;;;;-1:-1:-1;;;;;26132:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26208:28:0;;26239:5;26208:28;;;:21;:28;;;;;;:36;;-1:-1:-1;;26208:36:0;;;26260:32;;;26239:5;26260:32;26038:262;:::o;10294:179::-;-1:-1:-1;;;;;10440:15:0;;;10408:7;10440:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;10294:179::o;14920:408::-;13986:19;;15062:16;;-1:-1:-1;;;;;13986:19:0;13972:10;:33;13964:69;;;;;-1:-1:-1;;;;;13964:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15012:13:0;;;;;;:6;:13;;;;;;;;15004:47;;;;;;;-1:-1:-1;;;;;15004:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15081:15:0;;;;;;:8;:15;;;;;;;15107:19;;;15152:12;;:26;;15081:15;15152:26;:16;:26;:::i;:::-;15137:12;:41;15194:25;;-1:-1:-1;;;;;15194:25:0;;;;;;;;15235:32;;;;;;;;-1:-1:-1;;;;;15235:32:0;;;;;;;;;;;;;15283:37;;;;;;;;15307:1;;-1:-1:-1;;;;;15283:37:0;;;-1:-1:-1;;;;;;;;;;;15283:37:0;;;;;;;;14920:408;;:::o;3259:33::-;;;;:::o;15535:99::-;-1:-1:-1;;;;;15613:13:0;15589:4;15613:13;;;:6;:13;;;;;;;;;15535:99::o;2436:31::-;;;-1:-1:-1;;;;;2436:31:0;;:::o;12411:228::-;10650:5;;12464:16;;-1:-1:-1;;;;;10650:5:0;10636:10;:19;10628:41;;;;;-1:-1:-1;;;;;10628:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10628:41:0;;;;;;;;;;;;;;;-1:-1:-1;12492:4:0;12483:14;;;;:8;:14;;;;;;;;12508:18;;;;12564:5;;-1:-1:-1;;;;;12564:5:0;12555:15;;;;;:29;;12483:14;12555:29;:19;:29;:::i;:::-;12546:5;;;-1:-1:-1;;;;;12546:5:0;;;12537:15;;;;:8;:15;;;;;;;;;:47;;;;12615:5;;12600:31;;;;;;;12615:5;;;12609:4;;-1:-1:-1;;;;;;;;;;;12600:31:0;;;;;;;;;;12411:228;:::o;20752:1975::-;12834:6;;20934:4;;;;;;;;-1:-1:-1;;;12834:6:0;;;;12833:7;12825:33;;;;;-1:-1:-1;;;;;12825:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12825:33:0;;;;;;;;;;;;;;;20981:10;20959:33;;;;:21;:33;;;;;;;;20951:93;;;;;;;-1:-1:-1;;;;;20951:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21071:1;21063:5;:9;:20;;;;21082:1;21076:3;:7;21063:20;21055:74;;;;;;;-1:-1:-1;;;;;21055:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21148:12;:24;-1:-1:-1;21148:24:0;21140:56;;;;;-1:-1:-1;;;;;21140:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21283:66;21269:80;;;21261:112;;;;;-1:-1:-1;;;;;21261:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21392:1;:7;;21397:2;21392:7;:18;;;;21403:1;:7;;21408:2;21403:7;21392:18;21384:50;;;;;;;-1:-1:-1;;;;;21384:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3033:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21577:149;;;;-1:-1:-1;;;;;21673:11:0;;21577:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21577:149:0;;;;;;;;21567:160;;21577:149;;;;;21567:160;;;;21577:149;21567:160;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;21567:160:0;;;;;;;;;;;;21780:13;;;;;;;;;;;;;;;;21795:18;;21763:74;;21567:160;;-1:-1:-1;21567:160:0;;-1:-1:-1;21795:18:0;;-1:-1:-1;21567:160:0;;21763:74;;;-1:-1:-1;21763:74:0;;21780:13;;21763:74;21780:13;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;21763:74:0;;;;;-1:-1:-1;21763:74:0;;;;;;;-1:-1:-1;21763:74:0;;;26:21:-1;;;22:32;;6:49;;21763:74:0;;;;;;;21753:85;;21763:74;;-1:-1:-1;21763:74:0;;;21753:85;;;;21763:74;21753:85;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;21753:85:0;;;;;;;;;;;;;;;;21738:100;;21865:24;21875:4;21881:1;21884;21887;21865:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21865:24:0;;-1:-1:-1;;21865:24:0;;;-1:-1:-1;;;;;;;21910:19:0;;;;21902:77;;;;;-1:-1:-1;;;;;21902:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21998:16:0;;;;21990:51;;;;;-1:-1:-1;;;;;21990:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22061:10:0;;;;;;:6;:10;;;;;;;;22060:11;:29;;;;-1:-1:-1;;;;;;22076:13:0;;;;;;:6;:13;;;;;;;;22075:14;22060:29;:52;;;;-1:-1:-1;22101:10:0;22094:18;;;;:6;:18;;;;;;;;22093:19;22060:52;22052:79;;;;;;;-1:-1:-1;;;;;22052:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22052:79:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22168:15:0;;;;;;:8;:15;;;;;;22150:14;:5;22160:3;22150:14;:9;:14;:::i;:::-;:33;;22142:62;;;;;-1:-1:-1;;;;;22142:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22223:15:0;;;;;;:8;:15;;;;;;:22;;22215:48;;;;;-1:-1:-1;;;;;22215:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22294:15:0;;;;;;:8;:15;;;;;;:22;;22314:1;22294:22;:19;:22;:::i;:::-;-1:-1:-1;;;;;22276:15:0;;;;;;:8;:15;;;;;:40;22345:35;22365:14;:5;22375:3;22365:14;:9;:14;:::i;:::-;-1:-1:-1;;;;;22345:15:0;;;;;;:8;:15;;;;;;;:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;22327:15:0;;;;;;:8;:15;;;;;:53;22397:8;;22393:145;;22454:10;22445:20;;;;:8;:20;;;;;;:29;;22470:3;22445:29;:24;:29;:::i;:::-;22431:10;22422:20;;;;:8;:20;;;;;;;;;:52;;;;22494:32;;;;;;;22431:10;;-1:-1:-1;;;;;22494:32:0;;;-1:-1:-1;;;;;;;;;;;22494:32:0;;;;;;;;;22393:145;-1:-1:-1;;;;;22565:12:0;;;;;;:8;:12;;;;;;:23;;22582:5;22565:23;:16;:23;:::i;:::-;-1:-1:-1;;;;;22550:12:0;;;;;;;:8;:12;;;;;;;;;:38;;;;22604:26;;;;;;;22550:12;;22604:26;;;;-1:-1:-1;;;;;;;;;;;22604:26:0;;;;;;;;22648:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22648:49:0;;;;;;;;;;;;;;;;;-1:-1:-1;22715:4:0;;20752:1975;-1:-1:-1;;;;;;;;;;;20752:1975:0:o;380:150::-;438:7;;466:6;;;;458:15;;;;;;-1:-1:-1;;496:5:0;;;380:150::o;606:::-;664:7;696:5;;;720:6;;;;712:15;;;;;;747:1;606:150;-1:-1:-1;;;606:150:0:o

Swarm Source

bzzr://a77cbe90d6afb8bae9d00e304892d0c613e2678c1f936947ac5fc6560a8bebe6
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading