Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 47 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 13088192 | 1133 days ago | IN | 0 ETH | 0.00655734 | ||||
Transfer | 13054367 | 1138 days ago | IN | 0 ETH | 0.0017476 | ||||
Transfer | 13054275 | 1138 days ago | IN | 0 ETH | 0.00191408 | ||||
Transfer | 13031988 | 1141 days ago | IN | 0 ETH | 0.00400218 | ||||
Transfer | 12913983 | 1160 days ago | IN | 0 ETH | 0.00261133 | ||||
Transfer | 12913972 | 1160 days ago | IN | 0 ETH | 0.0017703 | ||||
Transfer | 12888705 | 1164 days ago | IN | 0 ETH | 0.00107525 | ||||
Transfer | 12888682 | 1164 days ago | IN | 0 ETH | 0.00116093 | ||||
Transfer | 12870371 | 1167 days ago | IN | 0 ETH | 0.00168968 | ||||
Transfer | 12870342 | 1167 days ago | IN | 0 ETH | 0.0012645 | ||||
Transfer | 12868937 | 1167 days ago | IN | 0 ETH | 0.00099845 | ||||
Transfer | 12851001 | 1170 days ago | IN | 0 ETH | 0.00092932 | ||||
Transfer | 12845982 | 1170 days ago | IN | 0 ETH | 0.00408465 | ||||
Transfer | 12845582 | 1171 days ago | IN | 0 ETH | 0.0027231 | ||||
Transfer | 12839241 | 1172 days ago | IN | 0 ETH | 0.00408465 | ||||
Transfer | 12836287 | 1172 days ago | IN | 0 ETH | 0.0025 | ||||
Transfer | 12836120 | 1172 days ago | IN | 0 ETH | 0.00157618 | ||||
Transfer | 12836096 | 1172 days ago | IN | 0 ETH | 0.00177417 | ||||
Transfer | 12831767 | 1173 days ago | IN | 0 ETH | 0.00523282 | ||||
Claim Purchase P... | 12337238 | 1249 days ago | IN | 0 ETH | 0.00292885 | ||||
Transfer | 12278443 | 1259 days ago | IN | 0.69 ETH | 0.00800992 | ||||
Make Offer | 12278135 | 1259 days ago | IN | 0 ETH | 0.04062333 | ||||
Transfer | 12265222 | 1261 days ago | IN | 0.47 ETH | 0.00450512 | ||||
Make Offer | 12264487 | 1261 days ago | IN | 0 ETH | 0.01816256 | ||||
Transfer | 12253020 | 1262 days ago | IN | 0.42 ETH | 0.00652392 |
Loading...
Loading
Contract Name:
LockedQARK
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-10 */ // SPDX-License-Identifier: MIT 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); } /* * @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; } } /** * @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; } } /** * @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 { } } //##################################################### //# START AUDIT HERE, VANILLA OPENZEPPELIN CODE ABOVE # //##################################################### contract LockedQARK is ERC20, Ownable { // THE CONTRACT ADDRESS OF QARK IERC20 private _qark; // THIS REPRESENTS AN OFFER'S PROPERTIES GIVEN TO A BUYER struct Offer { uint256 tokenAmount; // HOW MANY TOKENS ARE OFFERED FOR SALE uint256 purchasePrice; // HOW MUCH WEI TO SEND TO CLAIM THE OFFERED TOKENS uint32 claimableUntil; // THE OFFER EXPIRES AT THIS TIME (UNIX TIMESTAMP) uint32 lockedUntil; // THE PURCHASED TOKENS CAN BE WITHDRAWN AFTER THIS TIME (UNIX) } // THIS MAPS THE BUYER ADDRESSES TO THE OFFERS GIVEN TO THEM mapping (address => Offer) public offers; // INITIALIZE AN ERC20 TOKEN BASED ON THE OPENZEPPELIN VERSION constructor() ERC20("Locked QARK", "LQARK") { } // PERMIT OWNER TO SET QARK CONTRACT ADDRESS function setQarkAddr(IERC20 qark_) public onlyOwner { // CONTRACT ADDRESS CAN ONLY BE SET ONCE require(_qark == IERC20(address(0)), "QARK address can be set once!"); _qark = qark_; } // MAKE AN OFFER TO A BUYER function makeOffer(address _toBuyer, uint256 _tokenAmount, uint256 _atPrice, uint32 _claimableUntil, uint32 _lockedUntil) public onlyOwner { // IF BUYER HAS AN OFFER ALREADY, MAKE SURE IT IS NOT CLAIMED YET if(offers[_toBuyer].purchasePrice > 0){ require(offers[_toBuyer].tokenAmount > 0 && offers[_toBuyer].claimableUntil > 0, "Buyer already claimed the offer!"); } // MAKE SURE THAT THIS CONTRACT HAS ENOUGH QARK TOKENS AS DEPOSIT TO FULFILL THE OFFER require(_qark.balanceOf(address(this)) - totalSupply() >= _tokenAmount, "Not enough QARK deposit provided to make offer!"); // IF ABOVE CONDITIONS WERE MET, REGISTER OFFER offers[_toBuyer] = Offer({ tokenAmount: _tokenAmount, purchasePrice: _atPrice, claimableUntil: _claimableUntil, lockedUntil: _lockedUntil }); // MINT THE LOCKED TOKENS TO THE SELLER WHICH WILL BE TRANSFERRED TO BUYER UPON CLAIMING THE OFFER _mint(owner(), _tokenAmount); } // NON-CLAIMED OFFERS CAN BE CANCELLED function cancelOffer(address _ofBuyer) public onlyOwner { // ONLY EXISTING, NON-CLAIMED OFFERS CAN BE CANCELLED (tokenAmount FIELD IS SET TO ZERO UPON CLAIM) require(offers[_ofBuyer].tokenAmount > 0, "Buyer does not have an offer or claimed it already!"); // TRANSFER THE OFFERED QARK AMOUNT BACK TO CONTRACT OWNER _qark.transfer(owner(), offers[_ofBuyer].tokenAmount); // BURN THE LOCKED TOKENS _burn(owner(), offers[_ofBuyer].tokenAmount); // REMOVE BUYER'S OFFER FROM MAPPING delete offers[_ofBuyer]; } // THE RECEIVE FUNCTION ACCEPTS PAYMENT FROM A BUYER TO CLAIM THEIR OFFER receive() external payable { // REQUIRE THAT BUYER DIDN'T SEND A ZERO-ETH TX require(msg.value > 0, "No ETH received!"); // AND HAS SENT CORRECT PURCHASE PRICE require(offers[_msgSender()].purchasePrice == msg.value, "Incorrect purchase price sent"); // OFFER MUST BE STILL CLAIMABLE require(offers[_msgSender()].claimableUntil > block.timestamp, "Offer expired!"); // PURCHASE SUCCESSFUL REGISTER BUYER'S BALANCE _transfer(owner(), _msgSender(), offers[_msgSender()].tokenAmount); // UPDATE OFFER offers[_msgSender()].claimableUntil = 0; offers[_msgSender()].tokenAmount = 0; } // SELLER CAN CLAIM THE AMOUNT PAID BY THE BUYER function claimPurchasePrice(address payable _beneficiary) public onlyOwner { _beneficiary.transfer(address(this).balance); } // OVERRIDE OPENZEPPELIN'S ERC20 transfer() METHOD function transfer(address recipient, uint256 amount) public virtual override returns (bool) { // REQUIRE THAT THE TRANSFERRED AMOUNT IS LESS OR EQUALS THE LOCKED AMOUNT require(amount <= balanceOf(_msgSender()), "Not enough tokens to transfer!"); // REQUIRE THAT SENDER HAS A CLAIMED OFFER, AND LOCK TIME IS OVER require(offers[_msgSender()].lockedUntil < block.timestamp, "Tokens are still locked!"); // BURN THE TRANSFERRED LOCKED TOKENS _burn(_msgSender(), amount); // TRANSFER THE REAL QARKS FROM THIS CONTRACT TO RECIPIENT return _qark.transfer(recipient, amount); } }
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":"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":[{"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":"address","name":"_ofBuyer","type":"address"}],"name":"cancelOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_beneficiary","type":"address"}],"name":"claimPurchasePrice","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":"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":"_toBuyer","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"internalType":"uint256","name":"_atPrice","type":"uint256"},{"internalType":"uint32","name":"_claimableUntil","type":"uint32"},{"internalType":"uint32","name":"_lockedUntil","type":"uint32"}],"name":"makeOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"offers","outputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"purchasePrice","type":"uint256"},{"internalType":"uint32","name":"claimableUntil","type":"uint32"},{"internalType":"uint32","name":"lockedUntil","type":"uint32"}],"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":[{"internalType":"contract IERC20","name":"qark_","type":"address"}],"name":"setQarkAddr","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600b81526020017f4c6f636b6564205141524b0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4c5141524b00000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000171565b508060049080519060200190620000af92919062000171565b5050506000620000c46200016960201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000286565b600033905090565b8280546200017f9062000221565b90600052602060002090601f016020900481019282620001a35760008555620001ef565b82601f10620001be57805160ff1916838001178555620001ef565b82800160010185558215620001ef579182015b82811115620001ee578251825591602001919060010190620001d1565b5b509050620001fe919062000202565b5090565b5b808211156200021d57600081600090555060010162000203565b5090565b600060028204905060018216806200023a57607f821691505b6020821081141562000251576200025062000257565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6132bc80620002966000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb1461065e578063bfbe68741461069b578063cd3a921d146106c4578063dd62ed3e146106ed578063f2fde38b1461072a576103a8565b8063715018a61461058b5780638da5cb5b146105a257806395d89b41146105cd5780639b8a74f0146105f8578063a457c2d714610621576103a8565b8063313ce567116100e7578063313ce5671461047d57806339509351146104a8578063413bf38f146104e55780634247a1431461052557806370a082311461054e576103a8565b806306fdde03146103ad578063095ea7b3146103d857806318160ddd1461041557806323b872dd14610440576103a8565b366103a85760003411610160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610157906129f9565b60405180910390fd5b346007600061016d610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154146101eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e290612859565b60405180910390fd5b42600760006101f8610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff161161028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390612879565b60405180910390fd5b6102ee61029761075b565b61029f610753565b600760006102ab610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610785565b6000600760006102fc610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548163ffffffff021916908363ffffffff160217905550600060076000610365610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550005b600080fd5b3480156103b957600080fd5b506103c2610a04565b6040516103cf9190612797565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906122a7565b610a96565b60405161040c919061277c565b60405180910390f35b34801561042157600080fd5b5061042a610ab4565b6040516104379190612a59565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612258565b610abe565b604051610474919061277c565b60405180910390f35b34801561048957600080fd5b50610492610bbf565b60405161049f9190612ab9565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906122a7565b610bc8565b6040516104dc919061277c565b60405180910390f35b3480156104f157600080fd5b5061050c600480360381019061050791906121ca565b610c74565b60405161051c9493929190612a74565b60405180910390f35b34801561053157600080fd5b5061054c600480360381019061054791906122e3565b610cc4565b005b34801561055a57600080fd5b50610575600480360381019061057091906121ca565b61105d565b6040516105829190612a59565b60405180910390f35b34801561059757600080fd5b506105a06110a5565b005b3480156105ae57600080fd5b506105b761075b565b6040516105c49190612738565b60405180910390f35b3480156105d957600080fd5b506105e26111e2565b6040516105ef9190612797565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a91906121ca565b611274565b005b34801561062d57600080fd5b50610648600480360381019061064391906122a7565b611544565b604051610655919061277c565b60405180910390f35b34801561066a57600080fd5b50610685600480360381019061068091906122a7565b611638565b604051610692919061277c565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd91906121f3565b6117f5565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190612383565b6118bb565b005b3480156106f957600080fd5b50610714600480360381019061070f919061221c565b611a0c565b6040516107219190612a59565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906121ca565b611a93565b005b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec906129b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c906127b9565b60405180910390fd5b610870838383611c3f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ed90612899565b60405180910390fd5b81816109029190612b46565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109929190612af0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109f69190612a59565b60405180910390a350505050565b606060038054610a1390612c36565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3f90612c36565b8015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050505050905090565b6000610aaa610aa3610753565b8484611c44565b6001905092915050565b6000600254905090565b6000610acb848484610785565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b16610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d90612939565b60405180910390fd5b610bb385610ba2610753565b8584610bae9190612b46565b611c44565b60019150509392505050565b60006012905090565b6000610c6a610bd5610753565b848460016000610be3610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c659190612af0565b611c44565b6001905092915050565b60076020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900463ffffffff16908060020160049054906101000a900463ffffffff16905084565b610ccc610753565b73ffffffffffffffffffffffffffffffffffffffff16610cea61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3790612959565b60405180910390fd5b6000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115610e75576000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015610e3557506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff16115b610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90612979565b60405180910390fd5b5b83610e7e610ab4565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ed99190612738565b60206040518083038186803b158015610ef157600080fd5b505afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2991906123ac565b610f339190612b46565b1015610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b906128f9565b60405180910390fd5b60405180608001604052808581526020018481526020018363ffffffff1681526020018263ffffffff16815250600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548163ffffffff021916908363ffffffff16021790555060608201518160020160046101000a81548163ffffffff021916908363ffffffff16021790555090505061105661105061075b565b85611e0f565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ad610753565b73ffffffffffffffffffffffffffffffffffffffff166110cb61075b565b73ffffffffffffffffffffffffffffffffffffffff1614611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600480546111f190612c36565b80601f016020809104026020016040519081016040528092919081815260200182805461121d90612c36565b801561126a5780601f1061123f5761010080835404028352916020019161126a565b820191906000526020600020905b81548152906001019060200180831161124d57829003601f168201915b5050505050905090565b61127c610753565b73ffffffffffffffffffffffffffffffffffffffff1661129a61075b565b73ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612959565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90612839565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6113bb61075b565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518363ffffffff1660e01b815260040161141b929190612753565b602060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061235a565b506114c161147961075b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611f63565b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549063ffffffff02191690556002820160046101000a81549063ffffffff0219169055505050565b60008060016000611553610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612a19565b60405180910390fd5b61162d61161b610753565b8585846116289190612b46565b611c44565b600191505092915050565b600061164a611645610753565b61105d565b82111561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390612919565b60405180910390fd5b4260076000611699610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160049054906101000a900463ffffffff1663ffffffff161061172d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611724906128b9565b60405180910390fd5b61173e611738610753565b83611f63565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161179b929190612753565b602060405180830381600087803b1580156117b557600080fd5b505af11580156117c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ed919061235a565b905092915050565b6117fd610753565b73ffffffffffffffffffffffffffffffffffffffff1661181b61075b565b73ffffffffffffffffffffffffffffffffffffffff1614611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612959565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156118b7573d6000803e3d6000fd5b5050565b6118c3610753565b73ffffffffffffffffffffffffffffffffffffffff166118e161075b565b73ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf906128d9565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9b610753565b73ffffffffffffffffffffffffffffffffffffffff16611ab961075b565b73ffffffffffffffffffffffffffffffffffffffff1614611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0690612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b76906127f9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab906129d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90612819565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e029190612a59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690612a39565b60405180910390fd5b611e8b60008383611c3f565b8060026000828254611e9d9190612af0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ef29190612af0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f579190612a59565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fca90612999565b60405180910390fd5b611fdf82600083611c3f565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205c906127d9565b60405180910390fd5b81816120719190612b46565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546120c59190612b46565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161212a9190612a59565b60405180910390a3505050565b600081359050612146816131fc565b92915050565b60008135905061215b81613213565b92915050565b6000815190506121708161322a565b92915050565b60008135905061218581613241565b92915050565b60008135905061219a81613258565b92915050565b6000815190506121af81613258565b92915050565b6000813590506121c48161326f565b92915050565b6000602082840312156121dc57600080fd5b60006121ea84828501612137565b91505092915050565b60006020828403121561220557600080fd5b60006122138482850161214c565b91505092915050565b6000806040838503121561222f57600080fd5b600061223d85828601612137565b925050602061224e85828601612137565b9150509250929050565b60008060006060848603121561226d57600080fd5b600061227b86828701612137565b935050602061228c86828701612137565b925050604061229d8682870161218b565b9150509250925092565b600080604083850312156122ba57600080fd5b60006122c885828601612137565b92505060206122d98582860161218b565b9150509250929050565b600080600080600060a086880312156122fb57600080fd5b600061230988828901612137565b955050602061231a8882890161218b565b945050604061232b8882890161218b565b935050606061233c888289016121b5565b925050608061234d888289016121b5565b9150509295509295909350565b60006020828403121561236c57600080fd5b600061237a84828501612161565b91505092915050565b60006020828403121561239557600080fd5b60006123a384828501612176565b91505092915050565b6000602082840312156123be57600080fd5b60006123cc848285016121a0565b91505092915050565b6123de81612b7a565b82525050565b6123ed81612b9e565b82525050565b60006123fe82612ad4565b6124088185612adf565b9350612418818560208601612c03565b61242181612cc6565b840191505092915050565b6000612439602383612adf565b915061244482612cd7565b604082019050919050565b600061245c602283612adf565b915061246782612d26565b604082019050919050565b600061247f602683612adf565b915061248a82612d75565b604082019050919050565b60006124a2602283612adf565b91506124ad82612dc4565b604082019050919050565b60006124c5603383612adf565b91506124d082612e13565b604082019050919050565b60006124e8601d83612adf565b91506124f382612e62565b602082019050919050565b600061250b600e83612adf565b915061251682612e8b565b602082019050919050565b600061252e602683612adf565b915061253982612eb4565b604082019050919050565b6000612551601883612adf565b915061255c82612f03565b602082019050919050565b6000612574601d83612adf565b915061257f82612f2c565b602082019050919050565b6000612597602f83612adf565b91506125a282612f55565b604082019050919050565b60006125ba601e83612adf565b91506125c582612fa4565b602082019050919050565b60006125dd602883612adf565b91506125e882612fcd565b604082019050919050565b6000612600602083612adf565b915061260b8261301c565b602082019050919050565b6000612623602083612adf565b915061262e82613045565b602082019050919050565b6000612646602183612adf565b91506126518261306e565b604082019050919050565b6000612669602583612adf565b9150612674826130bd565b604082019050919050565b600061268c602483612adf565b91506126978261310c565b604082019050919050565b60006126af601083612adf565b91506126ba8261315b565b602082019050919050565b60006126d2602583612adf565b91506126dd82613184565b604082019050919050565b60006126f5601f83612adf565b9150612700826131d3565b602082019050919050565b61271481612bdc565b82525050565b61272381612be6565b82525050565b61273281612bf6565b82525050565b600060208201905061274d60008301846123d5565b92915050565b600060408201905061276860008301856123d5565b612775602083018461270b565b9392505050565b600060208201905061279160008301846123e4565b92915050565b600060208201905081810360008301526127b181846123f3565b905092915050565b600060208201905081810360008301526127d28161242c565b9050919050565b600060208201905081810360008301526127f28161244f565b9050919050565b6000602082019050818103600083015261281281612472565b9050919050565b6000602082019050818103600083015261283281612495565b9050919050565b60006020820190508181036000830152612852816124b8565b9050919050565b60006020820190508181036000830152612872816124db565b9050919050565b60006020820190508181036000830152612892816124fe565b9050919050565b600060208201905081810360008301526128b281612521565b9050919050565b600060208201905081810360008301526128d281612544565b9050919050565b600060208201905081810360008301526128f281612567565b9050919050565b600060208201905081810360008301526129128161258a565b9050919050565b60006020820190508181036000830152612932816125ad565b9050919050565b60006020820190508181036000830152612952816125d0565b9050919050565b60006020820190508181036000830152612972816125f3565b9050919050565b6000602082019050818103600083015261299281612616565b9050919050565b600060208201905081810360008301526129b281612639565b9050919050565b600060208201905081810360008301526129d28161265c565b9050919050565b600060208201905081810360008301526129f28161267f565b9050919050565b60006020820190508181036000830152612a12816126a2565b9050919050565b60006020820190508181036000830152612a32816126c5565b9050919050565b60006020820190508181036000830152612a52816126e8565b9050919050565b6000602082019050612a6e600083018461270b565b92915050565b6000608082019050612a89600083018761270b565b612a96602083018661270b565b612aa3604083018561271a565b612ab0606083018461271a565b95945050505050565b6000602082019050612ace6000830184612729565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612afb82612bdc565b9150612b0683612bdc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b3b57612b3a612c68565b5b828201905092915050565b6000612b5182612bdc565b9150612b5c83612bdc565b925082821015612b6f57612b6e612c68565b5b828203905092915050565b6000612b8582612bbc565b9050919050565b6000612b9782612bbc565b9050919050565b60008115159050919050565b6000612bb582612b7a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015612c21578082015181840152602081019050612c06565b83811115612c30576000848401525b50505050565b60006002820490506001821680612c4e57607f821691505b60208210811415612c6257612c61612c97565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f427579657220646f6573206e6f74206861766520616e206f66666572206f722060008201527f636c61696d656420697420616c72656164792100000000000000000000000000602082015250565b7f496e636f72726563742070757263686173652070726963652073656e74000000600082015250565b7f4f66666572206578706972656421000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f546f6b656e7320617265207374696c6c206c6f636b6564210000000000000000600082015250565b7f5141524b20616464726573732063616e20626520736574206f6e636521000000600082015250565b7f4e6f7420656e6f756768205141524b206465706f7369742070726f766964656460008201527f20746f206d616b65206f66666572210000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e7320746f207472616e73666572210000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f427579657220616c726561647920636c61696d656420746865206f6666657221600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f204554482072656365697665642100000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61320581612b7a565b811461321057600080fd5b50565b61321c81612b8c565b811461322757600080fd5b50565b61323381612b9e565b811461323e57600080fd5b50565b61324a81612baa565b811461325557600080fd5b50565b61326181612bdc565b811461326c57600080fd5b50565b61327881612be6565b811461328357600080fd5b5056fea26469706673582212209f79f415dc651db18cd2951fa9fba8273f3b8c1692a10d3464af7c80e4fefef064736f6c63430008030033
Deployed Bytecode
0x6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb1461065e578063bfbe68741461069b578063cd3a921d146106c4578063dd62ed3e146106ed578063f2fde38b1461072a576103a8565b8063715018a61461058b5780638da5cb5b146105a257806395d89b41146105cd5780639b8a74f0146105f8578063a457c2d714610621576103a8565b8063313ce567116100e7578063313ce5671461047d57806339509351146104a8578063413bf38f146104e55780634247a1431461052557806370a082311461054e576103a8565b806306fdde03146103ad578063095ea7b3146103d857806318160ddd1461041557806323b872dd14610440576103a8565b366103a85760003411610160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610157906129f9565b60405180910390fd5b346007600061016d610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154146101eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e290612859565b60405180910390fd5b42600760006101f8610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff161161028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390612879565b60405180910390fd5b6102ee61029761075b565b61029f610753565b600760006102ab610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154610785565b6000600760006102fc610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548163ffffffff021916908363ffffffff160217905550600060076000610365610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550005b600080fd5b3480156103b957600080fd5b506103c2610a04565b6040516103cf9190612797565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906122a7565b610a96565b60405161040c919061277c565b60405180910390f35b34801561042157600080fd5b5061042a610ab4565b6040516104379190612a59565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612258565b610abe565b604051610474919061277c565b60405180910390f35b34801561048957600080fd5b50610492610bbf565b60405161049f9190612ab9565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906122a7565b610bc8565b6040516104dc919061277c565b60405180910390f35b3480156104f157600080fd5b5061050c600480360381019061050791906121ca565b610c74565b60405161051c9493929190612a74565b60405180910390f35b34801561053157600080fd5b5061054c600480360381019061054791906122e3565b610cc4565b005b34801561055a57600080fd5b50610575600480360381019061057091906121ca565b61105d565b6040516105829190612a59565b60405180910390f35b34801561059757600080fd5b506105a06110a5565b005b3480156105ae57600080fd5b506105b761075b565b6040516105c49190612738565b60405180910390f35b3480156105d957600080fd5b506105e26111e2565b6040516105ef9190612797565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a91906121ca565b611274565b005b34801561062d57600080fd5b50610648600480360381019061064391906122a7565b611544565b604051610655919061277c565b60405180910390f35b34801561066a57600080fd5b50610685600480360381019061068091906122a7565b611638565b604051610692919061277c565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd91906121f3565b6117f5565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190612383565b6118bb565b005b3480156106f957600080fd5b50610714600480360381019061070f919061221c565b611a0c565b6040516107219190612a59565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c91906121ca565b611a93565b005b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec906129b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c906127b9565b60405180910390fd5b610870838383611c3f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ed90612899565b60405180910390fd5b81816109029190612b46565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109929190612af0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109f69190612a59565b60405180910390a350505050565b606060038054610a1390612c36565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3f90612c36565b8015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050505050905090565b6000610aaa610aa3610753565b8484611c44565b6001905092915050565b6000600254905090565b6000610acb848484610785565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b16610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d90612939565b60405180910390fd5b610bb385610ba2610753565b8584610bae9190612b46565b611c44565b60019150509392505050565b60006012905090565b6000610c6a610bd5610753565b848460016000610be3610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c659190612af0565b611c44565b6001905092915050565b60076020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900463ffffffff16908060020160049054906101000a900463ffffffff16905084565b610ccc610753565b73ffffffffffffffffffffffffffffffffffffffff16610cea61075b565b73ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3790612959565b60405180910390fd5b6000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115610e75576000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154118015610e3557506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900463ffffffff1663ffffffff16115b610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90612979565b60405180910390fd5b5b83610e7e610ab4565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ed99190612738565b60206040518083038186803b158015610ef157600080fd5b505afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2991906123ac565b610f339190612b46565b1015610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b906128f9565b60405180910390fd5b60405180608001604052808581526020018481526020018363ffffffff1681526020018263ffffffff16815250600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548163ffffffff021916908363ffffffff16021790555060608201518160020160046101000a81548163ffffffff021916908363ffffffff16021790555090505061105661105061075b565b85611e0f565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110ad610753565b73ffffffffffffffffffffffffffffffffffffffff166110cb61075b565b73ffffffffffffffffffffffffffffffffffffffff1614611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600480546111f190612c36565b80601f016020809104026020016040519081016040528092919081815260200182805461121d90612c36565b801561126a5780601f1061123f5761010080835404028352916020019161126a565b820191906000526020600020905b81548152906001019060200180831161124d57829003601f168201915b5050505050905090565b61127c610753565b73ffffffffffffffffffffffffffffffffffffffff1661129a61075b565b73ffffffffffffffffffffffffffffffffffffffff16146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612959565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90612839565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6113bb61075b565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518363ffffffff1660e01b815260040161141b929190612753565b602060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d919061235a565b506114c161147961075b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611f63565b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549063ffffffff02191690556002820160046101000a81549063ffffffff0219169055505050565b60008060016000611553610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612a19565b60405180910390fd5b61162d61161b610753565b8585846116289190612b46565b611c44565b600191505092915050565b600061164a611645610753565b61105d565b82111561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390612919565b60405180910390fd5b4260076000611699610753565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160049054906101000a900463ffffffff1663ffffffff161061172d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611724906128b9565b60405180910390fd5b61173e611738610753565b83611f63565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b815260040161179b929190612753565b602060405180830381600087803b1580156117b557600080fd5b505af11580156117c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ed919061235a565b905092915050565b6117fd610753565b73ffffffffffffffffffffffffffffffffffffffff1661181b61075b565b73ffffffffffffffffffffffffffffffffffffffff1614611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612959565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156118b7573d6000803e3d6000fd5b5050565b6118c3610753565b73ffffffffffffffffffffffffffffffffffffffff166118e161075b565b73ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf906128d9565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9b610753565b73ffffffffffffffffffffffffffffffffffffffff16611ab961075b565b73ffffffffffffffffffffffffffffffffffffffff1614611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0690612959565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b76906127f9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab906129d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90612819565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e029190612a59565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690612a39565b60405180910390fd5b611e8b60008383611c3f565b8060026000828254611e9d9190612af0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ef29190612af0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f579190612a59565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fca90612999565b60405180910390fd5b611fdf82600083611c3f565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205c906127d9565b60405180910390fd5b81816120719190612b46565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546120c59190612b46565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161212a9190612a59565b60405180910390a3505050565b600081359050612146816131fc565b92915050565b60008135905061215b81613213565b92915050565b6000815190506121708161322a565b92915050565b60008135905061218581613241565b92915050565b60008135905061219a81613258565b92915050565b6000815190506121af81613258565b92915050565b6000813590506121c48161326f565b92915050565b6000602082840312156121dc57600080fd5b60006121ea84828501612137565b91505092915050565b60006020828403121561220557600080fd5b60006122138482850161214c565b91505092915050565b6000806040838503121561222f57600080fd5b600061223d85828601612137565b925050602061224e85828601612137565b9150509250929050565b60008060006060848603121561226d57600080fd5b600061227b86828701612137565b935050602061228c86828701612137565b925050604061229d8682870161218b565b9150509250925092565b600080604083850312156122ba57600080fd5b60006122c885828601612137565b92505060206122d98582860161218b565b9150509250929050565b600080600080600060a086880312156122fb57600080fd5b600061230988828901612137565b955050602061231a8882890161218b565b945050604061232b8882890161218b565b935050606061233c888289016121b5565b925050608061234d888289016121b5565b9150509295509295909350565b60006020828403121561236c57600080fd5b600061237a84828501612161565b91505092915050565b60006020828403121561239557600080fd5b60006123a384828501612176565b91505092915050565b6000602082840312156123be57600080fd5b60006123cc848285016121a0565b91505092915050565b6123de81612b7a565b82525050565b6123ed81612b9e565b82525050565b60006123fe82612ad4565b6124088185612adf565b9350612418818560208601612c03565b61242181612cc6565b840191505092915050565b6000612439602383612adf565b915061244482612cd7565b604082019050919050565b600061245c602283612adf565b915061246782612d26565b604082019050919050565b600061247f602683612adf565b915061248a82612d75565b604082019050919050565b60006124a2602283612adf565b91506124ad82612dc4565b604082019050919050565b60006124c5603383612adf565b91506124d082612e13565b604082019050919050565b60006124e8601d83612adf565b91506124f382612e62565b602082019050919050565b600061250b600e83612adf565b915061251682612e8b565b602082019050919050565b600061252e602683612adf565b915061253982612eb4565b604082019050919050565b6000612551601883612adf565b915061255c82612f03565b602082019050919050565b6000612574601d83612adf565b915061257f82612f2c565b602082019050919050565b6000612597602f83612adf565b91506125a282612f55565b604082019050919050565b60006125ba601e83612adf565b91506125c582612fa4565b602082019050919050565b60006125dd602883612adf565b91506125e882612fcd565b604082019050919050565b6000612600602083612adf565b915061260b8261301c565b602082019050919050565b6000612623602083612adf565b915061262e82613045565b602082019050919050565b6000612646602183612adf565b91506126518261306e565b604082019050919050565b6000612669602583612adf565b9150612674826130bd565b604082019050919050565b600061268c602483612adf565b91506126978261310c565b604082019050919050565b60006126af601083612adf565b91506126ba8261315b565b602082019050919050565b60006126d2602583612adf565b91506126dd82613184565b604082019050919050565b60006126f5601f83612adf565b9150612700826131d3565b602082019050919050565b61271481612bdc565b82525050565b61272381612be6565b82525050565b61273281612bf6565b82525050565b600060208201905061274d60008301846123d5565b92915050565b600060408201905061276860008301856123d5565b612775602083018461270b565b9392505050565b600060208201905061279160008301846123e4565b92915050565b600060208201905081810360008301526127b181846123f3565b905092915050565b600060208201905081810360008301526127d28161242c565b9050919050565b600060208201905081810360008301526127f28161244f565b9050919050565b6000602082019050818103600083015261281281612472565b9050919050565b6000602082019050818103600083015261283281612495565b9050919050565b60006020820190508181036000830152612852816124b8565b9050919050565b60006020820190508181036000830152612872816124db565b9050919050565b60006020820190508181036000830152612892816124fe565b9050919050565b600060208201905081810360008301526128b281612521565b9050919050565b600060208201905081810360008301526128d281612544565b9050919050565b600060208201905081810360008301526128f281612567565b9050919050565b600060208201905081810360008301526129128161258a565b9050919050565b60006020820190508181036000830152612932816125ad565b9050919050565b60006020820190508181036000830152612952816125d0565b9050919050565b60006020820190508181036000830152612972816125f3565b9050919050565b6000602082019050818103600083015261299281612616565b9050919050565b600060208201905081810360008301526129b281612639565b9050919050565b600060208201905081810360008301526129d28161265c565b9050919050565b600060208201905081810360008301526129f28161267f565b9050919050565b60006020820190508181036000830152612a12816126a2565b9050919050565b60006020820190508181036000830152612a32816126c5565b9050919050565b60006020820190508181036000830152612a52816126e8565b9050919050565b6000602082019050612a6e600083018461270b565b92915050565b6000608082019050612a89600083018761270b565b612a96602083018661270b565b612aa3604083018561271a565b612ab0606083018461271a565b95945050505050565b6000602082019050612ace6000830184612729565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612afb82612bdc565b9150612b0683612bdc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b3b57612b3a612c68565b5b828201905092915050565b6000612b5182612bdc565b9150612b5c83612bdc565b925082821015612b6f57612b6e612c68565b5b828203905092915050565b6000612b8582612bbc565b9050919050565b6000612b9782612bbc565b9050919050565b60008115159050919050565b6000612bb582612b7a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015612c21578082015181840152602081019050612c06565b83811115612c30576000848401525b50505050565b60006002820490506001821680612c4e57607f821691505b60208210811415612c6257612c61612c97565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f427579657220646f6573206e6f74206861766520616e206f66666572206f722060008201527f636c61696d656420697420616c72656164792100000000000000000000000000602082015250565b7f496e636f72726563742070757263686173652070726963652073656e74000000600082015250565b7f4f66666572206578706972656421000000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f546f6b656e7320617265207374696c6c206c6f636b6564210000000000000000600082015250565b7f5141524b20616464726573732063616e20626520736574206f6e636521000000600082015250565b7f4e6f7420656e6f756768205141524b206465706f7369742070726f766964656460008201527f20746f206d616b65206f66666572210000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e7320746f207472616e73666572210000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f427579657220616c726561647920636c61696d656420746865206f6666657221600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f204554482072656365697665642100000000000000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61320581612b7a565b811461321057600080fd5b50565b61321c81612b8c565b811461322757600080fd5b50565b61323381612b9e565b811461323e57600080fd5b50565b61324a81612baa565b811461325557600080fd5b50565b61326181612bdc565b811461326c57600080fd5b50565b61327881612be6565b811461328357600080fd5b5056fea26469706673582212209f79f415dc651db18cd2951fa9fba8273f3b8c1692a10d3464af7c80e4fefef064736f6c63430008030033
Deployed Bytecode Sourcemap
16754:4515:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19771:1;19759:9;:13;19751:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;19900:9;19862:6;:20;19869:12;:10;:12::i;:::-;19862:20;;;;;;;;;;;;;;;:34;;;:47;19854:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;20044:15;20006:6;:20;20013:12;:10;:12::i;:::-;20006:20;;;;;;;;;;;;;;;:35;;;;;;;;;;;;:53;;;19998:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20148:66;20158:7;:5;:7::i;:::-;20167:12;:10;:12::i;:::-;20181:6;:20;20188:12;:10;:12::i;:::-;20181:20;;;;;;;;;;;;;;;:32;;;20148:9;:66::i;:::-;20290:1;20252:6;:20;20259:12;:10;:12::i;:::-;20252:20;;;;;;;;;;;;;;;:35;;;:39;;;;;;;;;;;;;;;;;;20337:1;20302:6;:20;20309:12;:10;:12::i;:::-;20302:20;;;;;;;;;;;;;;;:32;;:36;;;;16754:4515;;;;;7837:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9977:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8930:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10628:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8781:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11459:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17364:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;17843:1082;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9101:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5323:148;;;;;;;;;;;;;:::i;:::-;;4672:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8047:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18977:590;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12177:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20610:656;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20408:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17586:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9679:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5626:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3314:98;3367:7;3394:10;3387:17;;3314:98;:::o;4672:87::-;4718:7;4745:6;;;;;;;;;;;4738:13;;4672:87;:::o;13044:604::-;13168:1;13150:20;;:6;:20;;;;13142:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13252:1;13231:23;;:9;:23;;;;13223:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13307:47;13328:6;13336:9;13347:6;13307:20;:47::i;:::-;13367:21;13391:9;:17;13401:6;13391:17;;;;;;;;;;;;;;;;13367:41;;13444:6;13427:13;:23;;13419:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13540:6;13524:13;:22;;;;:::i;:::-;13504:9;:17;13514:6;13504:17;;;;;;;;;;;;;;;:42;;;;13581:6;13557:9;:20;13567:9;13557:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13622:9;13605:35;;13614:6;13605:35;;;13633:6;13605:35;;;;;;:::i;:::-;;;;;;;;13044:604;;;;:::o;7837:91::-;7882:13;7915:5;7908:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7837:91;:::o;9977:169::-;10060:4;10077:39;10086:12;:10;:12::i;:::-;10100:7;10109:6;10077:8;:39::i;:::-;10134:4;10127:11;;9977:169;;;;:::o;8930:108::-;8991:7;9018:12;;9011:19;;8930:108;:::o;10628:422::-;10734:4;10751:36;10761:6;10769:9;10780:6;10751:9;:36::i;:::-;10800:24;10827:11;:19;10839:6;10827:19;;;;;;;;;;;;;;;:33;10847:12;:10;:12::i;:::-;10827:33;;;;;;;;;;;;;;;;10800:60;;10899:6;10879:16;:26;;10871:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10961:57;10970:6;10978:12;:10;:12::i;:::-;11011:6;10992:16;:25;;;;:::i;:::-;10961:8;:57::i;:::-;11038:4;11031:11;;;10628:422;;;;;:::o;8781:84::-;8830:5;8855:2;8848:9;;8781:84;:::o;11459:215::-;11547:4;11564:80;11573:12;:10;:12::i;:::-;11587:7;11633:10;11596:11;:25;11608:12;:10;:12::i;:::-;11596:25;;;;;;;;;;;;;;;:34;11622:7;11596:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11564:8;:80::i;:::-;11662:4;11655:11;;11459:215;;;;:::o;17364:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17843:1082::-;4903:12;:10;:12::i;:::-;4892:23;;:7;:5;:7::i;:::-;:23;;;4884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18106:1:::1;18073:6;:16;18080:8;18073:16;;;;;;;;;;;;;;;:30;;;:34;18070:181;;;18162:1;18131:6;:16;18138:8;18131:16;;;;;;;;;;;;;;;:28;;;:32;:71;;;;;18201:1;18167:6;:16;18174:8;18167:16;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:35;;;18131:71;18123:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;18070:181;18425:12;18408:13;:11;:13::i;:::-;18375:5;;;;;;;;;;;:15;;;18399:4;18375:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;;:::i;:::-;:62;;18367:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;18586:182;;;;;;;;18620:12;18586:182;;;;18662:8;18586:182;;;;18701:15;18586:182;;;;;;18744:12;18586:182;;;;::::0;18567:6:::1;:16;18574:8;18567:16;;;;;;;;;;;;;;;:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18889:28;18895:7;:5;:7::i;:::-;18904:12;18889:5;:28::i;:::-;17843:1082:::0;;;;;:::o;9101:127::-;9175:7;9202:9;:18;9212:7;9202:18;;;;;;;;;;;;;;;;9195:25;;9101:127;;;:::o;5323:148::-;4903:12;:10;:12::i;:::-;4892:23;;:7;:5;:7::i;:::-;:23;;;4884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5430:1:::1;5393:40;;5414:6;;;;;;;;;;;5393:40;;;;;;;;;;;;5461:1;5444:6;;:19;;;;;;;;;;;;;;;;;;5323:148::o:0;8047:95::-;8094:13;8127:7;8120:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8047:95;:::o;18977:590::-;4903:12;:10;:12::i;:::-;4892:23;;:7;:5;:7::i;:::-;:23;;;4884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19194:1:::1;19163:6;:16;19170:8;19163:16;;;;;;;;;;;;;;;:28;;;:32;19155:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19332:5;;;;;;;;;;;:14;;;19347:7;:5;:7::i;:::-;19356:6;:16;19363:8;19356:16;;;;;;;;;;;;;;;:28;;;19332:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19433:44;19439:7;:5;:7::i;:::-;19448:6;:16;19455:8;19448:16;;;;;;;;;;;;;;;:28;;;19433:5;:44::i;:::-;19543:6;:16;19550:8;19543:16;;;;;;;;;;;;;;;;19536:23:::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18977:590:::0;:::o;12177:377::-;12270:4;12287:24;12314:11;:25;12326:12;:10;:12::i;:::-;12314:25;;;;;;;;;;;;;;;:34;12340:7;12314:34;;;;;;;;;;;;;;;;12287:61;;12387:15;12367:16;:35;;12359:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12455:67;12464:12;:10;:12::i;:::-;12478:7;12506:15;12487:16;:34;;;;:::i;:::-;12455:8;:67::i;:::-;12542:4;12535:11;;;12177:377;;;;:::o;20610:656::-;20696:4;20817:23;20827:12;:10;:12::i;:::-;20817:9;:23::i;:::-;20807:6;:33;;20799:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;21006:15;20971:6;:20;20978:12;:10;:12::i;:::-;20971:20;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:50;;;20963:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;21110:27;21116:12;:10;:12::i;:::-;21130:6;21110:5;:27::i;:::-;21225:5;;;;;;;;;;;:14;;;21240:9;21251:6;21225:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21218:40;;20610:656;;;;:::o;20408:138::-;4903:12;:10;:12::i;:::-;4892:23;;:7;:5;:7::i;:::-;:23;;;4884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20494:12:::1;:21;;:44;20516:21;20494:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20408:138:::0;:::o;17586:216::-;4903:12;:10;:12::i;:::-;4892:23;;:7;:5;:7::i;:::-;:23;;;4884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17733:1:::1;17709:27;;:5;;;;;;;;;;;:27;;;17701:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17789:5;17781;;:13;;;;;;;;;;;;;;;;;;17586:216:::0;:::o;9679:151::-;9768:7;9795:11;:18;9807:5;9795:18;;;;;;;;;;;;;;;:27;9814:7;9795:27;;;;;;;;;;;;;;;;9788:34;;9679:151;;;;:::o;5626:244::-;4903:12;:10;:12::i;:::-;4892:23;;:7;:5;:7::i;:::-;:23;;;4884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5735:1:::1;5715:22;;:8;:22;;;;5707:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5825:8;5796:38;;5817:6;;;;;;;;;;;5796:38;;;;;;;;;;;;5854:8;5845:6;;:17;;;;;;;;;;;;;;;;;;5626:244:::0;:::o;16482:92::-;;;;:::o;15533:346::-;15652:1;15635:19;;:5;:19;;;;15627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15733:1;15714:21;;:7;:21;;;;15706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15817:6;15787:11;:18;15799:5;15787:18;;;;;;;;;;;;;;;:27;15806:7;15787:27;;;;;;;;;;;;;;;:36;;;;15855:7;15839:32;;15848:5;15839:32;;;15864:6;15839:32;;;;;;:::i;:::-;;;;;;;;15533:346;;;:::o;13930:338::-;14033:1;14014:21;;:7;:21;;;;14006:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14084:49;14113:1;14117:7;14126:6;14084:20;:49::i;:::-;14162:6;14146:12;;:22;;;;;;;:::i;:::-;;;;;;;;14201:6;14179:9;:18;14189:7;14179:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;14244:7;14223:37;;14240:1;14223:37;;;14253:6;14223:37;;;;;;:::i;:::-;;;;;;;;13930:338;;:::o;14601:494::-;14704:1;14685:21;;:7;:21;;;;14677:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14757:49;14778:7;14795:1;14799:6;14757:20;:49::i;:::-;14819:22;14844:9;:18;14854:7;14844:18;;;;;;;;;;;;;;;;14819:43;;14899:6;14881:14;:24;;14873:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14993:6;14976:14;:23;;;;:::i;:::-;14955:9;:18;14965:7;14955:18;;;;;;;;;;;;;;;:44;;;;15026:6;15010:12;;:22;;;;;;;:::i;:::-;;;;;;;;15076:1;15050:37;;15059:7;15050:37;;;15080:6;15050:37;;;;;;:::i;:::-;;;;;;;;14601:494;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:137::-;;398:6;392:13;383:22;;414:30;438:5;414:30;:::i;:::-;373:77;;;;:::o;456:165::-;;553:6;540:20;531:29;;569:46;609:5;569:46;:::i;:::-;521:100;;;;:::o;627:139::-;;711:6;698:20;689:29;;727:33;754:5;727:33;:::i;:::-;679:87;;;;:::o;772:143::-;;860:6;854:13;845:22;;876:33;903:5;876:33;:::i;:::-;835:80;;;;:::o;921:137::-;;1004:6;991:20;982:29;;1020:32;1046:5;1020:32;:::i;:::-;972:86;;;;:::o;1064:262::-;;1172:2;1160:9;1151:7;1147:23;1143:32;1140:2;;;1188:1;1185;1178:12;1140:2;1231:1;1256:53;1301:7;1292:6;1281:9;1277:22;1256:53;:::i;:::-;1246:63;;1202:117;1130:196;;;;:::o;1332:278::-;;1448:2;1436:9;1427:7;1423:23;1419:32;1416:2;;;1464:1;1461;1454:12;1416:2;1507:1;1532:61;1585:7;1576:6;1565:9;1561:22;1532:61;:::i;:::-;1522:71;;1478:125;1406:204;;;;:::o;1616:407::-;;;1741:2;1729:9;1720:7;1716:23;1712:32;1709:2;;;1757:1;1754;1747:12;1709:2;1800:1;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1771:117;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1699:324;;;;;:::o;2029:552::-;;;;2171:2;2159:9;2150:7;2146:23;2142:32;2139:2;;;2187:1;2184;2177:12;2139:2;2230:1;2255:53;2300:7;2291:6;2280:9;2276:22;2255:53;:::i;:::-;2245:63;;2201:117;2357:2;2383:53;2428:7;2419:6;2408:9;2404:22;2383:53;:::i;:::-;2373:63;;2328:118;2485:2;2511:53;2556:7;2547:6;2536:9;2532:22;2511:53;:::i;:::-;2501:63;;2456:118;2129:452;;;;;:::o;2587:407::-;;;2712:2;2700:9;2691:7;2687:23;2683:32;2680:2;;;2728:1;2725;2718:12;2680:2;2771:1;2796:53;2841:7;2832:6;2821:9;2817:22;2796:53;:::i;:::-;2786:63;;2742:117;2898:2;2924:53;2969:7;2960:6;2949:9;2945:22;2924:53;:::i;:::-;2914:63;;2869:118;2670:324;;;;;:::o;3000:840::-;;;;;;3174:3;3162:9;3153:7;3149:23;3145:33;3142:2;;;3191:1;3188;3181:12;3142:2;3234:1;3259:53;3304:7;3295:6;3284:9;3280:22;3259:53;:::i;:::-;3249:63;;3205:117;3361:2;3387:53;3432:7;3423:6;3412:9;3408:22;3387:53;:::i;:::-;3377:63;;3332:118;3489:2;3515:53;3560:7;3551:6;3540:9;3536:22;3515:53;:::i;:::-;3505:63;;3460:118;3617:2;3643:52;3687:7;3678:6;3667:9;3663:22;3643:52;:::i;:::-;3633:62;;3588:117;3744:3;3771:52;3815:7;3806:6;3795:9;3791:22;3771:52;:::i;:::-;3761:62;;3715:118;3132:708;;;;;;;;:::o;3846:278::-;;3962:2;3950:9;3941:7;3937:23;3933:32;3930:2;;;3978:1;3975;3968:12;3930:2;4021:1;4046:61;4099:7;4090:6;4079:9;4075:22;4046:61;:::i;:::-;4036:71;;3992:125;3920:204;;;;:::o;4130:288::-;;4251:2;4239:9;4230:7;4226:23;4222:32;4219:2;;;4267:1;4264;4257:12;4219:2;4310:1;4335:66;4393:7;4384:6;4373:9;4369:22;4335:66;:::i;:::-;4325:76;;4281:130;4209:209;;;;:::o;4424:284::-;;4543:2;4531:9;4522:7;4518:23;4514:32;4511:2;;;4559:1;4556;4549:12;4511:2;4602:1;4627:64;4683:7;4674:6;4663:9;4659:22;4627:64;:::i;:::-;4617:74;;4573:128;4501:207;;;;:::o;4714:118::-;4801:24;4819:5;4801:24;:::i;:::-;4796:3;4789:37;4779:53;;:::o;4838:109::-;4919:21;4934:5;4919:21;:::i;:::-;4914:3;4907:34;4897:50;;:::o;4953:364::-;;5069:39;5102:5;5069:39;:::i;:::-;5124:71;5188:6;5183:3;5124:71;:::i;:::-;5117:78;;5204:52;5249:6;5244:3;5237:4;5230:5;5226:16;5204:52;:::i;:::-;5281:29;5303:6;5281:29;:::i;:::-;5276:3;5272:39;5265:46;;5045:272;;;;;:::o;5323:366::-;;5486:67;5550:2;5545:3;5486:67;:::i;:::-;5479:74;;5562:93;5651:3;5562:93;:::i;:::-;5680:2;5675:3;5671:12;5664:19;;5469:220;;;:::o;5695:366::-;;5858:67;5922:2;5917:3;5858:67;:::i;:::-;5851:74;;5934:93;6023:3;5934:93;:::i;:::-;6052:2;6047:3;6043:12;6036:19;;5841:220;;;:::o;6067:366::-;;6230:67;6294:2;6289:3;6230:67;:::i;:::-;6223:74;;6306:93;6395:3;6306:93;:::i;:::-;6424:2;6419:3;6415:12;6408:19;;6213:220;;;:::o;6439:366::-;;6602:67;6666:2;6661:3;6602:67;:::i;:::-;6595:74;;6678:93;6767:3;6678:93;:::i;:::-;6796:2;6791:3;6787:12;6780:19;;6585:220;;;:::o;6811:366::-;;6974:67;7038:2;7033:3;6974:67;:::i;:::-;6967:74;;7050:93;7139:3;7050:93;:::i;:::-;7168:2;7163:3;7159:12;7152:19;;6957:220;;;:::o;7183:366::-;;7346:67;7410:2;7405:3;7346:67;:::i;:::-;7339:74;;7422:93;7511:3;7422:93;:::i;:::-;7540:2;7535:3;7531:12;7524:19;;7329:220;;;:::o;7555:366::-;;7718:67;7782:2;7777:3;7718:67;:::i;:::-;7711:74;;7794:93;7883:3;7794:93;:::i;:::-;7912:2;7907:3;7903:12;7896:19;;7701:220;;;:::o;7927:366::-;;8090:67;8154:2;8149:3;8090:67;:::i;:::-;8083:74;;8166:93;8255:3;8166:93;:::i;:::-;8284:2;8279:3;8275:12;8268:19;;8073:220;;;:::o;8299:366::-;;8462:67;8526:2;8521:3;8462:67;:::i;:::-;8455:74;;8538:93;8627:3;8538:93;:::i;:::-;8656:2;8651:3;8647:12;8640:19;;8445:220;;;:::o;8671:366::-;;8834:67;8898:2;8893:3;8834:67;:::i;:::-;8827:74;;8910:93;8999:3;8910:93;:::i;:::-;9028:2;9023:3;9019:12;9012:19;;8817:220;;;:::o;9043:366::-;;9206:67;9270:2;9265:3;9206:67;:::i;:::-;9199:74;;9282:93;9371:3;9282:93;:::i;:::-;9400:2;9395:3;9391:12;9384:19;;9189:220;;;:::o;9415:366::-;;9578:67;9642:2;9637:3;9578:67;:::i;:::-;9571:74;;9654:93;9743:3;9654:93;:::i;:::-;9772:2;9767:3;9763:12;9756:19;;9561:220;;;:::o;9787:366::-;;9950:67;10014:2;10009:3;9950:67;:::i;:::-;9943:74;;10026:93;10115:3;10026:93;:::i;:::-;10144:2;10139:3;10135:12;10128:19;;9933:220;;;:::o;10159:366::-;;10322:67;10386:2;10381:3;10322:67;:::i;:::-;10315:74;;10398:93;10487:3;10398:93;:::i;:::-;10516:2;10511:3;10507:12;10500:19;;10305:220;;;:::o;10531:366::-;;10694:67;10758:2;10753:3;10694:67;:::i;:::-;10687:74;;10770:93;10859:3;10770:93;:::i;:::-;10888:2;10883:3;10879:12;10872:19;;10677:220;;;:::o;10903:366::-;;11066:67;11130:2;11125:3;11066:67;:::i;:::-;11059:74;;11142:93;11231:3;11142:93;:::i;:::-;11260:2;11255:3;11251:12;11244:19;;11049:220;;;:::o;11275:366::-;;11438:67;11502:2;11497:3;11438:67;:::i;:::-;11431:74;;11514:93;11603:3;11514:93;:::i;:::-;11632:2;11627:3;11623:12;11616:19;;11421:220;;;:::o;11647:366::-;;11810:67;11874:2;11869:3;11810:67;:::i;:::-;11803:74;;11886:93;11975:3;11886:93;:::i;:::-;12004:2;11999:3;11995:12;11988:19;;11793:220;;;:::o;12019:366::-;;12182:67;12246:2;12241:3;12182:67;:::i;:::-;12175:74;;12258:93;12347:3;12258:93;:::i;:::-;12376:2;12371:3;12367:12;12360:19;;12165:220;;;:::o;12391:366::-;;12554:67;12618:2;12613:3;12554:67;:::i;:::-;12547:74;;12630:93;12719:3;12630:93;:::i;:::-;12748:2;12743:3;12739:12;12732:19;;12537:220;;;:::o;12763:366::-;;12926:67;12990:2;12985:3;12926:67;:::i;:::-;12919:74;;13002:93;13091:3;13002:93;:::i;:::-;13120:2;13115:3;13111:12;13104:19;;12909:220;;;:::o;13135:118::-;13222:24;13240:5;13222:24;:::i;:::-;13217:3;13210:37;13200:53;;:::o;13259:115::-;13344:23;13361:5;13344:23;:::i;:::-;13339:3;13332:36;13322:52;;:::o;13380:112::-;13463:22;13479:5;13463:22;:::i;:::-;13458:3;13451:35;13441:51;;:::o;13498:222::-;;13629:2;13618:9;13614:18;13606:26;;13642:71;13710:1;13699:9;13695:17;13686:6;13642:71;:::i;:::-;13596:124;;;;:::o;13726:332::-;;13885:2;13874:9;13870:18;13862:26;;13898:71;13966:1;13955:9;13951:17;13942:6;13898:71;:::i;:::-;13979:72;14047:2;14036:9;14032:18;14023:6;13979:72;:::i;:::-;13852:206;;;;;:::o;14064:210::-;;14189:2;14178:9;14174:18;14166:26;;14202:65;14264:1;14253:9;14249:17;14240:6;14202:65;:::i;:::-;14156:118;;;;:::o;14280:313::-;;14431:2;14420:9;14416:18;14408:26;;14480:9;14474:4;14470:20;14466:1;14455:9;14451:17;14444:47;14508:78;14581:4;14572:6;14508:78;:::i;:::-;14500:86;;14398:195;;;;:::o;14599:419::-;;14803:2;14792:9;14788:18;14780:26;;14852:9;14846:4;14842:20;14838:1;14827:9;14823:17;14816:47;14880:131;15006:4;14880:131;:::i;:::-;14872:139;;14770:248;;;:::o;15024:419::-;;15228:2;15217:9;15213:18;15205:26;;15277:9;15271:4;15267:20;15263:1;15252:9;15248:17;15241:47;15305:131;15431:4;15305:131;:::i;:::-;15297:139;;15195:248;;;:::o;15449:419::-;;15653:2;15642:9;15638:18;15630:26;;15702:9;15696:4;15692:20;15688:1;15677:9;15673:17;15666:47;15730:131;15856:4;15730:131;:::i;:::-;15722:139;;15620:248;;;:::o;15874:419::-;;16078:2;16067:9;16063:18;16055:26;;16127:9;16121:4;16117:20;16113:1;16102:9;16098:17;16091:47;16155:131;16281:4;16155:131;:::i;:::-;16147:139;;16045:248;;;:::o;16299:419::-;;16503:2;16492:9;16488:18;16480:26;;16552:9;16546:4;16542:20;16538:1;16527:9;16523:17;16516:47;16580:131;16706:4;16580:131;:::i;:::-;16572:139;;16470:248;;;:::o;16724:419::-;;16928:2;16917:9;16913:18;16905:26;;16977:9;16971:4;16967:20;16963:1;16952:9;16948:17;16941:47;17005:131;17131:4;17005:131;:::i;:::-;16997:139;;16895:248;;;:::o;17149:419::-;;17353:2;17342:9;17338:18;17330:26;;17402:9;17396:4;17392:20;17388:1;17377:9;17373:17;17366:47;17430:131;17556:4;17430:131;:::i;:::-;17422:139;;17320:248;;;:::o;17574:419::-;;17778:2;17767:9;17763:18;17755:26;;17827:9;17821:4;17817:20;17813:1;17802:9;17798:17;17791:47;17855:131;17981:4;17855:131;:::i;:::-;17847:139;;17745:248;;;:::o;17999:419::-;;18203:2;18192:9;18188:18;18180:26;;18252:9;18246:4;18242:20;18238:1;18227:9;18223:17;18216:47;18280:131;18406:4;18280:131;:::i;:::-;18272:139;;18170:248;;;:::o;18424:419::-;;18628:2;18617:9;18613:18;18605:26;;18677:9;18671:4;18667:20;18663:1;18652:9;18648:17;18641:47;18705:131;18831:4;18705:131;:::i;:::-;18697:139;;18595:248;;;:::o;18849:419::-;;19053:2;19042:9;19038:18;19030:26;;19102:9;19096:4;19092:20;19088:1;19077:9;19073:17;19066:47;19130:131;19256:4;19130:131;:::i;:::-;19122:139;;19020:248;;;:::o;19274:419::-;;19478:2;19467:9;19463:18;19455:26;;19527:9;19521:4;19517:20;19513:1;19502:9;19498:17;19491:47;19555:131;19681:4;19555:131;:::i;:::-;19547:139;;19445:248;;;:::o;19699:419::-;;19903:2;19892:9;19888:18;19880:26;;19952:9;19946:4;19942:20;19938:1;19927:9;19923:17;19916:47;19980:131;20106:4;19980:131;:::i;:::-;19972:139;;19870:248;;;:::o;20124:419::-;;20328:2;20317:9;20313:18;20305:26;;20377:9;20371:4;20367:20;20363:1;20352:9;20348:17;20341:47;20405:131;20531:4;20405:131;:::i;:::-;20397:139;;20295:248;;;:::o;20549:419::-;;20753:2;20742:9;20738:18;20730:26;;20802:9;20796:4;20792:20;20788:1;20777:9;20773:17;20766:47;20830:131;20956:4;20830:131;:::i;:::-;20822:139;;20720:248;;;:::o;20974:419::-;;21178:2;21167:9;21163:18;21155:26;;21227:9;21221:4;21217:20;21213:1;21202:9;21198:17;21191:47;21255:131;21381:4;21255:131;:::i;:::-;21247:139;;21145:248;;;:::o;21399:419::-;;21603:2;21592:9;21588:18;21580:26;;21652:9;21646:4;21642:20;21638:1;21627:9;21623:17;21616:47;21680:131;21806:4;21680:131;:::i;:::-;21672:139;;21570:248;;;:::o;21824:419::-;;22028:2;22017:9;22013:18;22005:26;;22077:9;22071:4;22067:20;22063:1;22052:9;22048:17;22041:47;22105:131;22231:4;22105:131;:::i;:::-;22097:139;;21995:248;;;:::o;22249:419::-;;22453:2;22442:9;22438:18;22430:26;;22502:9;22496:4;22492:20;22488:1;22477:9;22473:17;22466:47;22530:131;22656:4;22530:131;:::i;:::-;22522:139;;22420:248;;;:::o;22674:419::-;;22878:2;22867:9;22863:18;22855:26;;22927:9;22921:4;22917:20;22913:1;22902:9;22898:17;22891:47;22955:131;23081:4;22955:131;:::i;:::-;22947:139;;22845:248;;;:::o;23099:419::-;;23303:2;23292:9;23288:18;23280:26;;23352:9;23346:4;23342:20;23338:1;23327:9;23323:17;23316:47;23380:131;23506:4;23380:131;:::i;:::-;23372:139;;23270:248;;;:::o;23524:222::-;;23655:2;23644:9;23640:18;23632:26;;23668:71;23736:1;23725:9;23721:17;23712:6;23668:71;:::i;:::-;23622:124;;;;:::o;23752:545::-;;23963:3;23952:9;23948:19;23940:27;;23977:71;24045:1;24034:9;24030:17;24021:6;23977:71;:::i;:::-;24058:72;24126:2;24115:9;24111:18;24102:6;24058:72;:::i;:::-;24140:70;24206:2;24195:9;24191:18;24182:6;24140:70;:::i;:::-;24220;24286:2;24275:9;24271:18;24262:6;24220:70;:::i;:::-;23930:367;;;;;;;:::o;24303:214::-;;24430:2;24419:9;24415:18;24407:26;;24443:67;24507:1;24496:9;24492:17;24483:6;24443:67;:::i;:::-;24397:120;;;;:::o;24523:99::-;;24609:5;24603:12;24593:22;;24582:40;;;:::o;24628:169::-;;24746:6;24741:3;24734:19;24786:4;24781:3;24777:14;24762:29;;24724:73;;;;:::o;24803:305::-;;24862:20;24880:1;24862:20;:::i;:::-;24857:25;;24896:20;24914:1;24896:20;:::i;:::-;24891:25;;25050:1;24982:66;24978:74;24975:1;24972:81;24969:2;;;25056:18;;:::i;:::-;24969:2;25100:1;25097;25093:9;25086:16;;24847:261;;;;:::o;25114:191::-;;25174:20;25192:1;25174:20;:::i;:::-;25169:25;;25208:20;25226:1;25208:20;:::i;:::-;25203:25;;25247:1;25244;25241:8;25238:2;;;25252:18;;:::i;:::-;25238:2;25297:1;25294;25290:9;25282:17;;25159:146;;;;:::o;25311:96::-;;25377:24;25395:5;25377:24;:::i;:::-;25366:35;;25356:51;;;:::o;25413:104::-;;25487:24;25505:5;25487:24;:::i;:::-;25476:35;;25466:51;;;:::o;25523:90::-;;25600:5;25593:13;25586:21;25575:32;;25565:48;;;:::o;25619:109::-;;25698:24;25716:5;25698:24;:::i;:::-;25687:35;;25677:51;;;:::o;25734:126::-;;25811:42;25804:5;25800:54;25789:65;;25779:81;;;:::o;25866:77::-;;25932:5;25921:16;;25911:32;;;:::o;25949:93::-;;26025:10;26018:5;26014:22;26003:33;;25993:49;;;:::o;26048:86::-;;26123:4;26116:5;26112:16;26101:27;;26091:43;;;:::o;26140:307::-;26208:1;26218:113;26232:6;26229:1;26226:13;26218:113;;;26317:1;26312:3;26308:11;26302:18;26298:1;26293:3;26289:11;26282:39;26254:2;26251:1;26247:10;26242:15;;26218:113;;;26349:6;26346:1;26343:13;26340:2;;;26429:1;26420:6;26415:3;26411:16;26404:27;26340:2;26189:258;;;;:::o;26453:320::-;;26534:1;26528:4;26524:12;26514:22;;26581:1;26575:4;26571:12;26602:18;26592:2;;26658:4;26650:6;26646:17;26636:27;;26592:2;26720;26712:6;26709:14;26689:18;26686:38;26683:2;;;26739:18;;:::i;:::-;26683:2;26504:269;;;;:::o;26779:180::-;26827:77;26824:1;26817:88;26924:4;26921:1;26914:15;26948:4;26945:1;26938:15;26965:180;27013:77;27010:1;27003:88;27110:4;27107:1;27100:15;27134:4;27131:1;27124:15;27151:102;;27243:2;27239:7;27234:2;27227:5;27223:14;27219:28;27209:38;;27199:54;;;:::o;27259:222::-;27399:34;27395:1;27387:6;27383:14;27376:58;27468:5;27463:2;27455:6;27451:15;27444:30;27365:116;:::o;27487:221::-;27627:34;27623:1;27615:6;27611:14;27604:58;27696:4;27691:2;27683:6;27679:15;27672:29;27593:115;:::o;27714:225::-;27854:34;27850:1;27842:6;27838:14;27831:58;27923:8;27918:2;27910:6;27906:15;27899:33;27820:119;:::o;27945:221::-;28085:34;28081:1;28073:6;28069:14;28062:58;28154:4;28149:2;28141:6;28137:15;28130:29;28051:115;:::o;28172:238::-;28312:34;28308:1;28300:6;28296:14;28289:58;28381:21;28376:2;28368:6;28364:15;28357:46;28278:132;:::o;28416:179::-;28556:31;28552:1;28544:6;28540:14;28533:55;28522:73;:::o;28601:164::-;28741:16;28737:1;28729:6;28725:14;28718:40;28707:58;:::o;28771:225::-;28911:34;28907:1;28899:6;28895:14;28888:58;28980:8;28975:2;28967:6;28963:15;28956:33;28877:119;:::o;29002:174::-;29142:26;29138:1;29130:6;29126:14;29119:50;29108:68;:::o;29182:179::-;29322:31;29318:1;29310:6;29306:14;29299:55;29288:73;:::o;29367:234::-;29507:34;29503:1;29495:6;29491:14;29484:58;29576:17;29571:2;29563:6;29559:15;29552:42;29473:128;:::o;29607:180::-;29747:32;29743:1;29735:6;29731:14;29724:56;29713:74;:::o;29793:227::-;29933:34;29929:1;29921:6;29917:14;29910:58;30002:10;29997:2;29989:6;29985:15;29978:35;29899:121;:::o;30026:182::-;30166:34;30162:1;30154:6;30150:14;30143:58;30132:76;:::o;30214:182::-;30354:34;30350:1;30342:6;30338:14;30331:58;30320:76;:::o;30402:220::-;30542:34;30538:1;30530:6;30526:14;30519:58;30611:3;30606:2;30598:6;30594:15;30587:28;30508:114;:::o;30628:224::-;30768:34;30764:1;30756:6;30752:14;30745:58;30837:7;30832:2;30824:6;30820:15;30813:32;30734:118;:::o;30858:223::-;30998:34;30994:1;30986:6;30982:14;30975:58;31067:6;31062:2;31054:6;31050:15;31043:31;30964:117;:::o;31087:166::-;31227:18;31223:1;31215:6;31211:14;31204:42;31193:60;:::o;31259:224::-;31399:34;31395:1;31387:6;31383:14;31376:58;31468:7;31463:2;31455:6;31451:15;31444:32;31365:118;:::o;31489:181::-;31629:33;31625:1;31617:6;31613:14;31606:57;31595:75;:::o;31676:122::-;31749:24;31767:5;31749:24;:::i;:::-;31742:5;31739:35;31729:2;;31788:1;31785;31778:12;31729:2;31719:79;:::o;31804:138::-;31885:32;31911:5;31885:32;:::i;:::-;31878:5;31875:43;31865:2;;31932:1;31929;31922:12;31865:2;31855:87;:::o;31948:116::-;32018:21;32033:5;32018:21;:::i;:::-;32011:5;32008:32;31998:2;;32054:1;32051;32044:12;31998:2;31988:76;:::o;32070:148::-;32156:37;32187:5;32156:37;:::i;:::-;32149:5;32146:48;32136:2;;32208:1;32205;32198:12;32136:2;32126:92;:::o;32224:122::-;32297:24;32315:5;32297:24;:::i;:::-;32290:5;32287:35;32277:2;;32336:1;32333;32326:12;32277:2;32267:79;:::o;32352:120::-;32424:23;32441:5;32424:23;:::i;:::-;32417:5;32414:34;32404:2;;32462:1;32459;32452:12;32404:2;32394:78;:::o
Swarm Source
ipfs://9f79f415dc651db18cd2951fa9fba8273f3b8c1692a10d3464af7c80e4fefef0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.