Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 IMP
Holders
432
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,296,135.109243282076663588 IMPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ImperialObelisk
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-26 */ /* Telegram: https://t.me/imperialobelisk Website: https://imperialobelisk.net/ Medium: https://imperialobelisk.medium.com/ */ // SPDX-License-Identifier: MIT // File: contracts\@openzeppelin\contracts\token\ERC20\IERC20.sol pragma solidity ^0.8.0; /** * @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: contracts\@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: contracts\@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 { 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 three 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 returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual 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 * overloaded; * * 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 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 { } } pragma solidity ^0.8.0; contract ImperialObelisk is ERC20 { constructor() ERC20("Imperial Obelisk", "IMP") { uint256 totalSupply = 1 * 10**12 * 10**decimals(); uint256 sum = 0; uint256 factor = 1000000; //Version 1 Airdrops uint16[85] memory amounts = [45075, 3388, 2934, 326, 1, 859, 1308, 617, 143, 146, 9242, 23151, 9470, 3332, 7915, 2588, 2989, 3686, 6710, 9808, 3604, 2677, 509, 656, 29964, 2713, 801, 537, 523, 22, 1021, 931, 4408, 8385, 41563, 5215, 16549, 2283, 7864, 89, 1511, 3582, 48, 174, 87, 101, 223, 84, 339, 55, 3594, 55, 121, 233, 93, 2374, 4356, 155, 337, 115, 11250, 1554, 1134, 574, 1092, 769, 14987, 982, 169, 29, 187, 153, 31, 17, 701, 917, 525, 6700, 5948, 31456, 10784, 28988, 33449, 30368, 38364]; address[85] memory hodlers = [0xe7524Dd1f3f0cF2E48CEb901F0DA3bFcCfdF41fe,0xEa51D3fD4b4F0CaF0147d4928370e6278476c994,0x523C80ae16D90a67262805Ed41264eafB0f59e94, 0xA59cDD29E22F799e65d841E87cBA049c7e125325,0xe7524Dd1f3f0cF2E48CEb901F0DA3bFcCfdF41fe,0xD600e4a1F8c45766d61239C72a94B65b5a05230E,0x054E8c447e3c7f1B73644693002445a0F30Aa64b, 0x914070Ac0B9B4c305638154c6305257204D5a639,0x2B16452b6F7a7b71450edc9c3D8f2cb9a91F19fe,0xffE78e26Ef60320a9F8Dfc969f8E7E7054C17423,0x96F906DcE93c05CF555ED227EdEDD7E5151fA66C, 0x303e17b365ef353f0E3DFc6DD8cEff071f455107,0xE972852bd1E33a526545c7d96Dd317b8EE50cC69,0x152072Bf08F2F37eC5327E26E8d6051152b63af2,0xef2611C32Fd1c222Ce706Caae79eEbF32feb8a8E, 0x152072Bf08F2F37eC5327E26E8d6051152b63af2,0x31805b4f79f328293DF79b9dC672543b56a51E70,0x86fEd3844156c2f36e990a00b2836Fa85A5FbD92,0xa6cB0C78d5a311517295Fd62F037050DF1059C93, 0x687CC40DbFb918eF5EbeB370a05e8049E726d7c6,0xE3bB441Eb62C6Fce98a319Dd18b43dcCD9B34E77,0xD31F19930e6907777536b3a258dAa8298668F3A2,0xFbf90C74bbb218304374C259cD8a2f0dccbbB4cc, 0x9995779237D1e1bb072ae88b83a80e409DbEbB75,0x265c78295464246c2b94d417eAbA0acdDD059670,0x0dFD4E5431a3B1753489feC5430B1cab0aC4633F,0xd1Cddd12dDeB82837f965953cDF53A289Aa7AD17, 0x4E964eB134cB28c4DAFB689DD2973192a0b2986f,0x65fDe4B43CDd2FFeEBe8c73676D6F62a25dcFE3e,0xB515Ac8e3E5CE77c0f77e5F023E5D4e696FD284B,0x37C680b193635473A4F1BbE913688837019c1583, 0x05C56eEd53Dec05555582e50354cDf8e731aF778,0x503e7cBC2058932fC0A77cFE6445f117760dF904,0xa6F14C23cf42C1556156c0Ec20702f567F910335,0xBaAAb5dae967780e36F057B036D82568Be140a53, 0x034f41AEd7ed6f4EAe2De4a4d37dD3Ae5fc310F1,0xB1f1FFf3757953D8410e1719d0a03a616Cf4de17,0xB041230054ab0D8516decc79203Fe02D416D8c9E,0x5e12c06802147b8Ded5a27ceb7352b47710eeB30, 0xeE5f0C1A97618fFB44403dD56F03d3Ac37Cf1a85,0x5940Bf44241854E1574A9D900F0AC46105a46916,0xd6f1dbBE11a4CbaAb5e7a9b4fD3b353F89AD713A,0x55F7ac89EAD7aAFeCee341Ca041228930A7bf8c5, 0xF90B65094CccEBab59bD6F53e4793719b7BaD965,0x5c8A8C349711485d93565AC2A32fad08a16D7e9E,0x2FeC703CaF64E6320dDf3199a6a2198F2C1BA0Bc,0x355766d2B1D63c55448A03285324CD882f39d54b, 0x156fb1a790cDab269b13d633Bb32689D7E7FB629,0x157Bde9ad8Fe3c74496B421DA637729BCa52B4aE,0xE14D6f28B2E8fca7e1AD675D1103E1A040b4675D,0xfB5C3Ca624D950a6E54f12d1FD01C27d02d00aa5, 0x9Ebdaa39D6751Ebc62d43e1F0a43508F0fE9B231,0xF0c32D084babb52b2d6c0471c1174b03B6E989Af,0x7461513A6F392361788B28f8C94f902aF0353589,0x11b76618f41415B6313e3848d0638963Cc7308B7, 0x17B466eA4EdDa17c70a98080DBe38C2af5e0A8a0,0x967D61D29F01EC152eFD62A9fE67cB28FBfB7eEC,0x4B744061755848E88abe1E89bdbFC0cCa1a9bf67,0x8D97788452d55B600A31ae321Dbe7372c8427348, 0x8d4862b7f73A34aB3Adfcab2b6d5563fA2Df12d4,0xC14C43fB61794E803916E3C66fc963F77d7aC095,0xC0b63F27D3af2553fe737E12d78ed90286E9f2f4,0xD5EC7eA5a498a837a613C9e24da8486689957560, 0x6F2f2ae687283aE342E41f799335A09269e030bd,0xdC798f72f05894A49d3164d17ded11205164e696,0x7aC19eA6d047c2FBb75e1761ED9b16E74d69F4A5,0x3566994A0C98aEe4fA430C1d85a0bF76aB091371, 0x96cB6Ec258eD505F4f9D6d0CdAD327972c05a93f,0xcF5f95FFA5F6099343a961B76aaabeE1976a7c53,0x5647502d8a6a6bF37633070E6669Bd7dD2c2049B,0xF6aefA6b1A9850D6Dd7E28a7cc52dfB7f1b8B7d6, 0x69Ef86AD72417B8585D348E01EfB617E777Ed1dB,0x0AbE9Ef3f669d0FDb644638E27F3d84b97d7E54B,0x34c0C7BCC62a58547989a7beefFD59ce5bCA3939,0xe608f3fB9c6fcA4d8Af8e4a6e76d7863222c5305, 0x0Cf28aAe2687cF2E23fF2690dD8A1cA89AB67C99,0x719023B09DdD440155b9938B2EBD4DCd58349346,0xD27350cAD2f3e5a502DE1ebD8993331FFACEC816,0xE3E5A703EB49F02E2Da5C041a5B71C89930d3E92, 0x371400eD9a7E8497DAFd3802806eBf2734161Bc9,0xAAc9DE065798C03358402B503aCb3975716aDd42,0x24D6cbDb0a9987468f7130295A28E367Efa39348,0x2B16452b6F7a7b71450edc9c3D8f2cb9a91F19fe, 0x054E8c447e3c7f1B73644693002445a0F30Aa64b,0x5E00692612cFB0b3CdC0Bc2ab41Bd05f384Cd037]; for(uint256 i = 0;i < hodlers.length;i++){ _mint(hodlers[i],(totalSupply * amounts[i] / factor)); sum += amounts[i]; } //Remaining to deployer uint256 remaining = factor - sum; _mint(msg.sender,totalSupply * remaining / factor); } function multitransfer(address[] memory hodler,uint256[] memory amount) external{ for(uint256 i = 0;i < hodler.length;i++){ transfer(hodler[i],amount[i]); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":[],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"hodler","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"multitransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601081526020017f496d70657269616c204f62656c69736b000000000000000000000000000000008152506040518060400160405280600381526020017f494d50000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062001ea0565b508060049080519060200190620000af92919062001ea0565b5050506000620000c462001d2d60201b60201c565b600a620000d29190620020c8565b64e8d4a51000620000e4919062002205565b9050600080620f42409050600060405180610aa0016040528061b01361ffff168152602001610d3c61ffff168152602001610b7661ffff16815260200161014661ffff168152602001600161ffff16815260200161035b61ffff16815260200161051c61ffff16815260200161026961ffff168152602001608f61ffff168152602001609261ffff16815260200161241a61ffff168152602001615a6f61ffff1681526020016124fe61ffff168152602001610d0461ffff168152602001611eeb61ffff168152602001610a1c61ffff168152602001610bad61ffff168152602001610e6661ffff168152602001611a3661ffff16815260200161265061ffff168152602001610e1461ffff168152602001610a7561ffff1681526020016101fd61ffff16815260200161029061ffff16815260200161750c61ffff168152602001610a9961ffff16815260200161032161ffff16815260200161021961ffff16815260200161020b61ffff168152602001601661ffff1681526020016103fd61ffff1681526020016103a361ffff16815260200161113861ffff1681526020016120c161ffff16815260200161a25b61ffff16815260200161145f61ffff1681526020016140a561ffff1681526020016108eb61ffff168152602001611eb861ffff168152602001605961ffff1681526020016105e761ffff168152602001610dfe61ffff168152602001603061ffff16815260200160ae61ffff168152602001605761ffff168152602001606561ffff16815260200160df61ffff168152602001605461ffff16815260200161015361ffff168152602001603761ffff168152602001610e0a61ffff168152602001603761ffff168152602001607961ffff16815260200160e961ffff168152602001605d61ffff16815260200161094661ffff16815260200161110461ffff168152602001609b61ffff16815260200161015161ffff168152602001607361ffff168152602001612bf261ffff16815260200161061261ffff16815260200161046e61ffff16815260200161023e61ffff16815260200161044461ffff16815260200161030161ffff168152602001613a8b61ffff1681526020016103d661ffff16815260200160a961ffff168152602001601d61ffff16815260200160bb61ffff168152602001609961ffff168152602001601f61ffff168152602001601161ffff1681526020016102bd61ffff16815260200161039561ffff16815260200161020d61ffff168152602001611a2c61ffff16815260200161173c61ffff168152602001617ae061ffff168152602001612a2061ffff16815260200161713c61ffff1681526020016182a961ffff1681526020016176a061ffff1681526020016195dc61ffff168152509050600060405180610aa0016040528073e7524dd1f3f0cf2e48ceb901f0da3bfccfdf41fe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ea51d3fd4b4f0caf0147d4928370e6278476c99473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173523c80ae16d90a67262805ed41264eafb0f59e9473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a59cdd29e22f799e65d841e87cba049c7e12532573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e7524dd1f3f0cf2e48ceb901f0da3bfccfdf41fe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d600e4a1f8c45766d61239c72a94b65b5a05230e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173054e8c447e3c7f1b73644693002445a0f30aa64b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173914070ac0b9b4c305638154c6305257204d5a63973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732b16452b6f7a7b71450edc9c3d8f2cb9a91f19fe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ffe78e26ef60320a9f8dfc969f8e7e7054c1742373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017396f906dce93c05cf555ed227ededd7e5151fa66c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173303e17b365ef353f0e3dfc6dd8ceff071f45510773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e972852bd1e33a526545c7d96dd317b8ee50cc6973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173152072bf08f2f37ec5327e26e8d6051152b63af273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ef2611c32fd1c222ce706caae79eebf32feb8a8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173152072bf08f2f37ec5327e26e8d6051152b63af273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017331805b4f79f328293df79b9dc672543b56a51e7073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017386fed3844156c2f36e990a00b2836fa85a5fbd9273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a6cb0c78d5a311517295fd62f037050df1059c9373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173687cc40dbfb918ef5ebeb370a05e8049e726d7c673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3bb441eb62c6fce98a319dd18b43dccd9b34e7773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d31f19930e6907777536b3a258daa8298668f3a273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173fbf90c74bbb218304374c259cd8a2f0dccbbb4cc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739995779237d1e1bb072ae88b83a80e409dbebb7573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173265c78295464246c2b94d417eaba0acddd05967073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730dfd4e5431a3b1753489fec5430b1cab0ac4633f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d1cddd12ddeb82837f965953cdf53a289aa7ad1773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734e964eb134cb28c4dafb689dd2973192a0b2986f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017365fde4b43cdd2ffeebe8c73676d6f62a25dcfe3e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b515ac8e3e5ce77c0f77e5f023e5d4e696fd284b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017337c680b193635473a4f1bbe913688837019c158373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017305c56eed53dec05555582e50354cdf8e731af77873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173503e7cbc2058932fc0a77cfe6445f117760df90473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a6f14c23cf42c1556156c0ec20702f567f91033573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173baaab5dae967780e36f057b036d82568be140a5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173034f41aed7ed6f4eae2de4a4d37dd3ae5fc310f173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b1f1fff3757953d8410e1719d0a03a616cf4de1773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b041230054ab0d8516decc79203fe02d416d8c9e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735e12c06802147b8ded5a27ceb7352b47710eeb3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ee5f0c1a97618ffb44403dd56f03d3ac37cf1a8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735940bf44241854e1574a9d900f0ac46105a4691673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d6f1dbbe11a4cbaab5e7a9b4fd3b353f89ad713a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017355f7ac89ead7aafecee341ca041228930a7bf8c573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f90b65094cccebab59bd6f53e4793719b7bad96573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735c8a8c349711485d93565ac2a32fad08a16d7e9e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732fec703caf64e6320ddf3199a6a2198f2c1ba0bc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173355766d2b1d63c55448a03285324cd882f39d54b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173156fb1a790cdab269b13d633bb32689d7e7fb62973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173157bde9ad8fe3c74496b421da637729bca52b4ae73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e14d6f28b2e8fca7e1ad675d1103e1a040b4675d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173fb5c3ca624d950a6e54f12d1fd01c27d02d00aa573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001739ebdaa39d6751ebc62d43e1f0a43508f0fe9b23173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f0c32d084babb52b2d6c0471c1174b03b6e989af73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737461513a6f392361788b28f8c94f902af035358973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017311b76618f41415b6313e3848d0638963cc7308b773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017317b466ea4edda17c70a98080dbe38c2af5e0a8a073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173967d61d29f01ec152efd62a9fe67cb28fbfb7eec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734b744061755848e88abe1e89bdbfc0cca1a9bf6773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d97788452d55b600a31ae321dbe7372c842734873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738d4862b7f73a34ab3adfcab2b6d5563fa2df12d473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c14c43fb61794e803916e3c66fc963f77d7ac09573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c0b63f27d3af2553fe737e12d78ed90286e9f2f473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d5ec7ea5a498a837a613c9e24da848668995756073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001736f2f2ae687283ae342e41f799335a09269e030bd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173dc798f72f05894a49d3164d17ded11205164e69673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737ac19ea6d047c2fbb75e1761ed9b16e74d69f4a573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733566994a0c98aee4fa430c1d85a0bf76ab09137173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017396cb6ec258ed505f4f9d6d0cdad327972c05a93f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173cf5f95ffa5f6099343a961b76aaabee1976a7c5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735647502d8a6a6bf37633070e6669bd7dd2c2049b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f6aefa6b1a9850d6dd7e28a7cc52dfb7f1b8b7d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017369ef86ad72417b8585d348e01efb617e777ed1db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730abe9ef3f669d0fdb644638e27f3d84b97d7e54b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017334c0c7bcc62a58547989a7beeffd59ce5bca393973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e608f3fb9c6fca4d8af8e4a6e76d7863222c530573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730cf28aae2687cf2e23ff2690dd8a1ca89ab67c9973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173719023b09ddd440155b9938b2ebd4dcd5834934673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d27350cad2f3e5a502de1ebd8993331ffacec81673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e3e5a703eb49f02e2da5c041a5b71c89930d3e9273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173371400ed9a7e8497dafd3802806ebf2734161bc973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173aac9de065798c03358402b503acb3975716add4273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017324d6cbdb0a9987468f7130295a28e367efa3934873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732b16452b6f7a7b71450edc9c3d8f2cb9a91f19fe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173054e8c447e3c7f1b73644693002445a0f30aa64b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735e00692612cfb0b3cdc0bc2ab41bd05f384cd03773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060005b605581101562001ce25762001c9e82826055811062001c545762001c53620023c9565b5b60200201518585846055811062001c705762001c6f620023c9565b5b602002015161ffff168962001c86919062002205565b62001c92919062002035565b62001d3660201b60201c565b82816055811062001cb45762001cb3620023c9565b5b602002015161ffff168562001cca919062001fd8565b9450808062001cd990620022ee565b91505062001c30565b506000848462001cf3919062002266565b905062001d213385838962001d09919062002205565b62001d15919062002035565b62001d3660201b60201c565b5050505050506200242e565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562001da9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001da09062001f88565b60405180910390fd5b62001dbd6000838362001e9b60201b60201c565b806002600082825462001dd1919062001fd8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462001e28919062001fd8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162001e8f919062001faa565b60405180910390a35050565b505050565b82805462001eae90620022b8565b90600052602060002090601f01602090048101928262001ed2576000855562001f1e565b82601f1062001eed57805160ff191683800117855562001f1e565b8280016001018555821562001f1e579182015b8281111562001f1d57825182559160200191906001019062001f00565b5b50905062001f2d919062001f31565b5090565b5b8082111562001f4c57600081600090555060010162001f32565b5090565b600062001f5f601f8362001fc7565b915062001f6c8262002405565b602082019050919050565b62001f8281620022a1565b82525050565b6000602082019050818103600083015262001fa38162001f50565b9050919050565b600060208201905062001fc1600083018462001f77565b92915050565b600082825260208201905092915050565b600062001fe582620022a1565b915062001ff283620022a1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200202a57620020296200233c565b5b828201905092915050565b60006200204282620022a1565b91506200204f83620022a1565b9250826200206257620020616200236b565b5b828204905092915050565b6000808291508390505b6001851115620020bf578086048111156200209757620020966200233c565b5b6001851615620020a75780820291505b8081029050620020b785620023f8565b945062002077565b94509492505050565b6000620020d582620022a1565b9150620020e283620022ab565b9250620021117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462002119565b905092915050565b6000826200212b5760019050620021fe565b816200213b5760009050620021fe565b81600181146200215457600281146200215f5762002195565b6001915050620021fe565b60ff8411156200217457620021736200233c565b5b8360020a9150848211156200218e576200218d6200233c565b5b50620021fe565b5060208310610133831016604e8410600b8410161715620021cf5782820a905083811115620021c957620021c86200233c565b5b620021fe565b620021de84848460016200206d565b92509050818404811115620021f857620021f76200233c565b5b81810290505b9392505050565b60006200221282620022a1565b91506200221f83620022a1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200225b576200225a6200233c565b5b828202905092915050565b60006200227382620022a1565b91506200228083620022a1565b9250828210156200229657620022956200233c565b5b828203905092915050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620022d157607f821691505b60208210811415620022e857620022e76200239a565b5b50919050565b6000620022fb82620022a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200233157620023306200233c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61178b806200243e6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80633edfd1e1116100715780633edfd1e1146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce919061108e565b60405180910390f35b6100f160048036038101906100ec9190610e60565b61032f565b6040516100fe9190611073565b60405180910390f35b61010f61034d565b60405161011c9190611190565b60405180910390f35b61013f600480360381019061013a9190610e0d565b610357565b60405161014c9190611073565b60405180910390f35b61015d610458565b60405161016a91906111ab565b60405180910390f35b61018d60048036038101906101889190610e60565b610461565b60405161019a9190611073565b60405180910390f35b6101bd60048036038101906101b89190610ea0565b61050d565b005b6101d960048036038101906101d49190610da0565b610570565b6040516101e69190611190565b60405180910390f35b6101f76105b8565b604051610204919061108e565b60405180910390f35b61022760048036038101906102229190610e60565b61064a565b6040516102349190611073565b60405180910390f35b61025760048036038101906102529190610e60565b61073e565b6040516102649190611073565b60405180910390f35b61028760048036038101906102829190610dcd565b61075c565b6040516102949190611190565b60405180910390f35b6060600380546102ac90611371565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611371565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b600061034361033c6107e3565b84846107eb565b6001905092915050565b6000600254905090565b60006103648484846109b6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af6107e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561042f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042690611110565b60405180910390fd5b61044c8561043b6107e3565b858461044791906112b5565b6107eb565b60019150509392505050565b60006012905090565b600061050361046e6107e3565b84846001600061047c6107e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104fe919061125f565b6107eb565b6001905092915050565b60005b825181101561056b5761055783828151811061052f5761052e61147b565b5b602002602001015183838151811061054a5761054961147b565b5b602002602001015161073e565b508080610563906113d4565b915050610510565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546105c790611371565b80601f01602080910402602001604051908101604052809291908181526020018280546105f390611371565b80156106405780601f1061061557610100808354040283529160200191610640565b820191906000526020600020905b81548152906001019060200180831161062357829003601f168201915b5050505050905090565b600080600160006106596107e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90611170565b60405180910390fd5b6107336107216107e3565b85858461072e91906112b5565b6107eb565b600191505092915050565b600061075261074b6107e3565b84846109b6565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561085b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085290611150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c2906110d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109a99190611190565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90611130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d906110b0565b60405180910390fd5b610aa1838383610c35565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906110f0565b60405180910390fd5b8181610b3391906112b5565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bc3919061125f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c279190611190565b60405180910390a350505050565b505050565b6000610c4d610c48846111eb565b6111c6565b90508083825260208201905082856020860282011115610c7057610c6f6114de565b5b60005b85811015610ca05781610c868882610d1a565b845260208401935060208301925050600181019050610c73565b5050509392505050565b6000610cbd610cb884611217565b6111c6565b90508083825260208201905082856020860282011115610ce057610cdf6114de565b5b60005b85811015610d105781610cf68882610d8b565b845260208401935060208301925050600181019050610ce3565b5050509392505050565b600081359050610d2981611727565b92915050565b600082601f830112610d4457610d436114d9565b5b8135610d54848260208601610c3a565b91505092915050565b600082601f830112610d7257610d716114d9565b5b8135610d82848260208601610caa565b91505092915050565b600081359050610d9a8161173e565b92915050565b600060208284031215610db657610db56114e8565b5b6000610dc484828501610d1a565b91505092915050565b60008060408385031215610de457610de36114e8565b5b6000610df285828601610d1a565b9250506020610e0385828601610d1a565b9150509250929050565b600080600060608486031215610e2657610e256114e8565b5b6000610e3486828701610d1a565b9350506020610e4586828701610d1a565b9250506040610e5686828701610d8b565b9150509250925092565b60008060408385031215610e7757610e766114e8565b5b6000610e8585828601610d1a565b9250506020610e9685828601610d8b565b9150509250929050565b60008060408385031215610eb757610eb66114e8565b5b600083013567ffffffffffffffff811115610ed557610ed46114e3565b5b610ee185828601610d2f565b925050602083013567ffffffffffffffff811115610f0257610f016114e3565b5b610f0e85828601610d5d565b9150509250929050565b610f21816112fb565b82525050565b6000610f3282611243565b610f3c818561124e565b9350610f4c81856020860161133e565b610f55816114ed565b840191505092915050565b6000610f6d60238361124e565b9150610f78826114fe565b604082019050919050565b6000610f9060228361124e565b9150610f9b8261154d565b604082019050919050565b6000610fb360268361124e565b9150610fbe8261159c565b604082019050919050565b6000610fd660288361124e565b9150610fe1826115eb565b604082019050919050565b6000610ff960258361124e565b91506110048261163a565b604082019050919050565b600061101c60248361124e565b915061102782611689565b604082019050919050565b600061103f60258361124e565b915061104a826116d8565b604082019050919050565b61105e81611327565b82525050565b61106d81611331565b82525050565b60006020820190506110886000830184610f18565b92915050565b600060208201905081810360008301526110a88184610f27565b905092915050565b600060208201905081810360008301526110c981610f60565b9050919050565b600060208201905081810360008301526110e981610f83565b9050919050565b6000602082019050818103600083015261110981610fa6565b9050919050565b6000602082019050818103600083015261112981610fc9565b9050919050565b6000602082019050818103600083015261114981610fec565b9050919050565b600060208201905081810360008301526111698161100f565b9050919050565b6000602082019050818103600083015261118981611032565b9050919050565b60006020820190506111a56000830184611055565b92915050565b60006020820190506111c06000830184611064565b92915050565b60006111d06111e1565b90506111dc82826113a3565b919050565b6000604051905090565b600067ffffffffffffffff821115611206576112056114aa565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611232576112316114aa565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061126a82611327565b915061127583611327565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156112aa576112a961141d565b5b828201905092915050565b60006112c082611327565b91506112cb83611327565b9250828210156112de576112dd61141d565b5b828203905092915050565b60006112f482611307565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561135c578082015181840152602081019050611341565b8381111561136b576000848401525b50505050565b6000600282049050600182168061138957607f821691505b6020821081141561139d5761139c61144c565b5b50919050565b6113ac826114ed565b810181811067ffffffffffffffff821117156113cb576113ca6114aa565b5b80604052505050565b60006113df82611327565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114125761141161141d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611730816112e9565b811461173b57600080fd5b50565b61174781611327565b811461175257600080fd5b5056fea2646970667358221220d9f5ed977003087fef2a538b177e354849d5bd287a2439abb59b00947a27a3b664736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80633edfd1e1116100715780633edfd1e1146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce919061108e565b60405180910390f35b6100f160048036038101906100ec9190610e60565b61032f565b6040516100fe9190611073565b60405180910390f35b61010f61034d565b60405161011c9190611190565b60405180910390f35b61013f600480360381019061013a9190610e0d565b610357565b60405161014c9190611073565b60405180910390f35b61015d610458565b60405161016a91906111ab565b60405180910390f35b61018d60048036038101906101889190610e60565b610461565b60405161019a9190611073565b60405180910390f35b6101bd60048036038101906101b89190610ea0565b61050d565b005b6101d960048036038101906101d49190610da0565b610570565b6040516101e69190611190565b60405180910390f35b6101f76105b8565b604051610204919061108e565b60405180910390f35b61022760048036038101906102229190610e60565b61064a565b6040516102349190611073565b60405180910390f35b61025760048036038101906102529190610e60565b61073e565b6040516102649190611073565b60405180910390f35b61028760048036038101906102829190610dcd565b61075c565b6040516102949190611190565b60405180910390f35b6060600380546102ac90611371565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611371565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b600061034361033c6107e3565b84846107eb565b6001905092915050565b6000600254905090565b60006103648484846109b6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af6107e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561042f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042690611110565b60405180910390fd5b61044c8561043b6107e3565b858461044791906112b5565b6107eb565b60019150509392505050565b60006012905090565b600061050361046e6107e3565b84846001600061047c6107e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104fe919061125f565b6107eb565b6001905092915050565b60005b825181101561056b5761055783828151811061052f5761052e61147b565b5b602002602001015183838151811061054a5761054961147b565b5b602002602001015161073e565b508080610563906113d4565b915050610510565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546105c790611371565b80601f01602080910402602001604051908101604052809291908181526020018280546105f390611371565b80156106405780601f1061061557610100808354040283529160200191610640565b820191906000526020600020905b81548152906001019060200180831161062357829003601f168201915b5050505050905090565b600080600160006106596107e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90611170565b60405180910390fd5b6107336107216107e3565b85858461072e91906112b5565b6107eb565b600191505092915050565b600061075261074b6107e3565b84846109b6565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561085b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085290611150565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c2906110d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109a99190611190565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90611130565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d906110b0565b60405180910390fd5b610aa1838383610c35565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e906110f0565b60405180910390fd5b8181610b3391906112b5565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bc3919061125f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c279190611190565b60405180910390a350505050565b505050565b6000610c4d610c48846111eb565b6111c6565b90508083825260208201905082856020860282011115610c7057610c6f6114de565b5b60005b85811015610ca05781610c868882610d1a565b845260208401935060208301925050600181019050610c73565b5050509392505050565b6000610cbd610cb884611217565b6111c6565b90508083825260208201905082856020860282011115610ce057610cdf6114de565b5b60005b85811015610d105781610cf68882610d8b565b845260208401935060208301925050600181019050610ce3565b5050509392505050565b600081359050610d2981611727565b92915050565b600082601f830112610d4457610d436114d9565b5b8135610d54848260208601610c3a565b91505092915050565b600082601f830112610d7257610d716114d9565b5b8135610d82848260208601610caa565b91505092915050565b600081359050610d9a8161173e565b92915050565b600060208284031215610db657610db56114e8565b5b6000610dc484828501610d1a565b91505092915050565b60008060408385031215610de457610de36114e8565b5b6000610df285828601610d1a565b9250506020610e0385828601610d1a565b9150509250929050565b600080600060608486031215610e2657610e256114e8565b5b6000610e3486828701610d1a565b9350506020610e4586828701610d1a565b9250506040610e5686828701610d8b565b9150509250925092565b60008060408385031215610e7757610e766114e8565b5b6000610e8585828601610d1a565b9250506020610e9685828601610d8b565b9150509250929050565b60008060408385031215610eb757610eb66114e8565b5b600083013567ffffffffffffffff811115610ed557610ed46114e3565b5b610ee185828601610d2f565b925050602083013567ffffffffffffffff811115610f0257610f016114e3565b5b610f0e85828601610d5d565b9150509250929050565b610f21816112fb565b82525050565b6000610f3282611243565b610f3c818561124e565b9350610f4c81856020860161133e565b610f55816114ed565b840191505092915050565b6000610f6d60238361124e565b9150610f78826114fe565b604082019050919050565b6000610f9060228361124e565b9150610f9b8261154d565b604082019050919050565b6000610fb360268361124e565b9150610fbe8261159c565b604082019050919050565b6000610fd660288361124e565b9150610fe1826115eb565b604082019050919050565b6000610ff960258361124e565b91506110048261163a565b604082019050919050565b600061101c60248361124e565b915061102782611689565b604082019050919050565b600061103f60258361124e565b915061104a826116d8565b604082019050919050565b61105e81611327565b82525050565b61106d81611331565b82525050565b60006020820190506110886000830184610f18565b92915050565b600060208201905081810360008301526110a88184610f27565b905092915050565b600060208201905081810360008301526110c981610f60565b9050919050565b600060208201905081810360008301526110e981610f83565b9050919050565b6000602082019050818103600083015261110981610fa6565b9050919050565b6000602082019050818103600083015261112981610fc9565b9050919050565b6000602082019050818103600083015261114981610fec565b9050919050565b600060208201905081810360008301526111698161100f565b9050919050565b6000602082019050818103600083015261118981611032565b9050919050565b60006020820190506111a56000830184611055565b92915050565b60006020820190506111c06000830184611064565b92915050565b60006111d06111e1565b90506111dc82826113a3565b919050565b6000604051905090565b600067ffffffffffffffff821115611206576112056114aa565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611232576112316114aa565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061126a82611327565b915061127583611327565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156112aa576112a961141d565b5b828201905092915050565b60006112c082611327565b91506112cb83611327565b9250828210156112de576112dd61141d565b5b828203905092915050565b60006112f482611307565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561135c578082015181840152602081019050611341565b8381111561136b576000848401525b50505050565b6000600282049050600182168061138957607f821691505b6020821081141561139d5761139c61144c565b5b50919050565b6113ac826114ed565b810181811067ffffffffffffffff821117156113cb576113ca6114aa565b5b80604052505050565b60006113df82611327565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114125761141161141d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b611730816112e9565b811461173b57600080fd5b50565b61174781611327565b811461175257600080fd5b5056fea2646970667358221220d9f5ed977003087fef2a538b177e354849d5bd287a2439abb59b00947a27a3b664736f6c63430008070033
Deployed Bytecode Sourcemap
14807:5270:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6028:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8168:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7121:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8819:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6972:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9650:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19874:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7292:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6238:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10368:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7632:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7870:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6028:91;6073:13;6106:5;6099:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6028:91;:::o;8168:169::-;8251:4;8268:39;8277:12;:10;:12::i;:::-;8291:7;8300:6;8268:8;:39::i;:::-;8325:4;8318:11;;8168:169;;;;:::o;7121:108::-;7182:7;7209:12;;7202:19;;7121:108;:::o;8819:422::-;8925:4;8942:36;8952:6;8960:9;8971:6;8942:9;:36::i;:::-;8991:24;9018:11;:19;9030:6;9018:19;;;;;;;;;;;;;;;:33;9038:12;:10;:12::i;:::-;9018:33;;;;;;;;;;;;;;;;8991:60;;9090:6;9070:16;:26;;9062:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9152:57;9161:6;9169:12;:10;:12::i;:::-;9202:6;9183:16;:25;;;;:::i;:::-;9152:8;:57::i;:::-;9229:4;9222:11;;;8819:422;;;;;:::o;6972:84::-;7021:5;7046:2;7039:9;;6972:84;:::o;9650:215::-;9738:4;9755:80;9764:12;:10;:12::i;:::-;9778:7;9824:10;9787:11;:25;9799:12;:10;:12::i;:::-;9787:25;;;;;;;;;;;;;;;:34;9813:7;9787:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9755:8;:80::i;:::-;9853:4;9846:11;;9650:215;;;;:::o;19874:198::-;19971:9;19967:96;19989:6;:13;19985:1;:17;19967:96;;;20022:29;20031:6;20038:1;20031:9;;;;;;;;:::i;:::-;;;;;;;;20041:6;20048:1;20041:9;;;;;;;;:::i;:::-;;;;;;;;20022:8;:29::i;:::-;;20003:3;;;;;:::i;:::-;;;;19967:96;;;;19874:198;;:::o;7292:127::-;7366:7;7393:9;:18;7403:7;7393:18;;;;;;;;;;;;;;;;7386:25;;7292:127;;;:::o;6238:95::-;6285:13;6318:7;6311:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:95;:::o;10368:377::-;10461:4;10478:24;10505:11;:25;10517:12;:10;:12::i;:::-;10505:25;;;;;;;;;;;;;;;:34;10531:7;10505:34;;;;;;;;;;;;;;;;10478:61;;10578:15;10558:16;:35;;10550:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10646:67;10655:12;:10;:12::i;:::-;10669:7;10697:15;10678:16;:34;;;;:::i;:::-;10646:8;:67::i;:::-;10733:4;10726:11;;;10368:377;;;;:::o;7632:175::-;7718:4;7735:42;7745:12;:10;:12::i;:::-;7759:9;7770:6;7735:9;:42::i;:::-;7795:4;7788:11;;7632:175;;;;:::o;7870:151::-;7959:7;7986:11;:18;7998:5;7986:18;;;;;;;;;;;;;;;:27;8005:7;7986:27;;;;;;;;;;;;;;;;7979:34;;7870:151;;;;:::o;3621:98::-;3674:7;3701:10;3694:17;;3621:98;:::o;13724:346::-;13843:1;13826:19;;:5;:19;;;;13818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13924:1;13905:21;;:7;:21;;;;13897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14008:6;13978:11;:18;13990:5;13978:18;;;;;;;;;;;;;;;:27;13997:7;13978:27;;;;;;;;;;;;;;;:36;;;;14046:7;14030:32;;14039:5;14030:32;;;14055:6;14030:32;;;;;;:::i;:::-;;;;;;;;13724:346;;;:::o;11235:604::-;11359:1;11341:20;;:6;:20;;;;11333:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11443:1;11422:23;;:9;:23;;;;11414:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11498:47;11519:6;11527:9;11538:6;11498:20;:47::i;:::-;11558:21;11582:9;:17;11592:6;11582:17;;;;;;;;;;;;;;;;11558:41;;11635:6;11618:13;:23;;11610:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11731:6;11715:13;:22;;;;:::i;:::-;11695:9;:17;11705:6;11695:17;;;;;;;;;;;;;;;:42;;;;11772:6;11748:9;:20;11758:9;11748:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11813:9;11796:35;;11805:6;11796:35;;;11824:6;11796:35;;;;;;:::i;:::-;;;;;;;;11322:517;11235:604;;;:::o;14673:92::-;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1497:139;;;;:::o;1659:370::-;1730:5;1779:3;1772:4;1764:6;1760:17;1756:27;1746:122;;1787:79;;:::i;:::-;1746:122;1904:6;1891:20;1929:94;2019:3;2011:6;2004:4;1996:6;1992:17;1929:94;:::i;:::-;1920:103;;1736:293;1659:370;;;;:::o;2052:::-;2123:5;2172:3;2165:4;2157:6;2153:17;2149:27;2139:122;;2180:79;;:::i;:::-;2139:122;2297:6;2284:20;2322:94;2412:3;2404:6;2397:4;2389:6;2385:17;2322:94;:::i;:::-;2313:103;;2129:293;2052:370;;;;:::o;2428:139::-;2474:5;2512:6;2499:20;2490:29;;2528:33;2555:5;2528:33;:::i;:::-;2428:139;;;;:::o;2573:329::-;2632:6;2681:2;2669:9;2660:7;2656:23;2652:32;2649:119;;;2687:79;;:::i;:::-;2649:119;2807:1;2832:53;2877:7;2868:6;2857:9;2853:22;2832:53;:::i;:::-;2822:63;;2778:117;2573:329;;;;:::o;2908:474::-;2976:6;2984;3033:2;3021:9;3012:7;3008:23;3004:32;3001:119;;;3039:79;;:::i;:::-;3001:119;3159:1;3184:53;3229:7;3220:6;3209:9;3205:22;3184:53;:::i;:::-;3174:63;;3130:117;3286:2;3312:53;3357:7;3348:6;3337:9;3333:22;3312:53;:::i;:::-;3302:63;;3257:118;2908:474;;;;;:::o;3388:619::-;3465:6;3473;3481;3530:2;3518:9;3509:7;3505:23;3501:32;3498:119;;;3536:79;;:::i;:::-;3498:119;3656:1;3681:53;3726:7;3717:6;3706:9;3702:22;3681:53;:::i;:::-;3671:63;;3627:117;3783:2;3809:53;3854:7;3845:6;3834:9;3830:22;3809:53;:::i;:::-;3799:63;;3754:118;3911:2;3937:53;3982:7;3973:6;3962:9;3958:22;3937:53;:::i;:::-;3927:63;;3882:118;3388:619;;;;;:::o;4013:474::-;4081:6;4089;4138:2;4126:9;4117:7;4113:23;4109:32;4106:119;;;4144:79;;:::i;:::-;4106:119;4264:1;4289:53;4334:7;4325:6;4314:9;4310:22;4289:53;:::i;:::-;4279:63;;4235:117;4391:2;4417:53;4462:7;4453:6;4442:9;4438:22;4417:53;:::i;:::-;4407:63;;4362:118;4013:474;;;;;:::o;4493:894::-;4611:6;4619;4668:2;4656:9;4647:7;4643:23;4639:32;4636:119;;;4674:79;;:::i;:::-;4636:119;4822:1;4811:9;4807:17;4794:31;4852:18;4844:6;4841:30;4838:117;;;4874:79;;:::i;:::-;4838:117;4979:78;5049:7;5040:6;5029:9;5025:22;4979:78;:::i;:::-;4969:88;;4765:302;5134:2;5123:9;5119:18;5106:32;5165:18;5157:6;5154:30;5151:117;;;5187:79;;:::i;:::-;5151:117;5292:78;5362:7;5353:6;5342:9;5338:22;5292:78;:::i;:::-;5282:88;;5077:303;4493:894;;;;;:::o;5393:109::-;5474:21;5489:5;5474:21;:::i;:::-;5469:3;5462:34;5393:109;;:::o;5508:364::-;5596:3;5624:39;5657:5;5624:39;:::i;:::-;5679:71;5743:6;5738:3;5679:71;:::i;:::-;5672:78;;5759:52;5804:6;5799:3;5792:4;5785:5;5781:16;5759:52;:::i;:::-;5836:29;5858:6;5836:29;:::i;:::-;5831:3;5827:39;5820:46;;5600:272;5508:364;;;;:::o;5878:366::-;6020:3;6041:67;6105:2;6100:3;6041:67;:::i;:::-;6034:74;;6117:93;6206:3;6117:93;:::i;:::-;6235:2;6230:3;6226:12;6219:19;;5878:366;;;:::o;6250:::-;6392:3;6413:67;6477:2;6472:3;6413:67;:::i;:::-;6406:74;;6489:93;6578:3;6489:93;:::i;:::-;6607:2;6602:3;6598:12;6591:19;;6250:366;;;:::o;6622:::-;6764:3;6785:67;6849:2;6844:3;6785:67;:::i;:::-;6778:74;;6861:93;6950:3;6861:93;:::i;:::-;6979:2;6974:3;6970:12;6963:19;;6622:366;;;:::o;6994:::-;7136:3;7157:67;7221:2;7216:3;7157:67;:::i;:::-;7150:74;;7233:93;7322:3;7233:93;:::i;:::-;7351:2;7346:3;7342:12;7335:19;;6994:366;;;:::o;7366:::-;7508:3;7529:67;7593:2;7588:3;7529:67;:::i;:::-;7522:74;;7605:93;7694:3;7605:93;:::i;:::-;7723:2;7718:3;7714:12;7707:19;;7366:366;;;:::o;7738:::-;7880:3;7901:67;7965:2;7960:3;7901:67;:::i;:::-;7894:74;;7977:93;8066:3;7977:93;:::i;:::-;8095:2;8090:3;8086:12;8079:19;;7738:366;;;:::o;8110:::-;8252:3;8273:67;8337:2;8332:3;8273:67;:::i;:::-;8266:74;;8349:93;8438:3;8349:93;:::i;:::-;8467:2;8462:3;8458:12;8451:19;;8110:366;;;:::o;8482:118::-;8569:24;8587:5;8569:24;:::i;:::-;8564:3;8557:37;8482:118;;:::o;8606:112::-;8689:22;8705:5;8689:22;:::i;:::-;8684:3;8677:35;8606:112;;:::o;8724:210::-;8811:4;8849:2;8838:9;8834:18;8826:26;;8862:65;8924:1;8913:9;8909:17;8900:6;8862:65;:::i;:::-;8724:210;;;;:::o;8940:313::-;9053:4;9091:2;9080:9;9076:18;9068:26;;9140:9;9134:4;9130:20;9126:1;9115:9;9111:17;9104:47;9168:78;9241:4;9232:6;9168:78;:::i;:::-;9160:86;;8940:313;;;;:::o;9259:419::-;9425:4;9463:2;9452:9;9448:18;9440:26;;9512:9;9506:4;9502:20;9498:1;9487:9;9483:17;9476:47;9540:131;9666:4;9540:131;:::i;:::-;9532:139;;9259:419;;;:::o;9684:::-;9850:4;9888:2;9877:9;9873:18;9865:26;;9937:9;9931:4;9927:20;9923:1;9912:9;9908:17;9901:47;9965:131;10091:4;9965:131;:::i;:::-;9957:139;;9684:419;;;:::o;10109:::-;10275:4;10313:2;10302:9;10298:18;10290:26;;10362:9;10356:4;10352:20;10348:1;10337:9;10333:17;10326:47;10390:131;10516:4;10390:131;:::i;:::-;10382:139;;10109:419;;;:::o;10534:::-;10700:4;10738:2;10727:9;10723:18;10715:26;;10787:9;10781:4;10777:20;10773:1;10762:9;10758:17;10751:47;10815:131;10941:4;10815:131;:::i;:::-;10807:139;;10534:419;;;:::o;10959:::-;11125:4;11163:2;11152:9;11148:18;11140:26;;11212:9;11206:4;11202:20;11198:1;11187:9;11183:17;11176:47;11240:131;11366:4;11240:131;:::i;:::-;11232:139;;10959:419;;;:::o;11384:::-;11550:4;11588:2;11577:9;11573:18;11565:26;;11637:9;11631:4;11627:20;11623:1;11612:9;11608:17;11601:47;11665:131;11791:4;11665:131;:::i;:::-;11657:139;;11384:419;;;:::o;11809:::-;11975:4;12013:2;12002:9;11998:18;11990:26;;12062:9;12056:4;12052:20;12048:1;12037:9;12033:17;12026:47;12090:131;12216:4;12090:131;:::i;:::-;12082:139;;11809:419;;;:::o;12234:222::-;12327:4;12365:2;12354:9;12350:18;12342:26;;12378:71;12446:1;12435:9;12431:17;12422:6;12378:71;:::i;:::-;12234:222;;;;:::o;12462:214::-;12551:4;12589:2;12578:9;12574:18;12566:26;;12602:67;12666:1;12655:9;12651:17;12642:6;12602:67;:::i;:::-;12462:214;;;;:::o;12682:129::-;12716:6;12743:20;;:::i;:::-;12733:30;;12772:33;12800:4;12792:6;12772:33;:::i;:::-;12682:129;;;:::o;12817:75::-;12850:6;12883:2;12877:9;12867:19;;12817:75;:::o;12898:311::-;12975:4;13065:18;13057:6;13054:30;13051:56;;;13087:18;;:::i;:::-;13051:56;13137:4;13129:6;13125:17;13117:25;;13197:4;13191;13187:15;13179:23;;12898:311;;;:::o;13215:::-;13292:4;13382:18;13374:6;13371:30;13368:56;;;13404:18;;:::i;:::-;13368:56;13454:4;13446:6;13442:17;13434:25;;13514:4;13508;13504:15;13496:23;;13215:311;;;:::o;13532:99::-;13584:6;13618:5;13612:12;13602:22;;13532:99;;;:::o;13637:169::-;13721:11;13755:6;13750:3;13743:19;13795:4;13790:3;13786:14;13771:29;;13637:169;;;;:::o;13812:305::-;13852:3;13871:20;13889:1;13871:20;:::i;:::-;13866:25;;13905:20;13923:1;13905:20;:::i;:::-;13900:25;;14059:1;13991:66;13987:74;13984:1;13981:81;13978:107;;;14065:18;;:::i;:::-;13978:107;14109:1;14106;14102:9;14095:16;;13812:305;;;;:::o;14123:191::-;14163:4;14183:20;14201:1;14183:20;:::i;:::-;14178:25;;14217:20;14235:1;14217:20;:::i;:::-;14212:25;;14256:1;14253;14250:8;14247:34;;;14261:18;;:::i;:::-;14247:34;14306:1;14303;14299:9;14291:17;;14123:191;;;;:::o;14320:96::-;14357:7;14386:24;14404:5;14386:24;:::i;:::-;14375:35;;14320:96;;;:::o;14422:90::-;14456:7;14499:5;14492:13;14485:21;14474:32;;14422:90;;;:::o;14518:126::-;14555:7;14595:42;14588:5;14584:54;14573:65;;14518:126;;;:::o;14650:77::-;14687:7;14716:5;14705:16;;14650:77;;;:::o;14733:86::-;14768:7;14808:4;14801:5;14797:16;14786:27;;14733:86;;;:::o;14825:307::-;14893:1;14903:113;14917:6;14914:1;14911:13;14903:113;;;15002:1;14997:3;14993:11;14987:18;14983:1;14978:3;14974:11;14967:39;14939:2;14936:1;14932:10;14927:15;;14903:113;;;15034:6;15031:1;15028:13;15025:101;;;15114:1;15105:6;15100:3;15096:16;15089:27;15025:101;14874:258;14825:307;;;:::o;15138:320::-;15182:6;15219:1;15213:4;15209:12;15199:22;;15266:1;15260:4;15256:12;15287:18;15277:81;;15343:4;15335:6;15331:17;15321:27;;15277:81;15405:2;15397:6;15394:14;15374:18;15371:38;15368:84;;;15424:18;;:::i;:::-;15368:84;15189:269;15138:320;;;:::o;15464:281::-;15547:27;15569:4;15547:27;:::i;:::-;15539:6;15535:40;15677:6;15665:10;15662:22;15641:18;15629:10;15626:34;15623:62;15620:88;;;15688:18;;:::i;:::-;15620:88;15728:10;15724:2;15717:22;15507:238;15464:281;;:::o;15751:233::-;15790:3;15813:24;15831:5;15813:24;:::i;:::-;15804:33;;15859:66;15852:5;15849:77;15846:103;;;15929:18;;:::i;:::-;15846:103;15976:1;15969:5;15965:13;15958:20;;15751:233;;;:::o;15990:180::-;16038:77;16035:1;16028:88;16135:4;16132:1;16125:15;16159:4;16156:1;16149:15;16176:180;16224:77;16221:1;16214:88;16321:4;16318:1;16311:15;16345:4;16342:1;16335:15;16362:180;16410:77;16407:1;16400:88;16507:4;16504:1;16497:15;16531:4;16528:1;16521:15;16548:180;16596:77;16593:1;16586:88;16693:4;16690:1;16683:15;16717:4;16714:1;16707:15;16734:117;16843:1;16840;16833:12;16857:117;16966:1;16963;16956:12;16980:117;17089:1;17086;17079:12;17103:117;17212:1;17209;17202:12;17226:102;17267:6;17318:2;17314:7;17309:2;17302:5;17298:14;17294:28;17284:38;;17226:102;;;:::o;17334:222::-;17474:34;17470:1;17462:6;17458:14;17451:58;17543:5;17538:2;17530:6;17526:15;17519:30;17334:222;:::o;17562:221::-;17702:34;17698:1;17690:6;17686:14;17679:58;17771:4;17766:2;17758:6;17754:15;17747:29;17562:221;:::o;17789:225::-;17929:34;17925:1;17917:6;17913:14;17906:58;17998:8;17993:2;17985:6;17981:15;17974:33;17789:225;:::o;18020:227::-;18160:34;18156:1;18148:6;18144:14;18137:58;18229:10;18224:2;18216:6;18212:15;18205:35;18020:227;:::o;18253:224::-;18393:34;18389:1;18381:6;18377:14;18370:58;18462:7;18457:2;18449:6;18445:15;18438:32;18253:224;:::o;18483:223::-;18623:34;18619:1;18611:6;18607:14;18600:58;18692:6;18687:2;18679:6;18675:15;18668:31;18483:223;:::o;18712:224::-;18852:34;18848:1;18840:6;18836:14;18829:58;18921:7;18916:2;18908:6;18904:15;18897:32;18712:224;:::o;18942:122::-;19015:24;19033:5;19015:24;:::i;:::-;19008:5;19005:35;18995:63;;19054:1;19051;19044:12;18995:63;18942:122;:::o;19070:::-;19143:24;19161:5;19143:24;:::i;:::-;19136:5;19133:35;19123:63;;19182:1;19179;19172:12;19123:63;19070:122;:::o
Swarm Source
ipfs://d9f5ed977003087fef2a538b177e354849d5bd287a2439abb59b00947a27a3b6
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.