More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Peace
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-08-28 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.15; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _createInitialSupply( address account, uint256 amount ) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; } interface IDexFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } contract Peace is ERC20, Ownable { uint256 public maxBuyAmount; uint256 public maxSellAmount; uint256 public maxWalletAmount; IDexRouter public dexRouter; address public lpPair; bool private swapping; uint256 public swapTokensAtAmount; address taxAddress; bool public limitsInEffect = true; bool public tradingActive = false; bool private antiBot = false; uint256 private transferCount = 0; // Anti-sandwithc-bot mappings and variables mapping(address => uint256) private _holderLastBuyBlock; // to hold last Buy temporarily mapping(address => uint256) private _transferCountMap; bool public transferDelayEnabled = true; uint256 private buyFee; uint256 private sellFee; /******************/ // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping(address => bool) public automatedMarketMakerPairs; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event EnabledTrading(); event ExcludeFromFees(address indexed account, bool isExcluded); constructor() ERC20(unicode"peaceשלוםسلام", "PEACE") { address newOwner = msg.sender; // can leave alone if owner is deployer. IDexRouter _dexRouter = IDexRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dexRouter = _dexRouter; // create pair lpPair = IDexFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); _excludeFromMaxTransaction(address(lpPair), true); _excludeFromMaxTransaction(address(dexRouter), true); _setAutomatedMarketMakerPair(address(lpPair), true); uint256 totalSupply = 2 * 1e9 * 1e18; maxBuyAmount = (totalSupply * 1) / 100; maxSellAmount = (totalSupply * 1) / 100; maxWalletAmount = (totalSupply * 1) / 100; swapTokensAtAmount = (totalSupply * 5) / 1000; buyFee = 30; sellFee = 70; _excludeFromMaxTransaction(newOwner, true); _excludeFromMaxTransaction(address(this), true); _excludeFromMaxTransaction(address(0xdead), true); excludeFromFees(newOwner, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); taxAddress = address(0xc3BEFF6657ff89B046D072c8f72dE0a0A6Bff0E5); _createInitialSupply(newOwner, totalSupply); transferOwnership(newOwner); } receive() external payable {} // remove limits after token is stable function removeLimits() external onlyOwner { limitsInEffect = false; buyFee = 5; sellFee = 5; } function _excludeFromMaxTransaction(address updAds, bool isExcluded) private { _isExcludedMaxTransactionAmount[updAds] = isExcluded; } function excludeFromMaxTransaction( address updAds, bool isEx ) external onlyOwner { if (!isEx) { require(updAds != lpPair, "Cannot remove uniswap pair from max txn"); } _isExcludedMaxTransactionAmount[updAds] = isEx; } function setAutomatedMarketMakerPair( address pair, bool value ) external onlyOwner { require( pair != lpPair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; _excludeFromMaxTransaction(pair, value); emit SetAutomatedMarketMakerPair(pair, value); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function updateAntiBot(bool flag) public onlyOwner { antiBot = flag; } function enableTrading() external onlyOwner { require(!tradingActive, "Cannot reenable trading"); tradingActive = true; emit EnabledTrading(); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } // anti sandwich bot if (antiBot) { if ( !automatedMarketMakerPairs[to] && to != address(this) && to != address(dexRouter) && _holderLastBuyBlock[to] != block.number ) { _holderLastBuyBlock[to] = block.number; _transferCountMap[to] = transferCount; } if (_holderLastBuyBlock[from] == block.number) { require( _transferCountMap[from] + 1 == transferCount, "_transfer:: Anti sandwich bot enabled. Please try again later." ); } } if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { if (amount > maxSellAmount) { amount = maxSellAmount; } } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max tokens per wallet" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } // only take fees on buys/sells, do not take on wallet transfers if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { uint256 fees = 0; // on sell if (automatedMarketMakerPairs[to] && sellFee > 0) { fees = (amount * sellFee) / 100; } // on buy else if (automatedMarketMakerPairs[from] && buyFee > 0) { fees = (amount * buyFee) / 100; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); transferCount += 1; } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, taxAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } if (contractBalance > swapTokensAtAmount * 2) { contractBalance = swapTokensAtAmount * 2; } bool success; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance; if (ethBalance > 0) { (success, ) = address(taxAddress).call{value: ethBalance}(""); } } }
{ "metadata": { "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "viaIR": true }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604090808252346200073d57620000188162000742565b6015815260207f7065616365d7a9d79cd795d79dd8b3d984d8a7d9850000000000000000000000818301528251620000508162000742565b600580825264504541434560d81b838301528351909390926001600160401b038085116200063f5760038054956001948588811c9816801562000732575b858910146200071c578190601f98898111620006c8575b508590898311600114620006615760009262000655575b505060001982841b1c191690851b1781555b84519182116200063f5760049485548581811c9116801562000634575b858210146200061f5790818885949311620005c9575b5084908884116001146200055e5760009362000552575b505082851b92600019911b1c19161783555b60018060a01b03199233848754161786558651947f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09333600086818aa3600c805462ffffff60a01b1916600160a01b1790556000600d556010805460ff199081168317909155600980548816737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915563c45a015560e01b895285898681845afa988915620004fd576000996200052a575b508585918c51928380926315ab88c960e31b82525afa908115620004fd576000918791839162000508575b508c516364e329cb60e11b815230888201526001600160a01b039182166024820152909a9092839160449183918e165af18015620004fd578991600091620004c9575b50168088600a541617600a556000526014855289600020828282541617905587600954166000528960002082828254161790558188600a541680600052601587528b6000208284825416179055601487528b60002082848254161790557fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60008d51a36a108b2a2c2802909400000080600655806007556008556a084595161401484a000000600b55601e601155604660125533600052896000208282825416179055306000528960002082828254161790558461dead92836000528b600020818482541617905562000339338b8d541614620007de565b33600052601382528b60002081848254161790558b51928184527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79384843392a26200038b8c8c3391541614620007de565b30600052601383528c60002082828254161790558c5182815284843092a2620003ba8c8c3391541614620007de565b8460005260138352818d600020918254161790558b51908152a273c3beff6657ff89b046d072c8f72de0a0a6bff0e585600c541617600c5533156200048a57505062000408600254620007a3565b600255336000526000815285600020620004238154620007a3565b905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8751926b06765c793fa10079d000000084523393a383549283169462000470338714620007de565b51943391600087a316331790556119fe90816200082b8239f35b60649288519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b620004ee9150873d8911620004f5575b620004e581836200075e565b81019062000782565b3862000241565b503d620004d9565b8b513d6000823e3d90fd5b620005239150823d8411620004f557620004e581836200075e565b38620001fe565b85919950620005498791823d8411620004f557620004e581836200075e565b999150620001d3565b01519150388062000118565b9190869450601f1984169288600052866000209360005b88828210620005b2575050851162000597575b50505050811b0183556200012a565b01519060f884600019921b161c191690553880808062000588565b8385015187558a9890960195938401930162000575565b909192508660005284600020888086018b1c82019287871062000615575b9188918796959493018c1c01915b8281106200060557505062000101565b60008155869550889101620005f5565b92508192620005e7565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000eb565b634e487b7160e01b600052604160045260246000fd5b015190503880620000bc565b90879350601f1983169185600052876000209260005b89828210620006b1575050841162000698575b505050811b018155620000ce565b015160001983861b60f8161c191690553880806200068a565b8385015186558b9790950194938401930162000677565b9091508360005285600020898085018c1c82019288861062000712575b91899186959493018d1c01915b82811062000702575050620000a5565b60008155859450899101620006f2565b92508192620006e5565b634e487b7160e01b600052602260045260246000fd5b97607f16976200008e565b600080fd5b604081019081106001600160401b038211176200063f57604052565b601f909101601f19168101906001600160401b038211908210176200063f57604052565b908160209103126200073d57516001600160a01b03811681036200073d5790565b676765c793fa10079d601c1b198111620007c8576b06765c793fa10079d00000000190565b634e487b7160e01b600052601160045260246000fd5b15620007e657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfe60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816306fdde0314610c1e575080630758d92414610bf5578063095ea7b314610bcb57806310d5de5314610b8d57806318160ddd14610b6e57806323b872dd14610ab1578063313ce56714610a955780633950935114610a45578063452ed4f114610a1c5780634a62bb65146109f55780634aa2205d146109a357806366d602ae1461098457806370a082311461094d578063715018a6146108eb578063751039fc146108aa5780637571336a146107de57806388e765ff146107bf5780638a8c523c1461070f5780638da5cb5b146106e657806395d89b41146105e25780639a7a23d6146104c2578063a457c2d71461041b578063a9059cbb146103ea578063aa4bde28146103cb578063b62496f51461038d578063bbc0c74214610366578063c0246668146102da578063c876d0b9146102b6578063dd62ed3e1461026d578063e2f456051461024a5763f2fde38b03610011573461024657602036600319011261024657610198610d6b565b6005546001600160a01b038082169491926101b4338714610f07565b169283156101f55750829051937f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08686a36001600160a01b03191617600555f35b6020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8280fd5b505034610269578160031936011261026957602090600b549051908152f35b5080fd5b5050346102695780600319360112610269578060209261028b610d6b565b610293610d86565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b50503461026957816003193601126102695760209060ff6010541690519015158152f35b5050346102695780600319360112610269576102f4610d6b565b7f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7602061031f610d9c565b60055490936001600160a01b039161033a9083163314610f07565b16928386526013825261035b818688209060ff801983541691151516179055565b84519015158152a251f35b50503461026957816003193601126102695760209060ff600c5460a81c1690519015158152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b036103b8610d6b565b1681526015855220541690519015158152f35b5050346102695781600319360112610269576020906008549051908152f35b50503461026957806003193601126102695760209061041461040a610d6b565b602435903361102d565b5160018152f35b5082346104bf57826003193601126104bf57610435610d6b565b918360243592338152600160205281812060018060a01b038616825260205220549082821061046e576020856104148585038733610e05565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b5090346102465780600319360112610246576104dc610d6b565b916104e5610d9c565b9060018060a01b036104fc81600554163314610f07565b80600a541694169384146105795750828452601560205261052b818386209060ff801983541691151516179055565b6014602052610548818386209060ff801983541691151516179055565b15159051917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab8282828787a38484a3f35b608490602084519162461bcd60e51b8352820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152fd5b50919034610269578160031936011261026957805191809380549160019083821c928285169485156106dc575b60209586861081146106c9578589529081156106a5575060011461064d575b610649878761063f828c0383610dab565b5191829182610d14565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061069257505050826106499461063f9282010194388061062e565b8054868501880152928601928101610674565b60ff19168887015250505050151560051b830101925061063f82610649388061062e565b634e487b7160e01b845260228352602484fd5b93607f169361060f565b50503461026957816003193601126102695760055490516001600160a01b039091168152602090f35b503461024657826003193601126102465761073560018060a01b03600554163314610f07565b600c549060ff8260a81c1661077c575060ff60a81b1916600160a81b17600c55517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb78282a1f35b606490602084519162461bcd60e51b8352820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152fd5b5050346102695781600319360112610269576020906006549051908152f35b509190346102695780600319360112610269576107f9610d6b565b92610802610d9c565b60055490916001600160a01b039161081d9083163314610f07565b821561084a575b5061084792939416845260146020528284209060ff801983541691151516179055565b51f35b81600a54168287160361082457608490602085519162461bcd60e51b8352820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152fd5b5050346102695781600319360112610269576108d160018060a01b03600554163314610f07565b600c805460ff60a01b191690556005601181905560125551f35b5050346102695781600319360112610269576005546001600160a01b038116918390610918338514610f07565b51927f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08285a36001600160a01b031916600555f35b5050346102695760203660031901126102695760209181906001600160a01b03610975610d6b565b16815280845220549051908152f35b5050346102695781600319360112610269576020906007549051908152f35b50346102465760203660031901126102465735801515809103610246576109d560018060a01b03600554163314610f07565b600c805460ff60b01b191660b09290921b60ff60b01b1691909117905551f35b50503461026957816003193601126102695760209060ff600c5460a01c1690519015158152f35b505034610269578160031936011261026957600a5490516001600160a01b039091168152602090f35b505034610269578060031936011261026957610414602092610a8e610a68610d6b565b338352600186528483206001600160a01b03821684528652918490205460243590610de3565b9033610e05565b5050346102695781600319360112610269576020905160128152f35b5082346104bf5760603660031901126104bf57610acc610d6b565b9183610ad6610d86565b92610ae560443580958761102d565b6001600160a01b0385168152600160209081528282203383529052205490828210610b1a576020856104148585033388610e05565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b5050346102695781600319360112610269576020906002549051908152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b03610bb8610d6b565b1681526014855220541690519015158152f35b505034610269578060031936011261026957602090610414610beb610d6b565b6024359033610e05565b50503461026957816003193601126102695760095490516001600160a01b039091168152602090f35b9291905034610d105783600319360112610d1057600354600181811c9186908281168015610d06575b6020958686108214610cf35750848852908115610cd15750600114610c78575b610649868661063f828b0383610dab565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610cbe57505050826106499461063f928201019438610c67565b8054868501880152928601928101610ca1565b60ff191687860152505050151560051b830101925061063f8261064938610c67565b634e487b7160e01b845260229052602483fd5b93607f1693610c47565b8380fd5b919091602080825283519081818401526000945b828610610d55575050806040939411610d48575b601f01601f1916010190565b6000838284010152610d3c565b8581018201518487016040015294810194610d28565b600435906001600160a01b0382168203610d8157565b600080fd5b602435906001600160a01b0382168203610d8157565b602435908115158203610d8157565b90601f8019910116810190811067ffffffffffffffff821117610dcd57604052565b634e487b7160e01b600052604160045260246000fd5b81198111610def570190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03908116918215610eb65716918215610e665760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b15610f0e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610f5957565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15610fb357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b806000190460021181151516610def5760011b90565b8060001904821181151516610def570290565b6001600160a01b0380821693919290611047851515610f52565b8082169081151561105781610fac565b841561161d57600c549160ff8381809560a81c16156115a7575b60b01c16611490575b82600c5460a01c16611244575b505060009530875260209087825260409182892054600b54111580611235575b80611221575b8061120d575b806111f9575b6111cf575b8189526013815283838a20541615806111bf575b61110f575b50505050506110e592611662565b600d549060011982116110fb5750600101600d55565b634e487b7160e01b81526011600452602490fd5b6015908997959697968a5252828289205416806111b4575b15611181575050509050606461113f6012548361101a565b04905b81611171575b81811061115d5703906110e5388080806110d7565b634e487b7160e01b85526011600452602485fd5b61117c823086611662565b611148565b875286205416806111a9575b1561114257905060646111a26011548361101a565b0490611142565b50601154151561118d565b506012541515611127565b5084895283838a205416156110d2565b600a805460ff60a01b19908116600160a01b179091556111ed61173d565b600a5416600a556110be565b508489526013815283838a205416156110b9565b508189526013815283838a205416156110b3565b508189526015815283838a205416156110ad565b5083600a5460a01c16156110a7565b6005541690818814159182611485575b508161147d575b5080611471575b80611459575b80611441575b61127a575b3880611087565b6000868152602090601582526040908382822054168061142d575b1561135d576006548711611308578181866112b69352808552205487610de3565b600854106112c5575050611273565b60649250519062461bcd60e51b82526004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152fd5b815162461bcd60e51b815260048101849052602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608490fd5b8481526015835283828220541680611419575b1561139157505050600754808511611389575b50611273565b935038611383565b84815260148352838282205416156113ac575b505050611273565b81816113bc928552205487610de3565b600854106113ca57806113a4565b60849250519062461bcd60e51b82526004820152602360248201527f43616e6e6f7420457863656564206d617820746f6b656e73207065722077616c6044820152621b195d60ea1b6064820152fd5b508881526014835283828220541615611370565b508481526014835283828220541615611295565b5081600052601360205280604060002054161561126e565b50856000526013602052806040600020541615611268565b5061dead821415611262565b90503861125b565b841415915038611254565b600084815260209060158252604090858282205416158061159d575b8061158f575b8061157e575b611565575b8a8152600e83528181205443146114d7575b50505061107a565b600f8352818120549060011982116110fb57506001600d549101036114fc57806114cf565b60849250519062461bcd60e51b82526004820152603e60248201527f5f7472616e736665723a3a20416e74692073616e647769636820626f7420656e60448201527f61626c65642e20506c656173652074727920616761696e206c617465722e00006064820152fd5b600e83524382822055600d54600f8452828220556114bd565b50600e8352818120544314156114b8565b5083600954168714156114b2565b50308714156114ac565b90508860005260136020528360406000205416801561160b575b156115cd578390611071565b60405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606490fd5b508460005283604060002054166115c1565b60405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b6001600160a01b0390811691611679831515610f52565b1691611686831515610fac565b6000828152806020526040812054918083106116e957604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206116de828254610de3565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6000308152602090808252604091828220549283156119c257600b5461176281611004565b85116119b0575b50805167ffffffffffffffff9490606081018681118282101761199c5783526002815283810191833684378151156119885730835260095484516315ab88c960e31b81526001600160a01b03949092909185168784600481845afa93841561197e578994611942575b5084519360019485101561192e576117f291878492168988015230610e05565b84600954169285600c541691843b1561192a57875163791ac94760e01b81526004810191909152602481018a905260a06044820152945160a4860181905289948694909360c48601939092875b8c82821061190f5750505050508380928692606483015242608483015203925af18015611905576118de575b50478061187b575b505050505050565b848092918192600c5416908551915af1503d156118d5573d9384116118c15751926118af601f8201601f1916830185610dab565b83523d92013e5b388080808080611873565b634e487b7160e01b83526041600452602483fd5b505050506118b6565b8581959295116118f1578252923861186b565b634e487b7160e01b82526041600452602482fd5b83513d87823e3d90fd5b84518c1687528e99508a98509586019590930192820161183f565b8980fd5b634e487b7160e01b8a52603260045260248afd5b9093508781813d8311611977575b61195a8183610dab565b81010312611973575185811681036119735792386117d2565b8880fd5b503d611950565b87513d8b823e3d90fd5b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b6119bb919450611004565b9238611769565b5050505056fea2646970667358221220b8808be450e94ba9ebd3fc34d33bf46ed65fe6f099dfe10bc9f576142861e98564736f6c634300080f0033
Deployed Bytecode
0x60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816306fdde0314610c1e575080630758d92414610bf5578063095ea7b314610bcb57806310d5de5314610b8d57806318160ddd14610b6e57806323b872dd14610ab1578063313ce56714610a955780633950935114610a45578063452ed4f114610a1c5780634a62bb65146109f55780634aa2205d146109a357806366d602ae1461098457806370a082311461094d578063715018a6146108eb578063751039fc146108aa5780637571336a146107de57806388e765ff146107bf5780638a8c523c1461070f5780638da5cb5b146106e657806395d89b41146105e25780639a7a23d6146104c2578063a457c2d71461041b578063a9059cbb146103ea578063aa4bde28146103cb578063b62496f51461038d578063bbc0c74214610366578063c0246668146102da578063c876d0b9146102b6578063dd62ed3e1461026d578063e2f456051461024a5763f2fde38b03610011573461024657602036600319011261024657610198610d6b565b6005546001600160a01b038082169491926101b4338714610f07565b169283156101f55750829051937f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08686a36001600160a01b03191617600555f35b6020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8280fd5b505034610269578160031936011261026957602090600b549051908152f35b5080fd5b5050346102695780600319360112610269578060209261028b610d6b565b610293610d86565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b50503461026957816003193601126102695760209060ff6010541690519015158152f35b5050346102695780600319360112610269576102f4610d6b565b7f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7602061031f610d9c565b60055490936001600160a01b039161033a9083163314610f07565b16928386526013825261035b818688209060ff801983541691151516179055565b84519015158152a251f35b50503461026957816003193601126102695760209060ff600c5460a81c1690519015158152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b036103b8610d6b565b1681526015855220541690519015158152f35b5050346102695781600319360112610269576020906008549051908152f35b50503461026957806003193601126102695760209061041461040a610d6b565b602435903361102d565b5160018152f35b5082346104bf57826003193601126104bf57610435610d6b565b918360243592338152600160205281812060018060a01b038616825260205220549082821061046e576020856104148585038733610e05565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b5090346102465780600319360112610246576104dc610d6b565b916104e5610d9c565b9060018060a01b036104fc81600554163314610f07565b80600a541694169384146105795750828452601560205261052b818386209060ff801983541691151516179055565b6014602052610548818386209060ff801983541691151516179055565b15159051917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab8282828787a38484a3f35b608490602084519162461bcd60e51b8352820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152fd5b50919034610269578160031936011261026957805191809380549160019083821c928285169485156106dc575b60209586861081146106c9578589529081156106a5575060011461064d575b610649878761063f828c0383610dab565b5191829182610d14565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061069257505050826106499461063f9282010194388061062e565b8054868501880152928601928101610674565b60ff19168887015250505050151560051b830101925061063f82610649388061062e565b634e487b7160e01b845260228352602484fd5b93607f169361060f565b50503461026957816003193601126102695760055490516001600160a01b039091168152602090f35b503461024657826003193601126102465761073560018060a01b03600554163314610f07565b600c549060ff8260a81c1661077c575060ff60a81b1916600160a81b17600c55517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb78282a1f35b606490602084519162461bcd60e51b8352820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152fd5b5050346102695781600319360112610269576020906006549051908152f35b509190346102695780600319360112610269576107f9610d6b565b92610802610d9c565b60055490916001600160a01b039161081d9083163314610f07565b821561084a575b5061084792939416845260146020528284209060ff801983541691151516179055565b51f35b81600a54168287160361082457608490602085519162461bcd60e51b8352820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152fd5b5050346102695781600319360112610269576108d160018060a01b03600554163314610f07565b600c805460ff60a01b191690556005601181905560125551f35b5050346102695781600319360112610269576005546001600160a01b038116918390610918338514610f07565b51927f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08285a36001600160a01b031916600555f35b5050346102695760203660031901126102695760209181906001600160a01b03610975610d6b565b16815280845220549051908152f35b5050346102695781600319360112610269576020906007549051908152f35b50346102465760203660031901126102465735801515809103610246576109d560018060a01b03600554163314610f07565b600c805460ff60b01b191660b09290921b60ff60b01b1691909117905551f35b50503461026957816003193601126102695760209060ff600c5460a01c1690519015158152f35b505034610269578160031936011261026957600a5490516001600160a01b039091168152602090f35b505034610269578060031936011261026957610414602092610a8e610a68610d6b565b338352600186528483206001600160a01b03821684528652918490205460243590610de3565b9033610e05565b5050346102695781600319360112610269576020905160128152f35b5082346104bf5760603660031901126104bf57610acc610d6b565b9183610ad6610d86565b92610ae560443580958761102d565b6001600160a01b0385168152600160209081528282203383529052205490828210610b1a576020856104148585033388610e05565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b5050346102695781600319360112610269576020906002549051908152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b03610bb8610d6b565b1681526014855220541690519015158152f35b505034610269578060031936011261026957602090610414610beb610d6b565b6024359033610e05565b50503461026957816003193601126102695760095490516001600160a01b039091168152602090f35b9291905034610d105783600319360112610d1057600354600181811c9186908281168015610d06575b6020958686108214610cf35750848852908115610cd15750600114610c78575b610649868661063f828b0383610dab565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610cbe57505050826106499461063f928201019438610c67565b8054868501880152928601928101610ca1565b60ff191687860152505050151560051b830101925061063f8261064938610c67565b634e487b7160e01b845260229052602483fd5b93607f1693610c47565b8380fd5b919091602080825283519081818401526000945b828610610d55575050806040939411610d48575b601f01601f1916010190565b6000838284010152610d3c565b8581018201518487016040015294810194610d28565b600435906001600160a01b0382168203610d8157565b600080fd5b602435906001600160a01b0382168203610d8157565b602435908115158203610d8157565b90601f8019910116810190811067ffffffffffffffff821117610dcd57604052565b634e487b7160e01b600052604160045260246000fd5b81198111610def570190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03908116918215610eb65716918215610e665760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b15610f0e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610f5957565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15610fb357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b806000190460021181151516610def5760011b90565b8060001904821181151516610def570290565b6001600160a01b0380821693919290611047851515610f52565b8082169081151561105781610fac565b841561161d57600c549160ff8381809560a81c16156115a7575b60b01c16611490575b82600c5460a01c16611244575b505060009530875260209087825260409182892054600b54111580611235575b80611221575b8061120d575b806111f9575b6111cf575b8189526013815283838a20541615806111bf575b61110f575b50505050506110e592611662565b600d549060011982116110fb5750600101600d55565b634e487b7160e01b81526011600452602490fd5b6015908997959697968a5252828289205416806111b4575b15611181575050509050606461113f6012548361101a565b04905b81611171575b81811061115d5703906110e5388080806110d7565b634e487b7160e01b85526011600452602485fd5b61117c823086611662565b611148565b875286205416806111a9575b1561114257905060646111a26011548361101a565b0490611142565b50601154151561118d565b506012541515611127565b5084895283838a205416156110d2565b600a805460ff60a01b19908116600160a01b179091556111ed61173d565b600a5416600a556110be565b508489526013815283838a205416156110b9565b508189526013815283838a205416156110b3565b508189526015815283838a205416156110ad565b5083600a5460a01c16156110a7565b6005541690818814159182611485575b508161147d575b5080611471575b80611459575b80611441575b61127a575b3880611087565b6000868152602090601582526040908382822054168061142d575b1561135d576006548711611308578181866112b69352808552205487610de3565b600854106112c5575050611273565b60649250519062461bcd60e51b82526004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152fd5b815162461bcd60e51b815260048101849052602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608490fd5b8481526015835283828220541680611419575b1561139157505050600754808511611389575b50611273565b935038611383565b84815260148352838282205416156113ac575b505050611273565b81816113bc928552205487610de3565b600854106113ca57806113a4565b60849250519062461bcd60e51b82526004820152602360248201527f43616e6e6f7420457863656564206d617820746f6b656e73207065722077616c6044820152621b195d60ea1b6064820152fd5b508881526014835283828220541615611370565b508481526014835283828220541615611295565b5081600052601360205280604060002054161561126e565b50856000526013602052806040600020541615611268565b5061dead821415611262565b90503861125b565b841415915038611254565b600084815260209060158252604090858282205416158061159d575b8061158f575b8061157e575b611565575b8a8152600e83528181205443146114d7575b50505061107a565b600f8352818120549060011982116110fb57506001600d549101036114fc57806114cf565b60849250519062461bcd60e51b82526004820152603e60248201527f5f7472616e736665723a3a20416e74692073616e647769636820626f7420656e60448201527f61626c65642e20506c656173652074727920616761696e206c617465722e00006064820152fd5b600e83524382822055600d54600f8452828220556114bd565b50600e8352818120544314156114b8565b5083600954168714156114b2565b50308714156114ac565b90508860005260136020528360406000205416801561160b575b156115cd578390611071565b60405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606490fd5b508460005283604060002054166115c1565b60405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b6001600160a01b0390811691611679831515610f52565b1691611686831515610fac565b6000828152806020526040812054918083106116e957604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206116de828254610de3565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6000308152602090808252604091828220549283156119c257600b5461176281611004565b85116119b0575b50805167ffffffffffffffff9490606081018681118282101761199c5783526002815283810191833684378151156119885730835260095484516315ab88c960e31b81526001600160a01b03949092909185168784600481845afa93841561197e578994611942575b5084519360019485101561192e576117f291878492168988015230610e05565b84600954169285600c541691843b1561192a57875163791ac94760e01b81526004810191909152602481018a905260a06044820152945160a4860181905289948694909360c48601939092875b8c82821061190f5750505050508380928692606483015242608483015203925af18015611905576118de575b50478061187b575b505050505050565b848092918192600c5416908551915af1503d156118d5573d9384116118c15751926118af601f8201601f1916830185610dab565b83523d92013e5b388080808080611873565b634e487b7160e01b83526041600452602483fd5b505050506118b6565b8581959295116118f1578252923861186b565b634e487b7160e01b82526041600452602482fd5b83513d87823e3d90fd5b84518c1687528e99508a98509586019590930192820161183f565b8980fd5b634e487b7160e01b8a52603260045260248afd5b9093508781813d8311611977575b61195a8183610dab565b81010312611973575185811681036119735792386117d2565b8880fd5b503d611950565b87513d8b823e3d90fd5b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b6119bb919450611004565b9238611769565b5050505056fea2646970667358221220b8808be450e94ba9ebd3fc34d33bf46ed65fe6f099dfe10bc9f576142861e98564736f6c634300080f0033
Deployed Bytecode Sourcemap
8975:8082:0:-:0;;;;;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;:::i;:::-;7916:6;8975:8082;-1:-1:-1;;;;;8975:8082:0;;;;;;7908:67;231:10;7916:22;;7908:67;:::i;:::-;8975:8082;8216:22;;;8975:8082;;;;;;8292:38;;;;;-1:-1:-1;;;;;;8975:8082:0;;7916:6;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;9192:33;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9592:39;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12788:34;8975:8082;;;:::i;:::-;7916:6;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;7908:67;;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;8975:8082;;;;;12738:19;8975:8082;;12738:39;8975:8082;;;;;;;;;;;;;;;;;;;12738:39;8975:8082;;;;;;;12788:34;8975:8082;;;;;;;;;;;;;;;;;;;9290:33;8975:8082;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;:::i;:::-;;;;10031:57;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9075:30;8975:8082;;;;;;;;;;;;;;;;;;;;;;;4365:6;8975:8082;;:::i;:::-;;;231:10;;4365:6;:::i;:::-;8975:8082;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;231:10;;8975:8082;;;;;;;;;;;;;;;;;;;;;5624:35;;;;8975:8082;;;;5768:34;8975:8082;;;;231:10;5768:34;:::i;8975:8082::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;7908:67;8975:8082;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;8975:8082;12247:6;8975:8082;;;;12239:14;;;8975:8082;;;;;;12512:25;8975:8082;;12512:39;8975:8082;;;;;;;;;;;;;;;;;;;12512:39;11810:31;8975:8082;;11810:52;8975:8082;;;;;;;;;;;;;;;;;;;11810:52;8975:8082;;;;12609:40;;;;;;;;12385;;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;-1:-1:-1;;;;8975:8082:0;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7866:6;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;7908:67;8975:8082;;;;;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;12970:13;8975:8082;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;-1:-1:-1;;;8975:8082:0;12970:13;8975:8082;;13048:16;;8975:8082;13048:16;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9012:27;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;7916:6;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;7908:67;;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;11974:5;;11970:94;;8975:8082;;12069:46;8975:8082;;;;;;12069:31;8975:8082;;;;;;;;;;;;;;;;;;;;12069:46;8975:8082;;11970:94;8975:8082;12007:6;8975:8082;;;;;11997:16;11970:94;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;7908:67;8975:8082;;;;;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;11663:22;8975:8082;;-1:-1:-1;;;;8975:8082:0;;;7916:6;11691:10;8975:8082;;;11707:11;8975:8082;;;;;;;;;;;;;;;;;7916:6;8975:8082;-1:-1:-1;;;;;8975:8082:0;;;;;7908:67;231:10;7916:22;;7908:67;:::i;:::-;8975:8082;8058:40;;;;;-1:-1:-1;;;;;;8975:8082:0;7916:6;8975:8082;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9043:28;8975:8082;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;;;;;;7908:67;8975:8082;;;;;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;12888:14;8975:8082;;-1:-1:-1;;;;8975:8082:0;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;9253:33;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;9141:21;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;5346:47;8975:8082;;5346:47;8975:8082;;:::i;:::-;231:10;8975:8082;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;5346:47;:::i;:::-;231:10;;5346:47;:::i;8975:8082::-;;;;;;;;;;;;;;;;;3974:2;8975:8082;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;:::i;:::-;;;;;:::i;:::-;;4892:6;8975:8082;;4892:6;;;;:::i;:::-;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;231:10;8975:8082;;;;;;;4987:26;;;8975:8082;;;;5124:25;8975:8082;;;231:10;8975:8082;5124:25;:::i;8975:8082::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;4068:12;8975:8082;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;:::i;:::-;;;;9820:63;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4696:6;8975:8082;;:::i;:::-;;;231:10;;4696:6;:::i;8975:8082::-;;;;;;;;;;;;;;9110:27;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7166:338;-1:-1:-1;;;;;8975:8082:0;;;;7279:19;;8975:8082;;;7353:21;;;8975:8082;;;7467:32;8975:8082;;7296:1;8975:8082;;;;;7296:1;8975:8082;;7296:1;8975:8082;;;;;7296:1;8975:8082;;;;;;;7467:32;7166:338::o;8975:8082::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;16784:1;8975:8082;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;13073:3029::-;-1:-1:-1;;;;;8975:8082:0;;;;13073:3029;;;13174:68;13182:18;;;13174:68;:::i;:::-;8975:8082;;;13256:16;;;;13248:64;;;:::i;:::-;13326:10;;8975:8082;;13382:13;8975:8082;;;;;;;;;;13381:14;13377:146;;13073:3029;8975:8082;;;13554:523;;13073:3029;8975:8082;13382:13;8975:8082;;;;14083:1071;;13073:3029;13198:1;;;15209:4;;8975:8082;;;;;;;;;;;;;15260:18;8975:8082;-1:-1:-1;15236:42:0;15295:26;;;13073:3029;15295:68;;;13073:3029;15295:104;;;13073:3029;15295:138;;;13073:3029;15284:228;;13073:3029;8975:8082;;;15592:19;8975:8082;;;;;;;;15591:26;:54;;;13073:3029;15587:447;;13073:3029;16066:6;;;;;;;;:::i;:::-;16079:18;8975:8082;;-1:-1:-1;;8975:8082:0;;;;;;;16079:18;8975:8082;13073:3029::o;8975:8082::-;-1:-1:-1;;;8975:8082:0;;;;;;;;15587:447;15700:25;15655:16;;;;;;8975:8082;;;;;;;;;;15700:44;;;15587:447;15696:228;;;8975:8082;;;;;15784:3;15764:16;15773:7;8975:8082;15764:16;;:::i;:::-;8975:8082;15696:228;;15935:8;15931:75;;15696:228;8975:8082;;;;;;;16066:6;15587:447;;;;;;8975:8082;-1:-1:-1;;;8975:8082:0;;;;;;;;15931:75;15992:4;15209;;15992;;:::i;:::-;15931:75;;15696:228;8975:8082;;;;;;15828:45;;;15696:228;15824:100;15696:228;15824:100;8975:8082;;15912:3;15893:15;15902:6;8975:8082;15893:15;;:::i;:::-;8975:8082;15824:100;15696:228;;15828:45;8975:8082;15863:6;8975:8082;15863:10;;15828:45;;15700:44;8975:8082;15733:7;8975:8082;15733:11;;15700:44;;15591:54;8975:8082;;;;;;;;;;15621:24;15591:54;;15284:228;15448:15;8975:8082;;-1:-1:-1;;;;8975:8082:0;;;-1:-1:-1;;;8975:8082:0;;;;15448:15;;:::i;:::-;;8975:8082;;15448:15;8975:8082;15284:228;;15295:138;8975:8082;;;;15410:19;8975:8082;;;;;;;;15409:24;15295:138;;:104;8975:8082;;;;15374:19;8975:8082;;;;;;;;15373:26;15295:104;;:68;8975:8082;;;;15332:25;8975:8082;;;;;;;;15331:32;15295:68;;:26;8975:8082;;15313:8;8975:8082;;;;15312:9;15295:26;;14083:1071;7866:6;8975:8082;;14124:15;;;;;:40;;;;14083:1071;14124:68;;;;14083:1071;14124:101;;;;14083:1071;14124:139;;;14083:1071;14124:175;;;14083:1071;14111:1037;;14083:1071;;;;;14111:1037;13198:1;8975:8082;;;;;14352:25;8975:8082;;;;;;;;;;14352:81;;;14111:1037;14337:803;;;14487:12;8975:8082;14477:22;;8975:8082;;;;;14600:22;8975:8082;;;;;;;14600:22;;:::i;:::-;14626:15;8975:8082;-1:-1:-1;8975:8082:0;;14337:803;;14111:1037;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;14337:803;8975:8082;;;14352:25;8975:8082;;;;;;;;14753:81;;;14337:803;14738:402;;;8975:8082;;;14870:13;8975:8082;14861:22;;;14857:77;;14738:402;;14111:1037;;14857:77;14899:22;-1:-1:-1;14857:77:0;;;14738:402;8975:8082;;;14955:31;8975:8082;;;;;;;;14954:36;14950:190;;14738:402;;;;14111:1037;;14950:190;8975:8082;;15025:22;8975:8082;;;;;15025:22;;:::i;:::-;15051:15;8975:8082;-1:-1:-1;8975:8082:0;;14950:190;;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;14753:81;8975:8082;;;;14797:31;8975:8082;;;;;;;;14796:38;14753:81;;14352;8975:8082;;;;14398:31;8975:8082;;;;;;;;14397:36;14352:81;;14124:175;8975:8082;;13198:1;8975:8082;14276:19;8975:8082;;;;13198:1;8975:8082;;;14275:24;14124:175;;:139;8975:8082;;13198:1;8975:8082;14238:19;8975:8082;;;;13198:1;8975:8082;;;14237:26;14124:139;;:101;14204:21;14218:6;14204:21;;;14124:101;;:68;;;;;;:40;14151:13;;;;-1:-1:-1;14124:40:0;;;13554:523;13198:1;8975:8082;;;;;13589:25;8975:8082;;;;;;;;;;13588:30;:61;;;13554:523;13588:97;;;13554:523;13588:148;;;13554:523;13575:274;;13554:523;8975:8082;;;13860:19;8975:8082;;;;;;13889:12;13860:41;13856:215;;13554:523;;;;;;13856:215;13932:17;8975:8082;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;13963:13;8975:8082;;;13932:44;8975:8082;;13856:215;;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13575:274;13755:19;8975:8082;;13781:12;8975:8082;;;;13827:13;8975:8082;13803:17;8975:8082;;;;;;13575:274;;13588:148;8975:8082;13697:19;8975:8082;;;;;;13724:12;13697:39;;13588:148;;:97;8975:8082;;13675:9;8975:8082;;13661:24;;;13588:97;;:61;13644:4;;13630:19;;;13588:61;;13377:146;8975:8082;;;13198:1;8975:8082;13422:19;8975:8082;;;;13198:1;8975:8082;;;13422:52;;;;13377:146;8975:8082;;;13377:146;;;;8975:8082;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;13422:52;8975:8082;;13198:1;8975:8082;;;13198:1;8975:8082;;;13422:52;;8975:8082;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;5836:544;-1:-1:-1;;;;;8975:8082:0;;;;5945:70;5953:20;;;5945:70;:::i;:::-;8975:8082;6029:23;6021:71;6029:23;;;6021:71;:::i;:::-;5971:1;8975:8082;;;;;;;;;;6154:23;;;;8975:8082;;;;;6340:35;8975:8082;;;;;;;;;;;;;;;;;6298:30;8975:8082;;;6298:30;:::i;:::-;8975:8082;;;;;;;6340:35;5836:544::o;8975:8082::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;16598:457;4193:9;16676:4;8975:8082;;;;;;;;;;;;;16692:20;;;16688:47;;16763:18;8975:8082;16763:22;;;:::i;:::-;16745:40;;16741:101;;16598:457;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;16784:1;8975:8082;;;;;;;;;;;;;;;16676:4;8975:8082;;16307:9;8975:8082;;;-1:-1:-1;;;16307:16:0;;-1:-1:-1;;;;;8975:8082:0;;;;;;;16307:16;8975:8082;16307:16;8975:8082;;16307:16;;;;;;;;;;;16598:457;8975:8082;;;;;;;;;;;16374:11;8975:8082;;;;;;;;;16676:4;16374:11;:::i;:::-;8975:8082;16307:9;8975:8082;;;;16550:10;8975:8082;;16414:175;;;;;;8975:8082;;-1:-1:-1;;;16414:175:0;;16307:16;16414:175;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16568:15;8975:8082;;;;16414:175;;;;;;;;;;8975:8082;16927:21;;16959:14;16955:96;;8975:8082;16598:457;;;;;;:::o;16955:96::-;8975:8082;;;;;;16550:10;8975:8082;;;;;16997:47;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;:::i;:::-;;;;;;;;16955:96;;;;;;;;8975:8082;-1:-1:-1;;;8975:8082:0;;;16307:16;8975:8082;;;;;;;;;;;16414:175;8975:8082;;;;;;;;;;16414:175;;;;8975:8082;-1:-1:-1;;;8975:8082:0;;;16307:16;8975:8082;;;;16414:175;8975:8082;;;;;;;;;;;;;;;;;;-1:-1:-1;8975:8082:0;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;16414:175;8975:8082;;;;-1:-1:-1;;;8975:8082:0;;;16307:16;8975:8082;;;;16307:16;;;;;;;;;;;;;;;;;:::i;:::-;;;8975:8082;;;;;;;;;;;;16307:16;;;;8975:8082;;;;16307:16;;;;;;8975:8082;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;16741:101;16813:22;;;;;:::i;:::-;16741:101;;;;16688:47;16722:7;;;;:::o
Swarm Source
ipfs://b8808be450e94ba9ebd3fc34d33bf46ed65fe6f099dfe10bc9f576142861e985
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.