Contract 0xfab4640add9ede781a0c43829b01e75f9eecb0a6

 

Contract Overview

Balance:
0.000800960000000019 BNB

BNB Value:
$0.33 (@ $417.36/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1c7ffe07bef6aefd8084bda6604e5e2c85e9d70929cf3a11d41de0292dabe584Approve110086492021-09-18 1:31:458 hrs 34 mins ago0xe972af21de55a7f310c0b0d78391ce4ec20ee80e IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.000225805
0x9202fad763ce78c50f1b4051dd675925eed5b9e722d393287133b456fe0da2b4Transfer109660092021-09-16 13:57:041 day 20 hrs ago0x985e217f8ea0d7565eb33cc90024a5c1add3be60 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0xeffff0242bd030977a8ca18873ac7531fcbfe7f154bf195854a4b5528d895a27Transfer105938852021-09-03 13:36:1114 days 20 hrs ago0x66d912006a354bfc1c6551d40e719438e62d6ed7 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00026011
0xc8277f77389b8244f323a49cfa825fa28f2b8d4792ef7af2d5aa1b5d9e4620d9Transfer105712712021-09-02 18:29:5415 days 15 hrs ago0x55db797c9b2367f8d146232fb6d17472fbe99fda IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0xf793544e3335dbb8a291879e1acb936d0a71eec838d59beabfb1177da1fead07Transfer105632892021-09-02 11:44:2915 days 22 hrs ago0x957edf4bf166728c4c10c5983a8e40b8ce8cf938 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0xffb4d77ce84b8ae9b83a0936ccb6c9f46f19232cb938c278b390e52171dcab92Transfer105366712021-09-01 13:21:5916 days 20 hrs ago0xe9c1188d9e32de3e21f9678fda0e4c96de80e714 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.0001889346
0xc6e1aa9464a7e791a91ce5d75ce1d330659e03043f9d2aeb093520289c2c5dcbApprove105073092021-08-31 12:27:2717 days 21 hrs ago0xcc6ee848fd70ba28167f4b7bbc2d1b4327badf04 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.000198385
0xaed2bf2b8b711c4b742507a875e3fca55c945f13ac00c06d0b916d898637ade1Transfer105007402021-08-31 6:53:2918 days 3 hrs ago0x8ce0b238e8e92bc085e25c53e20a750f125e65e6 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x34bd6a1ca8d30cbd20ec5f033de5a102d97f7a4de4bf4ceb0999847ac26bf531Transfer104212572021-08-28 11:53:4220 days 22 hrs ago0x451b7801daa75f46fcd296347fe329692eb17d31 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00026029
0x68bc905dd2c55f3c0327def863fc6aadec0bb4fb5adfb4f2453e6f57d3581da0Transfer103964102021-08-27 14:51:5821 days 19 hrs ago0x6458d82619fb91ecaf95059481a004e863c01c94 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.000222276
0x152150adc4f70a2a763108e8fdaaef636b84c6bcdaf691ba3072b1025bd0976dTransfer103745022021-08-26 19:52:5022 days 14 hrs ago0x85b2f52c0db31969eb4f5562a039ff13fa04558d IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0xfb2d085a876f84bdb8fa3eb3510b8942751eb2cba14b09af93a1b20c2be51ea9Transfer103206882021-08-24 22:52:3424 days 11 hrs ago0x6153ca94290a6d5527e11c12fa364b70e2989006 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x73c6fd8fa5ef52f03f98cd0efe99886dc33a2e941f9499162cd8241f725df92bTransfer102360962021-08-22 0:02:5127 days 10 hrs ago0xb0d24af20b586cf67c0e6814823fddf793e5f098 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x96bf5685f33c42ae7c27ed5476cc6e961504265e25025ebc05daab386d8ad4dcTransfer101838522021-08-20 4:06:4129 days 5 hrs ago0xf5735a6fc8ba1e16dcbd4e782c6fe112d8dbc922 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00011023
0x951ea2c619965c402def8d73278547d770280ab55e9d40e264b548fcd56e3d21Transfer101625692021-08-19 10:12:4629 days 23 hrs ago0x880ad60d393178a1e3cf8e2e4d06fbb45550e0fa IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x2bde94bc162c2d3165a34a3a11ad8434f6f818dfac6098c554a8d0ccbe37c1e3Transfer101387742021-08-18 14:17:3430 days 19 hrs ago0x9843a6a5be0321a9d9b7a10250efae27b60eef5e IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018529
0x05e1c1a43285b57338406edd31e0178da4f98c4a821c066d324e29d15d1d8856Transfer100072202021-08-14 0:18:4635 days 9 hrs ago0xd938faa6d209a692f62a868f421b28e77a556ae2 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x844de22a110d033250dd73fdc9bdb8d65eecbc6955bae94687ce5dd30b70fecaApprove99967382021-08-13 15:23:2035 days 18 hrs ago0x968f65cabed72a5eda1c0e14086b3c283a504694 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.000225805
0xf24a5352d345427bc028663e0272d548f25f94ee0a04242a3bf1f8e8ce8aa906Transfer99946892021-08-13 13:38:1335 days 20 hrs ago0xfc41df53a6fa97ea437467726ad13b4bccc2ffcc IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.000222204
0xc11f8841d2e399a4fb2d4438e786cc9952f220fe0b66ea42eb86a7da95f92ae6Transfer99396112021-08-11 14:12:1037 days 19 hrs ago0x30970d54c5646266b394a63bb677337024230bab IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018523
0x41de4474592b49095f608e2e6ebdee06e584014c3706be50fde5325287bd084fTransfer99231292021-08-11 0:20:2738 days 9 hrs ago0x0022e343d7c499923ac66db447ca17cece6033a0 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00011017
0xba3a61fb0f8b9cefc094eef72ee763cfbe440ee7fce13876f82864d3bbc6a48cTransfer98896772021-08-09 19:54:0939 days 14 hrs ago0x54e0161ac02ca2062e662457d1bfee5199c24980 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x686b5699aacc2dff3b81a4646e08d781857c316cee9d14b8432164a4a8da2f4aTransfer98744862021-08-09 6:58:4040 days 3 hrs ago0x956be67ce7d1582d57ffaac98e43215777d1aba3 IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.000222204
0x59496e921708206bb75229e1d8b34fa1cf854af565f3042f5c76fe15cf1146abTransfer98560532021-08-08 15:10:2440 days 18 hrs ago0x8f6dfb6b4406cd6ed90443cd276b862e9eaad86b IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.00018517
0x3efb7b690b7188054d72932723223075d74119128bdd7ff55e605f3de68b68aeTransfer98492012021-08-08 9:18:1241 days 48 mins ago0x812fcc9f4680e8febb01d712f59b6616602b573a IN  0xfab4640add9ede781a0c43829b01e75f9eecb0a60 BNB0.0002444244
[ Download CSV Export 
Latest 17 internal transactions
Parent Txn Hash Block From To Value
0x2e7d700f629eede7560ba008f0b8ce6c5b1390ffb0352eafbdcabfc8385628c797181522021-08-03 16:46:4445 days 17 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.02 BNB
0xe0b200bed478807fe45ae1fbb4207fcf711194430ed836632b39996032bb98ca94934002021-07-26 12:11:2253 days 21 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.91 BNB
0xb52ebaf78398ae12712f23f812199c48640e2ae4a6dc1db0f1ddc997cec09d1494828652021-07-26 3:10:1054 days 6 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.25 BNB
0x82bdc9bf397794afe53bba8277757728d005302d2d1dce849656ba397d63fd7394810992021-07-26 1:40:5854 days 8 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.121 BNB
0x1be2bd814f99136c495e61f308849327e262ec42c65eccec60e2f59704569a8a94215822021-07-23 23:37:5956 days 10 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.131 BNB
0xe3c522b4283d7321be1e5d95e98eb44041f7cf7e2a07eef3d5bfcc973b05a20493585432021-07-21 18:58:0758 days 15 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.7395 BNB
0xb85e1bebb904108ccc4f5d279b4e9db35a04cf2109abd318d7827ee2579ddefc92782702021-07-19 0:01:4261 days 10 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.18 BNB
0x504af4995e09fae5fb6559b5a30953b58473c2fbc939d77c6171c733323e06c292504332021-07-18 0:49:0362 days 9 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.173 BNB
0x5c51374e8a4b21f2634add8300b559d0741314fdd7edef0efac3af4d4debb62f92114142021-07-16 16:16:4363 days 17 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.112264 BNB
0x415e0e7aa02847c9bf3815d8a08b0da13c8bad9afad571d05a98013bc72f653492113832021-07-16 16:15:1063 days 17 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.0124738 BNB
0x5d6a290b75ad4ebf61fe62c57a714ea476d3143db1fa392fffec674f50ad543d91791092021-07-15 13:20:4864 days 20 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.37 BNB
0x4df7e5bfed29e664e236e2f0d64900ba3229f96bdaf0221ac3cc1cffdd354bac91501872021-07-14 13:13:2465 days 20 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.16 BNB
0x50b15886fd01565c949ed5bb0c0c4acf880d943bb01a5e769c7718449105003291060012021-07-13 0:24:0667 days 9 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.27 BNB
0x1bf696ae41b985f7debcbb377db17dd3b7c417e0d957cdf45f7b26019dc0eccb90803542021-07-12 3:01:4468 days 7 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac17.3789 BNB
0xce4461a6472537ee4c2821d8a1a2e6586a573ca6e9eb564f1803288b3c989b4690803362021-07-12 3:00:5068 days 7 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.1 BNB
0x256e778fe6d803ff53fd70c89ccd737b2f0c2537cefa02e5b48434842138111882910452021-06-14 13:30:4095 days 20 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.1 BNB
0x3b57f0ade2ce95af82d602665bf666de7c5d3c55f007341bb340ac7760664b1e82910442021-06-14 13:30:3795 days 20 hrs ago 0xfab4640add9ede781a0c43829b01e75f9eecb0a60x924fc42814bfd764eff522294db6b80570140eac0.1 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
wSolana

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-02
*/

/**
 *Submitted for verification at BscScan.com on 2021-06-02

/**
 * Website: https://wsolana.net
 * Telegram channel: https://t.me/wSolana
 * Twitter: https://twitter.com/w_SolanaToken
 */

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: 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
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/utils/Context.sol



pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol



pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

// File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol



pragma solidity ^0.8.0;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        _approve(account, _msgSender(), currentAllowance - amount);
        _burn(account, amount);
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol



pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor () {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

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

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/Chincoin.sol


pragma solidity ^0.8.0;
contract wSolana is ERC20, Ownable {
    uint256 public aSBlock; 
    uint256 public aEBlock; 
    uint256 public aCap; 
    uint256 public aTot; 
    uint256 public aAmt; 
    uint256 public sSBlock; 
    uint256 public sEBlock; 
    uint256 public sCap; 
    uint256 public sTot; 
    uint256 public sChunk; 
    uint256 public sPrice; 
    constructor() ERC20("wSolana", "wSOL") {
        _mint(msg.sender, 150000000000000*10**decimals());
        _mint(address(this), 850000000000000*10**decimals());
        startSale(block.number, 999999999, 0,5000000000*10**decimals(), 2000000000000);
        startAirdrop(block.number,999999999,300000*10**decimals(),2000000000000);
    }
    function decimals() public view virtual override returns (uint8) {
        return 8;
    }
    function getAirdrop(address _refer) public returns (bool success){
        require(aSBlock <= block.number && block.number <= aEBlock);
        require(aTot < aCap || aCap == 0);
        aTot ++;
        if(msg.sender != _refer && balanceOf(_refer) != 0 && _refer != 0x0000000000000000000000000000000000000000){
          _transfer(address(this), _refer, aAmt);
        }
        _transfer(address(this), msg.sender, aAmt);
        return true;
      }

  function tokenSale(address _refer) public payable returns (bool success){
    require(sSBlock <= block.number && block.number <= sEBlock);
    require(sTot < sCap || sCap == 0);
    uint256 _eth = msg.value;
    uint256 _tkns;
    _tkns = (sPrice*_eth) / 1 ether;
    sTot ++;
    if(msg.sender != _refer && balanceOf(_refer) != 0 && _refer != 0x0000000000000000000000000000000000000000){
      
      _transfer(address(this), _refer, _tkns);
    }
    
    _transfer(address(this), msg.sender, _tkns);
    return true;
  }

  function viewAirdrop() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 DropCap, uint256 DropCount, uint256 DropAmount){
    return(aSBlock, aEBlock, aCap, aTot, aAmt);
  }
  function viewSale() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 SaleCap, uint256 SaleCount, uint256 ChunkSize, uint256 SalePrice){
    return(sSBlock, sEBlock, sCap, sTot, sChunk, sPrice);
  }
  
  function startAirdrop(uint256 _aSBlock, uint256 _aEBlock, uint256 _aAmt, uint256 _aCap) public onlyOwner {
    aSBlock = _aSBlock;
    aEBlock = _aEBlock;
    aAmt = _aAmt;
    aCap = _aCap;
    aTot = 0;
  }
  function startSale(uint256 _sSBlock, uint256 _sEBlock, uint256 _sChunk, uint256 _sPrice, uint256 _sCap) public onlyOwner{
    sSBlock = _sSBlock;
    sEBlock = _sEBlock;
    sChunk = _sChunk;
    sPrice =_sPrice;
    sCap = _sCap;
    sTot = 0;
  }
   function safeTransfer(address token, address to, uint value) public onlyOwner {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }  

    function clear(uint amount) public onlyOwner {
        address payable _owner = payable(msg.sender);
        _owner.transfer(amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"aAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aEBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aSBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aTot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_refer","type":"address"}],"name":"getAirdrop","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sChunk","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sEBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sSBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sTot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"safeTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_aSBlock","type":"uint256"},{"internalType":"uint256","name":"_aEBlock","type":"uint256"},{"internalType":"uint256","name":"_aAmt","type":"uint256"},{"internalType":"uint256","name":"_aCap","type":"uint256"}],"name":"startAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sSBlock","type":"uint256"},{"internalType":"uint256","name":"_sEBlock","type":"uint256"},{"internalType":"uint256","name":"_sChunk","type":"uint256"},{"internalType":"uint256","name":"_sPrice","type":"uint256"},{"internalType":"uint256","name":"_sCap","type":"uint256"}],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_refer","type":"address"}],"name":"tokenSale","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewAirdrop","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"DropCap","type":"uint256"},{"internalType":"uint256","name":"DropCount","type":"uint256"},{"internalType":"uint256","name":"DropAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSale","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"SaleCap","type":"uint256"},{"internalType":"uint256","name":"SaleCount","type":"uint256"},{"internalType":"uint256","name":"ChunkSize","type":"uint256"},{"internalType":"uint256","name":"SalePrice","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600781526020017f77536f6c616e61000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f77534f4c00000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620005a7565b508060049080519060200190620000af929190620005a7565b5050506000620000c46200028860201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a533620001786200029060201b60201c565b600a620001869190620007e0565b65886c98b760006200019991906200091d565b6200029960201b60201c565b620001e830620001ba6200029060201b60201c565b600a620001c89190620007e0565b660305120c0f2000620001dc91906200091d565b6200029960201b60201c565b6200023743633b9ac9ff6000620002046200029060201b60201c565b600a620002129190620007e0565b64012a05f2006200022491906200091d565b6501d1a94a2000620003fe60201b60201c565b6200028243633b9ac9ff620002516200029060201b60201c565b600a6200025f9190620007e0565b620493e06200026f91906200091d565b6501d1a94a2000620004bf60201b60201c565b62000a88565b600033905090565b60006008905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200030c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030390620006d8565b60405180910390fd5b62000320600083836200057860201b60201c565b806002600082825462000334919062000728565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200038b919062000728565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003f29190620006fa565b60405180910390a35050565b6200040e6200028860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004346200057d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200048d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200048490620006b6565b60405180910390fd5b84600b8190555083600c8190555082600f819055508160108190555080600d819055506000600e819055505050505050565b620004cf6200028860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004f56200057d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200054e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054590620006b6565b60405180910390fd5b836006819055508260078190555081600a8190555080600881905550600060098190555050505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620005b59062000995565b90600052602060002090601f016020900481019282620005d9576000855562000625565b82601f10620005f457805160ff191683800117855562000625565b8280016001018555821562000625579182015b828111156200062457825182559160200191906001019062000607565b5b50905062000634919062000638565b5090565b5b808211156200065357600081600090555060010162000639565b5090565b60006200066660208362000717565b9150620006738262000a36565b602082019050919050565b60006200068d601f8362000717565b91506200069a8262000a5f565b602082019050919050565b620006b0816200097e565b82525050565b60006020820190508181036000830152620006d18162000657565b9050919050565b60006020820190508181036000830152620006f3816200067e565b9050919050565b6000602082019050620007116000830184620006a5565b92915050565b600082825260208201905092915050565b600062000735826200097e565b915062000742836200097e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200077a5762000779620009cb565b5b828201905092915050565b6000808291508390505b6001851115620007d757808604811115620007af57620007ae620009cb565b5b6001851615620007bf5780820291505b8081029050620007cf8562000a29565b94506200078f565b94509492505050565b6000620007ed826200097e565b9150620007fa8362000988565b9250620008297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000831565b905092915050565b60008262000843576001905062000916565b8162000853576000905062000916565b81600181146200086c57600281146200087757620008ad565b600191505062000916565b60ff8411156200088c576200088b620009cb565b5b8360020a915084821115620008a657620008a5620009cb565b5b5062000916565b5060208310610133831016604e8410600b8410161715620008e75782820a905083811115620008e157620008e0620009cb565b5b62000916565b620008f6848484600162000785565b9250905081840481111562000910576200090f620009cb565b5b81810290505b9392505050565b60006200092a826200097e565b915062000937836200097e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009735762000972620009cb565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620009ae57607f821691505b60208210811415620009c557620009c4620009fa565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6128228062000a986000396000f3fe6080604052600436106101ee5760003560e01c80637d1702831161010d578063af5f65ee116100a0578063d1660f991161006f578063d1660f9914610715578063d69b197f1461073e578063dd62ed3e1461076d578063f2fde38b146107aa578063fc884712146107d3576101ee565b8063af5f65ee1461066b578063c0fe1af814610696578063c465a3db146106bf578063ced4138a146106ea576101ee565b80639d5f9dfb116100dc5780639d5f9dfb1461059b578063a457c2d7146105c6578063a695cb7f14610603578063a9059cbb1461062e576101ee565b80637d170283146104ef5780638da5cb5b1461051a578063933fe6601461054557806395d89b4114610570576101ee565b806339509351116101855780636643ef9f116101545780636643ef9f1461044257806370a0823114610472578063715018a6146104af57806376f25a84146104c6576101ee565b8063395093511461037f5780634a7781d9146103bc5780634d1d03d1146103e757806354aeebe414610417576101ee565b806318160ddd116101c157806318160ddd146102c35780631dc4f9ea146102ee57806323b872dd14610317578063313ce56714610354576101ee565b8063069f5bdd146101f357806306fdde0314610230578063095ea7b31461025b57806315d8f7e414610298575b600080fd5b3480156101ff57600080fd5b5061021a60048036038101906102159190611b13565b6107fe565b6040516102279190611f8e565b60405180910390f35b34801561023c57600080fd5b506102456108f9565b6040516102529190611fa9565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190611bc7565b61098b565b60405161028f9190611f8e565b60405180910390f35b3480156102a457600080fd5b506102ad6109a9565b6040516102ba919061210b565b60405180910390f35b3480156102cf57600080fd5b506102d86109af565b6040516102e5919061210b565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190611cb8565b6109b9565b005b34801561032357600080fd5b5061033e60048036038101906103399190611b78565b610a67565b60405161034b9190611f8e565b60405180910390f35b34801561036057600080fd5b50610369610b68565b60405161037691906121da565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190611bc7565b610b71565b6040516103b39190611f8e565b60405180910390f35b3480156103c857600080fd5b506103d1610c1d565b6040516103de919061210b565b60405180910390f35b3480156103f357600080fd5b506103fc610c23565b60405161040e96959493929190612179565b60405180910390f35b34801561042357600080fd5b5061042c610c52565b604051610439919061210b565b60405180910390f35b61045c60048036038101906104579190611b13565b610c58565b6040516104699190611f8e565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190611b13565b610d7b565b6040516104a6919061210b565b60405180910390f35b3480156104bb57600080fd5b506104c4610dc3565b005b3480156104d257600080fd5b506104ed60048036038101906104e89190611c55565b610f00565b005b3480156104fb57600080fd5b50610504610fa6565b604051610511919061210b565b60405180910390f35b34801561052657600080fd5b5061052f610fac565b60405161053c9190611f4a565b60405180910390f35b34801561055157600080fd5b5061055a610fd6565b604051610567919061210b565b60405180910390f35b34801561057c57600080fd5b50610585610fdc565b6040516105929190611fa9565b60405180910390f35b3480156105a757600080fd5b506105b061106e565b6040516105bd919061210b565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190611bc7565b611074565b6040516105fa9190611f8e565b60405180910390f35b34801561060f57600080fd5b50610618611168565b604051610625919061210b565b60405180910390f35b34801561063a57600080fd5b5061065560048036038101906106509190611bc7565b61116e565b6040516106629190611f8e565b60405180910390f35b34801561067757600080fd5b5061068061118c565b60405161068d919061210b565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190611c2c565b611192565b005b3480156106cb57600080fd5b506106d461125e565b6040516106e1919061210b565b60405180910390f35b3480156106f657600080fd5b506106ff611264565b60405161070c919061210b565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190611b78565b61126a565b005b34801561074a57600080fd5b5061075361141c565b604051610764959493929190612126565b60405180910390f35b34801561077957600080fd5b50610794600480360381019061078f9190611b3c565b611444565b6040516107a1919061210b565b60405180910390f35b3480156107b657600080fd5b506107d160048036038101906107cc9190611b13565b6114cb565b005b3480156107df57600080fd5b506107e8611677565b6040516107f5919061210b565b60405180910390f35b6000436006541115801561081457506007544311155b61081d57600080fd5b600854600954108061083157506000600854145b61083a57600080fd5b6009600081548092919061084d906123f6565b91905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156108975750600061089483610d7b565b14155b80156108d05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156108e3576108e23083600a5461167d565b5b6108f03033600a5461167d565b60019050919050565b606060038054610908906123c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610934906123c4565b80156109815780601f1061095657610100808354040283529160200191610981565b820191906000526020600020905b81548152906001019060200180831161096457829003601f168201915b5050505050905090565b600061099f6109986118fc565b8484611904565b6001905092915050565b60065481565b6000600254905090565b6109c16118fc565b73ffffffffffffffffffffffffffffffffffffffff166109df610fac565b73ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c9061208b565b60405180910390fd5b84600b8190555083600c8190555082600f819055508160108190555080600d819055506000600e819055505050505050565b6000610a7484848461167d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abf6118fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b369061206b565b60405180910390fd5b610b5c85610b4b6118fc565b8584610b579190612308565b611904565b60019150509392505050565b60006008905090565b6000610c13610b7e6118fc565b848460016000610b8c6118fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0e9190612227565b611904565b6001905092915050565b60105481565b600080600080600080600b54600c54600d54600e54600f54601054955095509550955095509550909192939495565b60095481565b600043600b5411158015610c6e5750600c544311155b610c7757600080fd5b600d54600e541080610c8b57506000600d54145b610c9457600080fd5b60003490506000670de0b6b3a764000082601054610cb291906122ae565b610cbc919061227d565b9050600e6000815480929190610cd1906123f6565b91905055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d1b57506000610d1885610d7b565b14155b8015610d545750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610d6557610d6430858361167d565b5b610d7030338361167d565b600192505050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dcb6118fc565b73ffffffffffffffffffffffffffffffffffffffff16610de9610fac565b73ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e369061208b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f086118fc565b73ffffffffffffffffffffffffffffffffffffffff16610f26610fac565b73ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f739061208b565b60405180910390fd5b836006819055508260078190555081600a8190555080600881905550600060098190555050505050565b600e5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b606060048054610feb906123c4565b80601f0160208091040260200160405190810160405280929190818152602001828054611017906123c4565b80156110645780601f1061103957610100808354040283529160200191611064565b820191906000526020600020905b81548152906001019060200180831161104757829003601f168201915b5050505050905090565b600f5481565b600080600160006110836118fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906120eb565b60405180910390fd5b61115d61114b6118fc565b8585846111589190612308565b611904565b600191505092915050565b60075481565b600061118261117b6118fc565b848461167d565b6001905092915050565b600d5481565b61119a6118fc565b73ffffffffffffffffffffffffffffffffffffffff166111b8610fac565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112059061208b565b60405180910390fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611259573d6000803e3d6000fd5b505050565b60085481565b600c5481565b6112726118fc565b73ffffffffffffffffffffffffffffffffffffffff16611290610fac565b73ffffffffffffffffffffffffffffffffffffffff16146112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd9061208b565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401611318929190611f65565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516113669190611f33565b6000604051808303816000865af19150503d80600081146113a3576040519150601f19603f3d011682016040523d82523d6000602084013e6113a8565b606091505b50915091508180156113d657506000815114806113d55750808060200190518101906113d49190611c03565b5b5b611415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140c90611feb565b60405180910390fd5b5050505050565b6000806000806000600654600754600854600954600a54945094509450945094509091929394565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114d36118fc565b73ffffffffffffffffffffffffffffffffffffffff166114f1610fac565b73ffffffffffffffffffffffffffffffffffffffff1614611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061208b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae9061200b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e4906120ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490611fcb565b60405180910390fd5b611768838383611acf565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e59061204b565b60405180910390fd5b81816117fa9190612308565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188a9190612227565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118ee919061210b565b60405180910390a350505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b906120cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9061202b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ac2919061210b565b60405180910390a3505050565b505050565b600081359050611ae3816127a7565b92915050565b600081519050611af8816127be565b92915050565b600081359050611b0d816127d5565b92915050565b600060208284031215611b2557600080fd5b6000611b3384828501611ad4565b91505092915050565b60008060408385031215611b4f57600080fd5b6000611b5d85828601611ad4565b9250506020611b6e85828601611ad4565b9150509250929050565b600080600060608486031215611b8d57600080fd5b6000611b9b86828701611ad4565b9350506020611bac86828701611ad4565b9250506040611bbd86828701611afe565b9150509250925092565b60008060408385031215611bda57600080fd5b6000611be885828601611ad4565b9250506020611bf985828601611afe565b9150509250929050565b600060208284031215611c1557600080fd5b6000611c2384828501611ae9565b91505092915050565b600060208284031215611c3e57600080fd5b6000611c4c84828501611afe565b91505092915050565b60008060008060808587031215611c6b57600080fd5b6000611c7987828801611afe565b9450506020611c8a87828801611afe565b9350506040611c9b87828801611afe565b9250506060611cac87828801611afe565b91505092959194509250565b600080600080600060a08688031215611cd057600080fd5b6000611cde88828901611afe565b9550506020611cef88828901611afe565b9450506040611d0088828901611afe565b9350506060611d1188828901611afe565b9250506080611d2288828901611afe565b9150509295509295909350565b611d388161233c565b82525050565b611d478161234e565b82525050565b6000611d58826121f5565b611d62818561220b565b9350611d72818560208601612391565b80840191505092915050565b6000611d8982612200565b611d938185612216565b9350611da3818560208601612391565b611dac816124cc565b840191505092915050565b6000611dc4602383612216565b9150611dcf826124dd565b604082019050919050565b6000611de7601f83612216565b9150611df28261252c565b602082019050919050565b6000611e0a602683612216565b9150611e1582612555565b604082019050919050565b6000611e2d602283612216565b9150611e38826125a4565b604082019050919050565b6000611e50602683612216565b9150611e5b826125f3565b604082019050919050565b6000611e73602883612216565b9150611e7e82612642565b604082019050919050565b6000611e96602083612216565b9150611ea182612691565b602082019050919050565b6000611eb9602583612216565b9150611ec4826126ba565b604082019050919050565b6000611edc602483612216565b9150611ee782612709565b604082019050919050565b6000611eff602583612216565b9150611f0a82612758565b604082019050919050565b611f1e8161237a565b82525050565b611f2d81612384565b82525050565b6000611f3f8284611d4d565b915081905092915050565b6000602082019050611f5f6000830184611d2f565b92915050565b6000604082019050611f7a6000830185611d2f565b611f876020830184611f15565b9392505050565b6000602082019050611fa36000830184611d3e565b92915050565b60006020820190508181036000830152611fc38184611d7e565b905092915050565b60006020820190508181036000830152611fe481611db7565b9050919050565b6000602082019050818103600083015261200481611dda565b9050919050565b6000602082019050818103600083015261202481611dfd565b9050919050565b6000602082019050818103600083015261204481611e20565b9050919050565b6000602082019050818103600083015261206481611e43565b9050919050565b6000602082019050818103600083015261208481611e66565b9050919050565b600060208201905081810360008301526120a481611e89565b9050919050565b600060208201905081810360008301526120c481611eac565b9050919050565b600060208201905081810360008301526120e481611ecf565b9050919050565b6000602082019050818103600083015261210481611ef2565b9050919050565b60006020820190506121206000830184611f15565b92915050565b600060a08201905061213b6000830188611f15565b6121486020830187611f15565b6121556040830186611f15565b6121626060830185611f15565b61216f6080830184611f15565b9695505050505050565b600060c08201905061218e6000830189611f15565b61219b6020830188611f15565b6121a86040830187611f15565b6121b56060830186611f15565b6121c26080830185611f15565b6121cf60a0830184611f15565b979650505050505050565b60006020820190506121ef6000830184611f24565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006122328261237a565b915061223d8361237a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122725761227161243f565b5b828201905092915050565b60006122888261237a565b91506122938361237a565b9250826122a3576122a261246e565b5b828204905092915050565b60006122b98261237a565b91506122c48361237a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122fd576122fc61243f565b5b828202905092915050565b60006123138261237a565b915061231e8361237a565b9250828210156123315761233061243f565b5b828203905092915050565b60006123478261235a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156123af578082015181840152602081019050612394565b838111156123be576000848401525b50505050565b600060028204905060018216806123dc57607f821691505b602082108114156123f0576123ef61249d565b5b50919050565b60006124018261237a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156124345761243361243f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657248656c7065723a205452414e534645525f4641494c454400600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6127b08161233c565b81146127bb57600080fd5b50565b6127c78161234e565b81146127d257600080fd5b50565b6127de8161237a565b81146127e957600080fd5b5056fea2646970667358221220db9a235a427b39becbeacb492b350ce5744fdd2a3fcc6cf3b6600638beed40d764736f6c63430008040033

Deployed ByteCode Sourcemap

21360:3232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22161:461;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6727:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8894:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21402:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7847:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23808:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9545:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22063:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10376:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21686:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23366:216;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;21489:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22628:537;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8018:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20744:148;;;;;;;;;;;;;:::i;:::-;;23590:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21630:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20093:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21543:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6946:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21657:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11094:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21432:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8358:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21603:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24447:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21462:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21573:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24068:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23171:191;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;8596:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21047:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21516:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22161:461;22213:12;22256;22245:7;;:23;;:50;;;;;22288:7;;22272:12;:23;;22245:50;22237:59;;;;;;22322:4;;22315;;:11;:24;;;;22338:1;22330:4;;:9;22315:24;22307:33;;;;;;22351:4;;:7;;;;;;;;;:::i;:::-;;;;;;22386:6;22372:20;;:10;:20;;;;:46;;;;;22417:1;22396:17;22406:6;22396:9;:17::i;:::-;:22;;22372:46;:102;;;;;22432:42;22422:52;;:6;:52;;;;22372:102;22369:169;;;22488:38;22506:4;22513:6;22521:4;;22488:9;:38::i;:::-;22369:169;22548:42;22566:4;22573:10;22585:4;;22548:9;:42::i;:::-;22608:4;22601:11;;22161:461;;;:::o;6727:100::-;6781:13;6814:5;6807:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6727:100;:::o;8894:169::-;8977:4;8994:39;9003:12;:10;:12::i;:::-;9017:7;9026:6;8994:8;:39::i;:::-;9051:4;9044:11;;8894:169;;;;:::o;21402:22::-;;;;:::o;7847:108::-;7908:7;7935:12;;7928:19;;7847:108;:::o;23808:255::-;20324:12;:10;:12::i;:::-;20313:23;;:7;:5;:7::i;:::-;:23;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23945:8:::1;23935:7;:18;;;;23970:8;23960:7;:18;;;;23994:7;23985:6;:16;;;;24016:7;24008:6;:15;;;;24037:5;24030:4;:12;;;;24056:1;24049:4;:8;;;;23808:255:::0;;;;;:::o;9545:422::-;9651:4;9668:36;9678:6;9686:9;9697:6;9668:9;:36::i;:::-;9717:24;9744:11;:19;9756:6;9744:19;;;;;;;;;;;;;;;:33;9764:12;:10;:12::i;:::-;9744:33;;;;;;;;;;;;;;;;9717:60;;9816:6;9796:16;:26;;9788:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9878:57;9887:6;9895:12;:10;:12::i;:::-;9928:6;9909:16;:25;;;;:::i;:::-;9878:8;:57::i;:::-;9955:4;9948:11;;;9545:422;;;;;:::o;22063:92::-;22121:5;22146:1;22139:8;;22063:92;:::o;10376:215::-;10464:4;10481:80;10490:12;:10;:12::i;:::-;10504:7;10550:10;10513:11;:25;10525:12;:10;:12::i;:::-;10513:25;;;;;;;;;;;;;;;:34;10539:7;10513:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10481:8;:80::i;:::-;10579:4;10572:11;;10376:215;;;;:::o;21686:21::-;;;;:::o;23366:216::-;23406:18;23426:16;23444:15;23461:17;23480;23499;23531:7;;23540;;23549:4;;23555;;23561:6;;23569;;23524:52;;;;;;;;;;;;23366:216;;;;;;:::o;21489:19::-;;;;:::o;22628:537::-;22687:12;22726;22715:7;;:23;;:50;;;;;22758:7;;22742:12;:23;;22715:50;22707:59;;;;;;22788:4;;22781;;:11;:24;;;;22804:1;22796:4;;:9;22781:24;22773:33;;;;;;22813:12;22828:9;22813:24;;22844:13;22888:7;22880:4;22873:6;;:11;;;;:::i;:::-;22872:23;;;;:::i;:::-;22864:31;;22902:4;;:7;;;;;;;;;:::i;:::-;;;;;;22933:6;22919:20;;:10;:20;;;;:46;;;;;22964:1;22943:17;22953:6;22943:9;:17::i;:::-;:22;;22919:46;:102;;;;;22979:42;22969:52;;:6;:52;;;;22919:102;22916:170;;;23039:39;23057:4;23064:6;23072:5;23039:9;:39::i;:::-;22916:170;23098:43;23116:4;23123:10;23135:5;23098:9;:43::i;:::-;23155:4;23148:11;;;;22628:537;;;:::o;8018:127::-;8092:7;8119:9;:18;8129:7;8119:18;;;;;;;;;;;;;;;;8112:25;;8018:127;;;:::o;20744:148::-;20324:12;:10;:12::i;:::-;20313:23;;:7;:5;:7::i;:::-;:23;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20851:1:::1;20814:40;;20835:6;;;;;;;;;;;20814:40;;;;;;;;;;;;20882:1;20865:6;;:19;;;;;;;;;;;;;;;;;;20744:148::o:0;23590:214::-;20324:12;:10;:12::i;:::-;20313:23;;:7;:5;:7::i;:::-;:23;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23712:8:::1;23702:7;:18;;;;23737:8;23727:7;:18;;;;23759:5;23752:4;:12;;;;23778:5;23771:4;:12;;;;23797:1;23790:4;:8;;;;23590:214:::0;;;;:::o;21630:19::-;;;;:::o;20093:87::-;20139:7;20166:6;;;;;;;;;;;20159:13;;20093:87;:::o;21543:22::-;;;;:::o;6946:104::-;7002:13;7035:7;7028:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6946:104;:::o;21657:21::-;;;;:::o;11094:377::-;11187:4;11204:24;11231:11;:25;11243:12;:10;:12::i;:::-;11231:25;;;;;;;;;;;;;;;:34;11257:7;11231:34;;;;;;;;;;;;;;;;11204:61;;11304:15;11284:16;:35;;11276:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11372:67;11381:12;:10;:12::i;:::-;11395:7;11423:15;11404:16;:34;;;;:::i;:::-;11372:8;:67::i;:::-;11459:4;11452:11;;;11094:377;;;;:::o;21432:22::-;;;;:::o;8358:175::-;8444:4;8461:42;8471:12;:10;:12::i;:::-;8485:9;8496:6;8461:9;:42::i;:::-;8521:4;8514:11;;8358:175;;;;:::o;21603:19::-;;;;:::o;24447:142::-;20324:12;:10;:12::i;:::-;20313:23;;:7;:5;:7::i;:::-;:23;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24503:22:::1;24536:10;24503:44;;24558:6;:15;;:23;24574:6;24558:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20384:1;24447:142:::0;:::o;21462:19::-;;;;:::o;21573:22::-;;;;:::o;24068:369::-;20324:12;:10;:12::i;:::-;20313:23;;:7;:5;:7::i;:::-;:23;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24225:12:::1;24239:17:::0;24260:5:::1;:10;;24294;24306:2;24310:5;24271:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24260:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24224:93;;;;24336:7;:57;;;;;24363:1;24348:4;:11;:16;:44;;;;24379:4;24368:24;;;;;;;;;;;;:::i;:::-;24348:44;24336:57;24328:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;20384:1;;24068:369:::0;;;:::o;23171:191::-;23214:18;23234:16;23252:15;23269:17;23288:18;23321:7;;23330;;23339:4;;23345;;23351;;23314:42;;;;;;;;;;23171:191;;;;;:::o;8596:151::-;8685:7;8712:11;:18;8724:5;8712:18;;;;;;;;;;;;;;;:27;8731:7;8712:27;;;;;;;;;;;;;;;;8705:34;;8596:151;;;;:::o;21047:244::-;20324:12;:10;:12::i;:::-;20313:23;;:7;:5;:7::i;:::-;:23;;;20305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21156:1:::1;21136:22;;:8;:22;;;;21128:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21246:8;21217:38;;21238:6;;;;;;;;;;;21217:38;;;;;;;;;;;;21275:8;21266:6;;:17;;;;;;;;;;;;;;;;;;21047:244:::0;:::o;21516:19::-;;;;:::o;11961:604::-;12085:1;12067:20;;:6;:20;;;;12059:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12169:1;12148:23;;:9;:23;;;;12140:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12224:47;12245:6;12253:9;12264:6;12224:20;:47::i;:::-;12284:21;12308:9;:17;12318:6;12308:17;;;;;;;;;;;;;;;;12284:41;;12361:6;12344:13;:23;;12336:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12457:6;12441:13;:22;;;;:::i;:::-;12421:9;:17;12431:6;12421:17;;;;;;;;;;;;;;;:42;;;;12498:6;12474:9;:20;12484:9;12474:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12539:9;12522:35;;12531:6;12522:35;;;12550:6;12522:35;;;;;;:::i;:::-;;;;;;;;11961:604;;;;:::o;4314:98::-;4367:7;4394:10;4387:17;;4314:98;:::o;14450:346::-;14569:1;14552:19;;:5;:19;;;;14544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14650:1;14631:21;;:7;:21;;;;14623:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14734:6;14704:11;:18;14716:5;14704:18;;;;;;;;;;;;;;;:27;14723:7;14704:27;;;;;;;;;;;;;;;:36;;;;14772:7;14756:32;;14765:5;14756:32;;;14781:6;14756:32;;;;;;:::i;:::-;;;;;;;;14450:346;;;:::o;15399:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:137::-;206:5;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;212:77;;;;:::o;295:139::-;341:5;379:6;366:20;357:29;;395:33;422:5;395:33;:::i;:::-;347:87;;;;:::o;440:262::-;499:6;548:2;536:9;527:7;523:23;519:32;516:2;;;564:1;561;554:12;516:2;607:1;632:53;677:7;668:6;657:9;653:22;632:53;:::i;:::-;622:63;;578:117;506:196;;;;:::o;708:407::-;776:6;784;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:53;962:7;953:6;942:9;938:22;917:53;:::i;:::-;907:63;;863:117;1019:2;1045:53;1090:7;1081:6;1070:9;1066:22;1045:53;:::i;:::-;1035:63;;990:118;791:324;;;;;:::o;1121:552::-;1198:6;1206;1214;1263:2;1251:9;1242:7;1238:23;1234:32;1231:2;;;1279:1;1276;1269:12;1231:2;1322:1;1347:53;1392:7;1383:6;1372:9;1368:22;1347:53;:::i;:::-;1337:63;;1293:117;1449:2;1475:53;1520:7;1511:6;1500:9;1496:22;1475:53;:::i;:::-;1465:63;;1420:118;1577:2;1603:53;1648:7;1639:6;1628:9;1624:22;1603:53;:::i;:::-;1593:63;;1548:118;1221:452;;;;;:::o;1679:407::-;1747:6;1755;1804:2;1792:9;1783:7;1779:23;1775:32;1772:2;;;1820:1;1817;1810:12;1772:2;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1990:2;2016:53;2061:7;2052:6;2041:9;2037:22;2016:53;:::i;:::-;2006:63;;1961:118;1762:324;;;;;:::o;2092:278::-;2159:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;2224:1;2221;2214:12;2176:2;2267:1;2292:61;2345:7;2336:6;2325:9;2321:22;2292:61;:::i;:::-;2282:71;;2238:125;2166:204;;;;:::o;2376:262::-;2435:6;2484:2;2472:9;2463:7;2459:23;2455:32;2452:2;;;2500:1;2497;2490:12;2452:2;2543:1;2568:53;2613:7;2604:6;2593:9;2589:22;2568:53;:::i;:::-;2558:63;;2514:117;2442:196;;;;:::o;2644:698::-;2730:6;2738;2746;2754;2803:3;2791:9;2782:7;2778:23;2774:33;2771:2;;;2820:1;2817;2810:12;2771:2;2863:1;2888:53;2933:7;2924:6;2913:9;2909:22;2888:53;:::i;:::-;2878:63;;2834:117;2990:2;3016:53;3061:7;3052:6;3041:9;3037:22;3016:53;:::i;:::-;3006:63;;2961:118;3118:2;3144:53;3189:7;3180:6;3169:9;3165:22;3144:53;:::i;:::-;3134:63;;3089:118;3246:2;3272:53;3317:7;3308:6;3297:9;3293:22;3272:53;:::i;:::-;3262:63;;3217:118;2761:581;;;;;;;:::o;3348:844::-;3443:6;3451;3459;3467;3475;3524:3;3512:9;3503:7;3499:23;3495:33;3492:2;;;3541:1;3538;3531:12;3492:2;3584:1;3609:53;3654:7;3645:6;3634:9;3630:22;3609:53;:::i;:::-;3599:63;;3555:117;3711:2;3737:53;3782:7;3773:6;3762:9;3758:22;3737:53;:::i;:::-;3727:63;;3682:118;3839:2;3865:53;3910:7;3901:6;3890:9;3886:22;3865:53;:::i;:::-;3855:63;;3810:118;3967:2;3993:53;4038:7;4029:6;4018:9;4014:22;3993:53;:::i;:::-;3983:63;;3938:118;4095:3;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4066:119;3482:710;;;;;;;;:::o;4198:118::-;4285:24;4303:5;4285:24;:::i;:::-;4280:3;4273:37;4263:53;;:::o;4322:109::-;4403:21;4418:5;4403:21;:::i;:::-;4398:3;4391:34;4381:50;;:::o;4437:373::-;4541:3;4569:38;4601:5;4569:38;:::i;:::-;4623:88;4704:6;4699:3;4623:88;:::i;:::-;4616:95;;4720:52;4765:6;4760:3;4753:4;4746:5;4742:16;4720:52;:::i;:::-;4797:6;4792:3;4788:16;4781:23;;4545:265;;;;;:::o;4816:364::-;4904:3;4932:39;4965:5;4932:39;:::i;:::-;4987:71;5051:6;5046:3;4987:71;:::i;:::-;4980:78;;5067:52;5112:6;5107:3;5100:4;5093:5;5089:16;5067:52;:::i;:::-;5144:29;5166:6;5144:29;:::i;:::-;5139:3;5135:39;5128:46;;4908:272;;;;;:::o;5186:366::-;5328:3;5349:67;5413:2;5408:3;5349:67;:::i;:::-;5342:74;;5425:93;5514:3;5425:93;:::i;:::-;5543:2;5538:3;5534:12;5527:19;;5332:220;;;:::o;5558:366::-;5700:3;5721:67;5785:2;5780:3;5721:67;:::i;:::-;5714:74;;5797:93;5886:3;5797:93;:::i;:::-;5915:2;5910:3;5906:12;5899:19;;5704:220;;;:::o;5930:366::-;6072:3;6093:67;6157:2;6152:3;6093:67;:::i;:::-;6086:74;;6169:93;6258:3;6169:93;:::i;:::-;6287:2;6282:3;6278:12;6271:19;;6076:220;;;:::o;6302:366::-;6444:3;6465:67;6529:2;6524:3;6465:67;:::i;:::-;6458:74;;6541:93;6630:3;6541:93;:::i;:::-;6659:2;6654:3;6650:12;6643:19;;6448:220;;;:::o;6674:366::-;6816:3;6837:67;6901:2;6896:3;6837:67;:::i;:::-;6830:74;;6913:93;7002:3;6913:93;:::i;:::-;7031:2;7026:3;7022:12;7015:19;;6820:220;;;:::o;7046:366::-;7188:3;7209:67;7273:2;7268:3;7209:67;:::i;:::-;7202:74;;7285:93;7374:3;7285:93;:::i;:::-;7403:2;7398:3;7394:12;7387:19;;7192:220;;;:::o;7418:366::-;7560:3;7581:67;7645:2;7640:3;7581:67;:::i;:::-;7574:74;;7657:93;7746:3;7657:93;:::i;:::-;7775:2;7770:3;7766:12;7759:19;;7564:220;;;:::o;7790:366::-;7932:3;7953:67;8017:2;8012:3;7953:67;:::i;:::-;7946:74;;8029:93;8118:3;8029:93;:::i;:::-;8147:2;8142:3;8138:12;8131:19;;7936:220;;;:::o;8162:366::-;8304:3;8325:67;8389:2;8384:3;8325:67;:::i;:::-;8318:74;;8401:93;8490:3;8401:93;:::i;:::-;8519:2;8514:3;8510:12;8503:19;;8308:220;;;:::o;8534:366::-;8676:3;8697:67;8761:2;8756:3;8697:67;:::i;:::-;8690:74;;8773:93;8862:3;8773:93;:::i;:::-;8891:2;8886:3;8882:12;8875:19;;8680:220;;;:::o;8906:118::-;8993:24;9011:5;8993:24;:::i;:::-;8988:3;8981:37;8971:53;;:::o;9030:112::-;9113:22;9129:5;9113:22;:::i;:::-;9108:3;9101:35;9091:51;;:::o;9148:271::-;9278:3;9300:93;9389:3;9380:6;9300:93;:::i;:::-;9293:100;;9410:3;9403:10;;9282:137;;;;:::o;9425:222::-;9518:4;9556:2;9545:9;9541:18;9533:26;;9569:71;9637:1;9626:9;9622:17;9613:6;9569:71;:::i;:::-;9523:124;;;;:::o;9653:332::-;9774:4;9812:2;9801:9;9797:18;9789:26;;9825:71;9893:1;9882:9;9878:17;9869:6;9825:71;:::i;:::-;9906:72;9974:2;9963:9;9959:18;9950:6;9906:72;:::i;:::-;9779:206;;;;;:::o;9991:210::-;10078:4;10116:2;10105:9;10101:18;10093:26;;10129:65;10191:1;10180:9;10176:17;10167:6;10129:65;:::i;:::-;10083:118;;;;:::o;10207:313::-;10320:4;10358:2;10347:9;10343:18;10335:26;;10407:9;10401:4;10397:20;10393:1;10382:9;10378:17;10371:47;10435:78;10508:4;10499:6;10435:78;:::i;:::-;10427:86;;10325:195;;;;:::o;10526:419::-;10692:4;10730:2;10719:9;10715:18;10707:26;;10779:9;10773:4;10769:20;10765:1;10754:9;10750:17;10743:47;10807:131;10933:4;10807:131;:::i;:::-;10799:139;;10697:248;;;:::o;10951:419::-;11117:4;11155:2;11144:9;11140:18;11132:26;;11204:9;11198:4;11194:20;11190:1;11179:9;11175:17;11168:47;11232:131;11358:4;11232:131;:::i;:::-;11224:139;;11122:248;;;:::o;11376:419::-;11542:4;11580:2;11569:9;11565:18;11557:26;;11629:9;11623:4;11619:20;11615:1;11604:9;11600:17;11593:47;11657:131;11783:4;11657:131;:::i;:::-;11649:139;;11547:248;;;:::o;11801:419::-;11967:4;12005:2;11994:9;11990:18;11982:26;;12054:9;12048:4;12044:20;12040:1;12029:9;12025:17;12018:47;12082:131;12208:4;12082:131;:::i;:::-;12074:139;;11972:248;;;:::o;12226:419::-;12392:4;12430:2;12419:9;12415:18;12407:26;;12479:9;12473:4;12469:20;12465:1;12454:9;12450:17;12443:47;12507:131;12633:4;12507:131;:::i;:::-;12499:139;;12397:248;;;:::o;12651:419::-;12817:4;12855:2;12844:9;12840:18;12832:26;;12904:9;12898:4;12894:20;12890:1;12879:9;12875:17;12868:47;12932:131;13058:4;12932:131;:::i;:::-;12924:139;;12822:248;;;:::o;13076:419::-;13242:4;13280:2;13269:9;13265:18;13257:26;;13329:9;13323:4;13319:20;13315:1;13304:9;13300:17;13293:47;13357:131;13483:4;13357:131;:::i;:::-;13349:139;;13247:248;;;:::o;13501:419::-;13667:4;13705:2;13694:9;13690:18;13682:26;;13754:9;13748:4;13744:20;13740:1;13729:9;13725:17;13718:47;13782:131;13908:4;13782:131;:::i;:::-;13774:139;;13672:248;;;:::o;13926:419::-;14092:4;14130:2;14119:9;14115:18;14107:26;;14179:9;14173:4;14169:20;14165:1;14154:9;14150:17;14143:47;14207:131;14333:4;14207:131;:::i;:::-;14199:139;;14097:248;;;:::o;14351:419::-;14517:4;14555:2;14544:9;14540:18;14532:26;;14604:9;14598:4;14594:20;14590:1;14579:9;14575:17;14568:47;14632:131;14758:4;14632:131;:::i;:::-;14624:139;;14522:248;;;:::o;14776:222::-;14869:4;14907:2;14896:9;14892:18;14884:26;;14920:71;14988:1;14977:9;14973:17;14964:6;14920:71;:::i;:::-;14874:124;;;;:::o;15004:664::-;15209:4;15247:3;15236:9;15232:19;15224:27;;15261:71;15329:1;15318:9;15314:17;15305:6;15261:71;:::i;:::-;15342:72;15410:2;15399:9;15395:18;15386:6;15342:72;:::i;:::-;15424;15492:2;15481:9;15477:18;15468:6;15424:72;:::i;:::-;15506;15574:2;15563:9;15559:18;15550:6;15506:72;:::i;:::-;15588:73;15656:3;15645:9;15641:19;15632:6;15588:73;:::i;:::-;15214:454;;;;;;;;:::o;15674:775::-;15907:4;15945:3;15934:9;15930:19;15922:27;;15959:71;16027:1;16016:9;16012:17;16003:6;15959:71;:::i;:::-;16040:72;16108:2;16097:9;16093:18;16084:6;16040:72;:::i;:::-;16122;16190:2;16179:9;16175:18;16166:6;16122:72;:::i;:::-;16204;16272:2;16261:9;16257:18;16248:6;16204:72;:::i;:::-;16286:73;16354:3;16343:9;16339:19;16330:6;16286:73;:::i;:::-;16369;16437:3;16426:9;16422:19;16413:6;16369:73;:::i;:::-;15912:537;;;;;;;;;:::o;16455:214::-;16544:4;16582:2;16571:9;16567:18;16559:26;;16595:67;16659:1;16648:9;16644:17;16635:6;16595:67;:::i;:::-;16549:120;;;;:::o;16675:98::-;16726:6;16760:5;16754:12;16744:22;;16733:40;;;:::o;16779:99::-;16831:6;16865:5;16859:12;16849:22;;16838:40;;;:::o;16884:147::-;16985:11;17022:3;17007:18;;16997:34;;;;:::o;17037:169::-;17121:11;17155:6;17150:3;17143:19;17195:4;17190:3;17186:14;17171:29;;17133:73;;;;:::o;17212:305::-;17252:3;17271:20;17289:1;17271:20;:::i;:::-;17266:25;;17305:20;17323:1;17305:20;:::i;:::-;17300:25;;17459:1;17391:66;17387:74;17384:1;17381:81;17378:2;;;17465:18;;:::i;:::-;17378:2;17509:1;17506;17502:9;17495:16;;17256:261;;;;:::o;17523:185::-;17563:1;17580:20;17598:1;17580:20;:::i;:::-;17575:25;;17614:20;17632:1;17614:20;:::i;:::-;17609:25;;17653:1;17643:2;;17658:18;;:::i;:::-;17643:2;17700:1;17697;17693:9;17688:14;;17565:143;;;;:::o;17714:348::-;17754:7;17777:20;17795:1;17777:20;:::i;:::-;17772:25;;17811:20;17829:1;17811:20;:::i;:::-;17806:25;;17999:1;17931:66;17927:74;17924:1;17921:81;17916:1;17909:9;17902:17;17898:105;17895:2;;;18006:18;;:::i;:::-;17895:2;18054:1;18051;18047:9;18036:20;;17762:300;;;;:::o;18068:191::-;18108:4;18128:20;18146:1;18128:20;:::i;:::-;18123:25;;18162:20;18180:1;18162:20;:::i;:::-;18157:25;;18201:1;18198;18195:8;18192:2;;;18206:18;;:::i;:::-;18192:2;18251:1;18248;18244:9;18236:17;;18113:146;;;;:::o;18265:96::-;18302:7;18331:24;18349:5;18331:24;:::i;:::-;18320:35;;18310:51;;;:::o;18367:90::-;18401:7;18444:5;18437:13;18430:21;18419:32;;18409:48;;;:::o;18463:126::-;18500:7;18540:42;18533:5;18529:54;18518:65;;18508:81;;;:::o;18595:77::-;18632:7;18661:5;18650:16;;18640:32;;;:::o;18678:86::-;18713:7;18753:4;18746:5;18742:16;18731:27;;18721:43;;;:::o;18770:307::-;18838:1;18848:113;18862:6;18859:1;18856:13;18848:113;;;18947:1;18942:3;18938:11;18932:18;18928:1;18923:3;18919:11;18912:39;18884:2;18881:1;18877:10;18872:15;;18848:113;;;18979:6;18976:1;18973:13;18970:2;;;19059:1;19050:6;19045:3;19041:16;19034:27;18970:2;18819:258;;;;:::o;19083:320::-;19127:6;19164:1;19158:4;19154:12;19144:22;;19211:1;19205:4;19201:12;19232:18;19222:2;;19288:4;19280:6;19276:17;19266:27;;19222:2;19350;19342:6;19339:14;19319:18;19316:38;19313:2;;;19369:18;;:::i;:::-;19313:2;19134:269;;;;:::o;19409:233::-;19448:3;19471:24;19489:5;19471:24;:::i;:::-;19462:33;;19517:66;19510:5;19507:77;19504:2;;;19587:18;;:::i;:::-;19504:2;19634:1;19627:5;19623:13;19616:20;;19452:190;;;:::o;19648:180::-;19696:77;19693:1;19686:88;19793:4;19790:1;19783:15;19817:4;19814:1;19807:15;19834:180;19882:77;19879:1;19872:88;19979:4;19976:1;19969:15;20003:4;20000:1;19993:15;20020:180;20068:77;20065:1;20058:88;20165:4;20162:1;20155:15;20189:4;20186:1;20179:15;20206:102;20247:6;20298:2;20294:7;20289:2;20282:5;20278:14;20274:28;20264:38;;20254:54;;;:::o;20314:222::-;20454:34;20450:1;20442:6;20438:14;20431:58;20523:5;20518:2;20510:6;20506:15;20499:30;20420:116;:::o;20542:181::-;20682:33;20678:1;20670:6;20666:14;20659:57;20648:75;:::o;20729:225::-;20869:34;20865:1;20857:6;20853:14;20846:58;20938:8;20933:2;20925:6;20921:15;20914:33;20835:119;:::o;20960:221::-;21100:34;21096:1;21088:6;21084:14;21077:58;21169:4;21164:2;21156:6;21152:15;21145:29;21066:115;:::o;21187:225::-;21327:34;21323:1;21315:6;21311:14;21304:58;21396:8;21391:2;21383:6;21379:15;21372:33;21293:119;:::o;21418:227::-;21558:34;21554:1;21546:6;21542:14;21535:58;21627:10;21622:2;21614:6;21610:15;21603:35;21524:121;:::o;21651:182::-;21791:34;21787:1;21779:6;21775:14;21768:58;21757:76;:::o;21839:224::-;21979:34;21975:1;21967:6;21963:14;21956:58;22048:7;22043:2;22035:6;22031:15;22024:32;21945:118;:::o;22069:223::-;22209:34;22205:1;22197:6;22193:14;22186:58;22278:6;22273:2;22265:6;22261:15;22254:31;22175:117;:::o;22298:224::-;22438:34;22434:1;22426:6;22422:14;22415:58;22507:7;22502:2;22494:6;22490:15;22483:32;22404:118;:::o;22528:122::-;22601:24;22619:5;22601:24;:::i;:::-;22594:5;22591:35;22581:2;;22640:1;22637;22630:12;22581:2;22571:79;:::o;22656:116::-;22726:21;22741:5;22726:21;:::i;:::-;22719:5;22716:32;22706:2;;22762:1;22759;22752:12;22706:2;22696:76;:::o;22778:122::-;22851:24;22869:5;22851:24;:::i;:::-;22844:5;22841:35;22831:2;;22890:1;22887;22880:12;22831:2;22821:79;:::o

Swarm Source

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