More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 144 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sell | 59445566 | 142 days ago | IN | 6 POL | 0.00178305 | ||||
Sell | 59445543 | 142 days ago | IN | 6 POL | 0.00178305 | ||||
Sell | 59445536 | 142 days ago | IN | 6 POL | 0.00178305 | ||||
Sell | 59445523 | 142 days ago | IN | 6 POL | 0.00229605 | ||||
Airdrop | 59445365 | 142 days ago | IN | 0 POL | 0.00288162 | ||||
Airdrop | 59290518 | 146 days ago | IN | 0 POL | 0.00665719 | ||||
Airdrop | 59290456 | 146 days ago | IN | 0 POL | 0.00770855 | ||||
Airdrop | 59290409 | 146 days ago | IN | 0 POL | 0.00785338 | ||||
Airdrop | 59290348 | 146 days ago | IN | 0 POL | 0.00841906 | ||||
Airdrop | 59290244 | 146 days ago | IN | 0 POL | 0.00696854 | ||||
Sell | 59236976 | 148 days ago | IN | 0.3 POL | 0.00309113 | ||||
Airdrop | 59205536 | 148 days ago | IN | 0 POL | 0.00291307 | ||||
Airdrop | 59205522 | 148 days ago | IN | 0 POL | 0.00291484 | ||||
Airdrop | 59205517 | 148 days ago | IN | 0 POL | 0.00291282 | ||||
Airdrop | 59205509 | 148 days ago | IN | 0 POL | 0.00291712 | ||||
Airdrop | 59205504 | 148 days ago | IN | 0 POL | 0.0029174 | ||||
Airdrop | 59205488 | 148 days ago | IN | 0 POL | 0.00291781 | ||||
Airdrop | 59205474 | 148 days ago | IN | 0 POL | 0.00292121 | ||||
Airdrop | 59205464 | 148 days ago | IN | 0 POL | 0.0029286 | ||||
Airdrop | 59205453 | 148 days ago | IN | 0 POL | 0.00291361 | ||||
Airdrop | 59205447 | 148 days ago | IN | 0 POL | 0.00291105 | ||||
Airdrop | 59205342 | 148 days ago | IN | 0 POL | 0.0029007 | ||||
Airdrop | 59205325 | 148 days ago | IN | 0 POL | 0.00290292 | ||||
Airdrop | 59205300 | 148 days ago | IN | 0 POL | 0.00295847 | ||||
Airdrop | 59205292 | 148 days ago | IN | 0 POL | 0.0029048 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Bide_N2
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2024-06-07 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; /** * @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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/security/ReentrancyGuard.sol // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } } // File: contracts/bide_n2.sol pragma solidity ^0.8.25; //import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; // Interface for the ERC-20 standard interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } event Airdrop(address indexed to); event Sale(address indexed to, uint256 amount); event Received(address indexed sender, uint256 amount); event FallbackCalled(address indexed sender, uint256 amount, bytes data); contract Bide_N2 is IERC20, Ownable, ReentrancyGuard { string public name = "Bide N2 Token"; string public symbol = "2BIDE"; uint256 public decimals=18; uint256 private constant _PRECISION = 1e18; uint256 private constant _MAX_SUPPLY = 1e9 * _PRECISION; // Maximum 2BIDE supply possible uint256 private constant _AIRDROP_PER_WALLET = 2e3 * _PRECISION; // Airdrop per wallet limit uint256 private constant _AIRDROP_LIMIT = 3e6 * _PRECISION; // Overall airdrop allocation uint256 private constant _CREATOR_SHARE = 5e6 * _PRECISION; // Because why not? uint256 private _SALE_PER_WALLET = 1e5 * _PRECISION; // Maximum amount of tokens to be sold // to a single address via the website // or by direct transfer of MATIC to this contract uint256 private _totalSupply = _CREATOR_SHARE; // Initial supply is the creator share. string private constant _ERROR_EXCEEDS_MAX_SUPPLY = "Exceeds max supply"; string private constant _ERROR_GO_TO_UNI = "Sale is no longer available here. Go to UniSwap"; string private constant _ERROR_INSUFFICIENT_FUNDS = "Insufficient funds"; string private constant _ERROR_ZERO_ADDRESS = "Operation is prohibited for the 0 address"; /* Bide N2 Tax =========== It is not really a tax. While there are many other tokens that utilize some sort of internal gas fee per transaction, we see absolutely no reason for such, and even consider it to be unfair. The "Bide N2 Tax" is a philanthropic initiative. It means that a certain percent of newly minted 2BIDE tokens goes into a vault (the balance of the account itself). These funds may not be released prior to December 1st, 2024 at midnight. Releasing these funds it one of a very few things that the creator of the contract is allowed to do. The funds collected by leveraging this taxation of the minting process will then be donated to a medical research institution that concentrates on the research of aging of the human breain. As a community driven project, we will organize vote (using another smart cotract) and you, as token holders, will be able to vote for a set of medical institutions, in order to select just one. */ uint private _BIDE_N2_TAX_END_TIME = 1733011200; //December 1st, 2024 uint256 private _BIDE_N2_TAX_RATE = 1e4; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; // All newly minted tokens will go into reserve. // The reserve will be used for liquidity provision and further development needs. address private _reserve; // The one responsible for the release of the philanthropic savings. address private _creator; // Only one airdrop per address. This would be set to 1 for addresses that have claimed their airdrop. mapping(address => uint256) private _airdropStatus; /* !THIS IS NOT THE USER'S ACTUAL BALANCE! This field is used ONLY for tracking of token sales on the 2bite.io website. Since there is an implied limit of how much tokens may be purchased by a single wallet on website, this mapping is used in order to enforce the limit. */ mapping(address => uint256) private _saleBalance; // Just the amount of airdripped tokens. uint256 private _airdopped = 0; /* This modifier ensures that marked functions may only be invoked by the creator of the contract. Since the contract will be renounced right after creation, the usual onlyOwner modifier is not applicable. */ modifier onlyCreator() { require(msg.sender == _creator, "You are not authorized"); _; } /* Creation of the contract :-) */ constructor() Ownable(msg.sender) { _balances[msg.sender] = _CREATOR_SHARE; _creator = msg.sender; } // Standard ERC20 function function totalSupply() public view override returns (uint256) { return _totalSupply; } // Standard ERC20 function function balanceOf(address account) public view override returns(uint256) { return _balances[account]; } /* This function returns the amount of 2BIDE tokens held by this contract (in the "philantropy vault"). The same may be achieved by calling balanceOf(<this contract address>). */ function tokenBalance() public view returns(uint256) { return _balances[address(this)]; } /* In order to keep the minting process up and running, each transfer of 2BIDE tokens would produce (mint) a few tokens into the reserve and (if it happens before December 1st, 2024) would mint a bit into the philantropy vault as well. Depending on the totalSupply, the amount of new tokens to mint would gradually degrade. This intends to soften the emission process. */ function _calculateMintAmount(uint256 transactionAmount)private view returns(uint256) { uint256 factor; if(_totalSupply < 5e8) factor = 1e4; else if(_totalSupply < 7.5e8) factor = 2e4; else if(_totalSupply < 9e8) factor = 5e4; else if(_totalSupply < _MAX_SUPPLY) factor = 1e5; uint256 mintAmount = transactionAmount * 1e2 / factor; return (_totalSupply + mintAmount <= _MAX_SUPPLY)? mintAmount : _MAX_SUPPLY - _totalSupply; } /* This function is the one that calculates the amount of tokens to be minted to the philantropy vault (as long as it is before December 1st, 2024). */ function calculateTax(uint256 amount)private view returns(uint256) { uint256 tax = 0; if(block.timestamp < _BIDE_N2_TAX_END_TIME) { uint256 dynamicFactor = (_totalSupply < 5e8)? 5e2 : 1e2; tax = (amount * dynamicFactor)/_BIDE_N2_TAX_RATE; } return tax; } /* This is another management function left for the creator. This function is used to adjust the amount of tokens that may be sold to a single address on the website in order to prevent abuse of the website. */ function adjustSalePerWallet(uint256 newAmount)external onlyCreator { require(newAmount >= 1e3 * _PRECISION, "Too low"); require(newAmount <= 1e5 * _PRECISION, "Too high"); _SALE_PER_WALLET = newAmount * _PRECISION; } /* Airdrop is a bonus for the early adopters of the 2BIDE token. This functionality has two purposes: 1 - provide our early adopters with a few tokens for free. 2 - produce (mint) new tokens that would go into the reserve and into the philantropy vault (the latter would later be donated). */ function airdrop() public nonReentrant returns(bool) { require(_airdopped < _AIRDROP_LIMIT, "Ran out"); require(_airdropStatus[msg.sender] != 1, "You can't do it twice"); uint256 mintedReserve = (_AIRDROP_PER_WALLET * 5e3) / 1e4; uint256 mintedTokens = _AIRDROP_PER_WALLET + mintedReserve; require((_totalSupply + mintedTokens) <= _MAX_SUPPLY, _ERROR_EXCEEDS_MAX_SUPPLY); _airdopped += _AIRDROP_PER_WALLET; _airdropStatus[msg.sender] = 1; _mint(msg.sender, _AIRDROP_PER_WALLET); _mint(_reserve, mintedReserve); emit Airdrop(msg.sender); return true; } /* This function is implemented in order to let the visitors of the 2bide.io website purchase 2BIDE tokens directly from the contract for a lower price. The tokens would be delivered directly to the balance of the buyer. In addition, the function would mint a certain amount of tokens into the reserve (to remind you, the reserve will be used to provide liquidity and to cover further development cost. To put it in simple terms, by buyin 2BIDE on site you crowdfund its liquidity and provide the team with the means to keep up the work. NOTE #1: This function would work as long as total supply is less than half of the maximum supply for 2BIDE, meaning (totalSupply < 500,000,000). NOTE #2: There is an implied limit for how many tokens may be sold to a single address. The range is 1,000 - 100,000 2BIDE. The range may be adjusted depending on the market situation. This, however, would have not impact on the selling price whatsoever. */ function sell() public payable nonReentrant returns(bool) { return _sell(); } // This is the actual implementation of the sell() function function _sell()private returns(bool) { uint256 mintedSale = ((msg.value * 1e4)/(6*_PRECISION))*1e18; // The purchased amount should be enough to produce some reserve. require(mintedSale > 1e4, "Value too small"); uint256 mintedReserve = (mintedSale * 1e3)/1e4; uint256 mintedTotal = mintedSale + mintedReserve; require((_totalSupply + mintedTotal) <= _MAX_SUPPLY/2, _ERROR_GO_TO_UNI); require((_saleBalance[msg.sender] + mintedSale) <= _SALE_PER_WALLET, "Per wallet limit exceeded"); _saleBalance[msg.sender] += mintedSale; _mint(msg.sender, mintedSale); _mint(_reserve, mintedReserve); emit Sale(msg.sender, mintedSale); return true; } // As the name of the function states - it mints new 2BIDE tokens. function _mint(address to, uint256 amount)private returns (bool) { require(to != address(0), _ERROR_ZERO_ADDRESS); require((_totalSupply + amount) < _MAX_SUPPLY,_ERROR_EXCEEDS_MAX_SUPPLY); _balances[to] += amount; _totalSupply += amount; emit Transfer(address(0), to, amount); return true; } /* This function is the standard transfer function from the ERC20 specification, yet, with the tiny addition of minting new tokens as long as the totalSupply is below _MAX_SUPPLY. In case the transaction is performed before December 1st, 2024, the function also mints a tiny amount into the philantropy vault. */ function transfer(address recipient, uint256 amount)external override nonReentrant returns(bool) { require(recipient != address(0),_ERROR_ZERO_ADDRESS); require(_balances[msg.sender] >= amount, _ERROR_INSUFFICIENT_FUNDS); _balances[msg.sender] -= amount; _balances[recipient] += amount; emit Transfer(msg.sender, recipient, amount); if(_totalSupply < _MAX_SUPPLY) { uint256 mintAmount = _calculateMintAmount(amount); uint256 r = calculateTax(mintAmount); uint256 d = mintAmount - r; _mint(_reserve, d); if(r > 0) _mint(address(this), r); } return true; } /* This is a standard ERC20 transferFrom() function with the same tiny additions as the transfer() function above. */ function transferFrom(address sender, address recipient, uint256 amount)external override nonReentrant returns(bool) { require(_balances[sender] >= amount,_ERROR_INSUFFICIENT_FUNDS); require(_allowances[sender][msg.sender] >= amount, "Allowance exceeded"); _allowances[sender][msg.sender] -= amount; _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); if(_totalSupply < _MAX_SUPPLY) { uint256 mintAmount = _calculateMintAmount(amount); uint256 r = calculateTax(mintAmount); uint256 d = mintAmount - r; _mint(_reserve, d); if(r > 0) _mint(address(this), r); } return true; } // Standard ERC20 function function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } // Standard ERC20 function function approve(address spender, uint256 amount)external override returns(bool) { require(spender != address(0), _ERROR_ZERO_ADDRESS); _allowances[msg.sender][spender] = 0; _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } /* This function sets the reserve wallet. It may only be called before the contract's ownership is renounced. */ function setReserve(address newReserve) external onlyOwner { _reserve = newReserve; } /* This function transfers the accumulated MATIC balance to the reserve wallet. Most of it would go into the liquidity pool, but a certain (small) percent would assist in further development of the project. */ event LiquidityFundAbsorbed(address indexed to, uint256 amount); function prepareLiquidityFund()external payable onlyCreator nonReentrant { uint256 amount = address(this).balance; payable(_reserve).transfer(amount); emit LiquidityFundAbsorbed(_reserve, amount); } /* When December 1st, 2024 comes, the creator would be able to release the funds locked in the philantropy vault to the address provided by the selected research institution. */ event PhilanthropicSavingsReleased(address indexed to, uint256 amount); function releasePhilanthropicSavings(address target) external onlyCreator { require(target != address(0), _ERROR_ZERO_ADDRESS); require(_balances[address(this)] > 0, _ERROR_INSUFFICIENT_FUNDS); require(block.timestamp > _BIDE_N2_TAX_END_TIME, "Too early"); uint256 deposit = _balances[address(this)]; _balances[address(this)] = 0; _balances[target] += deposit; emit Transfer(address(this), target, deposit); emit PhilanthropicSavingsReleased(target, deposit); } /* Shows how many tokens are available for airdrop. */ function remainingAirdrop()external view returns (uint256) { return _AIRDROP_LIMIT - _airdopped; } /* Shows how many tokens have been airdropped already. */ function spentAirdrop()external view returns (uint256) { return _airdopped; } /* This function shows how many tokens may still be bought by certain address. */ function remainingSaleLimit(address account)external view returns(uint256) { uint256 remaining = _SALE_PER_WALLET - _saleBalance[account]; return (remaining > 0)? remaining : 0; } /* It is possible to purchase 2BIDE tokens by sending MATIC directly to this contract. However, it is important to keep in mind that the rules of purchasing the token on the 2bide.io website apply here as well. */ receive() external payable { _sell(); emit Received(msg.sender, msg.value); } fallback() external payable { emit FallbackCalled(msg.sender, msg.value, msg.data); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Airdrop","type":"event"},{"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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"FallbackCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LiquidityFundAbsorbed","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":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PhilanthropicSavingsReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Sale","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"adjustSalePerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareLiquidityFund","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"releasePhilanthropicSavings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainingAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"remainingSaleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newReserve","type":"address"}],"name":"setReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spentAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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
60806040526040518060400160405280600d81526020017f42696465204e3220546f6b656e00000000000000000000000000000000000000815250600290816100489190610505565b506040518060400160405280600581526020017f32424944450000000000000000000000000000000000000000000000000000008152506003908161008d9190610505565b506012600455670de0b6b3a7640000620186a06100aa9190610601565b600555670de0b6b3a7640000624c4b406100c49190610601565b60065563674ba7006007556127106008555f600f553480156100e4575f80fd5b50335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610156575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161014d9190610681565b60405180910390fd5b6101658161020a60201b60201c565b5060018081905550670de0b6b3a7640000624c4b406101849190610601565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555033600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061069a565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061034657607f821691505b60208210810361035957610358610302565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610380565b6103c58683610380565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104096104046103ff846103dd565b6103e6565b6103dd565b9050919050565b5f819050919050565b610422836103ef565b61043661042e82610410565b84845461038c565b825550505050565b5f90565b61044a61043e565b610455818484610419565b505050565b5b818110156104785761046d5f82610442565b60018101905061045b565b5050565b601f8211156104bd5761048e8161035f565b61049784610371565b810160208510156104a6578190505b6104ba6104b285610371565b83018261045a565b50505b505050565b5f82821c905092915050565b5f6104dd5f19846008026104c2565b1980831691505092915050565b5f6104f583836104ce565b9150826002028217905092915050565b61050e826102cb565b67ffffffffffffffff811115610527576105266102d5565b5b610531825461032f565b61053c82828561047c565b5f60209050601f83116001811461056d575f841561055b578287015190505b61056585826104ea565b8655506105cc565b601f19841661057b8661035f565b5f5b828110156105a25784890151825560018201915060208501945060208101905061057d565b868310156105bf57848901516105bb601f8916826104ce565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61060b826103dd565b9150610616836103dd565b9250828202610624816103dd565b9150828204841483151761063b5761063a6105d4565b5b5092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61066b82610642565b9050919050565b61067b81610661565b82525050565b5f6020820190506106945f830184610672565b92915050565b612ca9806106a75f395ff3fe608060405260043610610138575f3560e01c806395d89b41116100aa578063afda05751161006e578063afda0575146104ae578063ca690256146104d8578063dd62ed3e14610500578063f2fde38b1461053c578063f5af6bdc14610564578063f7ce39951461056e57610196565b806395d89b41146103cc5780639770c301146103f65780639cecc80a146104205780639e1a4d1914610448578063a9059cbb1461047257610196565b8063313ce567116100fc578063313ce567146102de5780633884d63514610308578063457100741461033257806370a0823114610350578063715018a61461038c5780638da5cb5b146103a257610196565b806306fdde03146101ea578063095ea7b31461021457806318160ddd146102505780631c4350251461027a57806323b872dd146102a257610196565b36610196576101456105aa565b503373ffffffffffffffffffffffffffffffffffffffff167f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f885258743460405161018c9190612355565b60405180910390a2005b3373ffffffffffffffffffffffffffffffffffffffff167faca09dd456ca888dccf8cc966e382e6e3042bb7e4d2d7815015f844edeafce42345f366040516101e0939291906123c8565b60405180910390a2005b3480156101f5575f80fd5b506101fe610855565b60405161020b9190612458565b60405180910390f35b34801561021f575f80fd5b5061023a60048036038101906102359190612500565b6108e1565b6040516102479190612558565b60405180910390f35b34801561025b575f80fd5b50610264610ad6565b6040516102719190612355565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612571565b610adf565b005b3480156102ad575f80fd5b506102c860048036038101906102c3919061259c565b610c3c565b6040516102d59190612558565b60405180910390f35b3480156102e9575f80fd5b506102f2610ff1565b6040516102ff9190612355565b60405180910390f35b348015610313575f80fd5b5061031c610ff7565b6040516103299190612558565b60405180910390f35b61033a6112e1565b6040516103479190612558565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906125ec565b6112ff565b6040516103839190612355565b60405180910390f35b348015610397575f80fd5b506103a0611345565b005b3480156103ad575f80fd5b506103b6611358565b6040516103c39190612626565b60405180910390f35b3480156103d7575f80fd5b506103e061137f565b6040516103ed9190612458565b60405180910390f35b348015610401575f80fd5b5061040a61140b565b6040516104179190612355565b60405180910390f35b34801561042b575f80fd5b50610446600480360381019061044191906125ec565b611435565b005b348015610453575f80fd5b5061045c611480565b6040516104699190612355565b60405180910390f35b34801561047d575f80fd5b5061049860048036038101906104939190612500565b6114c4565b6040516104a59190612558565b60405180910390f35b3480156104b9575f80fd5b506104c26117ba565b6040516104cf9190612355565b60405180910390f35b3480156104e3575f80fd5b506104fe60048036038101906104f991906125ec565b6117c3565b005b34801561050b575f80fd5b506105266004803603810190610521919061263f565b611b66565b6040516105339190612355565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d91906125ec565b611be8565b005b61056c611c6c565b005b348015610579575f80fd5b50610594600480360381019061058f91906125ec565b611de6565b6040516105a19190612355565b60405180910390f35b5f80670de0b6b3a76400008060066105c291906126aa565b612710346105d091906126aa565b6105da9190612718565b6105e491906126aa565b9050612710811161062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190612792565b60405180910390fd5b5f6127106103e88361063c91906126aa565b6106469190612718565b90505f818361065591906127b0565b90506002670de0b6b3a7640000633b9aca0061067191906126aa565b61067b9190612718565b8160065461068991906127b0565b11156040518060600160405280602f8152602001612c45602f9139906106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc9190612458565b60405180910390fd5b5060055483600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461073291906127b0565b1115610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a9061282d565b60405180910390fd5b82600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107bf91906127b0565b925050819055506107d03384611e4c565b506107fc600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e4c565b503373ffffffffffffffffffffffffffffffffffffffff167fc6851889326b4ff916523ef06f539b4cf0b81d78fc6e0f97c30e6223d1831990846040516108439190612355565b60405180910390a26001935050505090565b6002805461086290612878565b80601f016020809104026020016040519081016040528092919081815260200182805461088e90612878565b80156108d95780601f106108b0576101008083540402835291602001916108d9565b820191905f5260205f20905b8154815290600101906020018083116108bc57829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c602991399061096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639190612458565b60405180910390fd5b505f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ac49190612355565b60405180910390a36001905092915050565b5f600654905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b65906128f2565b60405180910390fd5b670de0b6b3a76400006103e8610b8491906126aa565b811015610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd9061295a565b60405180910390fd5b670de0b6b3a7640000620186a0610bdd91906126aa565b811115610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906129c2565b60405180910390fd5b670de0b6b3a764000081610c3391906126aa565b60058190555050565b5f610c45612051565b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156040518060400160405280601281526020017f496e73756666696369656e742066756e6473000000000000000000000000000081525090610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf49190612458565b60405180910390fd5b5081600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090612a2a565b60405180910390fd5b81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e409190612a48565b925050819055508160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e939190612a48565b925050819055508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ee691906127b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f4a9190612355565b60405180910390a3670de0b6b3a7640000633b9aca00610f6a91906126aa565b6006541015610fde575f610f7d836120a0565b90505f610f8982612191565b90505f8183610f989190612a48565b9050610fc5600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e4c565b505f821115610fda57610fd83083611e4c565b505b5050505b60019050610fea6121e5565b9392505050565b60045481565b5f611000612051565b670de0b6b3a7640000622dc6c061101791906126aa565b600f541061105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105190612ac5565b60405180910390fd5b6001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612b2d565b60405180910390fd5b5f612710611388670de0b6b3a76400006107d06110f791906126aa565b61110191906126aa565b61110b9190612718565b90505f81670de0b6b3a76400006107d061112591906126aa565b61112f91906127b0565b9050670de0b6b3a7640000633b9aca0061114991906126aa565b8160065461115791906127b0565b11156040518060400160405280601281526020017f45786365656473206d617820737570706c790000000000000000000000000000815250906111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c79190612458565b60405180910390fd5b50670de0b6b3a76400006107d06111e791906126aa565b600f5f8282546111f791906127b0565b925050819055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061126033670de0b6b3a76400006107d061125b91906126aa565b611e4c565b5061128c600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e4c565b503373ffffffffffffffffffffffffffffffffffffffff167f84b8d6a5d5e1034bc8734d8fff0d20ab52702355d302ba88515a311d8ce0dd7d60405160405180910390a26001925050506112de6121e5565b90565b5f6112ea612051565b6112f26105aa565b90506112fc6121e5565b90565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61134d6121ee565b6113565f612275565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6003805461138c90612878565b80601f01602080910402602001604051908101604052809291908181526020018280546113b890612878565b80156114035780601f106113da57610100808354040283529160200191611403565b820191905f5260205f20905b8154815290600101906020018083116113e657829003601f168201915b505050505081565b5f600f54670de0b6b3a7640000622dc6c061142691906126aa565b6114309190612a48565b905090565b61143d6121ee565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905090565b5f6114cd612051565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c6029913990611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9190612458565b60405180910390fd5b508160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156040518060400160405280601281526020017f496e73756666696369656e742066756e6473000000000000000000000000000081525090611610576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116079190612458565b60405180910390fd5b508160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461165d9190612a48565b925050819055508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116b091906127b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117149190612355565b60405180910390a3670de0b6b3a7640000633b9aca0061173491906126aa565b60065410156117a8575f611747836120a0565b90505f61175382612191565b90505f81836117629190612a48565b905061178f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e4c565b505f8211156117a4576117a23083611e4c565b505b5050505b600190506117b46121e5565b92915050565b5f600f54905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611849906128f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c60299139906118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d39190612458565b60405180910390fd5b505f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116040518060400160405280601281526020017f496e73756666696369656e742066756e6473000000000000000000000000000081525090611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b9190612458565b60405180910390fd5b5060075442116119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090612b95565b60405180910390fd5b5f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611aa891906127b0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b0c9190612355565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167ff886f6ae64b7e1ab9db5f3ee323cc1040d07d7f69c02e89784b199d1b449526b82604051611b5a9190612355565b60405180910390a25050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611bf06121ee565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c60575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611c579190612626565b60405180910390fd5b611c6981612275565b50565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf2906128f2565b60405180910390fd5b611d03612051565b5f479050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d6b573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fdcfb4d28be51ae95b784910078355220065005b95dfe1ffb2b76e24a43389a4f82604051611dd39190612355565b60405180910390a250611de46121e5565b565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600554611e339190612a48565b90505f8111611e42575f611e44565b805b915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c6029913990611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece9190612458565b60405180910390fd5b50670de0b6b3a7640000633b9aca00611ef091906126aa565b82600654611efe91906127b0565b106040518060400160405280601281526020017f45786365656473206d617820737570706c79000000000000000000000000000081525090611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d9190612458565b60405180910390fd5b508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fc391906127b0565b925050819055508160065f828254611fdb91906127b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161203f9190612355565b60405180910390a36001905092915050565b600260015403612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d90612bfd565b60405180910390fd5b6002600181905550565b5f80631dcd650060065410156120ba576127109050612115565b632cb4178060065410156120d257614e209050612114565b6335a4e90060065410156120ea5761c3509050612113565b670de0b6b3a7640000633b9aca0061210291906126aa565b600654101561211257620186a090505b5b5b5b5f8160648561212491906126aa565b61212e9190612718565b9050670de0b6b3a7640000633b9aca0061214891906126aa565b8160065461215691906127b0565b111561218657600654670de0b6b3a7640000633b9aca0061217791906126aa565b6121819190612a48565b612188565b805b92505050919050565b5f805f90506007544210156121dc575f631dcd6500600654106121b55760646121b9565b6101f45b61ffff16905060085481856121ce91906126aa565b6121d89190612718565b9150505b80915050919050565b60018081905550565b6121f6612336565b73ffffffffffffffffffffffffffffffffffffffff16612214611358565b73ffffffffffffffffffffffffffffffffffffffff161461227357612237612336565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161226a9190612626565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f819050919050565b61234f8161233d565b82525050565b5f6020820190506123685f830184612346565b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6123a7838561236e565b93506123b483858461237e565b6123bd8361238c565b840190509392505050565b5f6040820190506123db5f830186612346565b81810360208301526123ee81848661239c565b9050949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61242a826123f8565b6124348185612402565b9350612444818560208601612412565b61244d8161238c565b840191505092915050565b5f6020820190508181035f8301526124708184612420565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a58261247c565b9050919050565b6124b58161249b565b81146124bf575f80fd5b50565b5f813590506124d0816124ac565b92915050565b6124df8161233d565b81146124e9575f80fd5b50565b5f813590506124fa816124d6565b92915050565b5f806040838503121561251657612515612478565b5b5f612523858286016124c2565b9250506020612534858286016124ec565b9150509250929050565b5f8115159050919050565b6125528161253e565b82525050565b5f60208201905061256b5f830184612549565b92915050565b5f6020828403121561258657612585612478565b5b5f612593848285016124ec565b91505092915050565b5f805f606084860312156125b3576125b2612478565b5b5f6125c0868287016124c2565b93505060206125d1868287016124c2565b92505060406125e2868287016124ec565b9150509250925092565b5f6020828403121561260157612600612478565b5b5f61260e848285016124c2565b91505092915050565b6126208161249b565b82525050565b5f6020820190506126395f830184612617565b92915050565b5f806040838503121561265557612654612478565b5b5f612662858286016124c2565b9250506020612673858286016124c2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126b48261233d565b91506126bf8361233d565b92508282026126cd8161233d565b915082820484148315176126e4576126e361267d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6127228261233d565b915061272d8361233d565b92508261273d5761273c6126eb565b5b828204905092915050565b7f56616c756520746f6f20736d616c6c00000000000000000000000000000000005f82015250565b5f61277c600f83612402565b915061278782612748565b602082019050919050565b5f6020820190508181035f8301526127a981612770565b9050919050565b5f6127ba8261233d565b91506127c58361233d565b92508282019050808211156127dd576127dc61267d565b5b92915050565b7f5065722077616c6c6574206c696d6974206578636565646564000000000000005f82015250565b5f612817601983612402565b9150612822826127e3565b602082019050919050565b5f6020820190508181035f8301526128448161280b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061288f57607f821691505b6020821081036128a2576128a161284b565b5b50919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f6128dc601683612402565b91506128e7826128a8565b602082019050919050565b5f6020820190508181035f830152612909816128d0565b9050919050565b7f546f6f206c6f77000000000000000000000000000000000000000000000000005f82015250565b5f612944600783612402565b915061294f82612910565b602082019050919050565b5f6020820190508181035f83015261297181612938565b9050919050565b7f546f6f20686967680000000000000000000000000000000000000000000000005f82015250565b5f6129ac600883612402565b91506129b782612978565b602082019050919050565b5f6020820190508181035f8301526129d9816129a0565b9050919050565b7f416c6c6f77616e636520657863656564656400000000000000000000000000005f82015250565b5f612a14601283612402565b9150612a1f826129e0565b602082019050919050565b5f6020820190508181035f830152612a4181612a08565b9050919050565b5f612a528261233d565b9150612a5d8361233d565b9250828203905081811115612a7557612a7461267d565b5b92915050565b7f52616e206f7574000000000000000000000000000000000000000000000000005f82015250565b5f612aaf600783612402565b9150612aba82612a7b565b602082019050919050565b5f6020820190508181035f830152612adc81612aa3565b9050919050565b7f596f752063616e277420646f20697420747769636500000000000000000000005f82015250565b5f612b17601583612402565b9150612b2282612ae3565b602082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f546f6f206561726c7900000000000000000000000000000000000000000000005f82015250565b5f612b7f600983612402565b9150612b8a82612b4b565b602082019050919050565b5f6020820190508181035f830152612bac81612b73565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612be7601f83612402565b9150612bf282612bb3565b602082019050919050565b5f6020820190508181035f830152612c1481612bdb565b905091905056fe4f7065726174696f6e2069732070726f6869626974656420666f72207468652030206164647265737353616c65206973206e6f206c6f6e67657220617661696c61626c6520686572652e20476f20746f20556e6953776170a2646970667358221220c0c688a62f17cd893ef5b0c6d33fa6399c2be9a015f2ca7de0e8c266fe2a0dd064736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610138575f3560e01c806395d89b41116100aa578063afda05751161006e578063afda0575146104ae578063ca690256146104d8578063dd62ed3e14610500578063f2fde38b1461053c578063f5af6bdc14610564578063f7ce39951461056e57610196565b806395d89b41146103cc5780639770c301146103f65780639cecc80a146104205780639e1a4d1914610448578063a9059cbb1461047257610196565b8063313ce567116100fc578063313ce567146102de5780633884d63514610308578063457100741461033257806370a0823114610350578063715018a61461038c5780638da5cb5b146103a257610196565b806306fdde03146101ea578063095ea7b31461021457806318160ddd146102505780631c4350251461027a57806323b872dd146102a257610196565b36610196576101456105aa565b503373ffffffffffffffffffffffffffffffffffffffff167f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f885258743460405161018c9190612355565b60405180910390a2005b3373ffffffffffffffffffffffffffffffffffffffff167faca09dd456ca888dccf8cc966e382e6e3042bb7e4d2d7815015f844edeafce42345f366040516101e0939291906123c8565b60405180910390a2005b3480156101f5575f80fd5b506101fe610855565b60405161020b9190612458565b60405180910390f35b34801561021f575f80fd5b5061023a60048036038101906102359190612500565b6108e1565b6040516102479190612558565b60405180910390f35b34801561025b575f80fd5b50610264610ad6565b6040516102719190612355565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612571565b610adf565b005b3480156102ad575f80fd5b506102c860048036038101906102c3919061259c565b610c3c565b6040516102d59190612558565b60405180910390f35b3480156102e9575f80fd5b506102f2610ff1565b6040516102ff9190612355565b60405180910390f35b348015610313575f80fd5b5061031c610ff7565b6040516103299190612558565b60405180910390f35b61033a6112e1565b6040516103479190612558565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906125ec565b6112ff565b6040516103839190612355565b60405180910390f35b348015610397575f80fd5b506103a0611345565b005b3480156103ad575f80fd5b506103b6611358565b6040516103c39190612626565b60405180910390f35b3480156103d7575f80fd5b506103e061137f565b6040516103ed9190612458565b60405180910390f35b348015610401575f80fd5b5061040a61140b565b6040516104179190612355565b60405180910390f35b34801561042b575f80fd5b50610446600480360381019061044191906125ec565b611435565b005b348015610453575f80fd5b5061045c611480565b6040516104699190612355565b60405180910390f35b34801561047d575f80fd5b5061049860048036038101906104939190612500565b6114c4565b6040516104a59190612558565b60405180910390f35b3480156104b9575f80fd5b506104c26117ba565b6040516104cf9190612355565b60405180910390f35b3480156104e3575f80fd5b506104fe60048036038101906104f991906125ec565b6117c3565b005b34801561050b575f80fd5b506105266004803603810190610521919061263f565b611b66565b6040516105339190612355565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d91906125ec565b611be8565b005b61056c611c6c565b005b348015610579575f80fd5b50610594600480360381019061058f91906125ec565b611de6565b6040516105a19190612355565b60405180910390f35b5f80670de0b6b3a76400008060066105c291906126aa565b612710346105d091906126aa565b6105da9190612718565b6105e491906126aa565b9050612710811161062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190612792565b60405180910390fd5b5f6127106103e88361063c91906126aa565b6106469190612718565b90505f818361065591906127b0565b90506002670de0b6b3a7640000633b9aca0061067191906126aa565b61067b9190612718565b8160065461068991906127b0565b11156040518060600160405280602f8152602001612c45602f9139906106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc9190612458565b60405180910390fd5b5060055483600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461073291906127b0565b1115610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a9061282d565b60405180910390fd5b82600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107bf91906127b0565b925050819055506107d03384611e4c565b506107fc600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e4c565b503373ffffffffffffffffffffffffffffffffffffffff167fc6851889326b4ff916523ef06f539b4cf0b81d78fc6e0f97c30e6223d1831990846040516108439190612355565b60405180910390a26001935050505090565b6002805461086290612878565b80601f016020809104026020016040519081016040528092919081815260200182805461088e90612878565b80156108d95780601f106108b0576101008083540402835291602001916108d9565b820191905f5260205f20905b8154815290600101906020018083116108bc57829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c602991399061096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639190612458565b60405180910390fd5b505f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ac49190612355565b60405180910390a36001905092915050565b5f600654905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b65906128f2565b60405180910390fd5b670de0b6b3a76400006103e8610b8491906126aa565b811015610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd9061295a565b60405180910390fd5b670de0b6b3a7640000620186a0610bdd91906126aa565b811115610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906129c2565b60405180910390fd5b670de0b6b3a764000081610c3391906126aa565b60058190555050565b5f610c45612051565b8160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156040518060400160405280601281526020017f496e73756666696369656e742066756e6473000000000000000000000000000081525090610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf49190612458565b60405180910390fd5b5081600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090612a2a565b60405180910390fd5b81600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e409190612a48565b925050819055508160095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e939190612a48565b925050819055508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ee691906127b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f4a9190612355565b60405180910390a3670de0b6b3a7640000633b9aca00610f6a91906126aa565b6006541015610fde575f610f7d836120a0565b90505f610f8982612191565b90505f8183610f989190612a48565b9050610fc5600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e4c565b505f821115610fda57610fd83083611e4c565b505b5050505b60019050610fea6121e5565b9392505050565b60045481565b5f611000612051565b670de0b6b3a7640000622dc6c061101791906126aa565b600f541061105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105190612ac5565b60405180910390fd5b6001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054036110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190612b2d565b60405180910390fd5b5f612710611388670de0b6b3a76400006107d06110f791906126aa565b61110191906126aa565b61110b9190612718565b90505f81670de0b6b3a76400006107d061112591906126aa565b61112f91906127b0565b9050670de0b6b3a7640000633b9aca0061114991906126aa565b8160065461115791906127b0565b11156040518060400160405280601281526020017f45786365656473206d617820737570706c790000000000000000000000000000815250906111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c79190612458565b60405180910390fd5b50670de0b6b3a76400006107d06111e791906126aa565b600f5f8282546111f791906127b0565b925050819055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061126033670de0b6b3a76400006107d061125b91906126aa565b611e4c565b5061128c600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611e4c565b503373ffffffffffffffffffffffffffffffffffffffff167f84b8d6a5d5e1034bc8734d8fff0d20ab52702355d302ba88515a311d8ce0dd7d60405160405180910390a26001925050506112de6121e5565b90565b5f6112ea612051565b6112f26105aa565b90506112fc6121e5565b90565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61134d6121ee565b6113565f612275565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6003805461138c90612878565b80601f01602080910402602001604051908101604052809291908181526020018280546113b890612878565b80156114035780601f106113da57610100808354040283529160200191611403565b820191905f5260205f20905b8154815290600101906020018083116113e657829003601f168201915b505050505081565b5f600f54670de0b6b3a7640000622dc6c061142691906126aa565b6114309190612a48565b905090565b61143d6121ee565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905090565b5f6114cd612051565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c6029913990611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e9190612458565b60405180910390fd5b508160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156040518060400160405280601281526020017f496e73756666696369656e742066756e6473000000000000000000000000000081525090611610576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116079190612458565b60405180910390fd5b508160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461165d9190612a48565b925050819055508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116b091906127b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117149190612355565b60405180910390a3670de0b6b3a7640000633b9aca0061173491906126aa565b60065410156117a8575f611747836120a0565b90505f61175382612191565b90505f81836117629190612a48565b905061178f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e4c565b505f8211156117a4576117a23083611e4c565b505b5050505b600190506117b46121e5565b92915050565b5f600f54905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611849906128f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c60299139906118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d39190612458565b60405180910390fd5b505f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116040518060400160405280601281526020017f496e73756666696369656e742066756e6473000000000000000000000000000081525090611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b9190612458565b60405180910390fd5b5060075442116119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d090612b95565b60405180910390fd5b5f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611aa891906127b0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b0c9190612355565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167ff886f6ae64b7e1ab9db5f3ee323cc1040d07d7f69c02e89784b199d1b449526b82604051611b5a9190612355565b60405180910390a25050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611bf06121ee565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c60575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611c579190612626565b60405180910390fd5b611c6981612275565b50565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf2906128f2565b60405180910390fd5b611d03612051565b5f479050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d6b573d5f803e3d5ffd5b50600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fdcfb4d28be51ae95b784910078355220065005b95dfe1ffb2b76e24a43389a4f82604051611dd39190612355565b60405180910390a250611de46121e5565b565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600554611e339190612a48565b90505f8111611e42575f611e44565b805b915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415604051806060016040528060298152602001612c1c6029913990611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece9190612458565b60405180910390fd5b50670de0b6b3a7640000633b9aca00611ef091906126aa565b82600654611efe91906127b0565b106040518060400160405280601281526020017f45786365656473206d617820737570706c79000000000000000000000000000081525090611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d9190612458565b60405180910390fd5b508160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fc391906127b0565b925050819055508160065f828254611fdb91906127b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161203f9190612355565b60405180910390a36001905092915050565b600260015403612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d90612bfd565b60405180910390fd5b6002600181905550565b5f80631dcd650060065410156120ba576127109050612115565b632cb4178060065410156120d257614e209050612114565b6335a4e90060065410156120ea5761c3509050612113565b670de0b6b3a7640000633b9aca0061210291906126aa565b600654101561211257620186a090505b5b5b5b5f8160648561212491906126aa565b61212e9190612718565b9050670de0b6b3a7640000633b9aca0061214891906126aa565b8160065461215691906127b0565b111561218657600654670de0b6b3a7640000633b9aca0061217791906126aa565b6121819190612a48565b612188565b805b92505050919050565b5f805f90506007544210156121dc575f631dcd6500600654106121b55760646121b9565b6101f45b61ffff16905060085481856121ce91906126aa565b6121d89190612718565b9150505b80915050919050565b60018081905550565b6121f6612336565b73ffffffffffffffffffffffffffffffffffffffff16612214611358565b73ffffffffffffffffffffffffffffffffffffffff161461227357612237612336565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161226a9190612626565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f819050919050565b61234f8161233d565b82525050565b5f6020820190506123685f830184612346565b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6123a7838561236e565b93506123b483858461237e565b6123bd8361238c565b840190509392505050565b5f6040820190506123db5f830186612346565b81810360208301526123ee81848661239c565b9050949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61242a826123f8565b6124348185612402565b9350612444818560208601612412565b61244d8161238c565b840191505092915050565b5f6020820190508181035f8301526124708184612420565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a58261247c565b9050919050565b6124b58161249b565b81146124bf575f80fd5b50565b5f813590506124d0816124ac565b92915050565b6124df8161233d565b81146124e9575f80fd5b50565b5f813590506124fa816124d6565b92915050565b5f806040838503121561251657612515612478565b5b5f612523858286016124c2565b9250506020612534858286016124ec565b9150509250929050565b5f8115159050919050565b6125528161253e565b82525050565b5f60208201905061256b5f830184612549565b92915050565b5f6020828403121561258657612585612478565b5b5f612593848285016124ec565b91505092915050565b5f805f606084860312156125b3576125b2612478565b5b5f6125c0868287016124c2565b93505060206125d1868287016124c2565b92505060406125e2868287016124ec565b9150509250925092565b5f6020828403121561260157612600612478565b5b5f61260e848285016124c2565b91505092915050565b6126208161249b565b82525050565b5f6020820190506126395f830184612617565b92915050565b5f806040838503121561265557612654612478565b5b5f612662858286016124c2565b9250506020612673858286016124c2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126b48261233d565b91506126bf8361233d565b92508282026126cd8161233d565b915082820484148315176126e4576126e361267d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6127228261233d565b915061272d8361233d565b92508261273d5761273c6126eb565b5b828204905092915050565b7f56616c756520746f6f20736d616c6c00000000000000000000000000000000005f82015250565b5f61277c600f83612402565b915061278782612748565b602082019050919050565b5f6020820190508181035f8301526127a981612770565b9050919050565b5f6127ba8261233d565b91506127c58361233d565b92508282019050808211156127dd576127dc61267d565b5b92915050565b7f5065722077616c6c6574206c696d6974206578636565646564000000000000005f82015250565b5f612817601983612402565b9150612822826127e3565b602082019050919050565b5f6020820190508181035f8301526128448161280b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061288f57607f821691505b6020821081036128a2576128a161284b565b5b50919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f6128dc601683612402565b91506128e7826128a8565b602082019050919050565b5f6020820190508181035f830152612909816128d0565b9050919050565b7f546f6f206c6f77000000000000000000000000000000000000000000000000005f82015250565b5f612944600783612402565b915061294f82612910565b602082019050919050565b5f6020820190508181035f83015261297181612938565b9050919050565b7f546f6f20686967680000000000000000000000000000000000000000000000005f82015250565b5f6129ac600883612402565b91506129b782612978565b602082019050919050565b5f6020820190508181035f8301526129d9816129a0565b9050919050565b7f416c6c6f77616e636520657863656564656400000000000000000000000000005f82015250565b5f612a14601283612402565b9150612a1f826129e0565b602082019050919050565b5f6020820190508181035f830152612a4181612a08565b9050919050565b5f612a528261233d565b9150612a5d8361233d565b9250828203905081811115612a7557612a7461267d565b5b92915050565b7f52616e206f7574000000000000000000000000000000000000000000000000005f82015250565b5f612aaf600783612402565b9150612aba82612a7b565b602082019050919050565b5f6020820190508181035f830152612adc81612aa3565b9050919050565b7f596f752063616e277420646f20697420747769636500000000000000000000005f82015250565b5f612b17601583612402565b9150612b2282612ae3565b602082019050919050565b5f6020820190508181035f830152612b4481612b0b565b9050919050565b7f546f6f206561726c7900000000000000000000000000000000000000000000005f82015250565b5f612b7f600983612402565b9150612b8a82612b4b565b602082019050919050565b5f6020820190508181035f830152612bac81612b73565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612be7601f83612402565b9150612bf282612bb3565b602082019050919050565b5f6020820190508181035f830152612c1481612bdb565b905091905056fe4f7065726174696f6e2069732070726f6869626974656420666f72207468652030206164647265737353616c65206973206e6f206c6f6e67657220617661696c61626c6520686572652e20476f20746f20556e6953776170a2646970667358221220c0c688a62f17cd893ef5b0c6d33fa6399c2be9a015f2ca7de0e8c266fe2a0dd064736f6c634300081a0033
Deployed Bytecode Sourcemap
8541:15961:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24323:7;:5;:7::i;:::-;;24355:10;24346:31;;;24367:9;24346:31;;;;;;:::i;:::-;;;;;;;;8541:15961;;24459:10;24444:47;;;24471:9;24482:8;;24444:47;;;;;;;;:::i;:::-;;;;;;;;8541:15961;8604:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21307:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12842:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15230:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20270:806;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8684:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15845:660;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17637:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12987:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3394:103;;;;;;;;;;;;;:::i;:::-;;2719:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8647:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23387:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21786:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13335:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19389:727;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23589:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22762:543;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21116:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3652:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22225:235;;;:::i;:::-;;23794:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17807:768;17840:4;17862:18;17918:4;8757;17903:1;:12;;;;:::i;:::-;17897:3;17885:9;:15;;;;:::i;:::-;17884:32;;;;:::i;:::-;17883:39;;;;:::i;:::-;17862:60;;18029:3;18016:10;:16;18008:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18075:21;18118:3;18113;18100:10;:16;;;;:::i;:::-;18099:22;;;;:::i;:::-;18075:46;;18132:19;18167:13;18154:10;:26;;;;:::i;:::-;18132:48;;18243:1;8757:4;8807:3;:16;;;;:::i;:::-;18231:13;;;;:::i;:::-;18215:11;18200:12;;:26;;;;:::i;:::-;18199:45;;18246:16;;;;;;;;;;;;;;;;;18191:72;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18325:16;;18310:10;18283:12;:24;18296:10;18283:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;18282:59;;18274:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;18410:10;18382:12;:24;18395:10;18382:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;18431:29;18437:10;18449;18431:5;:29::i;:::-;;18471:30;18477:8;;;;;;;;;;;18487:13;18471:5;:30::i;:::-;;18522:10;18517:28;;;18534:10;18517:28;;;;;;:::i;:::-;;;;;;;;18563:4;18556:11;;;;;17807:768;:::o;8604:36::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21307:330::-;21382:4;21431:1;21412:21;;:7;:21;;;;21435:19;;;;;;;;;;;;;;;;;21404:51;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;21501:1;21466:11;:23;21478:10;21466:23;;;;;;;;;;;;;;;:32;21490:7;21466:32;;;;;;;;;;;;;;;:36;;;;21548:6;21513:11;:23;21525:10;21513:23;;;;;;;;;;;;;;;:32;21537:7;21513:32;;;;;;;;;;;;;;;:41;;;;21591:7;21570:37;;21579:10;21570:37;;;21600:6;21570:37;;;;;;:::i;:::-;;;;;;;;21625:4;21618:11;;21307:330;;;;:::o;12842:105::-;12895:7;12927:12;;12920:19;;12842:105;:::o;15230:254::-;12553:8;;;;;;;;;;;12539:22;;:10;:22;;;12531:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;8757:4:::1;15335:3;:16;;;;:::i;:::-;15322:9;:29;;15314:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8757:4;15395:3;:16;;;;:::i;:::-;15382:9;:29;;15374:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8757:4;15454:9;:22;;;;:::i;:::-;15435:16;:41;;;;15230:254:::0;:::o;20270:806::-;20381:4;6575:21;:19;:21::i;:::-;20432:6:::1;20411:9;:17;20421:6;20411:17;;;;;;;;;;;;;;;;:27;;20439:25;;;;;;;;;;;;;;;;::::0;20403:62:::1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;20519:6;20484:11;:19;20496:6;20484:19;;;;;;;;;;;;;;;:31;20504:10;20484:31;;;;;;;;;;;;;;;;:41;;20476:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20594:6;20559:11;:19;20571:6;20559:19;;;;;;;;;;;;;;;:31;20579:10;20559:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;20632:6;20611:9;:17;20621:6;20611:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;20673:6;20649:9;:20;20659:9;20649:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;20712:9;20695:35;;20704:6;20695:35;;;20723:6;20695:35;;;;;;:::i;:::-;;;;;;;;8757:4;8807:3;:16;;;;:::i;:::-;20744:12;;:26;20741:306;;;20796:18;20817:28;20838:6;20817:20;:28::i;:::-;20796:49;;20860:9;20872:24;20885:10;20872:12;:24::i;:::-;20860:36;;20911:9;20936:1;20923:10;:14;;;;:::i;:::-;20911:26;;20952:18;20958:8;;;;;;;;;;;20968:1;20952:5;:18::i;:::-;;20992:1;20988;:5;20985:50;;;21012:23;21026:4;21033:1;21012:5;:23::i;:::-;;20985:50;20781:266;;;20741:306;21064:4;21057:11;;6619:20:::0;:18;:20::i;:::-;20270:806;;;;;:::o;8684:26::-;;;;:::o;15845:660::-;15892:4;6575:21;:19;:21::i;:::-;8757:4:::1;9017:3;:16;;;;:::i;:::-;15922:10;;:27;15914:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16010:1;15980:14;:26;15995:10;15980:26;;;;;;;;;;;;;;;;:31:::0;15972:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16048:21;16102:3;16095;8757:4;8921:3;:16;;;;:::i;:::-;16073:25;;;;:::i;:::-;16072:33;;;;:::i;:::-;16048:57;;16116:20;16161:13;8757:4;8921:3;:16;;;;:::i;:::-;16139:35;;;;:::i;:::-;16116:58;;8757:4;8807:3;:16;;;;:::i;:::-;16209:12;16194;;:27;;;;:::i;:::-;16193:44;;16239:25;;;;;;;;;;;;;;;;::::0;16185:80:::1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8757:4;8921:3;:16;;;;:::i;:::-;16276:10;;:33;;;;;;;:::i;:::-;;;;;;;;16349:1;16320:14;:26;16335:10;16320:26;;;;;;;;;;;;;;;:30;;;;16361:38;16367:10;8757:4;8921:3;:16;;;;:::i;:::-;16361:5;:38::i;:::-;;16410:30;16416:8;;;;;;;;;;;16426:13;16410:5;:30::i;:::-;;16464:10;16456:19;;;;;;;;;;;;16493:4;16486:11;;;;6619:20:::0;:18;:20::i;:::-;15845:660;:::o;17637:97::-;17689:4;6575:21;:19;:21::i;:::-;17719:7:::1;:5;:7::i;:::-;17712:14;;6619:20:::0;:18;:20::i;:::-;17637:97;:::o;12987:123::-;13052:7;13084:9;:18;13094:7;13084:18;;;;;;;;;;;;;;;;13077:25;;12987:123;;;:::o;3394:103::-;2605:13;:11;:13::i;:::-;3459:30:::1;3486:1;3459:18;:30::i;:::-;3394:103::o:0;2719:87::-;2765:7;2792:6;;;;;;;;;;;2785:13;;2719:87;:::o;8647:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23387:117::-;23437:7;23486:10;;8757:4;9017:3;:16;;;;:::i;:::-;23469:27;;;;:::i;:::-;23462:34;;23387:117;:::o;21786:104::-;2605:13;:11;:13::i;:::-;21872:10:::1;21861:8;;:21;;;;;;;;;;;;;;;;;;21786:104:::0;:::o;13335:108::-;13379:7;13411:9;:24;13429:4;13411:24;;;;;;;;;;;;;;;;13404:31;;13335:108;:::o;19389:727::-;19480:4;6575:21;:19;:21::i;:::-;19531:1:::1;19510:23;;:9;:23;;;;19534:19;;;;;;;;;;;;;;;;;19502:52;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;19598:6;19573:9;:21;19583:10;19573:21;;;;;;;;;;;;;;;;:31;;19606:25;;;;;;;;;;;;;;;;::::0;19565:67:::1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;19668:6;19643:9;:21;19653:10;19643:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;19709:6;19685:9;:20;19695:9;19685:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;19752:9;19731:39;;19740:10;19731:39;;;19763:6;19731:39;;;;;;:::i;:::-;;;;;;;;8757:4;8807:3;:16;;;;:::i;:::-;19784:12;;:26;19781:306;;;19836:18;19857:28;19878:6;19857:20;:28::i;:::-;19836:49;;19900:9;19912:24;19925:10;19912:12;:24::i;:::-;19900:36;;19951:9;19976:1;19963:10;:14;;;;:::i;:::-;19951:26;;19992:18;19998:8;;;;;;;;;;;20008:1;19992:5;:18::i;:::-;;20032:1;20028;:5;20025:50;;;20052:23;20066:4;20073:1;20052:5;:23::i;:::-;;20025:50;19821:266;;;19781:306;20104:4;20097:11;;6619:20:::0;:18;:20::i;:::-;19389:727;;;;:::o;23589:96::-;23635:7;23667:10;;23660:17;;23589:96;:::o;22762:543::-;12553:8;;;;;;;;;;;12539:22;;:10;:22;;;12531:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;22878:1:::1;22860:20;;:6;:20;;;;22882:19;;;;;;;;;;;;;;;;;22852:50;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;22948:1;22921:9;:24;22939:4;22921:24;;;;;;;;;;;;;;;;:28;22951:25;;;;;;;;;;;;;;;;::::0;22913:64:::1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;23014:21;;22996:15;:39;22988:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;23060:15;23078:9;:24;23096:4;23078:24;;;;;;;;;;;;;;;;23060:42;;23140:1;23113:9;:24;23131:4;23113:24;;;;;;;;;;;;;;;:28;;;;23173:7;23152:9;:17;23162:6;23152:17;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;23220:6;23196:40;;23213:4;23196:40;;;23228:7;23196:40;;;;;;:::i;:::-;;;;;;;;23281:6;23252:45;;;23289:7;23252:45;;;;;;:::i;:::-;;;;;;;;22841:464;22762:543:::0;:::o;21116:150::-;21199:7;21231:11;:18;21243:5;21231:18;;;;;;;;;;;;;;;:27;21250:7;21231:27;;;;;;;;;;;;;;;;21224:34;;21116:150;;;;:::o;3652:220::-;2605:13;:11;:13::i;:::-;3757:1:::1;3737:22;;:8;:22;;::::0;3733:93:::1;;3811:1;3783:31;;;;;;;;;;;:::i;:::-;;;;;;;;3733:93;3836:28;3855:8;3836:18;:28::i;:::-;3652:220:::0;:::o;22225:235::-;12553:8;;;;;;;;;;;12539:22;;:10;:22;;;12531:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6575:21:::1;:19;:21::i;:::-;22314:14:::2;22331:21;22314:38;;22371:8;;;;;;;;;;;22363:26;;:34;22390:6;22363:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;22435:8;;;;;;;;;;;22413:39;;;22445:6;22413:39;;;;;;:::i;:::-;;;;;;;;22303:157;6619:20:::1;:18;:20::i;:::-;22225:235::o:0;23794:208::-;23860:7;23885:17;23924:12;:21;23937:7;23924:21;;;;;;;;;;;;;;;;23905:16;;:40;;;;:::i;:::-;23885:60;;23976:1;23964:9;:13;23963:30;;23992:1;23963:30;;;23980:9;23963:30;23956:37;;;23794:208;;;:::o;18655:355::-;18714:4;18758:1;18744:16;;:2;:16;;;;18762:19;;;;;;;;;;;;;;;;;18736:46;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8757:4;8807:3;:16;;;;:::i;:::-;18817:6;18802:12;;:21;;;;:::i;:::-;18801:37;18839:25;;;;;;;;;;;;;;;;;18793:72;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18893:6;18876:9;:13;18886:2;18876:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;18926:6;18910:12;;:22;;;;;;;:::i;:::-;;;;;;;;18969:2;18948:32;;18965:1;18948:32;;;18973:6;18948:32;;;;;;:::i;:::-;;;;;;;;18998:4;18991:11;;18655:355;;;;:::o;6655:293::-;6057:1;6789:7;;:19;6781:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6057:1;6922:7;:18;;;;6655:293::o;13887:560::-;13964:7;13989:14;14032:3;14017:12;;:18;14014:250;;;14059:3;14050:12;;14014:250;;;14096:5;14081:12;;:20;14078:186;;;14125:3;14116:12;;14078:186;;;14162:3;14147:12;;:18;14144:120;;;14189:3;14180:12;;14144:120;;;8757:4;8807:3;:16;;;;:::i;:::-;14211:12;;:26;14208:56;;;14261:3;14252:12;;14208:56;14144:120;14078:186;14014:250;14285:18;14332:6;14326:3;14306:17;:23;;;;:::i;:::-;:32;;;;:::i;:::-;14285:53;;8757:4;8807:3;:16;;;;:::i;:::-;14372:10;14357:12;;:25;;;;:::i;:::-;:40;;14356:83;;14427:12;;8757:4;8807:3;:16;;;;:::i;:::-;14413:26;;;;:::i;:::-;14356:83;;;14400:10;14356:83;14349:90;;;;13887:560;;;:::o;14638:335::-;14696:7;14721:11;14735:1;14721:15;;14768:21;;14750:15;:39;14747:198;;;14815:21;14855:3;14840:12;;:18;14839:31;;14867:3;14839:31;;;14861:3;14839:31;14815:55;;;;14916:17;;14901:13;14892:6;:22;;;;:::i;:::-;14891:42;;;;:::i;:::-;14885:48;;14800:145;14747:198;14962:3;14955:10;;;14638:335;;;:::o;6956:213::-;6013:1;7139:7;:22;;;;6956:213::o;2884:166::-;2955:12;:10;:12::i;:::-;2944:23;;:7;:5;:7::i;:::-;:23;;;2940:103;;3018:12;:10;:12::i;:::-;2991:40;;;;;;;;;;;:::i;:::-;;;;;;;;2940:103;2884:166::o;4032:191::-;4106:16;4125:6;;;;;;;;;;;4106:25;;4151:8;4142:6;;:17;;;;;;;;;;;;;;;;;;4206:8;4175:40;;4196:8;4175:40;;;;;;;;;;;;4095:128;4032:191;:::o;728:98::-;781:7;808:10;801:17;;728:98;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:168::-;525:11;559:6;554:3;547:19;599:4;594:3;590:14;575:29;;442:168;;;;:::o;616:148::-;714:6;709:3;704;691:30;755:1;746:6;741:3;737:16;730:27;616:148;;;:::o;770:102::-;811:6;862:2;858:7;853:2;846:5;842:14;838:28;828:38;;770:102;;;:::o;900:314::-;996:3;1017:70;1080:6;1075:3;1017:70;:::i;:::-;1010:77;;1097:56;1146:6;1141:3;1134:5;1097:56;:::i;:::-;1178:29;1200:6;1178:29;:::i;:::-;1173:3;1169:39;1162:46;;900:314;;;;;:::o;1220:439::-;1369:4;1407:2;1396:9;1392:18;1384:26;;1420:71;1488:1;1477:9;1473:17;1464:6;1420:71;:::i;:::-;1538:9;1532:4;1528:20;1523:2;1512:9;1508:18;1501:48;1566:86;1647:4;1638:6;1630;1566:86;:::i;:::-;1558:94;;1220:439;;;;;;:::o;1665:99::-;1717:6;1751:5;1745:12;1735:22;;1665:99;;;:::o;1770:169::-;1854:11;1888:6;1883:3;1876:19;1928:4;1923:3;1919:14;1904:29;;1770:169;;;;:::o;1945:139::-;2034:6;2029:3;2024;2018:23;2075:1;2066:6;2061:3;2057:16;2050:27;1945:139;;;:::o;2090:377::-;2178:3;2206:39;2239:5;2206:39;:::i;:::-;2261:71;2325:6;2320:3;2261:71;:::i;:::-;2254:78;;2341:65;2399:6;2394:3;2387:4;2380:5;2376:16;2341:65;:::i;:::-;2431:29;2453:6;2431:29;:::i;:::-;2426:3;2422:39;2415:46;;2182:285;2090:377;;;;:::o;2473:313::-;2586:4;2624:2;2613:9;2609:18;2601:26;;2673:9;2667:4;2663:20;2659:1;2648:9;2644:17;2637:47;2701:78;2774:4;2765:6;2701:78;:::i;:::-;2693:86;;2473:313;;;;:::o;2873:117::-;2982:1;2979;2972:12;3119:126;3156:7;3196:42;3189:5;3185:54;3174:65;;3119:126;;;:::o;3251:96::-;3288:7;3317:24;3335:5;3317:24;:::i;:::-;3306:35;;3251:96;;;:::o;3353:122::-;3426:24;3444:5;3426:24;:::i;:::-;3419:5;3416:35;3406:63;;3465:1;3462;3455:12;3406:63;3353:122;:::o;3481:139::-;3527:5;3565:6;3552:20;3543:29;;3581:33;3608:5;3581:33;:::i;:::-;3481:139;;;;:::o;3626:122::-;3699:24;3717:5;3699:24;:::i;:::-;3692:5;3689:35;3679:63;;3738:1;3735;3728:12;3679:63;3626:122;:::o;3754:139::-;3800:5;3838:6;3825:20;3816:29;;3854:33;3881:5;3854:33;:::i;:::-;3754:139;;;;:::o;3899:474::-;3967:6;3975;4024:2;4012:9;4003:7;3999:23;3995:32;3992:119;;;4030:79;;:::i;:::-;3992:119;4150:1;4175:53;4220:7;4211:6;4200:9;4196:22;4175:53;:::i;:::-;4165:63;;4121:117;4277:2;4303:53;4348:7;4339:6;4328:9;4324:22;4303:53;:::i;:::-;4293:63;;4248:118;3899:474;;;;;:::o;4379:90::-;4413:7;4456:5;4449:13;4442:21;4431:32;;4379:90;;;:::o;4475:109::-;4556:21;4571:5;4556:21;:::i;:::-;4551:3;4544:34;4475:109;;:::o;4590:210::-;4677:4;4715:2;4704:9;4700:18;4692:26;;4728:65;4790:1;4779:9;4775:17;4766:6;4728:65;:::i;:::-;4590:210;;;;:::o;4806:329::-;4865:6;4914:2;4902:9;4893:7;4889:23;4885:32;4882:119;;;4920:79;;:::i;:::-;4882:119;5040:1;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5011:117;4806:329;;;;:::o;5141:619::-;5218:6;5226;5234;5283:2;5271:9;5262:7;5258:23;5254:32;5251:119;;;5289:79;;:::i;:::-;5251:119;5409:1;5434:53;5479:7;5470:6;5459:9;5455:22;5434:53;:::i;:::-;5424:63;;5380:117;5536:2;5562:53;5607:7;5598:6;5587:9;5583:22;5562:53;:::i;:::-;5552:63;;5507:118;5664:2;5690:53;5735:7;5726:6;5715:9;5711:22;5690:53;:::i;:::-;5680:63;;5635:118;5141:619;;;;;:::o;5766:329::-;5825:6;5874:2;5862:9;5853:7;5849:23;5845:32;5842:119;;;5880:79;;:::i;:::-;5842:119;6000:1;6025:53;6070:7;6061:6;6050:9;6046:22;6025:53;:::i;:::-;6015:63;;5971:117;5766:329;;;;:::o;6101:118::-;6188:24;6206:5;6188:24;:::i;:::-;6183:3;6176:37;6101:118;;:::o;6225:222::-;6318:4;6356:2;6345:9;6341:18;6333:26;;6369:71;6437:1;6426:9;6422:17;6413:6;6369:71;:::i;:::-;6225:222;;;;:::o;6453:474::-;6521:6;6529;6578:2;6566:9;6557:7;6553:23;6549:32;6546:119;;;6584:79;;:::i;:::-;6546:119;6704:1;6729:53;6774:7;6765:6;6754:9;6750:22;6729:53;:::i;:::-;6719:63;;6675:117;6831:2;6857:53;6902:7;6893:6;6882:9;6878:22;6857:53;:::i;:::-;6847:63;;6802:118;6453:474;;;;;:::o;6933:180::-;6981:77;6978:1;6971:88;7078:4;7075:1;7068:15;7102:4;7099:1;7092:15;7119:410;7159:7;7182:20;7200:1;7182:20;:::i;:::-;7177:25;;7216:20;7234:1;7216:20;:::i;:::-;7211:25;;7271:1;7268;7264:9;7293:30;7311:11;7293:30;:::i;:::-;7282:41;;7472:1;7463:7;7459:15;7456:1;7453:22;7433:1;7426:9;7406:83;7383:139;;7502:18;;:::i;:::-;7383:139;7167:362;7119:410;;;;:::o;7535:180::-;7583:77;7580:1;7573:88;7680:4;7677:1;7670:15;7704:4;7701:1;7694:15;7721:185;7761:1;7778:20;7796:1;7778:20;:::i;:::-;7773:25;;7812:20;7830:1;7812:20;:::i;:::-;7807:25;;7851:1;7841:35;;7856:18;;:::i;:::-;7841:35;7898:1;7895;7891:9;7886:14;;7721:185;;;;:::o;7912:165::-;8052:17;8048:1;8040:6;8036:14;8029:41;7912:165;:::o;8083:366::-;8225:3;8246:67;8310:2;8305:3;8246:67;:::i;:::-;8239:74;;8322:93;8411:3;8322:93;:::i;:::-;8440:2;8435:3;8431:12;8424:19;;8083:366;;;:::o;8455:419::-;8621:4;8659:2;8648:9;8644:18;8636:26;;8708:9;8702:4;8698:20;8694:1;8683:9;8679:17;8672:47;8736:131;8862:4;8736:131;:::i;:::-;8728:139;;8455:419;;;:::o;8880:191::-;8920:3;8939:20;8957:1;8939:20;:::i;:::-;8934:25;;8973:20;8991:1;8973:20;:::i;:::-;8968:25;;9016:1;9013;9009:9;9002:16;;9037:3;9034:1;9031:10;9028:36;;;9044:18;;:::i;:::-;9028:36;8880:191;;;;:::o;9077:175::-;9217:27;9213:1;9205:6;9201:14;9194:51;9077:175;:::o;9258:366::-;9400:3;9421:67;9485:2;9480:3;9421:67;:::i;:::-;9414:74;;9497:93;9586:3;9497:93;:::i;:::-;9615:2;9610:3;9606:12;9599:19;;9258:366;;;:::o;9630:419::-;9796:4;9834:2;9823:9;9819:18;9811:26;;9883:9;9877:4;9873:20;9869:1;9858:9;9854:17;9847:47;9911:131;10037:4;9911:131;:::i;:::-;9903:139;;9630:419;;;:::o;10055:180::-;10103:77;10100:1;10093:88;10200:4;10197:1;10190:15;10224:4;10221:1;10214:15;10241:320;10285:6;10322:1;10316:4;10312:12;10302:22;;10369:1;10363:4;10359:12;10390:18;10380:81;;10446:4;10438:6;10434:17;10424:27;;10380:81;10508:2;10500:6;10497:14;10477:18;10474:38;10471:84;;10527:18;;:::i;:::-;10471:84;10292:269;10241:320;;;:::o;10567:172::-;10707:24;10703:1;10695:6;10691:14;10684:48;10567:172;:::o;10745:366::-;10887:3;10908:67;10972:2;10967:3;10908:67;:::i;:::-;10901:74;;10984:93;11073:3;10984:93;:::i;:::-;11102:2;11097:3;11093:12;11086:19;;10745:366;;;:::o;11117:419::-;11283:4;11321:2;11310:9;11306:18;11298:26;;11370:9;11364:4;11360:20;11356:1;11345:9;11341:17;11334:47;11398:131;11524:4;11398:131;:::i;:::-;11390:139;;11117:419;;;:::o;11542:157::-;11682:9;11678:1;11670:6;11666:14;11659:33;11542:157;:::o;11705:365::-;11847:3;11868:66;11932:1;11927:3;11868:66;:::i;:::-;11861:73;;11943:93;12032:3;11943:93;:::i;:::-;12061:2;12056:3;12052:12;12045:19;;11705:365;;;:::o;12076:419::-;12242:4;12280:2;12269:9;12265:18;12257:26;;12329:9;12323:4;12319:20;12315:1;12304:9;12300:17;12293:47;12357:131;12483:4;12357:131;:::i;:::-;12349:139;;12076:419;;;:::o;12501:158::-;12641:10;12637:1;12629:6;12625:14;12618:34;12501:158;:::o;12665:365::-;12807:3;12828:66;12892:1;12887:3;12828:66;:::i;:::-;12821:73;;12903:93;12992:3;12903:93;:::i;:::-;13021:2;13016:3;13012:12;13005:19;;12665:365;;;:::o;13036:419::-;13202:4;13240:2;13229:9;13225:18;13217:26;;13289:9;13283:4;13279:20;13275:1;13264:9;13260:17;13253:47;13317:131;13443:4;13317:131;:::i;:::-;13309:139;;13036:419;;;:::o;13461:168::-;13601:20;13597:1;13589:6;13585:14;13578:44;13461:168;:::o;13635:366::-;13777:3;13798:67;13862:2;13857:3;13798:67;:::i;:::-;13791:74;;13874:93;13963:3;13874:93;:::i;:::-;13992:2;13987:3;13983:12;13976:19;;13635:366;;;:::o;14007:419::-;14173:4;14211:2;14200:9;14196:18;14188:26;;14260:9;14254:4;14250:20;14246:1;14235:9;14231:17;14224:47;14288:131;14414:4;14288:131;:::i;:::-;14280:139;;14007:419;;;:::o;14432:194::-;14472:4;14492:20;14510:1;14492:20;:::i;:::-;14487:25;;14526:20;14544:1;14526:20;:::i;:::-;14521:25;;14570:1;14567;14563:9;14555:17;;14594:1;14588:4;14585:11;14582:37;;;14599:18;;:::i;:::-;14582:37;14432:194;;;;:::o;14632:157::-;14772:9;14768:1;14760:6;14756:14;14749:33;14632:157;:::o;14795:365::-;14937:3;14958:66;15022:1;15017:3;14958:66;:::i;:::-;14951:73;;15033:93;15122:3;15033:93;:::i;:::-;15151:2;15146:3;15142:12;15135:19;;14795:365;;;:::o;15166:419::-;15332:4;15370:2;15359:9;15355:18;15347:26;;15419:9;15413:4;15409:20;15405:1;15394:9;15390:17;15383:47;15447:131;15573:4;15447:131;:::i;:::-;15439:139;;15166:419;;;:::o;15591:171::-;15731:23;15727:1;15719:6;15715:14;15708:47;15591:171;:::o;15768:366::-;15910:3;15931:67;15995:2;15990:3;15931:67;:::i;:::-;15924:74;;16007:93;16096:3;16007:93;:::i;:::-;16125:2;16120:3;16116:12;16109:19;;15768:366;;;:::o;16140:419::-;16306:4;16344:2;16333:9;16329:18;16321:26;;16393:9;16387:4;16383:20;16379:1;16368:9;16364:17;16357:47;16421:131;16547:4;16421:131;:::i;:::-;16413:139;;16140:419;;;:::o;16565:159::-;16705:11;16701:1;16693:6;16689:14;16682:35;16565:159;:::o;16730:365::-;16872:3;16893:66;16957:1;16952:3;16893:66;:::i;:::-;16886:73;;16968:93;17057:3;16968:93;:::i;:::-;17086:2;17081:3;17077:12;17070:19;;16730:365;;;:::o;17101:419::-;17267:4;17305:2;17294:9;17290:18;17282:26;;17354:9;17348:4;17344:20;17340:1;17329:9;17325:17;17318:47;17382:131;17508:4;17382:131;:::i;:::-;17374:139;;17101:419;;;:::o;17526:181::-;17666:33;17662:1;17654:6;17650:14;17643:57;17526:181;:::o;17713:366::-;17855:3;17876:67;17940:2;17935:3;17876:67;:::i;:::-;17869:74;;17952:93;18041:3;17952:93;:::i;:::-;18070:2;18065:3;18061:12;18054:19;;17713:366;;;:::o;18085:419::-;18251:4;18289:2;18278:9;18274:18;18266:26;;18338:9;18332:4;18328:20;18324:1;18313:9;18309:17;18302:47;18366:131;18492:4;18366:131;:::i;:::-;18358:139;;18085:419;;;:::o
Swarm Source
ipfs://c0c688a62f17cd893ef5b0c6d33fa6399c2be9a015f2ca7de0e8c266fe2a0dd0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
POL | Polygon (POL) | 100.00% | $0.70559 | 26.4 | $18.63 |
[ 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.